OSDN Git Service

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