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