OSDN Git Service

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