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