OSDN Git Service

4be06bf4a6b4502642205a6502b8d34060770103
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-03  Michael Matz  <matz@suse.de>
2
3         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
4         an integer.
5         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6
7 2011-04-03  Michael Matz  <matz@suse.de>
8
9         * cgraphbuild.c (record_reference): Canonicalize constructor
10         values.
11         * gimple-fold.c (canonicalize_constructor_val): Accept being called
12         without function context.
13         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
14         current_function_decl and cfun.
15
16 2011-04-03  Michael Matz  <matz@suse.de>
17
18         * tree.c (decl_init_priority_insert): Don't create entry for
19         default priority.
20         (decl_fini_priority_insert): Ditto.
21         (fields_compatible_p, find_compatible_field): Remove.
22         * tree.h (fields_compatible_p, find_compatible_field): Remove.
23         * gimple.c (gimple_compare_field_offset): Adjust block comment.
24
25 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
26
27         * combine.c (try_combine): Remove useless local variable.
28
29 2011-04-03  Richard Guenther  <rguenther@suse.de>
30             Ira Rosen  <ira.rosen@linaro.org>
31
32         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
33         non-variable offsets and compare the remaining bases of the two
34         accesses instead of looking for exact same data-ref.
35
36 2011-04-02  Kai Tietz  <ktietz@redhat.com>
37
38         PR target/48416
39         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
40
41         * i386.c (ix86_is_msabi_thiscall): New helper function.
42         (ix86_is_type_thiscall): New helper function.
43         (ix86_comp_type_attributes): Handle thiscall for method-functions
44         special.
45         (init_cumulative_args): Likewise.
46         (find_drap_reg): Likewise.
47         (ix86_static_chain): Likewise.
48         (x86_this_parameter): Likewise.
49         (x86_output_mi_thunk): Likewise.
50
51 2011-04-01  Olivier Hainque  <hainque@adacore.com>
52             Nicolas Setton  <setton@adacore.com>
53             Eric Botcazou  <ebotcazou@adacore.com>
54
55         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
56         (add_gnat_descriptive_type_attribute): New function.
57         (gen_array_type_die): Call it.
58         (gen_enumeration_type_die): Likewise.
59         (gen_struct_or_union_type_die): Likewise.
60         (modified_type_die): Likewise.
61         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
62         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
63         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
64
65 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
66
67         PR bootstrap/48148
68         * dwarf2out.c (resolve_addr): Don't call force_decl_die
69         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
70
71         Revert:
72         2011-03-17  Richard Guenther  <rguenther@suse.de>
73
74         PR bootstrap/48148
75         * lto-cgraph.c (input_overwrite_node): Clear the abstract
76         origin for decls in other ltrans units.
77         (input_varpool_node): Likewise.
78
79 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
80
81         PR middle-end/48335
82         * expr.c (expand_assignment): Handle all possibilities
83         if TO_RTX is CONCAT.
84         * expmed.c (store_bit_field_1): Avoid trying to create
85         invalid SUBREGs.
86         (store_split_bit_field): If SUBREG_REG (op0) or
87         op0 itself has smaller mode than word, return it
88         for offset 0 and const0_rtx for out-of-bounds stores.
89         If word is const0_rtx, skip it.
90
91 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
92
93         * config/h8300/h8300.c (print_operand_address): Rename to...
94         (h8300_print_operand_address): ...this. Make static. Adjust comments.
95         Call h8300_print_operand and h8300_print_operand_address instead of
96         print_operand and print_operand_address. Declare.
97         (print_operand): Renake to...
98         (h8300_print_operand): ...this. Make static. Adjust comments.
99         Call h8300_print_operand instead of print_operand. Declare.
100         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
101         (h8300_register_move_cost): Likewise.
102         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
103         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
104         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
105         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
106         * config/h8300/h8300-protos.h (print_operand): Delete.
107         (print_operand_address): Delete.
108
109 2011-04-01  Richard Henderson  <rth@redhat.com>
110
111         PR 48400
112         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
113         in strict mode before dwarf4.  Re-order tests to early out
114         before switching sections.
115
116 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
117
118         * config/h8300/constraints.md: New file.
119         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
120         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
121         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
122         * config/h8300/predicates.md (bit_operand): Likewise.
123         (incdec_operand): Use satisfies_constraint_M and
124         satisfies_constraint_O.  Don't use C code block.
125         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
126         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
127         (compute_mov_length): Use satisfies_constraint_G.
128         (fix_bit_operand): Use satisfies_constraint_U.
129         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
130         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
131         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
132         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
133         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
134         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
135         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
136         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
137         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
138         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
139         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
140         (EXTRA_MEMORY_CONSTRAINT): Delete.
141
142 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
143             Michael Meissner  <meissner@linux.vnet.ibm.com>
144
145         PR target/48262
146         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
147         operands, as per the specifications.
148
149         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
150         (vec_extract_evenv4sf): Ditto.
151         (vec_extract_evenv8hi): Ditto.
152         (vec_extract_evenv16qi): Ditto.
153         (vec_extract_oddv4si): Ditto.
154
155 2011-03-31  Mark Wielaard  <mjw@redhat.com>
156
157         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
158         high_pc attribute if the CU has no associated code. Only output
159         DW_AT_entry_pc for CU if not generating strict dwarf and
160         dwarf_version < 4.
161
162 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
163
164         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
165         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
166         out of ...
167         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
168         * final.c (final_start_function): Call the new function rather
169         than using a NULL argument for dwarf2out_frame_debug.
170
171         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
172         that contains the prologue.
173
174         * haifa-sched.c (queue_insn): New arg REASON.  All callers
175         changed.  Print it in debugging output.
176
177         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
178
179         * sched-ebb.c (begin_schedule_ready): Remove second argument.
180         Split most of the code into...
181         (begin_move_insn): ... here.  New function.
182         (ebb_sched_info): Add a pointer to it.
183         * haifa-sched.c (scheduled_insns): New static variable.
184         (sched_extend_ready_list): Allocate it.
185         (schedule_block): Use it to record the order of scheduled insns.
186         Perform RTL changes to move insns only after all scheduling
187         decisions have been made.
188         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
189         begin_move_insn field.
190         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
191         * sched-int.h (struct haifa_sched_info): Remove second argument
192         from begin_schedule_ready hook.  Add new member begin_move_insn.
193         * sched-rgn.c (begin_schedule_ready): Remove second argument.
194         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
195
196         * haifa-sched.c (prune_ready_list): New function, broken out of
197         schedule_block.
198         (schedule_block): Use it.
199
200 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
201
202         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
203
204 2011-04-01  Kai Tietz  <ktietz@redhat.com>
205
206         * config.gcc (*-*-mingw*): Allow as option the
207         posix threading model.
208         * config/i386/mingw32.h ( SPEC_PTHREAD1,  SPEC_PTHREAD2):
209         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
210         definition.
211         (CPP_SPEC): Add pthread/no-pthread handling.
212         (LIB_SPEC): Likewise.
213         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
214         (LIB_SPEC): Likewise.
215         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
216         flag to pass -pthread option for shared libgcc build.
217         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
218         for shared libgcc build.
219         * config/i386/t-mingw-pthread: New file.
220         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
221         New define to enable use of library pthread by default.
222         * config/i386/mingw.opt (pthread): New driver option.
223         (no-pthread): New driver option.
224         * config/i386/cygming.opt: Make sure trailing empty line
225         is retained.
226         * config/i386/mingw-w64.opt: Likewise.
227
228 2011-04-01  Gary Funck <gary@intrepid.com>
229
230         * c-decl.c (grokdeclarator): Fix formatting.
231
232 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
233
234         * expr.c (emit_block_move_via_movmem): Use n_generator_args
235         instead of n_operands.
236         (set_storage_via_setmem): Likewise.
237         * optabs.c (maybe_gen_insn): Likewise.
238         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
239         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
240         (mips_expand_builtin_direct): Likewise.
241         * config/spu/spu.c (expand_builtin_args): Likewise.
242
243 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
244
245         * recog.h (insn_data_d): Add n_generator_args.
246         * genoutput.c (data): Likewise.
247         (output_insn_data): Print it.
248         (max_opno, num_dups): Delete.
249         (scan_operands): Just fill in "d->operand[...]".
250         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
251
252 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
253
254         * gensupport.h (pattern_stats): New structure.
255         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
256         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
257         (max_operand_1, max_operand_vec): Delete.
258         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
259
260 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
261
262         * emit-rtl.c (emit_pattern_after_setloc): New function.
263         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
264         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
265         (emit_pattern_after): New function.
266         (emit_insn_after, emit_jump_insn_after): Call it.
267         (emit_call_insn_after, emit_debug_insn_after): Likewise.
268         (emit_pattern_before_setloc): New function.
269         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
270         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
271         Likewise.
272         (emit_pattern_before): New function.
273         (emit_insn_before, emit_jump_insn_before): Call it.
274         (emit_call_insn_before, emit_debug_insn_before): Likewise.
275
276 2011-03-31  Richard Henderson  <rth@redhat.com>
277
278         * dwarf2out.c (dw_separate_line_info_ref): Remove.
279         (dw_separate_line_info_entry): Remove.
280         (enum dw_line_info_opcode): New.
281         (dw_line_info_entry): Use it.
282         (dw_line_info_table, dw_line_info_table_p): New.
283         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
284         (line_info_table, line_info_label_num): Remove.
285         (line_info_table_in_use): Remove.
286         (separate_line_info_table): Remove.
287         (separate_line_info_table_allocated): Remove.
288         (separate_line_info_table_in_use): Remove.
289         (LINE_INFO_TABLE_INCREMENT): Remove.
290         (line_info_label_num): New.
291         (cur_line_info_table): New.
292         (text_section_line_info, cold_text_section_line_info): New.
293         (separate_line_info): New.
294         (SEPARATE_LINE_CODE_LABEL): Remove.
295         (print_dwarf_line_table): Remove.
296         (debug_dwarf): Don't dump it.
297         (output_one_line_info_table): New.
298         (output_line_info): Use it.
299         (new_line_info_table): New.
300         (set_cur_line_info_table): New.
301         (dwarf2out_switch_text_section): Use it.
302         (dwarf2out_begin_function): Likewise.
303         (push_dw_line_info_entry): New.
304         (dwarf2out_source_line): Rewrite for new line info tables.
305         (dwarf2out_init): Remove dead initailizations.
306
307 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
308
309         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
310         various flags.
311         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
312         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
313         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
314         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
315         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
316         * opt-functions.awk (flag_init, switch_bit_fields): New.
317         (switch_flags): Don't handle flags moved to bit-fields.  Don't
318         generate CL_MISSING_OK or CL_SAVE.
319         * optc-gen.awk: Update to generate bit-field output as well as
320         flags field.
321         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
322         bit-field instead of CL_REJECT_DRIVER flag.
323         * opts-common.c (generate_canonical_option,
324         decode_cmdline_option): Use bit-fields instead of CL_* flags.
325         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
326         instead of CL_REJECT_NEGATIVE flag.
327         * toplev.c (print_switch_values): Use cl_report bit-field instead
328         of CL_REPORT flag.
329
330 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
331
332         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
333         a zero minimum index only if it is redundant.
334
335 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
336
337         PR rtl-optimization/48381
338         * ira-color.c (assign_hard_reg): Use hard reg set intersection
339         instead of ira_class_hard_reg_index for calculating conflicting
340         hard registers.
341
342 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
343
344         * cprop.c: Clean up hash table building.
345         (reg_avail_info): Remove.
346         (oprs_available_p): Remove.
347         (record_last_reg_set_info): Remove.
348         (record_last_set_info): Remove.
349         (reg_available_p): New function.
350         (gcse_constant_p): Do not treat unfolded conditions as constants.
351         (make_set_regs_unavailable): New function.
352         (hash_scan_set): Simplify with new reg_available_p.
353         (compute_hash_table_work): Traverse insns stream only once.
354         Do not compute reg_avail_info. Traverse insns in reverse order.
355         Record implicit sets after recording explicit sets from the block.
356
357 2011-03-31  Michael Matz  <matz@suse.de>
358
359         * builtins.c (build_va_arg_indirect_ref): Use
360         build_simple_mem_ref_loc.
361
362 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
363
364         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
365         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
366         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
367         (h8300_mode_dependent_address_p): New function.
368         (h8300_get_index): Make static.
369
370 2011-03-31  Jeff Law  <law@redhat.com>
371
372         * reload1.c (elimination_effects): Fix typo in recent change.
373
374         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid 
375         typo potentially leading to null pointer dereference.
376
377         * caller-save.c (new_saved_hard_reg): Eliminate return value.
378         (setup_save_areas): Corresponding changes to avoid useless
379         assignments.
380
381         * jump.c (reversed_comparison_code_parts): Avoid successive return
382         statements when REVERSE_CONDITION is defined.
383
384         * expr.c (expand_assignment): Avoid useless assignments.
385         (expand_expr_real_1): Likewise.
386         (expand_expr_real_2): Avoid useless statements.
387
388         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
389
390         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
391
392         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
393         statements.
394
395         * stmt.c (expand_expr_stmt): Avoid useless assignment.
396
397 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
398
399         PR target/47109
400         * doc/tm.texi.in (TARGET_VERSION): Remove.
401         * doc/tm.texi: Regenerate.
402         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
403         * collect2.c (main): Don't use TARGET_VERSION.
404         * mips-tdump.c (main): Don't use TARGET_VERSION.
405         * mips-tfile.c (main): Don't use TARGET_VERSION.
406         * config.gcc (powerpc-wrs-vxworksae): Don't use
407         rs6000/vxworksae.h.
408         * config/rs6000/vxworksae.h: Remove.
409         * config/alpha/alpha.h (TARGET_VERSION): Remove.
410         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
411         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
412         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
413         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
414         * config/arm/arm.h (TARGET_VERSION): Remove.
415         * config/arm/coff.h (TARGET_VERSION): Remove.
416         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
417         * config/arm/elf.h (TARGET_VERSION): Remove.
418         * config/arm/freebsd.h (TARGET_VERSION): Remove.
419         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
420         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
421         * config/arm/pe.h (TARGET_VERSION): Remove.
422         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
423         * config/arm/semi.h (TARGET_VERSION): Remove.
424         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
425         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
426         * config/arm/vxworks.h (TARGET_VERSION): Remove.
427         * config/avr/avr.h (TARGET_VERSION): Remove.
428         * config/bfin/bfin.h (TARGET_VERSION): Remove.
429         * config/fr30/fr30.h (TARGET_VERSION): Remove.
430         * config/frv/frv.h (TARGET_VERSION): Remove.
431         * config/h8300/h8300.h (TARGET_VERSION): Remove.
432         * config/i386/cygwin.h (TARGET_VERSION): Remove.
433         * config/i386/darwin.h (TARGET_VERSION): Remove.
434         * config/i386/darwin64.h (TARGET_VERSION): Remove.
435         * config/i386/djgpp.h (TARGET_VERSION): Remove.
436         * config/i386/freebsd.h (TARGET_VERSION): Remove.
437         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
438         * config/i386/gnu.h (TARGET_VERSION): Remove.
439         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
440         * config/i386/i386elf.h (TARGET_VERSION): Remove.
441         * config/i386/linux.h (TARGET_VERSION): Remove.
442         * config/i386/linux64.h (TARGET_VERSION): Remove.
443         * config/i386/lynx.h (TARGET_VERSION): Remove.
444         * config/i386/mingw32.h (TARGET_VERSION): Remove.
445         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
446         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
447         * config/i386/netware.h (TARGET_VERSION): Remove.
448         * config/i386/nto.h (TARGET_VERSION): Remove.
449         * config/i386/openbsd.h (TARGET_VERSION): Remove.
450         * config/i386/vxworks.h (TARGET_VERSION): Remove.
451         * config/ia64/elf.h (TARGET_VERSION): Remove.
452         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
453         * config/ia64/hpux.h (TARGET_VERSION): Remove.
454         * config/ia64/linux.h (TARGET_VERSION): Remove.
455         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
456         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
457         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
458         * config/lm32/lm32.h (TARGET_VERSION): Remove.
459         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
460         * config/m32c/m32c.h (TARGET_VERSION): Remove.
461         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
462         * config/m32r/m32r.h (TARGET_VERSION): Remove.
463         * config/m68k/linux.h (TARGET_VERSION): Remove.
464         * config/m68k/m68k.h (TARGET_VERSION): Remove.
465         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
466         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
467         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
468         * config/mep/mep.h (TARGET_VERSION): Remove.
469         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
470         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
471         * config/mips/iris6.h (MACHINE_TYPE): Remove.
472         * config/mips/linux.h (TARGET_VERSION): Remove.
473         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
474         * config/mips/vxworks.h (TARGET_VERSION): Remove.
475         * config/mmix/mmix.h (TARGET_VERSION): Remove.
476         * config/mn10300/linux.h (TARGET_VERSION): Remove.
477         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
478         * config/pa/pa.h (TARGET_VERSION): Remove.
479         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
480         * config/picochip/picochip.h (TARGET_VERSION): Remove.
481         * config/rs6000/aix.h (TARGET_VERSION): Remove.
482         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
483         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
484         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
485         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
486         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
487         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
488         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
489         * config/rs6000/linux.h (TARGET_VERSION): Remove.
490         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
491         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
492         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
493         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
494         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
495         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
496         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
497         * config/s390/linux.h (TARGET_VERSION): Remove.
498         * config/s390/s390.h (TARGET_VERSION): Remove.
499         * config/s390/tpf.h (TARGET_VERSION): Remove.
500         * config/score/score.h (TARGET_VERSION): Remove.
501         * config/sh/linux.h (TARGET_VERSION): Remove.
502         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
503         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
504         * config/sh/sh.h (TARGET_VERSION): Remove.
505         * config/sh/sh64.h (TARGET_VERSION): Remove.
506         * config/sh/superh.h (TARGET_VERSION): Remove.
507         * config/sh/vxworks.h (TARGET_VERSION): Remove.
508         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
509         * config/sparc/linux.h (TARGET_VERSION): Remove.
510         * config/sparc/linux64.h (TARGET_VERSION): Remove.
511         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
512         TARGET_NAME32, TARGET_NAME): Remove.
513         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
514         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
515         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
516         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
517         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
518         * config/spu/spu.h (TARGET_VERSION): Remove.
519         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
520         * config/v850/v850.h (TARGET_VERSION): Remove.
521         * config/vax/linux.h (TARGET_VERSION): Remove.
522         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
523         * config/xtensa/elf.h (TARGET_VERSION): Remove.
524         * config/xtensa/linux.h (TARGET_VERSION): Remove.
525
526 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
527
528         PR target/48142
529         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
530         frame-related from frame-unrelated adjustments to the stack pointer.
531
532 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
533
534         * common.opt (fdebug-types-section): Move earlier.
535         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
536
537 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
538
539         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
540         var.
541
542 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
543
544         * tree.h (CASE_CHAIN): Define.
545         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
546         (gimple_redirect_edge_and_branch): Likewise.
547
548 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
549
550         PR middle-end/48367
551         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
552         calculation.
553
554 2011-03-30  Jeff Law  <law@redhat.com>
555
556         * PR bootstrap/48371
557         * reload1.c (reload): Fix botch in last change.
558
559         * reload.h (struct reload): Fix typo introduced in last change.
560
561 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
562
563         * config/arm/arm.opt (mhard-float, msoft-float): Mark
564         Undocumented.  Remove help text.
565         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
566         -mhard-float.
567
568 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
569
570         * doc/options.texi (NegativeAlias): Document.
571         (Alias): Mention NegativeAlias.
572         * opt-functions.awk: Handle NegativeAlias.
573         * optc-gen.awk: Disallow NegativeAlias with multiple Alias
574         arguments.
575         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
576         * opts.h (CL_NEGATIVE_ALIAS): Define.
577         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
578         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
579         OPT_mspe_.
580         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
581         Alias entries.
582         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
583         mno-spe and mno-isel instead of mspe=no and -misel=no.
584
585 2011-03-29  Mark Wielaard  <mjw@redhat.com>
586
587         * common.opt (fdebug-types-section): New flag.
588         * doc/invoke.texi: Document new -fno-debug-types-section flag.
589         * dwarf2out.c (use_debug_types): New define.
590         (struct die_struct): Mark die_id with GTY desc use_debug_types.
591         (print_die): Guard output of type unit signatures using
592         use_debug_types.
593         (build_abbrev_table): Replace assert of dwarf_version >= 4
594         with assert on use_debug_types.
595         (size_of_die): Likewise.
596         (unmark_dies): Likewise.
597         (value_format): Decide AT_ref_external form on use_debug_types.
598         (output_die): Replace dwarf_version version check guard with
599         use_debug_types where appropriate.
600         (modified_type_die): Likewise.
601         (gen_reference_type_die): Likewise.
602         (dwarf2out_start_source_file): Likewise.
603         (dwarf2out_end_source_file): Likewise.
604         (prune_unused_types_walk_attribs): Likewise.
605         (dwarf2out_finish): Likewise.
606
607 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
608
609         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
610
611 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
612
613         PR rtl-optimization/48332
614         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
615         mode of input operand N and modeN to its actual mode.
616
617 2011-03-30  Jeff Law  <law@redhat.com>
618
619         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
620         define accessor macro.
621         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
622         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
623         (reg_equiv_init): Likewise.
624         (reg_equivs_size): New variable.
625         (reg_equiv_init_size): Remove.
626         (allocate_initial_values): Move prototype to here from....
627         * integrate.h (allocate_initial_values): Remove prototype.
628         * integrate.c: Include reload.h.
629         (allocate_initial_values): Corresponding changes.
630         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
631         (fix_reg_equiv_init, no_equiv): Corresponding changes.
632         (update_equiv_regs): Corresponding changes.
633         (ira): Corresponding changes.
634         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
635         (push_secondary_reload): Corresponding changes.
636         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
637         (make_memloc, find_reloads_address): Corresponding changes.
638         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
639         (find_reloads_address_1): Corresponding changes.
640         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
641         (refers_to_regno_for_reload_p): Corresponding changes.
642         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
643         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
644         * reload1.c: Include ggc.h.
645         (grow_reg_equivs): New function.
646         (replace_pseudos_in, reload): Corresponding changes.
647         (calculate_needs_all_insns, alter_regs): Corresponding changes.
648         (eliminate_regs_1, elimination_effects): Corresponding changes.
649         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
650         (delete_output_reload): Likewise.
651         * caller-save.c (mark_referenced_regs): Corresponding changes.
652         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
653         * frv/predicates.md (frv_load_operand): Corresponding changes.
654         * microblaze/microblaze.c (double_memory_operand): Corresponding
655         changes.
656         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
657         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
658         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding
659         changes.
660         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
661         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
662         changes.
663         * pa/pa.c (emit_move_sequence): Corresponding changes.
664         * vax/vax.c (nonindexed_address_p): Corresponding changes.
665
666 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
667
668         PR target/47551
669         * config/arm/arm.c (coproc_secondary_reload_class): Handle
670         structure modes.  Don't check neon_vector_mem_operand for
671         vector or structure modes.
672
673 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
674             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
675
676         PR target/43590
677         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
678         operand 1 and reshuffle the operands to match.
679         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
680
681 2011-03-30  Christian Schüler  <cschueler@gmx.de>
682
683         PR driver/48208
684         * config/c.opt (F): Added 'Driver' to -F option.
685         PR driver/48260
686         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
687           handler function.
688         * config/darwin.opt: Added '-arch' option.
689
690 2011-03-30  Nick Clifton  <nickc@redhat.com>
691
692         * config/rx/rx.md: Add peepholes and patterns to combine
693         extending loads and simple arithmetic instructions.
694         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
695         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
696         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
697         modes to use pre-decrement and post-increment addressing.
698         (rx_is_restricted_memory_address): Add range checking of REG+INT
699         addresses.
700         (rx_print_operand): Add support for %Q.
701         Fix handling of %Q.
702         (rx_memory_move_cost): Adjust cost of stores.
703         (rx_adjust_insn_length): New function.
704
705 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
706
707         PR c/48305
708         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
709         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
710         matching arg00/arg01 types.
711
712 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
713
714         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
715         last_location to UNKNOWN_LOCATION.
716
717 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
718
719         PR target/48349
720         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
721         FLOAT_SSE_REGS.
722
723 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
724             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
725
726         PR bootstrap/48337
727         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
728         Init(PROCESSOR_V7).
729         (sparc_cpu): Likewise.
730         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
731         PROCESSOR_V7.
732
733 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
734
735         PR target/48336
736         PR middle-end/48342
737         PR rtl-optimization/48345
738         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
739         hard regs for given mode from profitable regs when doing secondary
740         allocation.
741
742 2011-03-29  Jeff Law  <law@redhat.com>
743
744         PR bootstrap/48327
745         * tree-ssa-threadupdate.c (struct redirection_data): Remove
746         do_not_duplicate field.
747         (lookup_redirection_data): Corresponding changes.
748         (create_duplicates): Always create a template block.
749         (redirect_edges): Remove code which reused the original block
750         when it was going to become unreachable code.
751         (thread_block): Don't set do_not_duplicate field.
752
753 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
754
755         * lto-opts.c (register_user_option_p, lto_register_user_option):
756         Make type argument unsigned.
757         * lto-streamer.h (lto_register_user_option): Make type argument
758         unsigned.
759         * opth-gen.awk: Make CL_* macros unsigned.
760         * opts-common.c (find_opt): Make lang_mask argument unsigned.
761         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
762         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
763         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
764         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
765         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
766         (find_opt): Make lang_mask argument unsigned.
767
768 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
769
770         PR rtl-optimization/48331
771         PR rtl-optimization/48334
772         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
773         for any used algorithm.
774
775 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
776
777         * ira-conflicts.c (build_object_conflicts): Add unused attribute
778         to parent_max.
779
780 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
781
782         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
783         (alpha_option_override): Don't set alpha_sr_alias_set.
784         (emit_frame_store_1): Use gen_frame_mem rather than calling
785         set_mem_alias_set.
786         (alpha_expand_epilogue): Ditto.
787
788 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
789
790         PR tree-optimization/48290
791         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
792         vectorization, check that relevant phis in the basic block after
793         the inner loop are really inner loop's exit phis.
794
795 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
796
797         PR debug/48190
798         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
799         (cached_dw_loc_list_def): New structure.
800         (cached_dw_loc_list): New typedef.
801         (cached_dw_loc_list_table): New variable.
802         (cached_dw_loc_list_table_hash): New function.
803         (cached_dw_loc_list_table_eq): Likewise.
804         (add_location_or_const_value_attribute): Take a bool cache_p.
805         Cache the list when the parameter is true.
806         (gen_formal_parameter_die): Update caller.
807         (gen_variable_die): Likewise.
808         (dwarf2out_finish): Likewise.
809         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
810         while generating debug info for the decl.
811         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
812         (dwarf2out_init): Initialize cached_dw_loc_list_table.
813         (resolve_addr): Cache the result of resolving a chain of
814         location lists.
815
816 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
817
818         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
819         conflict object hard regset nodes have intersecting hard reg sets.
820
821         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
822         after regstat_init_n_sets_and_refs.
823
824         * ira.c: Add more comments at the top.
825         (setup_stack_reg_pressure_class, setup_pressure_classes):
826         Add comments how we compute the register pressure classes.
827         (setup_allocno_and_important_classes): Add more comments.
828         (setup_class_translate_array, reorder_important_classes)
829         (setup_reg_class_relations): Add comments.
830
831         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
832         start of the file.
833
834         * ira-color.c: Add 2011 to the Copyright line.
835         (assign_hard_reg):  Add more comments.
836         (improve_allocation): Ditto.
837
838         * ira-costs.c: Add 2011 to the Copyright line.
839         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
840         comments.
841         (setup_regno_cost_classes_by_mode): Ditto.
842
843         Initial patches from ira-improv branch:
844
845         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
846
847         * ira-build.c: (ira_create_object): Remove initialization of
848         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
849         (ira_create_allocno): Remove initialization of
850         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
851         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
852         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
853         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
854         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
855         Initialize ALLOCNO_ADD_DATA.
856         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
857         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
858         ALLOCNO_REG.
859         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
860         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
861
862         * ira.c (ira_reallocate): Remove.
863         (setup_pressure_classes): Call
864         ira_init_register_move_cost_if_necessary.  Use
865         ira_register_move_cost instead of ira_get_register_move_cost.
866         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
867         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
868
869         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
870         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
871         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
872         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
873         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
874         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
875         Fix formatting.
876         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
877         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
878         (struct allocno_color_data): New.
879         (allocno_color_data_t): New typedef.
880         (allocno_color_data): New definition.
881         (ALLOCNO_COLOR_DATA): New macro.
882         (struct object_color_data): New.
883         (object_color_data_t): New typedef.
884         (object_color_data): New definition.
885         (OBJECT_COLOR_DATA): New macro.
886         (update_copy_costs, calculate_allocno_spill_cost): Call
887         ira_init_register_move_cost_if_necessary.  Use
888         ira_register_move_cost instead of ira_get_register_move_cost.
889         (move_spill_restore, update_curr_costs): Ditto.
890         (allocno_spill_priority): Make it inline.
891         (color_pass): Allocate and free allocno_color_dat and object_color_data.
892         (struct coalesce_data, coalesce_data_t): New.
893         (allocno_coalesce_data): New definition.
894         (ALLOCNO_COALESCE_DATA): New macro.
895         (merge_allocnos, coalesced_allocno_conflict_p): Use
896         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
897         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
898         (coalesce_allocnos): Ditto.
899         (setup_coalesced_allocno_costs_and_nums): Ditto.
900         (collect_spilled_coalesced_allocnos): Ditto.
901         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
902         (setup_slot_coalesced_allocno_live_ranges): Ditto.
903         (coalesce_spill_slots): Ditto.
904         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
905         free allocno_coalesce_data.
906
907         * ira-conflicts.c: Fix formatting.
908         (process_regs_for_copy): Call
909         ira_init_register_move_cost_if_necessary.  Use
910         ira_register_move_cost instead of ira_get_register_move_cost.
911         (build_object_conflicts): Optimize.
912
913         * ira-costs.c (record_reg_classes): Optimize.  Call
914         ira_init_register_move_cost_if_necessary.  Use
915         ira_register_move_cost, ira_may_move_in_cost, and
916         ira_may_move_out_cost instead of ira_get_register_move_cost and
917         ira_get_may_move_cost.
918         (record_address_regs): Ditto.
919         (scan_one_insn): Optimize.
920         (find_costs_and_classes): Optimize.
921         (process_bb_node_for_hard_reg_moves): Call
922         ira_init_register_move_cost_if_necessary.  Use
923         ira_register_move_cost instead of ira_get_register_move_cost.
924
925         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
926         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
927         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
928         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
929         definitions.
930         (ira_initiate_emit_data, ira_finish_emit_data)
931         (create_new_allocno): New functions.
932         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
933         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
934         Use ira_register_move_cost instead of ira_get_register_move_cost.
935
936         * ira-int.h: Fix some comments.
937         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
938         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
939         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
940         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
941         add_data.
942         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
943         bitfield after mode.  Make hard_regno a short int.  Make
944         hard_regno short.  Remove first_coalesced_allocno and
945         next_coalesced_allocno.  Move mem_optimized_dest_p,
946         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
947         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
948         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
949         temp, colorable_p.  Add new member add_data.
950         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
951         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
952         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
953         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
954         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
955         (ALLOCNO_ADD_DATA): New macro.
956         (ira_emit_data_t): New typedef.
957         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
958         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
959         from struct ira_allocno.
960         (ALLOCNO_EMIT_DATA): New macro.
961         (ira_allocno_emit_data, allocno_emit_reg): New.
962         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
963         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
964         (OBJECT_ADD_DATA): New macro.
965         (ira_reallocate): Remove.
966         (ira_initiate_emit_data, ira_finish_emit_data): New.
967         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
968         (ira_init_register_move_cost_if_necessary): New.
969         (ira_object_conflict_iter_next): Merge into
970         ira_object_conflict_iter_cond.
971         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
972
973         * ira-live.c: (process_single_reg_class_operands): Call
974         ira_init_register_move_cost_if_necessary.  Use
975         ira_register_move_cost instead of ira_get_register_move_cost.
976
977         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
978
979         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
980
981         * ira-costs.c: Fix formatting.
982         (cost_classes, cost_classes_num): Remove.
983         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
984         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
985         (cost_classes_del, cost_classes_htab): New.
986         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
987         (initiate_regno_cost_classes, setup_cost_classes): New.
988         (setup_regno_cost_classes_by_aclass): New.
989         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
990         (record_reg_classes): Use regno_cost_classes instead of
991         cost_classes.  Move checking opposite operand up.
992         (record_address_regs): Use regno_cost_classes
993         instead of cost_classes.
994         (scan_one_insn): Ditto.  Use always general register.
995         (print_allocno_costs): Use regno_cost_classes instead of
996         cost_classes.
997         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
998         (find_costs_and_classes): Set up cost classes for each registers.
999         Use also their mode for this.  Use regno_cost_classes instead of
1000         cost_classes.
1001         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
1002         cost_classes.
1003         (free_ira_costs, ira_init_costs): Don't use cost_classes.
1004         (ira_costs, ira_set_pseudo_classes): Call
1005         initiate_regno_cost_classes and finish_regno_cost_classes.
1006
1007         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
1008
1009         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
1010
1011         * target.def (ira_cover_classes): Remove.
1012
1013         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1014
1015         * doc/tm.texi.in: Ditto.
1016
1017         * ira-conflicts.c: Remove mentioning cover classes from the file.
1018         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
1019         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
1020
1021         * targhooks.c (default_ira_cover_classes): Remove.
1022
1023         * targhooks.h (default_ira_cover_classes): Ditto.
1024
1025         * haifa-sched.c: Remove mentioning cover classes from the file.
1026         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
1027         ira_pressure_classes and ira_pressure_classes_num instead of
1028         ira_reg_class_cover_size and ira_reg_class_cover.  Use
1029         sched_regno_pressure_class instead of sched_regno_cover_class.
1030         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
1031         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1032
1033         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
1034         classes from the file.
1035         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
1036         (struct object_hard_regs, struct object_hard_regs_node): New.
1037         (struct ira_object): New members profitable_hard_regs,
1038         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
1039         (struct ira_allocno): Rename cover_class to aclass.  Rename
1040         cover_class_cost and updated_cover_class_cost to class_cost and
1041         updated_class_cost.  Remove splay_removed_p and
1042         left_conflict_size.  Add new members colorable_p.
1043         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
1044         (ALLOCNO_COLORABLE_P): New macro.
1045         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
1046         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
1047         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
1048         (OBJECT_...): Rename parameter C to O.
1049         (OBJECT_PROFITABLE_HARD_REGS): New macro.
1050         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
1051         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
1052         (struct target_ira_int): New members x_ira_max_memory_move_cost,
1053         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
1054         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
1055         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
1056         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
1057         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
1058         x_ira_reg_class_subunion.
1059         (ira_max_memory_move_cost, ira_max_register_move_cost)
1060         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
1061         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
1062         (ira_important_class_nums, ira_reg_class_superunion): New macros.
1063         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1064         (ira_reg_class_union): Rename to ira_reg_class_subunion.
1065         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
1066         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
1067         (ira_tune_allocno_costs_and_cover_classes): Rename to
1068         ira_tune_allocno_costs.
1069         (ira_debug_hard_regs_forest): New.
1070         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
1071         (ira_object_conflict_iter_next): Fix comments.
1072         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1073         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
1074         cover_class to aclass.
1075         (ira_allocate_and_accumulate_costs): Ditto.
1076         (ira_allocate_and_set_or_copy_costs): Ditto.
1077
1078         * opts.c (decode_options): Remove ira_cover_class check.
1079
1080         * ira-color.c: Remove mentioning cover classes from the file.  Use
1081         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
1082         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
1083         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
1084         (splay-tree.h): Remove include.
1085         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
1086         before copy_freq_compare_func.
1087         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
1088         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
1089         New definitions.
1090         (hard_regs_roots, hard_regs_node_vec): Ditto.
1091         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
1092         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
1093         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
1094         (create_new_object_hard_regs_node): Ditto.
1095         (add_new_object_hard_regs_node_to_forest): Ditto.
1096         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1097         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
1098         Ditto.
1099         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
1100         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
1101         (remove_unused_object_hard_regs_nodes): Ditto.
1102         (enumerate_object_hard_regs_nodes): Ditto.
1103         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
1104         (object_hard_regs_subnode_t): Ditto.
1105         (struct object_hard_regs_subnode): Ditto.
1106         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
1107         (setup_object_hard_regs_subnode_index): Ditto.
1108         (get_object_hard_regs_subnodes_num): Ditto.
1109         (form_object_hard_regs_nodes_forest): Ditto.
1110         (finish_object_hard_regs_nodes_tree): Ditto.
1111         (finish_object_hard_regs_nodes_forest): Ditto.
1112         (allocnos_have_intersected_live_ranges_p): Rename to
1113         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
1114         (pseudos_have_intersected_live_ranges_p): Rename to
1115         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
1116         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
1117         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
1118         (update_copy_costs): Remove assert.  Skip cost update if the hard
1119         reg does not belong the class.
1120         (assign_hard_reg): Process only profitable hard regs.
1121         (uncolorable_allocnos_num): Make it scalar.
1122         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
1123         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
1124         and ira_reg_class_max_nregs.
1125         (bucket_allocno_compare_func): Check frequency first.
1126         (sort_bucket): Add compare function as a parameter.
1127         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
1128         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
1129         (push_allocno_to_stack): Rewrite for checking new allocno
1130         colorability.
1131         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
1132         (push_only_colorable): Pass new parameter to sort_bucket.
1133         (push_allocno_to_spill): Remove.
1134         (allocno_spill_priority_compare): Make it inline and rewrite.
1135         (splay_tree_allocate, splay_tree_free): Remove.
1136         (allocno_spill_sort_compare): New function.
1137         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
1138         build and use splay tree.  Choose first allocno in uncolorable
1139         allocno bucket to spill.  Remove setting spill cost.
1140         (all_conflicting_hard_regs): Remove.
1141         (setup_allocno_available_regs_num): Check only profitable hard
1142         regs.  Print info about hard regs nodes.
1143         (setup_allocno_left_conflicts_size): Remove.
1144         (put_allocno_into_bucket): Don't call
1145         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
1146         (improve_allocation): New.
1147         (color_allocnos): Call setup_profitable_hard_regs,
1148         form_object_hard_regs_nodes_forest, improve_allocation,
1149         finish_object_hard_regs_nodes_forest.  Setup spill cost.
1150         (print_loop_title): Use pressure classes.
1151         (color_allocnso): Ditto.
1152         (do_coloring): Remove allocation and freeing splay_tree_node_pool
1153         and allocnos_for_spilling.
1154         (ira_sort_regnos_for_alter_reg): Don't setup members
1155         {first,next}_coalesced_allocno.
1156         (color): Remove allocating and freeing removed_splay_allocno_vec.
1157         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
1158         prohibited_class_mode_regs.
1159
1160         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
1161         formatting.
1162         (update_allocno_pressure_excess_length): Use pressure classes.
1163         (inc_register_pressure, dec_register_pressure): Check for pressure
1164         class.
1165         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
1166         pressure class.  Use ira_reg_class_nregs instead of
1167         ira_reg_class_max_nregs.
1168         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
1169         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
1170         (single_reg_class): Use ira_reg_class_nregs instead of
1171         ira_reg_class_max_nregs.
1172         (process_bb_node_lives): Use pressure classes.
1173
1174         * ira-emit.c: Remove mentioning cover classes from the file.  Use
1175         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
1176         (change_loop): Use pressure classes.
1177         (modify_move_list): Call ira_set_allocno_class instead of
1178         ira_set_allocno_cover_class.
1179
1180         * ira-build.c: Remove mentioning cover classes from the file.  Use
1181         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
1182         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
1183         ALLOCNO_UPDATED_CLASS_COST instead of
1184         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
1185         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
1186         (ira_create_allocno): Remove initialization of
1187         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
1188         ALLOCNO_COLORABLE_P.
1189         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
1190         Update conflict regs for the objects.
1191         (create_cap_allocno): Remove assert.  Don't propagate
1192         ALLOCNO_AVAILABLE_REGS_NUM.
1193         (ira_free_allocno_costs): New function.
1194         (finish_allocno): Change a part of code into call of
1195         ira_free_allocno_costs.
1196         (low_pressure_loop_node_p): Use pressure classes.
1197         (object_range_compare_func): Don't compare classes.
1198         (setup_min_max_conflict_allocno_ids): Ditto.
1199
1200         * loop-invariant.c: Remove mentioning cover classes from the file.
1201         Use ira_pressure_classes and ira_pressure_classes_num instead of
1202         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
1203         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
1204         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1205         Use reg_allocno_class instead of reg_cover_class.
1206         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
1207         STACK_REG_COVER_CLASS.
1208         (get_regno_cover_class): Rename to get_regno_pressure_class.
1209         (move_loop_invariants): Initialize and finalize regstat.
1210
1211         * ira.c: Remove mentioning cover classes from the file.  Add
1212         comments about coloring without cover classes.  Use ALLOCNO_CLASS
1213         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
1214         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
1215         setup_class_subset_and_memory_move_costs.
1216         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
1217         (setup_cover_and_important_classes): Rename to
1218         setup_allocno_and_important_classes.
1219         (setup_class_translate_array): New.
1220         (setup_class_translate): Call it for allocno and pressure classes.
1221         (cover_class_order): Rename to allocno_class_order.
1222         (comp_reg_classes_func): Use ira_allocno_class_translate instead
1223         of ira_class_translate.
1224         (reorder_important_classes): Set up ira_important_class_nums.
1225         (setup_reg_class_relations): Set up ira_reg_class_superunion.
1226         (print_class_cover): Rename to print_classes.  Add parameter.
1227         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
1228         Print pressure classes too.
1229         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
1230         setup_reg_subclasses.
1231         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1232         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
1233         (setup_prohibited_class_mode_regs): Use
1234         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1235         (clarify_prohibited_class_mode_regs): New function.
1236         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
1237         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
1238         (ira_init_once): Initialize them.
1239         (free_register_move_costs): Process them.
1240         (ira_init): Move calls of find_reg_classes and
1241         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
1242         Call clarify_prohibited_class_mode_regs.
1243         (ira_no_alloc_reg): Remove.
1244         (too_high_register_pressure_p): Use pressure classes.
1245
1246         * sched-deps.c: Remove mentioning cover classes from the file.
1247         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
1248         ira_pressure_classes and ira_pressure_classes_num instead of
1249         ira_reg_class_cover_size and ira_reg_class_cover.
1250         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
1251         sched_regno_pressure_class instead of sched_regno_cover_class.
1252         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
1253         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1254
1255         * ira.h: Add 2010 to Copyright.
1256         (ira_no_alloc_reg): Remove external.
1257         (struct target_ira): Rename x_ira_hard_regno_cover_class,
1258         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
1259         x_ira_class_translate to x_ira_hard_regno_allocno_class,
1260         x_ira_allocno_classes_num, x_ira_allocno_classes, and
1261         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
1262         x_ira_pressure_classes, x_ira_pressure_class_translate, and
1263         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
1264         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
1265         x_ira_no_alloc_regs.
1266         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1267         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
1268         ira_allocno_classes_num and ira_allocno_classes.
1269         (ira_class_translate): Rename to ira_allocno_class_translate.
1270         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
1271         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
1272         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
1273         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
1274         (ira_no_alloc_regs): New.
1275
1276         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
1277         classes from the file.  Use ALLOCNO_CLASS instead of
1278         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
1279         ALLOCNO_COVER_CLASS_COST.
1280         (regno_cover_class): Rename to regno_aclass.
1281         (record_reg_classes): Use ira_reg_class_subunion instead of
1282         ira_reg_class_union.
1283         (record_address_regs): Check overflow.
1284         (scan_one_insn): Ditto.
1285         (print_allocno_costs): Print total mem cost fore regional allocation.
1286         (print_pseudo_costs): Use REG_N_REFS.
1287         (find_costs_and_classes): Use classes intersected with them on the
1288         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
1289         ira_reg_class_union.  Use ira_allocno_class_translate and
1290         regno_aclass instead of ira_class_translate and regno_cover_class.
1291         Modify code for finding regno_aclass.  Setup preferred classes for
1292         the next pass.
1293         (setup_allocno_cover_class_and_costs): Rename to
1294         setup_allocno_class_and_costs.  Use regno_aclass instead of
1295         regno_cover_class.  Use ira_set_allocno_class instead of
1296         ira_set_allocno_cover_class.
1297         (init_costs, finish_costs): Use regno_aclass instead of
1298         regno_cover_class.
1299         (ira_costs): Use setup_allocno_class_and_costs instead of
1300         setup_allocno_cover_class_and_costs.
1301         (ira_tune_allocno_costs_and_cover_classes): Rename to
1302         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
1303         by processing objects.  Use ira_reg_class_max_nregs instead of
1304         ira_reg_class_nregs.
1305
1306         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
1307
1308         * sched-int.h: Remove mentioning cover classes from the file.
1309         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
1310
1311         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
1312         classes from the file.
1313         (struct reg_pref): Rename coverclass into allocnoclass.
1314         (reg_cover_class): Rename to reg_allocno_class.
1315
1316         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1317
1318         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
1319
1320         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1321
1322         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
1323
1324         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
1325
1326         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
1327
1328         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
1329
1330         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
1331
1332         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
1333
1334         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
1335
1336         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
1337         (i386_ira_cover_classes): Ditto.
1338
1339         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1340
1341         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
1342
1343         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
1344
1345         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
1346
1347         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
1348
1349         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
1350
1351         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
1352         (mips_ira_cover_classes): Ditto.
1353
1354         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
1355
1356         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
1357
1358         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
1359
1360         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
1361
1362         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
1363
1364         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
1365         (IRA_COVER_CLASSES_VSX): Ditto.
1366
1367         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
1368         (rs6000_ira_cover_classes): Ditto.
1369
1370         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
1371
1372         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
1373
1374         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
1375
1376         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
1377
1378         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
1379
1380         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
1381
1382         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
1383
1384         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
1385
1386         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
1387
1388         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
1389
1390 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
1391
1392         PR debug/48253
1393         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
1394         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
1395         dw_fde_unlikely_section_end_label, cold_in_std_section,
1396         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
1397         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
1398         fields.
1399         (output_fde): Use dw_fde_second_{begin,end} if second is
1400         true, otherwise dw_fde_{begin,end}.
1401         (output_call_frame_info): Test dw_fde_second_begin != NULL
1402         instead of dw_fde_switched_sections.
1403         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
1404         fields, initialize new fields.  Initialize in_std_section
1405         unconditionally from the first partition.
1406         (dwarf2out_end_epilogue): Don't override dw_fde_end when
1407         dw_fde_second_begin is non-NULL.
1408         (dwarf2out_switch_text_section): Stop initializing removed
1409         dw_fde_struct fields, initialize new fields, initialize
1410         also dw_fde_end here.  Set dw_fde_switch_cfi even when
1411         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
1412         (struct var_loc_list_def): Add last_before_switch field.
1413         (arange_table, arange_table_allocated, arange_table_in_use,
1414         ARANGE_TABLE_INCREMENT, add_arange): Removed.
1415         (size_of_aranges): Count !in_std_section and !second_in_std_section
1416         hunks in fdes, instead of looking at arange_table_in_use.
1417         (output_aranges): Add aranges_length argument, don't call
1418         size_of_aranges here.  Instead of using aranges_table*
1419         emit ranges for fdes when !in_std_section resp.
1420         !second_in_std_section.
1421         (dw_loc_list): Break ranges crossing section switch.
1422         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
1423         use dw_fde_second_end instead of dw_fde_end as end of last range.
1424         (gen_subprogram_die): Don't call add_arange.  Use
1425         dw_fde_{begin,end} for first partition and if switched
1426         section dw_fde_second_{begin,end} for the second.
1427         (var_location_switch_text_section_1,
1428         var_location_switch_text_section): New functions.
1429         (dwarf2out_begin_function): Initialize cold_text_section even
1430         when function_section () isn't text_section.
1431         (prune_unused_types): Don't walk arange_table.
1432         (dwarf2out_finish): Don't needlessly test
1433         flag_reorder_blocks_and_partition when testing cold_text_section_used.
1434         If info_section_emitted, call size_of_aranges and if it indicates
1435         non-empty .debug_aranges, call output_aranges with the computed
1436         size.  Stop using removed dw_fde_struct fields, use
1437         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
1438         for second.
1439
1440         PR debug/48203
1441         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
1442         create ENTRY_VALUE if incoming or address of incoming's MEM
1443         is a hard REG.
1444         * dwarf2out.c (mem_loc_descriptor): Don't emit
1445         DW_OP_GNU_entry_value of DW_OP_fbreg.
1446         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
1447         on ENTRY_VALUE is able to find the canonical parameter VALUE.
1448         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
1449         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
1450         ENTRY_VALUE_EXPs.
1451         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
1452         is a REG_P or MEM_P with REG_P address, compute hash directly
1453         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
1454         (preserve_only_constants): Don't clear VALUES forwaring
1455         ENTRY_VALUE to some other VALUE.
1456
1457 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
1458
1459         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
1460         instead of GEN_INT.
1461
1462 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1463
1464         * cfgexpand.c (expand_gimple_cond): Always set the source location and
1465         block before expanding the statement.
1466         (expand_gimple_stmt_1): Likewise.  Set them here...
1467         (expand_gimple_stmt): ...and not here.  Tidy.
1468         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
1469         unknown.
1470
1471 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1472
1473         * Makefile.in: New rule for cprop.o.
1474         * gcse.c: Move constant/copy propagation to cprop.c.
1475         (compute_local_properties): Only handle expression tables.
1476         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
1477         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
1478         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
1479         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
1480         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
1481         compute_cprop_data, find_used_regs, try_replace_reg,
1482         find_avail_set, cprop_jump, constprop_register, cprop_insn,
1483         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
1484         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
1485         find_bypass_set, reg_killed_on_edge, bypass_block,
1486         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
1487         execute_rtl_cprop, pass_rtl_cprop): Move to...
1488         * cprop.c: ...here.  New file, constant/copy propagation for RTL
1489         moved from gcse.c to here with minor cleanups in duplicated code.
1490
1491 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1492
1493         * config/i386/i386.c (flag_opts): Fix a typo in
1494         -mavx256-split-unaligned-store.
1495
1496 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
1497
1498         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1499         LIBCALL_VALUE): Remove macros.
1500         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1501         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1502         (h8300_function_value, h8300_libcall_value,
1503         h8300_function_value_regno_p): New functions.
1504
1505 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
1506
1507         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
1508
1509 2011-03-28  Jeff Law  <law@redhat.com>
1510
1511         * tree-ssa-threadupdate.c (redirect_edges): Call
1512         create_edge_and_update_destination_phis as needed.
1513         (create_edge_and_update_destination_phis): Accept new BB argument.
1514         All callers updated.
1515         (thread_block): Do not update the profile when threading around
1516         intermediate blocks.
1517         (thread_single_edge): Likewise.
1518         (determine_bb_domination_status): If BB is not a successor of the
1519         loop header, return NONDOMINATING.
1520         (register_jump_thread): Note when we register a jump thread around
1521         an intermediate block.
1522         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
1523         (thread_across_edge): Use it.
1524
1525 2011-03-28  Tristan Gingold  <gingold@adacore.com>
1526
1527         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
1528         when for_return is 2.
1529
1530 2011-03-28  Jeff Law  <law@redhat.com>
1531
1532         * var-tracking.c (canonicalize_values_mark): Delete unused
1533         lhs assignment.
1534         (canonicalize_values_star, set_variable_part): Likewise.
1535         (clobber_variable_part, delete_variable_part): Likewise.
1536
1537 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1538
1539         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
1540
1541 2011-03-28  Martin Jambor  <mjambor@suse.cz>
1542
1543         * tree-inline.c (expand_call_inline): Do not check that destination
1544         node is analyzed.
1545         (optimize_inline_calls): Assert that destination node is analyzed.
1546         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
1547         not call tree_lowering_passes.
1548         * cgraph.h (cgraph_analyze_function): Declare.
1549         * cgraphunit.c (cgraph_analyze_function): Make public.
1550
1551 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
1552
1553         * config/sparc/sparc-opts.h: New.
1554         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
1555         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
1556         (sparc_option_override): Store processor_type enumeration rather
1557         than string in cpu_default.  Remove name and enumeration from
1558         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
1559         without using sparc_select.  Use target_flags_explicit instead of
1560         fpu_option_set.
1561         * config/sparc/sparc.h (enum processor_type): Move to
1562         sparc-opts.h.
1563         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
1564         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
1565         HeaderInclude entry.
1566         (mcpu=, mtune=): Use Var and Enum.
1567         (sparc_processor_type): New Enum and EnumValue entries.
1568
1569 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1570             Iain Sandoe  <iains@gcc.gnu.org>
1571
1572         PR target/48245
1573         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
1574
1575 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1576
1577         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
1578         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
1579         Insert new statements at it in lieu of STMT.
1580         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
1581         * tree-vect-stmts.c (vectorizable_store): Likewise.
1582         (vectorizable_load): Likewise.
1583
1584 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
1585
1586         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
1587         (divtf3): Ditto.
1588         (multf3): Ditto.
1589         (subtf3): Ditto.
1590
1591 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1592
1593         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
1594         unaligned 256bit load/store.
1595         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
1596         (*avx_movdqu<avxmodesuffix>): Likewise.
1597
1598 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1599
1600         PR target/48288
1601         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
1602         * config/pa/pa.md (iordi3): Use new predicate in expander.
1603         (iorsi3): Likewise.
1604
1605 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
1606
1607         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
1608         FUNCTION_VALUE_REGNO_P): Remove macros.
1609         * config/mips/mips-protos.h (mips_function_value): Remove.
1610         * config/mips/mips.c (mips_function_value): Rename to...
1611         (mips_function_value_1): ... this. Make static.  Handle receiving
1612         the function type in 'fn_decl_or_type' argument.
1613         (mips_function_value, mips_libcall_value,
1614         mips_function_value_regno_p): New function.
1615         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1616         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1617
1618 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1619
1620         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
1621         and -mavx256-split-unaligned-store.
1622         (ix86_option_override_internal): Split 32-byte AVX unaligned
1623         load/store by default.
1624         (ix86_avx256_split_vector_move_misalign): New.
1625         (ix86_expand_vector_move_misalign): Use it.
1626
1627         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
1628         -mavx256-split-unaligned-store.
1629
1630         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
1631         256bit load/store.  Generate unaligned store on misaligned memory
1632         operand.
1633         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
1634         256bit load/store.
1635         (*avx_movdqu<avxmodesuffix>): Likewise.
1636
1637         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
1638         -mavx256-split-unaligned-store.
1639
1640 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
1641
1642         PR target/38598
1643         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
1644         Update commentary.
1645
1646 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
1647
1648         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
1649         opno arguments with an expand_operand.  Use create_input_operand.
1650         (mips_prepare_builtin_target): Delete.
1651         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
1652         functions.
1653         (mips_expand_builtin_direct): Use create_output_operand and
1654         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
1655         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
1656         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
1657
1658 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
1659
1660         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
1661         function.
1662         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1663
1664 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
1665
1666         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
1667         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
1668         basic blocks and call commit_edge_insertions directly.
1669         (fixup_abnormal_edges): Move from here to...
1670         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
1671         on the edges and return whether some have actually been inserted.
1672         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
1673         compensation code.
1674
1675 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
1676
1677         PR rtl-optimization/48144
1678         * sel-sched-ir.c (merge_history_vect): Factor out from ...
1679         (merge_expr_data): ... here.
1680         (av_set_intersect): Rename to av_set_code_motion_filter.
1681         Update all callers.  Call merge_history_vect when an expression
1682         is found in both sets.
1683         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
1684
1685 2011-03-26  Alan Modra  <amodra@gmail.com>
1686
1687         * config/rs6000/predicates.md (word_offset_memref_op): Handle
1688         cmodel medium addresses.
1689         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
1690         64-bit gpr loads and stores.
1691         (rs6000_secondary_reload_ppc64): New function.
1692         * config/rs6000/rs6000-protos.h: Declare it.
1693         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
1694
1695 2011-03-26  Alan Modra  <amodra@gmail.com>
1696
1697         PR target/47487
1698         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
1699         GNU Go in traceback table.
1700
1701 2011-03-25  Richard Henderson  <rth@redhat.com>
1702
1703         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
1704         if there are exactly 6 operands.
1705         (set_storage_via_setmem): Similarly.
1706
1707 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1708
1709         * collect2.c (write_c_file_stat): Handle backslash
1710         as right-hand directory separator.
1711         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
1712         checking just for slash.
1713         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
1714         instead of checking for trailing slash.
1715         * gcc.c (record_temp_file): Use filename_cmp instead
1716         of strcmp.
1717         (do_spec_1): Likewise.
1718         (replace_outfile_spec_function): Likewise.
1719         (is_directory): Use filename_ncmp instead of strncmp.
1720         (print_multilib_info): Likewise.
1721         * gcov.c (find_source): Use filename_cmp instead
1722         instead of strcmp.
1723         (make_gcov_file_name): Fix order of slash/backslash
1724         checks.
1725         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
1726         (add_standard_paths): Likewise.
1727         * mips-tfile.c (saber_stop): Handle backslash.
1728         * prefix.c (update_path): Use filename_ncmp instead of
1729         strncmp.
1730         * profile.c (output_location): Use filename_cmp instead
1731         of strcmp.
1732         * read-md.c (handle_toplevel_file): Handle backslash.
1733         * tlink.c (frob_extension):  Likewise.
1734         * tree-cfg.c (same_line_p): Use filename_cmp instead of
1735         strcmp.
1736         * tree-dump.c (dequeue_and_dump): Handle backslash.
1737         * tree.c (get_file_function_name): Likewise.
1738         * gengtype.c (read_input_list): Likewise.
1739         (get_file_realbasename): Likewise.
1740         (get_output_file_with_visibility): Use filename_cmp
1741         instead of strcmp.
1742
1743 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
1744
1745         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
1746         case to VFPv1.
1747
1748 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
1749
1750         * fold-const.c (expr_location_or): New function.
1751         (fold_truth_not_expr): Call it.
1752
1753 2011-03-25  Jeff Law  <law@redhat.com>
1754
1755         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
1756         va_end.
1757         * c-family/c-common.c (def_fn_type): Likewise.
1758         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
1759         * emit-rtl.c (gen_rtvec): Likewise.
1760         * lto/lto-lang.c (def_fn_type): Likewise.
1761
1762 2011-03-25  Richard Guenther  <rguenther@suse.de>
1763
1764         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
1765         also generate copies.
1766         (fini_copy_prop): Handle constant values properly.
1767
1768 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
1769
1770         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
1771         mode size instead of bitsize with DWARF2_ADDR_SIZE.
1772         (hash_loc_operands, compare_loc_operands): Handle
1773         DW_OP_GNU_entry_value.
1774
1775 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1776
1777         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
1778         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
1779         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
1780         comment and use macro TARGET_64BIT_MS_ABI instead.
1781         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
1782         and change default behavior for 32-bit MS_ABI.
1783         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
1784         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
1785         32-bit, too.
1786         (ix86_cfun_abi): Likewise.
1787         (ix86_maybe_switch_abi): Adjust comment.
1788         (init_cumulative_args): Check for bit-ness in MS_ABI case.
1789         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
1790         instead of checking for SYSV_ABI.
1791         (ix86_nsaved_sseregs): Likewise.
1792         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
1793         to 16 bytes.
1794         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
1795         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
1796         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
1797         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
1798         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
1799
1800 2011-03-25  Richard Guenther  <rguenther@suse.de>
1801
1802         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
1803         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
1804         (verify_gimple): Remove.
1805         * tree-cfg.c (verify_gimple_call): Merge verification
1806         from verify_stmts.
1807         (verify_gimple_phi): Merge verification from verify_stmts.
1808         (verify_gimple_label): New function.
1809         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
1810         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
1811         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
1812         (verify_stmts): Rename to verify_gimple_in_cfg.
1813         (verify_gimple_in_cfg): New function.
1814         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
1815         * tree-ssa.c (verify_ssa): Likewise.
1816         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
1817
1818 2011-03-25  Richard Guenther  <rguenther@suse.de>
1819
1820         * passes.c (init_optimization_passes): Add FRE pass after
1821         early SRA.
1822
1823 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
1824             Andrew Stubbs  <ams@codesourcery.com>
1825
1826         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
1827         for Cortex-A8.
1828         (arm_movdi_vfp_cortexa8): New pattern.
1829         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
1830         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
1831         instructions when tuning for Cortex-A8.  Set attribute "arch".
1832         * config/arm/arm.md: Move include arm-tune.md up a bit.
1833         (define_attr "arch"): Add "onlya8" and "nota8" values.
1834         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
1835
1836 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
1837
1838         PR bootstrap/48282
1839         Revert:
1840         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1841
1842         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
1843         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
1844         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
1845         * passes.c (init_optimization_passes): Move
1846         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
1847
1848 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1849
1850         * c-typeck.c (comptypes_internal): Replace target
1851         hook call of comp_type_attributes by version in tree.c file.
1852         * gimple.c (gimple_types_compatible_p_1): Likewise.
1853         * tree-ssa.c (useless_type_conversion_p): Likewise.
1854         * tree.c (build_type_attribute_qual_variant): Likewise.
1855         (attribute_value_equal): New static helper function.
1856         (comp_type_attributes): New function.
1857         (merge_attributes): Use attribute_value_equal for comparison.
1858         (attribute_list_contained): Likewise.
1859         * tree.h (comp_type_attributes): New prototype.
1860
1861 2011-03-25  Richard Guenther  <rguenther@suse.de>
1862
1863         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
1864         of complex types at -O0.
1865         (verify_gimple_assign_binary): Likewise.
1866         (verify_gimple_assign_ternary): Likewise.
1867
1868 2011-03-24  Mark Wielaard  <mjw@redhat.com>
1869
1870         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
1871         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
1872
1873 2011-03-24  Mark Wielaard  <mjw@redhat.com>
1874
1875         PR debug/48041
1876         * dwarf2out.c (output_abbrev_section): Only write table when
1877         abbrev_die_table_in_use > 1.
1878
1879 2011-02-24  Richard Henderson  <rth@redhat.com>
1880
1881         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
1882         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
1883         (alpha_expand_unaligned_load_words): Use extql.
1884         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
1885         (emit_insxl): Handle all modes for consistency.
1886
1887 2011-02-24  Richard Henderson  <rth@redhat.com>
1888
1889         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
1890         (alpha_expand_unaligned_load): Likewise.
1891         (alpha_expand_unaligned_store): Likewise.
1892         (alpha_expand_unaligned_load_words): Likewise.
1893         (alpha_expand_unaligned_store_words): Likewise.
1894         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
1895         (alpha_split_lock_test_and_set_12): Likewise.
1896         (print_operand, alpha_fold_builtin_extxx): Likewise.
1897         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
1898         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
1899         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
1900         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
1901         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
1902         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
1903         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
1904         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
1905         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
1906         (extwl, extll, extql): Similarly.
1907         (inswh, inslh, insqh): Similarly.
1908         (mskbl, mskwl, mskll, mskql): Similarly.
1909         (mskwh, msklh, mskqh): Similarly.
1910
1911 2011-02-24  Richard Henderson  <rth@redhat.com>
1912
1913         * config/alpha/alpha.md (attribute isa): Add er, ner.
1914         (attribute enabled): Handle them.
1915         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
1916
1917 2011-02-24  Richard Henderson  <rth@redhat.com>
1918
1919         * config/alpha/alpha.md (attribute isa): Add vms.
1920         (attribute enabled): Handle it.
1921         (*movsf): Merge *movsf_{nofix,fix,nofp}.
1922         (*movdf): Merge *movdf_{nofix,fix,nofp}.
1923         (*movtf): Rename from *movtf_internal for consistency.
1924         (*movsi): Merge with *movsi_nt_vms.
1925         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
1926         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
1927         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
1928         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
1929
1930 2011-02-24  Richard Henderson  <rth@redhat.com>
1931
1932         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
1933         (extendqisi2, extendhisi2): Likewise.
1934         (extendqidi2): Simplify BWX/non-BWX expansions.
1935         (extendhidi2): Similarly.
1936
1937 2011-02-24  Richard Henderson  <rth@redhat.com>
1938
1939         * config/alpha/alpha.md (attribute isa): New.
1940         (attribute enabled): New.
1941         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
1942         (zero_extendqisi2, zero_extendqidi2): Similarly.
1943         (zero_extendhisi2, zero_extendhidi2): Similarly.
1944         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
1945
1946 2011-02-24  Richard Henderson  <rth@redhat.com>
1947
1948         * config/alpha/predicates.md (input_operand): Revert last change;
1949         update comment to mention 32-bit VMS rather than Windows.
1950
1951 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1952
1953         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
1954         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
1955         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
1956         * passes.c (init_optimization_passes): Move
1957         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
1958
1959 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1960
1961         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
1962
1963 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
1964
1965         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
1966         correctly.
1967
1968 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
1969
1970         PR debug/48204
1971         * simplify-rtx.c (simplify_const_unary_operation): Call
1972         real_convert when changing mode class with FLOAT_EXTEND.
1973
1974 2011-03-24  Nick Clifton  <nickc@redhat.com>
1975
1976         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
1977         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
1978         * config/rx/rx.c (rx_option_override): Set align_jumps,
1979         align_loops and align_labels if not set by the user.
1980         (rx_align_for_label): New function.
1981         (rx_max_skip_for_label): New function.
1982         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
1983         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
1984         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
1985         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
1986         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
1987
1988 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1989
1990         PR rtl-optimization/48263
1991         * optabs.c (expand_binop_directly): Reinstate convert_modes code
1992         and original commutative_p handling.  Use maybe_gen_insn.
1993
1994 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1995
1996         * reload.c (find_reloads_subreg_address): Add address_reloaded
1997         parameter and return true there if the full address has been
1998         reloaded.
1999         (find_reloads_toplev): Pass address_reloaded flag.
2000         (find_reloads_address_1): Don't use address_reloaded parameter.
2001
2002 2011-03-24  Jeff Law  <law@redhat.com>
2003
2004         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
2005         unused variable "ann".
2006         (remove_unused_locals): Likewise.
2007
2008         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
2009         statement.
2010
2011         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
2012         after it is freed.
2013
2014 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2015
2016         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
2017         for invalid symbolic addresses.
2018         (s390_secondary_reload): Don't use s390_check_symref_alignment for
2019         larl operands.
2020
2021 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2022
2023         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
2024         the argument in calls to fold_truth_not_expr.
2025
2026 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2027
2028         * tree.c (record_node_allocation_statistics): New function.
2029         (make_node_stat, copy_node_stat, build_string): Call it.
2030         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
2031         (build1_stat, build_omp_clause): Likewise.
2032
2033 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2034
2035         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
2036         last commit.
2037
2038 2011-03-24  Richard Guenther  <rguenther@suse.de>
2039
2040         PR tree-optimization/48271
2041         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
2042         blocks that still exist.
2043
2044 2011-03-24  Richard Guenther  <rguenther@suse.de>
2045
2046         PR tree-optimization/48270
2047         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
2048         not free datarefs before ddrs.
2049
2050 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2051
2052         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
2053         from the address built for a reference with variable offset.
2054
2055 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
2056
2057         PR target/48237
2058         * config/i386/i386.md (*movdf_internal_rex64): Do not split
2059         alternatives that can be handled with movq or movabsq insn.
2060         (*movdf_internal): Disable for !TARGET_64BIT.
2061         (*movdf_internal_nointeger): Ditto.
2062         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
2063
2064 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2065
2066         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
2067         (FUNCTION_ARG_ADVANCE): Likewise.
2068         * tm.texi.in: Change references to them to hook references.
2069         * tm.texi: Regenerate.
2070         * targhooks.c (default_function_arg): Eliminate check for target macro.
2071         (default_function_incoming_arg): Likewise.
2072         (default_function_arg_advance): Likewise.
2073         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
2074         (function_arg_advance): Likewise.
2075         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
2076
2077 2011-03-24  Richard Guenther  <rguenther@suse.de>
2078
2079         PR middle-end/48269
2080         * tree-object-size.c (addr_object_size): Do not double-account
2081         for MEM_REF offsets.
2082
2083 2011-03-24  Diego Novillo  <dnovillo@google.com>
2084
2085         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
2086         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
2087         (lto_input_data_block): Move from lto-opts.c.  Make extern.
2088         Update all users.
2089         (lto_input_string): Rename from input_string.  Make extern.
2090         Update all users.
2091         * lto-streamer-out.c (lto_output_string_with_length): Rename from
2092         output_string_with_length.
2093         Output 0 to indicate a non-NULL string.  Update all callers to
2094         not emit 0.
2095         (lto_output_string): Rename from output_string.  Make extern.
2096         Update all users.
2097         (lto_output_decl_state_streams): Make extern.
2098         (lto_output_decl_state_refs): Make extern.
2099         * lto-streamer.h (lto_input_string): Declare.
2100         (lto_input_data_block): Declare.
2101         (lto_output_string): Declare.
2102         (lto_output_string_with_length): Declare.
2103         (lto_output_decl_state_streams): Declare.
2104         (lto_output_decl_state_refs): Declare.
2105
2106 2011-03-24  Richard Guenther  <rguenther@suse.de>
2107
2108         PR tree-optimization/46562
2109         * tree.c (build_invariant_address): New function.
2110         * tree.h (build_invariant_address): Declare.
2111         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
2112         a renamed function moved ...
2113         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
2114         Take valueization callback parameter.
2115         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
2116         * gimple-fold.h: New file.
2117         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
2118         (ccp_fold, fold_const_aggregate_ref,
2119         fold_ctor_reference, fold_nonarray_ctor_reference,
2120         fold_array_ctor_reference, fold_string_cst_ctor_reference,
2121         get_base_constructor): Move ...
2122         * gimple-fold.c: ... here.
2123         (gimple_fold_stmt_to_constant_1): New function
2124         split out from ccp_fold.  Take a valueization callback parameter.
2125         Valueize all operands.
2126         (gimple_fold_stmt_to_constant): New wrapper function.
2127         (fold_const_aggregate_ref_1): New function split out from
2128         fold_const_aggregate_ref.  Take a valueization callback parameter.
2129         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
2130         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
2131         invariant POINTER_PLUS_EXPRs to invariant form.
2132         (vn_valueize): New function.
2133         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
2134         * tree-vrp.c (vrp_valueize): New function.
2135         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
2136         to fold statements to constants.
2137         * tree-ssa-pre.c (eliminate): Properly guard propagation of
2138         function declarations.
2139         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
2140         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
2141
2142 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2143
2144         * config/h8300/predicates.md (jump_address_operand): Fix register
2145         mode check.
2146
2147 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
2148
2149         * doc/invoke.texi (max-stores-to-sink): Document.
2150         * params.h (MAX_STORES_TO_SINK): Define.
2151         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
2152         if either vectorization or if-conversion is disabled.
2153         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
2154         tree-vect-data-refs.c vect_equal_offsets.
2155         (dr_equal_offsets_p): New function.
2156         (find_data_references_in_bb): Remove static.
2157         * tree-data-ref.h (find_data_references_in_bb): Declare.
2158         (dr_equal_offsets_p): Likewise.
2159         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
2160         (vect_drs_dependent_in_basic_block): Update calls to
2161         vect_equal_offsets.
2162         (vect_check_interleaving): Likewise.
2163         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
2164         (cond_if_else_store_replacement): Rename to...
2165         (cond_if_else_store_replacement_1): ... this.  Change arguments and
2166         documentation.
2167         (cond_if_else_store_replacement): New function.
2168         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
2169         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
2170
2171 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
2172
2173         PR target/46934
2174         * config/arm/arm.md (casesi): Use the gen_int_mode() function
2175         to subtract lower bound instead of GEN_INT().
2176
2177 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
2178
2179         PR other/48179
2180         PR other/48221
2181         PR other/48234
2182         * doc/extend.texi (Alignment): Move section to match order in TOC.
2183         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
2184         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
2185
2186 2011-03-23  Jeff Law  <law@redhat.com>
2187
2188         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
2189         before removing the edge.
2190
2191         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
2192         it may have been freed by redirect_branch_edge or
2193         redirect_edge_succ_nodup.
2194
2195 2011-03-23  Richard Guenther  <rguenther@suse.de>
2196
2197         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
2198         (check_va_list_escapes): Likewise.
2199         (check_all_va_list_escapes): Likewise.
2200
2201 2011-03-23  Richard Guenther  <rguenther@suse.de>
2202
2203         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
2204         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
2205         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
2206         (alias.o): Likewise.
2207         (ipa-type-escape.o): Remove.
2208         (ipa-struct-reorg.o): Likewise.
2209         (GTFILES): Remove ipa-struct-reorg.c.
2210         * alias.c: Do not include ipa-type-escape.h.
2211         * tree-ssa-alias.c: Likewise.
2212         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
2213         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
2214         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
2215         and ipa-type-escape passes.
2216         * tree-pass.h (pass_ipa_type_escape): Remove.
2217         (pass_ipa_struct_reorg): Likewise.
2218         * ipa-struct-reorg.h: Remove.
2219         * ipa-struct-reorg.c: Likewise.
2220         * ipa-type-escape.h: Likewise.
2221         * ipa-type-escape.c: Likewise.
2222         * doc/invoke.texi (-fipa-struct-reorg): Remove.
2223         (--param struct-reorg-cold-struct-ratio): Likewise.
2224         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
2225         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
2226         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
2227
2228 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2229
2230         * config/s390/2084.md: Enable all insn reservations also for z9_ec
2231         cpu attribute value.
2232         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
2233         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
2234         * config/s390/s390.c (processor_flags_table): New constant array.
2235         (s390_handle_arch_option): Remove.
2236         (s390_handle_option): Remove s390_handle_arch_option invocations
2237         and OPT_mwarn_framesize_ handling.
2238         (s390_option_override): Remove s390_handle_arch_option invocation.
2239         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
2240         warnings.
2241         * config/s390/s390.md (cpu attribute): Add z9_ec value.
2242         * config/s390/s390.opt (s390_tune, s390_arch)
2243         (march=): Replace s390_arch_option enum and values with
2244         processor_type.  Set variable name to s390_arch.  Set
2245         initialization value.
2246         (mtune=): Replace s390_arch_option with processor_type.  Set
2247         variable name to s390_tune.  Set initialization value.
2248
2249 2011-03-23  Julian Brown  <julian@codesourcery.com>
2250
2251         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
2252         accesses which are not naturally aligned.
2253
2254 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
2255
2256         PR target/47553
2257         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
2258
2259 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
2260
2261         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
2262         parameter from "int" to "enum insn_code".
2263         (expand_operand_type): New enum.
2264         (expand_operand): New structure.
2265         (create_expand_operand): New function.
2266         (create_fixed_operand, create_output_operand): Likewise
2267         (create_input_operand, create_convert_operand_to): Likewise.
2268         (create_convert_operand_from, create_address_operand): Likewise.
2269         (create_integer_operand): Likewise.
2270         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
2271         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
2272         (expand_insn, expand_jump_insn): Likewise.
2273         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
2274         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
2275         (expand_movstr, expand_builtin___clear_cache): Likewise.
2276         (expand_builtin_lock_release): Likewise.
2277         * explow.c (allocate_dynamic_stack_space): Likewise.
2278         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
2279         and use the default handling in that case.
2280         * expmed.c (check_predicate_volatile_ok): Delete.
2281         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
2282         (emit_cstore): Likewise.
2283         * expr.c (emit_block_move_via_movmem): Likewise.
2284         (set_storage_via_setmem, expand_assignment): Likewise.
2285         (emit_storent_insn, try_casesi): Likewise.
2286         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
2287         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
2288         (expand_vec_shift_expr, expand_binop_directly): Likewise.
2289         (expand_twoval_unop, expand_twoval_binop): Likewise.
2290         (expand_unop_direct, emit_indirect_jump): Likewise.
2291         (emit_conditional_move, vector_compare_rtx): Likewise.
2292         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
2293         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
2294         (expand_sync_lock_test_and_set): Likewise.
2295         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
2296         (emit_unop_insn): Likewise.
2297         (expand_copysign_absneg): Change icode to an insn_code.
2298         (create_convert_operand_from_type): New function.
2299         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
2300         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
2301         (expand_insn, expand_jump_insn): Likewise.
2302         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
2303         than const_int_operand for operand 2.
2304
2305 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2306
2307         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
2308         if possible.
2309
2310 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2311
2312         * emit-rtl.c (emit_pattern_before_noloc): New function.
2313         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
2314         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
2315         (emit_pattern_after_noloc): New function.
2316         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
2317         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
2318
2319 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2320
2321         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
2322         (__ffsDI2): Likewise.
2323
2324 2011-03-22  Richard Henderson  <rth@redhat.com>
2325
2326         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
2327         of !TARGET_ABI_OPEN_VMS.
2328         (alpha_trampoline_init, alpha_start_function): Likewise.
2329         (alpha_expand_epilogue, alpha_file_start): Likewise.
2330         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
2331         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
2332         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
2333         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
2334         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
2335
2336 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2337
2338         * config/s390/s390-opts.h: New.
2339         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
2340         s390_arch_flags, s390_warn_framesize, s390_stack_size,
2341         s390_stack_guard): Remove.
2342         (s390_handle_arch_option): Return void.  Take enum
2343         s390_arch_option value instead of string and searching array.
2344         (s390_handle_option): Don't assert that global structures are in
2345         use.  Access variables via opts pointer.  Use error_at.  Don't use
2346         sscanf for -mstack-guard= or -mstack-size=.  Update call to
2347         s390_handle_arch_option.
2348         (s390_option_override): Update call to s390_handle_arch_option.
2349         (s390_emit_prologue): Use %d format for s390_stack_size in
2350         diagnostic.  Use %wd for HOST_WIDE_INT.
2351         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
2352         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
2353         * config/s390/s390.opt (config/s390/s390-opts.h): New
2354         HeaderInclude entry.
2355         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
2356         s390_arch_flags, s390_warn_framesize): New Variable entries.
2357         (s390_arch_option): New Enum and EnumValue entries.
2358         (march=): Use Enum instead of Var.
2359         (mstack-guard=, mstack-size=): Use UInteger and Var.
2360         (mtune=): Use Enum.
2361
2362 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2363
2364         * config/score/score.c (score_handle_option): Don't assert that
2365         global structures are in use.  Access target_flags via opts
2366         pointer.  Use value of -march= option to determine target_flags
2367         settings.
2368         * config/score/score.opt (march=): Use Enum.
2369         (score_arch): New Enum and EnumValue entries.
2370
2371 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2372
2373         * config/mep/mep.c (option_mtiny_specified): Remove.
2374         (mep_option_override): Move register handling for -mivc2 from
2375         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
2376         instead of option_mtiny_specified.
2377         (mep_handle_option): Access target_flags via opts pointer.  Don't
2378         assert that global structures are in use.  Defer part of -mivc2
2379         handling and move it to mep_option_override.
2380         * config/mep/mep.opt (IVC2): New Mask entry.
2381         (mivc2): Use Var and Defer instead of Mask.
2382
2383 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2384
2385         * config/v850/v850-opts.h: New.
2386         * config/v850/v850.c (small_memory): Replace with
2387         small_memory_physical_max array.  Make that array static const.
2388         (v850_handle_memory_option): Take integer value of argument.  Take
2389         gcc_options pointer, option text and location.  Return void.
2390         Update for changes to small memory structures.
2391         (v850_handle_option): Access target_flags via opts pointer.  Don't
2392         assert that global structures are in use.  Update calls to
2393         v850_handle_memory_option.
2394         (v850_encode_data_area): Update references to small memory settings.
2395         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
2396         (enum small_memory_type): Move to v850-opts.h.
2397         * config/v850/v850.opt (config/v850/v850-opts.h): New
2398         HeaderInclude entry.
2399         (small_memory_max): New Variable entry.
2400         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
2401         (mtda, mzda): Likewise.
2402
2403 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2404
2405         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
2406         pointer.  Don't assert that global structures are in use.
2407
2408 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2409
2410         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
2411         via opts pointer.  Don't assert that global structures are in use.
2412
2413 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2414
2415         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
2416         (munix=93): Use Var.
2417         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
2418         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
2419         * config/pa/pa-opts.h: New.
2420         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
2421         (pa_handle_option): Don't assert that global structures are in
2422         use.  Access target_flags via opts pointer.  Don't handle
2423         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
2424         OPT_munix_98 here.
2425         (pa_option_override): Handle deferred OPT_mfixed_range_.
2426
2427 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2428
2429         * config/mn10300/mn10300-opts.h: New.
2430         * config/mn10300/mn10300.c (mn10300_processor,
2431         mn10300_tune_string): Remove.
2432         (mn10300_handle_option): Don't assert that global structures are
2433         in use.  Access mn10300_processor via opts pointer.  Don't handle
2434         OPT_mtune_ here.
2435         * config/mn10300/mn10300.h (enum processor_type): Move to
2436         mn10300-opts.h.
2437         (mn10300_processor): Remove.
2438         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
2439         HeaderInclude entry.
2440         (mn10300_processor): New Variable entry.
2441         (mtune=): Use Var.
2442
2443 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2444
2445         * config/microblaze/microblaze.c: Don't include opts.h.
2446         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
2447         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
2448         (mno-clearbss): Use Var and Warn.
2449
2450 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2451
2452         * config/m32r/m32r-opts.h: New.
2453         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
2454         (m32r_handle_option): Don't assert that global structures are in
2455         use.  Access target_flags and m32r_cache_flush_func via opts
2456         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
2457         OPT_mno_flush_trap here.
2458         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
2459         include of m32r-opts.h.
2460         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
2461         HeaderInclude entry.
2462         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
2463         (mmodel=): Use Enum and Var.
2464         (m32r_model): New Enum and EnumValue entries.
2465         (mno-flush-trap): Use Var.
2466         (msdata=): Use Enum and Var.
2467         (m32r_sdata): New Enum and EnumValue entries.
2468
2469 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2470
2471         * config/m32c/m32c.c: Don't include opts.h.
2472         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
2473         m32c_handle_option): Remove.
2474         (m32c_option_override): Check global_options_set.x_target_memregs
2475         instead of target_memregs_set.
2476         * config/m32c/m32c.h (target_memregs): Remove.
2477         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
2478         variable.
2479
2480 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2481
2482         * config/iq2000/iq2000-opts.h: New.
2483         * config/iq2000/iq2000.c: Don't include opts.h.
2484         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
2485         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
2486         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
2487         HeaderInclude entry.
2488         (iq2000_tune): New Variable entry.
2489         (march=): Add comment.  Use Enum.
2490         (iq2000_arch): New Enum and EnumValue entries.
2491         (mcpu=): Use Enum and Var.
2492         (iq2000_tune): New Enum and EnumValue entries.
2493
2494 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2495
2496         * config/ia64/ia64-opts.h: New.
2497         * config/ia64/ia64.c (ia64_tune): Remove.
2498         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
2499         here.  Use error_at.
2500         (ia64_option_override): Handle deferred OPT_mfixed_range_.
2501         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
2502         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
2503         HeaderInclude entry.
2504         (ia64_tune): New Variable entry.
2505         (mfixed-range=): Use Defer and Var.
2506         (mtune=): Use Enum and Var.
2507         (ia64_tune): New Enum and EnumValue entries.
2508
2509 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2510
2511         * config/frv/frv-opts.h: New.
2512         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
2513         frv-opts.h.
2514         (frv_cpu_type): Remove.
2515         * config/frv/frv.c: Don't include opts.h.
2516         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
2517         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
2518         (frv_cpu_type): New Variable entry.
2519         (frv_cpu): New Enum and EnumValue entries.
2520
2521 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2522
2523         * config/cris/cris.c (cris_handle_option): Access target_flags via
2524         opts pointer.  Don't assert that global structures are in use.
2525         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
2526         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
2527
2528 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2529
2530         * config/bfin/bfin-opts.h: New.
2531         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
2532         bfin_si_revision, bfin_workarounds): Remove.
2533         (bfin_cpus): Make static const.
2534         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
2535         not bfin_lib_id_given.
2536         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
2537         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
2538         pointer. Use error_at.  Don't assert that global structures are in use.
2539         * config/bfin/bfin.h: Include bfin-opts.h.
2540         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
2541         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
2542         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
2543         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
2544         entries.
2545
2546 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2547
2548         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
2549         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
2550         or -msoft-float here.
2551         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
2552         -msoft-float and -mhard-float.
2553         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
2554         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
2555         msoft-float.
2556         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
2557         -msoft-float.
2558         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
2559         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
2560         not mhard-float.
2561         (LIBGCC_SPEC): Don't handle -msoft-float.
2562         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
2563         -mhard-float.
2564         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
2565         msoft-float.
2566         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
2567         -mfloat-abi=*, not -msoft-float and -mhard-float.
2568         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
2569         -msoft-float.
2570         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
2571         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
2572         mhard-float and msoft-float.
2573         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
2574         mfloat-abi=soft in comments, not mhard-float and msoft-float.
2575         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2576         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
2577         mhard-float.
2578         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
2579         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
2580         msoft-float.
2581         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
2582         not mhard-float.
2583         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
2584         not msoft-float.
2585
2586 2011-03-22  Richard Henderson  <rth@redhat.com>
2587
2588         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
2589         TARGET_ABI_WINDOWS_NT.
2590         (alpha_output_function_end_prologue): Likewise.
2591         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
2592         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2593         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
2594         (trap, *movsi_nt_vms): Likewise.
2595         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
2596         (*tablejump_osf_nt_internal): Remove.
2597         * config/alpha/predicates.md (input_operand): Only test Pmode.
2598
2599 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2600
2601         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
2602         via opts pointer.  Use error_at.  Don't assert that global
2603         structures are in use.
2604
2605 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2606
2607         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
2608         (ix86_handle_option): Access ix86_isa_flags and
2609         ix86_isa_flags_explicit via opts pointer.  Don't assert that
2610         global structures are in use.
2611         (ix86_function_specific_save, ix86_function_specific_restore):
2612         Update ix86_isa_flags_explicit field name.
2613         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
2614         (ix86_isa_flags_explicit): Rename TargetSave entry to
2615         x_ix86_isa_flags_explicit.
2616
2617 2011-03-22  Richard Henderson  <rth@redhat.com>
2618
2619         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
2620         (alpha_option_override, direct_return): Likewise.
2621         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
2622         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
2623         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
2624         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
2625         (alpha_expand_epilogue, alpha_end_function): Likewise.
2626         (alpha_init_libfuncs): Likewise.
2627         (struct machine_function): Remove unicosmk members.
2628         (print_operand) ['t']: Remove.
2629         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
2630         unicosmk_output_module_name, unicosmk_output_common,
2631         current_section_align, unicosmk_output_text_section_asm_op,
2632         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
2633         unicosmk_section_type_flags, unicosmk_unique_section,
2634         unicosmk_asm_named_section, unicosmk_insert_attributes,
2635         unicosmk_output_align, unicosmk_defer_case_vector,
2636         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
2637         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
2638         unicosmk_output_ssib, unicosmk_add_call_info_word,
2639         unicosmk_extern_head, unicosmk_output_default_externs,
2640         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
2641         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
2642         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
2643         * config/alpha/alpha-protos.h: Update.
2644         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
2645         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
2646         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
2647         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
2648         (*mulsi_se, mulvsi3): Likewise.
2649         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
2650         (*divmodsi_internal, call, call_value, realign): Likewise.
2651         (moddi3, umoddi3): Likewise; remove duplicate expander.
2652         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
2653         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
2654         (*movdi_nofix): Remove r/U alternative.
2655         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
2656         * config/alpha/constraints.md ("U"): Remove.
2657         * config/alpha/predicates.md (call_operand"): Don't test
2658         TARGET_ABI_UNICOSMK.
2659
2660 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2661
2662         * target.def (handle_option): Take gcc_options and
2663         cl_decoded_option pointers and location_t.
2664         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
2665         * doc/tm.texi: Regenerate.
2666         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
2667         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
2668         * lto-opts.c (lto_reissue_options): Generate option structure for
2669         targetm.handle_option call.
2670         * opts.c (target_handle_option): Update call to
2671         targetm.handle_option.  Remove assertions about values now passed
2672         down to hook.
2673         * targhooks.c (default_target_handle_option): New.
2674         * targhooks.h (default_target_handle_option): Declare.
2675         * config/alpha/alpha.c: Include opts.h.
2676         (alpha_handle_option): Update to new hook interface.
2677         * config/arm/arm.c: Include opts.h.
2678         (arm_handle_option): Update to new hook interface.
2679         * config/arm/t-arm (arm.o): Update dependencies.
2680         * config/bfin/bfin.c: Include opts.h.
2681         (bfin_handle_option): Update to new hook interface.
2682         * config/cris/cris.c: Include opts.h.
2683         (cris_handle_option): Update to new hook interface.
2684         * config/frv/frv.c: Include opts.h.
2685         (frv_handle_option): Update to new hook interface.
2686         * config/i386/i386.c: Include opts.h.
2687         (ix86_handle_option): Update to new hook interface.
2688         (ix86_valid_target_attribute_inner_p): Generate option structure
2689         for call to ix86_handle_option.
2690         * config/i386/t-i386 (i386.o): Update dependencies.
2691         * config/ia64/ia64.c: Include opts.h.
2692         (ia64_handle_option): Update to new hook interface.
2693         * config/ia64/t-ia64 (ia64.o): Update dependencies.
2694         * config/iq2000/iq2000.c: Include opts.h.
2695         (iq2000_handle_option): Update to new hook interface.
2696         * config/m32c/m32c.c: Include opts.h.
2697         (m32c_handle_option): Update to new hook interface.
2698         * config/m32r/m32r.c: Include opts.h.
2699         (m32r_handle_option): Update to new hook interface.
2700         * config/m68k/m68k.c: Include opts.h.
2701         (m68k_handle_option): Update to new hook interface.
2702         * config/mep/mep.c: Include opts.h.
2703         (mep_handle_option): Update to new hook interface.
2704         * config/microblaze/microblaze.c: Include opts.h.
2705         (microblaze_handle_option): Update to new hook interface.
2706         * config/mips/mips.c: Include opts.h.
2707         (mips_handle_option): Update to new hook interface.
2708         * config/mn10300/mn10300.c: Include opts.h.
2709         (mn10300_handle_option): Update to new hook interface.
2710         * config/pa/pa.c: Include opts.h.
2711         (pa_handle_option): Update to new hook interface.
2712         * config/pdp11/pdp11.c: Include opts.h.
2713         (pdp11_handle_option): Update to new hook interface.
2714         * config/rs6000/rs6000.c: Include opts.h.
2715         (rs6000_handle_option): Update to new hook interface.
2716         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
2717         * config/rx/rx.c: Include opts.h.
2718         (rx_handle_option): Update to new hook interface.
2719         * config/s390/s390.c: Include opts.h.
2720         (s390_handle_option): Update to new hook interface.
2721         * config/score/score.c: Include opts.h.
2722         (score_handle_option): Update to new hook interface.
2723         * config/sh/sh.c: Include opts.h.
2724         (sh_handle_option): Update to new hook interface.
2725         * config/sparc/sparc.c: Include opts.h.
2726         (sparc_handle_option): Update to new hook interface.
2727         * config/v850/v850.c: Include opts.h.
2728         (v850_handle_option): Update to new hook interface.
2729
2730 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2731
2732         * gcc.c (driver_unknown_option_callback): Only permit and save
2733         unknown -Wno- options.
2734         (driver_wrong_lang_callback): Save options directly instead of via
2735         driver_unknown_option_callback.
2736
2737 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
2738
2739         * combine.c (simplify_set): Try harder to find the best CC mode when
2740         simplifying a nested COMPARE on the RHS.
2741
2742 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2743
2744         * config/alpha/gnu.h: Remove.
2745         * config/arc: Remove directory.
2746         * config/arm/netbsd.h: Remove.
2747         * config/arm/t-pe: Remove.
2748         * config/crx: Remove directory.
2749         * config/i386/netbsd.h: Remove.
2750         * config/m68hc11: Remove directory.
2751         * config/m68k/uclinux-oldabi.h: Remove.
2752         * config/mcore/mcore-pe.h: Remove.
2753         * config/mcore/t-mcore-pe: Remove.
2754         * config/netbsd-aout.h: Remove.
2755         * config/rs6000/gnu.h: Remove.
2756         * config/sh/sh-symbian.h: Remove.
2757         * config/sh/symbian-base.c: Remove.
2758         * config/sh/symbian-c.c: Remove.
2759         * config/sh/symbian-cxx.c: Remove.
2760         * config/sh/symbian-post.h: Remove.
2761         * config/sh/symbian-pre.h: Remove.
2762         * config/sh/t-symbian: Remove.
2763         * config/svr3.h: Remove.
2764         * config/vax/netbsd.h: Remove.
2765         * config.build: Don't handle i[34567]86-*-pe.
2766         * config.gcc: Remove handling of deprecations for most deprecated
2767         targets.
2768         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
2769         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
2770         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
2771         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
2772         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
2773         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
2774         Remove cases.
2775         * config.host: Don't handle i[34567]86-*-pe.
2776         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
2777         (ASM_SPEC32): Don't handle -mcall-gnu.
2778         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
2779         -mcall-gnu.
2780         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
2781         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
2782         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
2783         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
2784         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
2785         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
2786         conditional on SYMBIAN.
2787         * configure.ac: Don't handle powerpc*-*-gnu*.
2788         * configure: Regenerate.
2789         * doc/extend.texi (interrupt attribute): Don't mention CRX.
2790         * doc/install-old.texi (m6811, m6812): Don't mention.
2791         * doc/install.texi (arc-*-elf*): Don't document multilib option.
2792         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
2793         (m68k-uclinuxoldabi): Don't mention.
2794         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
2795         Remove.
2796         (-mcall-gnu): Remove.
2797         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
2798         families): Remove constraint documentation.
2799
2800 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
2801
2802         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
2803         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
2804         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
2805
2806 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
2807
2808         * config/avr/avr-protos.h (expand_epilogue): Change prototype
2809         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
2810         * config/avr/avr.c (init_cumulative_args)
2811         (avr_function_arg_advance): Use it.
2812         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
2813         sibcall epilogues.
2814         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
2815         (avr_function_ok_for_sibcall): ...this new function.
2816         (avr_lookup_function_attribute1): New static Function.
2817         (avr_naked_function_p, interrupt_function_p)
2818         (signal_function_p, avr_OS_task_function_p)
2819         (avr_OS_main_function_p): Use it.
2820         * config/avr/avr.md ("sibcall", "sibcall_value")
2821         ("sibcall_epilogue"): New expander.
2822         ("*call_insn", "*call_value_insn"): New insn.
2823         ("call_insn", "call_value_insn"): Remove
2824         ("call", "call_value", "epilogue"): Change expander to handle
2825         sibling calls.
2826
2827 2011-03-21  Nick Clifton  <nickc@redhat.com>
2828
2829         * doc/invoke.texi (Overall Options): Move closing brace to end of
2830         options list.
2831         (Optimization Options): Add missing @gol.
2832         (Directory Options): Likewise.
2833         (i386 and x86-64 Options): Likewise.
2834         (RS6000 and PowerPC Options): Likewise.
2835         (i386 and x86-64 Windows Options): Likewise.
2836         (V850 Options): Add text missing from descriptions.
2837
2838 2011-03-22  Richard Henderson  <rth@redhat.com>
2839
2840         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
2841         (avr_incoming_return_addr_rtx): New.
2842         (emit_push_byte): New.
2843         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
2844         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
2845         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
2846         (emit_pop_byte): New.
2847         (expand_epilogue): Use it.  Pop frame pointer by bytes.
2848         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
2849         (INCOMING_RETURN_ADDR_RTX): New.
2850         (INCOMING_FRAME_SP_OFFSET): New.
2851         (ARG_POINTER_CFA_OFFSET): New.
2852         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
2853         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
2854         (pophi): Remove.
2855
2856         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
2857
2858 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2859
2860         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
2861         (FUNCTION_ARG_ADVANCE): Likewise.
2862         * tm.texi.in: Change references to them to hook references.
2863         * tm.texi: Regenerate.
2864         * targhooks.c (default_function_arg): Eliminate check for target
2865         macro.
2866         (default_function_incoming_arg): Likewise.
2867         (default_function_arg_advance): Likewise.
2868         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
2869         (function_arg_advance): Likewise.
2870         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
2871
2872 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2873
2874         * tree.c (build_call_1): New function.
2875         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
2876
2877 2011-03-22  Richard Guenther  <rguenther@suse.de>
2878
2879         PR tree-optimization/48228
2880         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
2881         for single-arg PHIs.
2882
2883 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
2884
2885         PR rtl-optimization/48143
2886         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
2887         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
2888         sse2_cvtps2pd): Likewise.
2889
2890 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2891
2892         * recog.c (canonicalize_change_group): Use validate_unshare_change.
2893
2894 2011-03-22  Richard Guenther  <rguenther@suse.de>
2895
2896         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
2897         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
2898         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
2899         and REALIGN_LOAD_EXPR.
2900         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
2901         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
2902         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
2903         DOT_PROD_EXPR case ...
2904         (expand_expr_real_2): ... here.
2905         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
2906         and REALIGN_LOAD_EXPR.
2907         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
2908         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
2909         (vect_create_epilog_for_reduction): Likewise.
2910         (vectorizable_reduction): Likewise.
2911         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
2912         * tree-vect-stmts.c (vectorizable_load): Likewise.
2913
2914 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
2915
2916         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
2917
2918 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2919
2920         * config/s390/s390.c (s390_delegitimize_address): Fix offset
2921         handling for PLTOFF/GOTOFF.
2922
2923 2011-03-22  Nick Clifton  <nickc@redhat.com>
2924
2925         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
2926         trailing backslash from the end of the macro definition.
2927
2928 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2929
2930         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
2931         and PLT unspecs.
2932
2933 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
2934
2935         * expr.h (prepare_operand): Move to...
2936         * optabs.h (prepare_operand): ...here and change the insn code
2937         parameter from "int" to "enum insn_code".
2938         (insn_operand_matches): Declare.
2939         * expr.c (init_expr_target): Use insn_operand_matches.
2940         (compress_float_constant): Likewise.
2941         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
2942         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
2943         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
2944         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
2945         Likewise.
2946         (gen_cond_trap): Likewise.
2947         (prepare_operand): Likewise.  Change icode to an insn_code.
2948         (insn_operand_matches): New function.
2949         * reload.c (find_reloads_address_1): Use insn_operand_matches.
2950         * reload1.c (gen_reload): Likewise.
2951         * targhooks.c (default_secondary_reload): Likewise.
2952
2953 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
2954
2955         * config/alpha/alpha.md (unspec): New define_c_enum.
2956         (unspecv): Ditto.
2957
2958 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
2959
2960         PR debug/48214
2961         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
2962         between a call and its CALL_ARG_LOCATION note.
2963
2964 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
2965
2966         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
2967
2968 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
2969
2970         PR c/42544
2971         PR c/48197
2972         * c-common.c (shorten_compare): If primopN is first sign-extended
2973         to opN and then zero-extended to result type, set primopN to opN.
2974
2975 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
2976
2977         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
2978         for barrier handlers.
2979
2980 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2981
2982         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
2983         UNSPEC constants to be in the unspec enumeration, and redefine
2984         all UNSPECV constants to be in the unspecv enumeration, so that
2985         dumps print which unspec/unspec_volatile this is.
2986         * config/rs6000/vector.md (UNSPEC_*): Ditto.
2987         * config/rs6000/paired.md (UNSPEC_*): Ditto.
2988         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
2989         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
2990         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
2991
2992         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
2993         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
2994         UNSPECV_LWSYNC, since these are used as unspec_volatile.
2995         * config/rs6000/sync.md (isync, lwsync): Ditto.
2996
2997 2011-03-21  Richard Guenther  <rguenther@suse.de>
2998
2999         * params.def (lto-min-partition): Fix typo.
3000
3001 2011-03-21  Richard Guenther  <rguenther@suse.de>
3002
3003         PR c/47939
3004         * c-decl.c (grokdeclarator): Drop to the main variant only
3005         for array types.  Drop flag_gen_aux_info check.
3006
3007 2011-03-21  Richard Guenther  <rguenther@suse.de>
3008
3009         PR translation/47911
3010         * params.def (lto-partitions): Fix typo.
3011         (lto-min-partition): Fix wording.
3012
3013 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
3014
3015         * config/rs6000/t-freebsd: Remove duplication from file.
3016
3017 2011-03-21  Richard Guenther  <rguenther@suse.de>
3018
3019         PR middle-end/47661
3020         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
3021
3022 2011-03-21  Richard Guenther  <rguenther@suse.de>
3023
3024         PR lto/48210
3025         * params.def (lto-partitions): Require at least 1 partition.
3026
3027 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3028
3029         * gthr-solaris.h: Remove.
3030         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
3031         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
3032         (LIB_SPEC): Likewise.
3033         * config/sol2.opt (threads): Remove.
3034         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
3035         (sparc*-*-solaris2*): Likewise.
3036         * configure.ac (enable_threads): Enable solaris support.
3037         * configure: Regenerate.
3038         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
3039         * doc/install.texi (Configuration, --enable-threads=lib): Remove
3040         solaris.
3041
3042 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3043
3044         * config.gcc: Obsolete *-*-solaris2.8*.
3045         * doc/install.texi (Specific, *-*-solaris2*): Document it.
3046
3047 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3048
3049         PR bootstrap/48135
3050         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
3051         reference.  Solaris 8 perl works.
3052
3053 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3054
3055         PR bootstrap/48135
3056         * doc/install.texi (Prerequisites): Move jar etc. up.
3057         Explain support library version requirements.
3058
3059 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3060
3061         PR bootstrap/48135
3062         * doc/install.texi (Prerequisites): Move Perl to build
3063         requirements.  Always necessary on Solaris 2 with Sun ld.
3064
3065 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3066
3067         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
3068         binutils 2.21.
3069         (Specific, i?86-*-solaris2.[89]): Likewise.
3070         (Specific, i?86-*-solaris2.10): Likewise.
3071         (Specific, mips-sgi-irix6): Likewise.
3072         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
3073         Update for binutils 2.21.
3074
3075 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3076
3077         * configure.ac (gcc_cv_lto_plugin): Fix typo.
3078         Allow -fuse-linker-plugin for non-default plugin linker.
3079         * configure: Regenerate.
3080
3081 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3082
3083         PR bootstrap/48167
3084         * gengtype.c (files_rules): Added rule for cp/parser.h.
3085
3086 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
3087
3088         PR target/48213
3089         * config/s390/s390.c (s390_delegitimize_address): Don't call
3090         lowpart_subreg if orig_x has BLKmode.
3091
3092 2011-03-21  Kai Tietz  <ktietz@redhat.com>
3093
3094         PR target/12171
3095         * doc/plugins.texi: Adjust documentation for plugin register_callback.
3096         * tree.h (attribute_spec): Add new member affects_type_identity.
3097         * attribs.c (empty_attribute_table): Adjust attribute_spec
3098         initializers.
3099         * config/alpha/alpha.c: Likewise.
3100         * config/arc/arc.c: Likewise.
3101         * config/arm/arm.c: Likewise.
3102         * config/avr/avr.c: Likewise.
3103         * config/bfin/bfin.c: Likewise.
3104         * config/crx/crx.c: Likewise.
3105         * config/darwin.h: Likewise.
3106         * config/h8300/h8300.c: Likewise.
3107         * config/i386/cygming.h: Likewise.
3108         * config/i386/i386.c: Likewise.
3109         * config/ia64/ia64.c: Likewise.
3110         * config/m32c/m32c.c: Likewise.
3111         * config/m32r/m32r.c: Likewise.
3112         * config/m68hc11/m68hc11.c: Likewise.
3113         * config/m68k/m68k.c: Likewise.
3114         * config/mcore/mcore.c: Likewise.
3115         * config/mep/mep.c: Likewise.
3116         * config/microblaze/microblaze.c: Likewise.
3117         * config/mips/mips.c: Likewise.
3118         * config/rs6000/rs6000.c: Likewise.
3119         * config/rx/rx.c: Likewise.
3120         * config/sh/sh.c: Likewise.
3121         * config/sol2.h: Likewise.
3122         * config/sparc/sparc.c: Likewise.
3123         * config/spu/spu.c: Likewise.
3124         * config/stormy16/stormy16.c: Likewise.
3125         * config/v850/v850.c: Likewise.
3126
3127 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
3128
3129         * simplify-rtx.c (simplify_binary_operation_1): Handle
3130         (xor (and A B) C) case when B and C are both constants.
3131
3132 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
3133
3134         * tree-dfa.c (add_referenced_var): Fix typo in comment.
3135
3136 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
3137
3138         PR bootstrap/48168
3139         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
3140
3141 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR rtl-optimization/48156
3144         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
3145         assume df and df_lr are not NULL.
3146
3147 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3148
3149         PR debug/48023
3150         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
3151         between a call and its CALL_ARG_LOCATION note.
3152
3153 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3154
3155         PR debug/48178
3156         * config/sh/sh.c (find_barrier): Don't emit a constant pool
3157         between a call and its corresponding CALL_ARG_LOCATION note.
3158
3159 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
3160
3161         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
3162         instead of loop. Use HARD_REGISTER_NUM_P predicate.
3163         * haifa-sched.c (setup_ref_regs): Ditto.
3164         * caller-save.c (add_used_regs_1): Ditto.
3165         * dse.c (look_for_hardregs): Ditto.
3166         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
3167         * sched-rgn.c (check_live_1): Ditto.
3168
3169 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
3170
3171         * c-decl.c (diagnose_mismatched_decls): Give an error for
3172         redefining a typedef with variably modified type.
3173
3174 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
3175
3176         * c-decl.c (grokfield): Don't allow typedefs for structures or
3177         unions with no tag by default.
3178         * doc/extend.texi (Unnamed Fields): Update.
3179
3180 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
3181
3182         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3183         Rewrite using indirect functions.
3184         (lwp_slwpcb): Ditto.
3185         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
3186         (avx_vinsertf128<mode>): Ditto.
3187
3188 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3189
3190         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
3191         unspecs.
3192
3193 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3194
3195         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
3196         splitting between a call and its corresponding CALL_ARG_LOCATION note.
3197
3198 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3199
3200         PR rtl-optimization/48170
3201         * gcse.c (hoist_code): Remove bogus asserts.
3202
3203 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
3204
3205         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
3206         computation for prologue/epilogue.
3207
3208 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3209
3210         * Makefile.in (check-consistency): Remove.
3211
3212 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
3213
3214         PR debug/48176
3215         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
3216         arange_table_in_use is 0, but either text_section_used or
3217         cold_text_section_used is true.  Don't call it if
3218         !info_section_emitted.
3219
3220 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
3221
3222         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
3223         FUNCTION_VALUE_REGNO_P): Remove.
3224         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
3225         Remove.
3226         * config/avr/avr.c (avr_ret_register): Make static inline.
3227         (avr_function_value_regno_p): New function.
3228         (avr_libcall_value): Make static. Add 'func' argument.
3229         (avr_function_value): Make static. Rename 'func' argument to
3230         'fn_decl_or_type', forward it to avr_libcall_value. Call
3231         avr_ret_register function instead of RET_REGISTER macro.
3232         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
3233
3234 2011-03-18  Jason Merrill  <jason@redhat.com>
3235
3236         PR c++/23372
3237         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
3238
3239 2011-03-18  Richard Guenther  <rguenther@suse.de>
3240
3241         * doc/install.texi (--enable-gold): Remove.
3242         (--with-plugin-ld): Document.
3243         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
3244
3245 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
3246
3247         PR middle-end/47790
3248         * expr.c (optimize_bitfield_assignment_op): Revamp to work
3249         again after expansion changes.
3250
3251 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
3252
3253         * combine.c (try_combine): Do simplification only call of
3254         subst() on i2 even when i1 is present. Update comments.
3255
3256 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3257
3258         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
3259         and UNSPEC_PCREL_SYMOFF.
3260
3261 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3262
3263         * config/s390/s390.md: Use define_c_enum for the unspec constant
3264         definitions.
3265
3266 2011-03-18  Richard Henderson  <rth@redhat.com>
3267             Jakub Jelinek  <jakub@redhat.com>
3268
3269         PR bootstrap/48161
3270         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
3271         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
3272
3273 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3274
3275         PR middle-end/47725
3276         * combine.c (cant_combine_insn_p): Don't check zero/sign
3277         extended hard registers.
3278
3279 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3280
3281         PR middle-end/47725
3282         * combine.c (cant_combine_insn_p): Check zero/sign extended
3283         hard registers.
3284
3285 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
3286
3287         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3288         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
3289         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
3290         Change return type to bool.
3291         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3292
3293 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3294
3295         PR debug/48163
3296         * var-tracking.c (prepare_call_arguments): If CALL target
3297         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
3298         pc instead of looking it up using cselib_lookup and use
3299         Pmode for it if x has VOIDmode.
3300         * dwarf2out.c (gen_subprogram_die): If also both first and
3301         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
3302
3303         PR debug/48163
3304         * function.c (assign_parms): For data.passed_pointer parms
3305         use MEM of data.entry_parm instead of data.entry_parm itself
3306         as DECL_INCOMING_RTL.
3307         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
3308         also when passed and declared mode is the same, DECL_RTL
3309         is a MEM with pseudo as address and DECL_INCOMING_RTL is
3310         a MEM too.
3311
3312 2011-03-16  Jeff Law  <law@redhat.com>
3313
3314         PR rtl-optimization/37273
3315         * ira-costs.c (scan_one_insn): Detect constants living in memory and
3316         handle them like argument loads from stack slots.  Do not double
3317         count memory for memory constants and argument loads from stack slots.
3318
3319 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3320
3321         PR debug/48160
3322         * var-tracking.c (prepare_call_arguments): Check SUBREG.
3323
3324 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3325
3326         PR target/48171
3327         * config/i386/i386.opt: Add Save to -mavx and -mfma.
3328
3329 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3330
3331         PR bootstrap/48153
3332         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
3333         if dwarf_strict.
3334         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
3335         Clear call_arg_locations and call_arg_loc_last always.
3336
3337         PR middle-end/48152
3338         * var-tracking.c (prepare_call_arguments): If argument needs to be
3339         passed by reference, adjust argtype and mode.
3340
3341 2011-03-17  Richard Guenther  <rguenther@suse.de>
3342
3343         PR middle-end/48134
3344         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
3345         a value make sure to fold the statement.
3346
3347 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
3348
3349         PR target/43872
3350         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
3351         return condition with !cfun->calls_alloca.
3352
3353 2011-03-17  Richard Guenther  <rguenther@suse.de>
3354
3355         PR bootstrap/48148
3356         * lto-cgraph.c (input_overwrite_node): Clear the abstract
3357         origin for decls in other ltrans units.
3358         (input_varpool_node): Likewise.
3359
3360 2011-03-17  Richard Guenther  <rguenther@suse.de>
3361
3362         PR middle-end/48165
3363         * tree-object-size.c (compute_object_offset): Properly return
3364         the offset operand of MEM_REFs as sizetype.
3365
3366 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR rtl-optimization/48141
3369         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
3370         * dse.c: Include params.h.
3371         (active_local_stores_len): New variable.
3372         (add_wild_read, dse_step1): Clear it when setting active_local_stores
3373         to NULL.
3374         (record_store, check_mem_read_rtx): Decrease it when removing
3375         from the chain.
3376         (scan_insn): Likewise.  Increase it when adding to chain, if it
3377         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
3378         set active_local_stores to NULL before the addition.
3379         * Makefile.in (dse.o): Depend on $(PARAMS_H).
3380
3381         PR rtl-optimization/48141
3382         * dse.c (record_store): If no positions are needed in an insn
3383         that cannot be deleted, at least unchain it from active_local_stores.
3384
3385 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
3386
3387         PR debug/47510
3388         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
3389         (lookup_type_die_strip_naming_typedef): ... here.
3390         (get_context_die): Use it.
3391         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
3392         the anonymous struct named by the naming typedef.
3393
3394 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3395
3396         PR target/48154
3397         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
3398         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
3399
3400 2011-03-16  Jeff Law  <law@redhat.com>
3401
3402         * tree-vrp.c (identify_jump_threads): Slightly simplify type
3403         check for operands of conditional.  Allow type to be a pointer.
3404
3405 2011-03-16  Richard Guenther  <rguenther@suse.de>
3406
3407         PR tree-optimization/48149
3408         * fold-const.c (fold_binary_loc): Fold
3409         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
3410
3411 2011-03-16  Richard Guenther  <rguenther@suse.de>
3412
3413         PR tree-optimization/26134
3414         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
3415         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
3416         (non_rewritable_mem_ref_base): Handle complex type component
3417         accesses, constrain offsets for vector and complex extracts
3418         more properly.
3419
3420 2011-03-16  Richard Guenther  <rguenther@suse.de>
3421
3422         PR tree-optimization/48146
3423         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
3424         operands avoiding the need for renaming.
3425
3426 2011-03-16  Richard Guenther  <rguenther@suse.de>
3427
3428         * gimple-fold.c (maybe_fold_reference): Open-code relevant
3429         constant folding.  Move MEM_REF canonicalization first.
3430         Rely on fold_const_aggregate_ref for initializer folding.
3431         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
3432
3433 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
3434
3435         PR middle-end/48136
3436         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3437         arg0/arg1 or their arguments are always fold converted to matching
3438         types.
3439
3440         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
3441         to nargs.
3442
3443 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3444
3445         PR lto/46944
3446         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
3447         Handle in-tree gold.
3448         (ld_vers): Extract binutils version for gold.
3449         (gcc_cv_ld_hidden): Handle gold here.
3450         (gcc_cv_lto_plugin): Determine level of linker plugin support.
3451         * configure: Regenerate.
3452         * config.in: Regenerate.
3453         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
3454         -fuse-linker-plugin otherwise.
3455         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
3456         (LINK_COMMAND_SPEC): Use it.
3457         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
3458
3459 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
3460
3461         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
3462         * calls.c: Remove debug.h include.
3463         (emit_call_1): Don't call virtual_call_token debug hook.
3464         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
3465         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
3466         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
3467         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
3468         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
3469         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
3470         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
3471         dwarf2out_virtual_call): Remove.
3472         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
3473         copy_call_info and virtual_call hooks.
3474         (dwarf2out_init): Don't initialize vcall_insn_table,
3475         debug_dcall_section and debug_vcall_section.
3476         (prune_unused_types): Don't mark nodes from dcall_table.
3477         (dwarf2out_finish): Don't output dcall or vcall tables.
3478         * final.c (final_scan_insn): Don't call direct_call or
3479         virtual_call debug hooks.
3480         * debug.h (struct gcc_debug_hooks): Remove direct_call,
3481         virtual_call_token, copy_call_info and virtual_call hooks.
3482         (debug_nothing_uid): Remove prototype.
3483         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
3484         copy_call_info and virtual_call hooks.
3485         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3486         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
3487         * debug.c (do_nothing_debug_hooks): Likewise.
3488         (debug_nothing_uid): Remove.
3489         * doc/invoke.texi (-fenable-icf-debug): Remove.
3490         * common.opt (-fenable-icf-debug): Likewise.
3491
3492         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
3493         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
3494         call's MEM.  Handle functions returning aggregate through a hidden
3495         first pointer.  For virtual calls add clobbered pc to call arguments
3496         chain.
3497         * dwarf2out.c (gen_subprogram_die): Emit
3498         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
3499         can't be emitted.
3500
3501         PR debug/45882
3502         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
3503         * rtl.h (ENTRY_VALUE_EXP): Define.
3504         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
3505         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
3506         * print-rtl.c (print_rtx): Likewise.
3507         * gengtype.c (adjust_field_rtx_def): Likewise.
3508         * var-tracking.c (vt_add_function_parameter): Adjust
3509         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
3510         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
3511         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
3512         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
3513         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
3514
3515         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
3516         Call var_location debug hook even on CALL_INSNs.
3517         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
3518         * rtl.def (ENTRY_VALUE): New.
3519         * dwarf2out.c: Include cfglayout.h.
3520         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3521         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
3522         (struct call_arg_loc_node): New type.
3523         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
3524         tail_call_site_count): New variables.
3525         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
3526         DW_TAG_GNU_call_site_parameter.
3527         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
3528         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
3529         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
3530         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
3531         and DW_AT_GNU_all_source_call_sites.
3532         (mem_loc_descriptor): Handle ENTRY_VALUE.
3533         (add_src_coords_attributes): Don't add enything if
3534         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
3535         (dwarf2out_abstract_function): Save and clear call_arg_location,
3536         call_site_count and tail_call_site_count around dwarf2out_decl call.
3537         (gen_call_site_die): New function.
3538         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
3539         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
3540         (dwarf2out_function_decl): Clear call_arg_locations,
3541         call_arg_loc_last, set call_site_count and tail_call_site_count
3542         to -1 and free block_map.
3543         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
3544         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
3545         followed by any real instructions.
3546         (dwarf2out_begin_function): Set call_site_count and
3547         tail_call_site_count to 0.
3548         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
3549         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
3550         attempt to force a DIE for it and worst case remove the attribute.
3551         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
3552         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
3553         the decl itself.
3554         * var-tracking.c: Include tm_p.h.
3555         (vt_stack_adjustments): For calls call note_register_arguments.
3556         (argument_reg_set): New variable.
3557         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
3558         ensure the VALUE is resolved.
3559         (call_arguments): New variable.
3560         (prepare_call_arguments): New function.
3561         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
3562         (struct expand_loc_callback_data): Add ignore_cur_loc field.
3563         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
3564         always use the best expression.
3565         (vt_expand_loc): Add ignore_cur_loc argument.
3566         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
3567         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
3568         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
3569         note for all calls.
3570         (vt_add_function_parameter): Use cselib_lookup_from_insn.
3571         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
3572         argument.  Don't call cselib_preserve_only_values and
3573         cselib_reset_table.
3574         (note_register_arguments): New function.
3575         (vt_initialize): Compute argument_reg_set.  Call
3576         vt_add_function_parameters before processing basic blocks instead of
3577         afterwards.  For calls call prepare_call_arguments before calling
3578         cselib_process_insn.
3579         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
3580         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
3581         (var-tracking.o): Depend on $(TM_P_H).
3582         * cfglayout.h (insn_scope): New prototype.
3583         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
3584         * cfglayout.c (insn_scope): No longer static.
3585         * insn-notes.def (CALL_ARG_LOCATION): New.
3586         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
3587         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
3588         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
3589         nothing for DECL_EXTERNAL BLOCK_VARS.
3590
3591 2011-03-16  Alan Modra  <amodra@gmail.com>
3592
3593         PR target/45844
3594         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
3595         create invalid offset address for vsx splat insn.
3596         * config/rs6000/predicates.md (splat_input_operand): New.
3597         * config/rs6000/vsx.md (vsx_splat_*): Use it.
3598
3599 2011-03-15  Xinliang David Li  <davidxl@google.com>
3600
3601         PR c/47837
3602         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
3603         (normalize_preds): New function.
3604         (is_use_properly_guarded): Normalize def predicates.
3605
3606 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3607
3608         PR target/46788
3609         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
3610         in the output template.
3611
3612 2011-03-15  Richard Guenther  <rguenther@suse.de>
3613
3614         PR middle-end/47650
3615         * tree-pretty-print.c (dump_function_declaration): Properly
3616         dump unprototyped and varargs function types.
3617
3618 2011-03-15  Richard Guenther  <rguenther@suse.de>
3619
3620         PR tree-optimization/13954
3621         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
3622         and friends.
3623
3624 2011-03-15  Richard Guenther  <rguenther@suse.de>
3625
3626         PR tree-optimization/48037
3627         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
3628         selects into BIT_FIELD_REFs.
3629         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
3630         vector select.
3631
3632 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
3633
3634         PR tree-optimization/48129
3635         * builtins.c (fold_builtin_snprintf): Convert to type of
3636         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
3637         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
3638
3639 2011-03-15  Richard Guenther  <rguenther@suse.de>
3640
3641         PR tree-optimization/41490
3642         * tree-ssa-dce.c (propagate_necessity): Handle returns without
3643         value but with VUSE.
3644         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
3645         return statements.
3646         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
3647         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
3648         * tree-tailcall.c (find_tail_calls): Ignore returns.
3649
3650 2011-03-15  Richard Guenther  <rguenther@suse.de>
3651
3652         PR middle-end/48031
3653         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
3654         or variable-indexed array accesses when in gimple form.
3655
3656 2011-03-15  Richard Guenther  <rguenther@suse.de>
3657
3658         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
3659
3660 2011-03-15  Alan Modra  <amodra@gmail.com>
3661
3662         PR target/48032
3663         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
3664         presume symbol_refs without a symbol_ref_decl are suitably
3665         aligned, nor other trees we may see here.  Handle anchor symbols.
3666         (legitimate_constant_pool_address_p): Comment.  Add mode param.
3667         Check cmodel=medium addresses.  Adjust all calls.
3668         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
3669         creating cmodel=medium optimized access to locals.
3670         * config/rs6000/constraints.md (R): Pass QImode to
3671         legitimate_constant_pool_address_p.
3672         * config/rs6000/predicates.md (input_operand): Pass mode to
3673         legitimate_constant_pool_address_p.
3674         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
3675         Update prototype.
3676
3677 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
3678
3679         PR target/48053
3680         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
3681         64-bit constants being loaded into registers other than GPRs such
3682         as loading 0 into a VSX register.
3683
3684 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3685
3686         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
3687
3688 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3689
3690         PR middle-end/47917
3691         * builtins.c (fold_builtin_snprintf): New function.
3692         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
3693         (fold_builtin_4): Likewise.
3694
3695         PR middle-end/38878
3696         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
3697         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
3698         and C - X == X also strip nops from +/-/p+ operand.
3699         When optimizing -X == C, fold C to arg0's type.
3700
3701         PR debug/47946
3702         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
3703         emit it as add_AT_int instead of add_AT_unsigned.
3704
3705 2011-03-14  Tom Tromey  <tromey@redhat.com>
3706
3707         * unwind-dw2.c: Include sys/sdt.h if it exists.
3708         (_Unwind_DebugHook): Use STAP_PROBE2.
3709         * config.in, configure: Rebuild.
3710         * configure.ac: Check for sys/sdt.h.
3711
3712 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
3713
3714         * config/i386/i386.md (ROUND_FLOOR): New constant.
3715         (ROUND_CEIL): Ditto.
3716         (ROUND_TRUNC): Ditto.
3717         (ROUND_MXCSR): Ditto.
3718         (ROUND_NO_EXC): Ditto.
3719         (rint<mode>2): Use new defines instead of numerical constants.
3720         (floor<mode>2): Ditto.
3721         (ceil<mode>2): Ditto.
3722         (btrunc<mode>2): Ditto.
3723         * config/i386/i386-builtin-types.def: Define ROUND function type
3724         aliases.
3725         * config/i386/i386.c (enum ix86_builtins): Add
3726         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
3727         (struct builtin_description): Add
3728         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
3729         (ix86_expand_sse_round): New static function.
3730         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
3731         function types.
3732         (ix86_builtin_vectorized_function): Handle
3733         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
3734
3735 2011-03-14  Tom Tromey  <tromey@redhat.com>
3736
3737         * c-parser.c (c_parser_asm_string_literal): Clear
3738         warn_overlength_strings.
3739
3740 2011-03-14  Tom Tromey  <tromey@redhat.com>
3741
3742         * c-parser.c (disable_extension_diagnostics): Save
3743         warn_overlength_strings.
3744         (restore_extension_diagnostics): Restore warn_overlength_strings.
3745
3746 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3747
3748         * BASE-VER: Change to 4.7.0.
3749
3750 2011-03-14  Richard Guenther  <rguenther@suse.de>
3751
3752         PR middle-end/48098
3753         * tree.c (build_vector_from_val): Adjust assert to requirements
3754         and reality.
3755
3756 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3757
3758         PR bootstrap/48102
3759         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
3760
3761 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
3762
3763         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
3764         terms of target_flags_explicit. Adjust copyright year.
3765
3766         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
3767         * config/rs6000/t-freebsd: New file. Add override for
3768         LIB2FUNCS_EXTRA.
3769
3770 2011-03-13  Chris Demetriou  <cgd@google.com>
3771
3772         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
3773         (-fno-diagnostics-show-option): this, to reflect current default.
3774         (-Werror=): Update text about -fno-diagnostics-show-option.
3775
3776 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
3777
3778         PR target/48053
3779         * config/rs6000/predicates.md (easy_vector_constant_add_self,
3780         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
3781         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
3782         mode is not V2DImode or V2DFmode.
3783         (vspltis_constant): Do not handle V2DImode and V2DFmode.
3784         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
3785         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
3786         registers to 0.
3787         (movdi_internal64): Likewise.
3788
3789 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
3790
3791         PR tree-optimization/47127
3792         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
3793         parameter.
3794         (set_cloog_options): Same.
3795         (scop_to_clast): Same.
3796         (print_clast_stmt): Do not call cloog_state_malloc and
3797         cloog_state_free.
3798         (print_generated_program): Same.
3799         (gloog): Same.
3800         * graphite-clast-to-gimple.h (cloog_state): Declared.
3801         (scop_to_clast): Adjust declaration.
3802         * graphite.c (cloog_state): Defined here.
3803         (graphite_initialize): Call cloog_state_malloc.
3804         (graphite_finalize): Call cloog_state_free.
3805
3806 2011-03-11  Jason Merrill  <jason@redhat.com>
3807
3808         * attribs.c (lookup_attribute_spec): Take const_tree.
3809         * tree.h: Adjust.
3810
3811 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
3812
3813         * config/sparc/sparc.c (sparc_option_override): Use
3814         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
3815
3816 2011-03-11  Richard Guenther  <rguenther@suse.de>
3817
3818         PR tree-optimization/48067
3819         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
3820         multiplication result will be only used once on the target
3821         stmt.
3822
3823 2011-03-11  Richard Guenther  <rguenther@suse.de>
3824
3825         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
3826
3827 2011-03-11  Richard Guenther  <rguenther@suse.de>
3828
3829         PR lto/48073
3830         * tree.c (find_decls_types_r): Do not walk types only reachable
3831         from IDENTIFIER_NODEs.
3832
3833 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
3834
3835         PR middle-end/48044
3836         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
3837         all vnode->force_output nodes as needed.
3838
3839 2011-03-11  Jason Merrill  <jason@redhat.com>
3840
3841         PR c++/48069
3842         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
3843         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
3844
3845 2011-03-11  Martin Jambor  <mjambor@suse.cz>
3846
3847         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
3848         cgraph_node.
3849
3850 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
3851
3852         PR tree-optimization/48063
3853         * ipa-inline.c (cgraph_decide_inlining): Don't try to
3854         inline functions called once if !tree_can_inline_p (node->callers).
3855
3856 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
3857
3858         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
3859         extra_objs.
3860         * config/score/score3.c: Delete.
3861         * config/score/score3.h: Delete.
3862         * config/score/mul-div.S: Delete.
3863         * config/score/sfp-machine.h: Add new file.
3864         * config/score/constraints.md: Add new file.
3865         * config/score/t-score-softfp: Add new file.
3866         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
3867         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
3868         (score7_extra_constraint): Delete.
3869         (score7_option_override): Remove unused code.
3870         * config/score/score.c: Remove score3 and score5 define and code.
3871         * config/score/score.h: Remove score3 and score5 define and code.
3872         * config/score/score.md: Remove score3 template and unusual insn.
3873         * config/score/score.opt: Remove score3 and score5 options.
3874
3875 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3876
3877         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
3878         when _HPUX_SOURCE is defined.
3879         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
3880
3881 2011-03-10  Jason Merrill  <jason@redhat.com>
3882
3883         PR c++/48029
3884         * stor-layout.c (layout_type): Don't set structural equality
3885         on arrays of incomplete type.
3886         * tree.c (type_hash_eq): Handle comparing them properly.
3887
3888 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
3889
3890         PR debug/48043
3891         * config/s390/s390.c (s390_delegitimize_address): Make sure the
3892         result mode matches original rtl mode.
3893
3894 2011-03-10  Nick Clifton  <nickc@redhat.com>
3895
3896         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
3897         (andsi3, andsi3_flags): Fix timings for three operand alternative.
3898
3899 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
3900
3901         PR rtl-optimization/47866
3902         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
3903         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
3904         if target wasn't scalar.
3905         * function.c (assign_stack_temp_for_type): Assert that neither
3906         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
3907         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
3908         macro.
3909         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
3910
3911 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3912
3913         * config/s390/s390-protos.h (s390_label_align): New prototype.
3914         * config/s390/s390.c (s390_label_align): New function.
3915         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
3916
3917 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3918
3919         PR target/47755
3920         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
3921         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
3922         (output_vec_const_move): Ditto.
3923
3924 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
3925
3926         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
3927         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
3928         * config/mips/mips.c (mips_preferred_reload_class): Make static.
3929         Change 'rclass' argument and result type to reg_class_t.
3930         (TARGET_PREFERRED_RELOAD_CLASS): Define.
3931
3932 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
3933
3934         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3935         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
3936         (TARGET_MEMORY_MOVE_COST): Define.
3937         (avr_register_move_cost, avr_memory_move_cost): New Functions.
3938
3939 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
3940
3941         PR debug/47881
3942         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
3943         removed anything.
3944
3945         PR tree-optimization/48022
3946         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
3947         for EQ/NE_EXPR.
3948
3949 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
3950
3951         PR debug/47991
3952         * var-tracking.c (find_use_val): Return NULL for
3953         cui->sets && cui->store_p BLKmode MEMs.
3954
3955 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
3956
3957         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
3958         Remove.
3959         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
3960         xstormy16_print_operand_address): Remove.
3961      &nbs