re PR target/44942 (Bug in argument passing of long double)
[gcc.git] / gcc / ChangeLog
1 2010-07-16 Jakub Jelinek <jakub@redhat.com>
2
3 PR target/44942
4 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
5 argument to const_tree.
6 * config/i386/i386.c (function_arg_advance): If padding needs to be
7 inserted before argument, increment cum->words by number of padding
8 words as well.
9 (contains_aligned_value_p): Change argument to const_tree.
10 (ix86_function_arg_boundary): Change second argument to const_tree.
11
12 2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
13
14 PR target/42235
15 * function.c (record_hard_reg_sets): New static function.
16 (assign_parm_setup_reg): If an optab for extending exists and the
17 generated code clobbbers no hard regs, emit the insn directly and
18 create a REG_EQUIV note.
19
20 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
21
22 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
23 TREE_CHAIN.
24 * c-typeck.c (push_init_level): Likewise.
25 (process_init_element): Likewise.
26
27 2010-07-15 Anatoly Sokolov <aesok@post.ru>
28
29 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
30 (integer_three_node): Add.
31 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
32 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
33 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
34 of call build_int_cst.
35 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
36 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
37 (find_interesting_uses_address): Ditto.
38 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
39 * tree-eh.c (lower_eh_constructs_2): Ditto.
40 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
41 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
42 * expmed.c (expand_divmod): Ditto.
43 * tree-mudflap.c (mx_register_decls): Ditto.
44 * varasm.c (array_size_for_constructor): Ditto.
45 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
46 * c-parser.c (c_parser_postfix_expression): Ditto.
47
48 2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
49
50 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
51 New static variables.
52 (reload_combine_recognize_pattern): New static function, broken out
53 of reload_combine.
54 (reload_combine): Use it. Only initialize first_index_reg and
55 last_index_reg once.
56
57 2010-07-15 Richard Henderson <rth@redhat.com>
58
59 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
60 when done.
61
62 2010-07-15 Jan Hubicka <jh@suse.cz>
63
64 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling comdats
65 for broken gold.
66 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
67
68 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
69
70 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
71
72 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
73
74 * tree.h (DECL_CHAIN): Define.
75 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
76 * c-decl.c: Likewise.
77 * c-parser.c: Likewise.
78 * c-typeck.c: Likewise.
79 * cfgexpand.c: Likewise.
80 * cgraph.c: Likewise.
81 * cgraphunit.c: Likewise.
82 * combine.c: Likewise.
83 * config/alpha/alpha.c: Likewise.
84 * config/arm/arm.c: Likewise.
85 * config/frv/frv.c: Likewise.
86 * config/i386/i386.c: Likewise.
87 * config/i386/winnt-cxx.c: Likewise.
88 * config/ia64/ia64.c: Likewise.
89 * config/iq2000/iq2000.c: Likewise.
90 * config/mep/mep.c: Likewise.
91 * config/mips/mips.c: Likewise.
92 * config/pa/som.h: Likewise.
93 * config/rs6000/rs6000.c: Likewise.
94 * config/s390/s390.c: Likewise.
95 * config/sh/sh.c: Likewise.
96 * config/sh/symbian-cxx.c: Likewise.
97 * config/sparc/sparc.c: Likewise.
98 * config/spu/spu.c: Likewise.
99 * config/stormy16/stormy16.c: Likewise.
100 * config/vxworks.c: Likewise.
101 * config/xtensa/xtensa.c: Likewise.
102 * coverage.c: Likewise.
103 * dbxout.c: Likewise.
104 * dwarf2out.c: Likewise.
105 * emit-rtl.c: Likewise.
106 * expr.c: Likewise.
107 * function.c: Likewise.
108 * gimple-low.c: Likewise.
109 * gimple-pretty-print.c: Likewise.
110 * gimplify.c: Likewise.
111 * integrate.c: Likewise.
112 * ipa-inline.c: Likewise.
113 * ipa-prop.c: Likewise.
114 * ipa-split.c: Likewise.
115 * ipa-struct-reorg.c: Likewise.
116 * ipa-type-escape.c: Likewise.
117 * langhooks.c: Likewise.
118 * lto-cgraph.c: Likewise.
119 * omp-low.c: Likewise.
120 * stor-layout.c: Likewise.
121 * tree-cfg.c: Likewise.
122 * tree-complex.c: Likewise.
123 * tree-dfa.c: Likewise.
124 * tree-dump.c: Likewise.
125 * tree-inline.c: Likewise.
126 * tree-mudflap.c: Likewise.
127 * tree-nested.c: Likewise.
128 * tree-object-size.c: Likewise.
129 * tree-pretty-print.c: Likewise.
130 * tree-sra.c: Likewise.
131 * tree-ssa-live.c: Likewise.
132 * tree-ssa-loop-niter.c: Likewise.
133 * tree-ssa-math-opts.c: Likewise.
134 * tree-ssa-reassoc.c: Likewise.
135 * tree-ssa-sccvn.c: Likewise.
136 * tree-ssa-structalias.c: Likewise.
137 * tree-tailcall.c: Likewise.
138 * tree-vrp.c: Likewise.
139 * tree.c: Likewise.
140 * var-tracking.c: Likewise.
141 * varasm.c: Likewise.
142
143 2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
144
145 PR target/44877
146 * config/spu/spu.c (spu_expand_builtin_1): Allow references
147 (as well as pointers) as argument to mask_for_load builtins.
148
149 2010-07-15 Richard Guenther <rguenther@suse.de>
150
151 PR tree-optimization/44946
152 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
153 with accessing only padding properly.
154
155 2010-07-15 Jan Hubicka <jh@suse.cz>
156
157 * ipa.c (function_and_variable_visibility): Variables marked as used
158 should not be localized.
159
160 2010-07-15 Jan Hubicka <jh@suse.cz>
161
162 * cgraph.c: Include lto-streamer.h
163 (change_decl_assembler_name): Work when assembler name hash is at place.
164 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage, be
165 sure to rename it to avoid name clash.
166 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
167 Localize hidden symbols only when locally defined.
168
169 2010-07-15 Uros Bizjak <ubizjak@gmail.com>
170
171 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
172
173 2010-07-15 Magnus Granberg <zorry@gentoo.org>
174 Kevin F. Quinn <kevquinn@gentoo.org>
175
176 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
177 * common.opt: Add -Wtrampolines.
178 * doc/invoke.texi: Add -Wtrampolines.
179
180 2010-07-15 Jie Zhang <jie@codesourcery.com>
181
182 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
183 cortex_a8_issue_ls.
184
185 2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
186
187 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
188 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
189
190 2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
191
192 * config/spu/spu.c (reg_names): Remove prototype.
193 (call_used_regs): Likewise.
194
195 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
196
197 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
198 "unused" with attribute "used".
199 (__JCR_END__): Likewise.
200 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
201 "used" attribute.
202 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
203
204 2010-07-14 Richard Guenther <rguenther@suse.de>
205
206 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
207 (maybe_fixup_decls): Likewise.
208 (input_gimple_stmt): Do not fixup anything.
209 * lto-streamer-out.c (output_gimple_stmt): Make sure all
210 non-automatic variable uses are wrapped inside a MEM_REF.
211
212 2010-07-14 Richard Henderson <rth@redhat.com>
213
214 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
215 for functions.
216 * varasm.c (assemble_variable): Remove early exit for functions;
217 assert that we're given a variable.
218
219 2010-07-14 Jie Zhang <jie@codesourcery.com>
220
221 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
222 cortex_a8_default when neon_type is not none.
223
224 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
225
226 * lower-subreg.c (subreg_context): New static bitmap.
227 (decompose_multiword_subregs): Allocate and free it.
228 (find_decomposable_subregs): Set a bit in it for a register that
229 occurs in a subreg that changes mode but not size.
230 (can_decompose_p): Test it instead of non_decomposable_context.
231
232 2010-07-14 Richard Guenther <rguenther@suse.de>
233
234 PR tree-optimization/44824
235 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
236 is_gimple_mem_ref_addr.
237 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
238 non-decl_address_invariant_p addresses.
239
240 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
241
242 * reload.c (find_reloads): Revert code to penalize small register
243 classes that was brought in with the IRA merge.
244
245 2010-07-14 Richard Guenther <rguenther@suse.de>
246
247 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
248 as base of ARRAY_REFs.
249
250 2010-07-14 Richard Guenther <rguenther@suse.de>
251
252 PR middle-end/44930
253 * tree-pretty-print.c (do_niy): Do not print a newline.
254
255 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
256
257 * ira-int.h (struct ira_object): New.
258 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
259 (struct ira_allocno): Remove members min, max,
260 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
261 conflict_allocnos_num and conflict_vec_p. Add new member object.
262 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
263 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
264 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
265 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
266 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
267 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
268 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
269 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
270 an ira_object_t rather than ira_allocno_t. All uses changed.
271 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
272 contains a vector of ira_object_t; all uses changed.
273 (ira_objects_num): Declare variable.
274 (ira_create_allocno_object): Declare function.
275 (ira_conflict_vector_profitable_p): Adjust prototype.
276 (ira_allocate_conflict_vec): Renamed from
277 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
278 (ira_allocate_object_conflicts): Renamed from
279 ira_allocate_allocno_conflicts; first arg now ira_object_t.
280 (struct ira_object_iterator): New.
281 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
282 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
283 to conflict_vec_p. All uses changed.
284 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
285 Changed to take into account that conflicts are now tracked for
286 objects.
287 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
288 Args changed to accept ira_object_t. All uses changed.
289 (allocnos_conflict_p): New static function.
290 (collected_conflict_objects): Renamed from collected_allocno_objects;
291 now a vector of ira_object_t. All uses changed.
292 (build_conflict_bit_table): Changed to take into account that
293 conflicts are now tracked for objects.
294 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
295 (print_allocno_conflicts, ira_build_conflicts): Likewise.
296 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
297 setup_allocno_left_conflicts_size, allocno_reload_assign,
298 fast_allocation): Likewise.
299 * ira-lives.c (make_hard_regno_born, make_allocno_born)
300 process_single_reg_class_operands, process_bb_node_lives): Likewise.
301 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
302 Likewise.
303 * ira-build.c (ira_objects_num): New variable.
304 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
305 contains a vector of ira_object_t; all uses changed.
306 (ira_object_id_map_vec): Corresponding change.
307 (object_pool): New static variable.
308 (initiate_allocnos): Initialize it.
309 (finish_allocnos): Free it.
310 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
311 New functions.
312 (ira_create_allocno): Don't set members that were removed.
313 (ira_set_allocno_cover_class): Don't change conflict hard regs.
314 (merge_hard_reg_conflicts): Changed to take into account that
315 conflicts are now tracked for objects.
316 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
317 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
318 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
319 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
320 setup_min_max_conflict_allocno_ids, ): Likewise.
321 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
322 to ira_object_t; all callers changed.
323 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
324 to ira_object_t, all callers changed.
325 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
326 to ira_object_t, all callers changed.
327 (conflict_check, curr_conflict_check_tick): Renamed from
328 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
329 changed.
330 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
331 arg changed to ira_object_t, all callers changed.
332 (create_cap_allocno): Call ira_create_allocno_object.
333 (finish_allocno): Free the corresponding object.
334 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
335 callers changed. Adjusted for dealing with objects.
336 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
337 dealing with objects.
338 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
339
340 * ira-int.h (struct live_range): Rename allocno member to object
341 and change type to ira_object_t.
342 (struct ira_object): New member live_ranges.
343 (struct ira_allocno): Remove member live_ranges.
344 (ALLOCNO_LIVE_RANGES): Remove.
345 (OBJECT_LIVE_RANGES): New macro.
346 (ira_create_live_range, ira_copy_live_range_list,
347 ira_merge_live_range_list, ira_live_ranges_intersect_p,
348 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
349 * ira-build.c (ira_create_object): Initialize live ranges here.
350 (ira_create_allocno): Not here.
351 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
352 changed to ira_object_t, all callers changed.
353 (copy_live_range): Rename from copy_allocno_live_range, all callers
354 changed.
355 (ira_copy_live_range_list): Rename from
356 ira_copy_allocno_live_range_list, all callers changed.
357 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
358 all callers changed.
359 (ira_live_ranges_intersect_p): Rename from
360 ira_allocno_live_ranges_intersect_p, all callers changed.
361 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
362 callers changed.
363 (ira_finish_live_range_list): Rename from
364 ira_finish_allocno_live_range_list, all callers changed.
365 (change_object_in_range_list): Rename from change_allocno_in_range_list,
366 last arg changed to ira_object_t, all callers changed.
367 (finish_allocno): Changed to expect live ranges in the allocno's object.
368 (move_allocno_live_ranges, copy_allocno_live_ranges,
369 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
370 ira_flattening, ira_build): Likewise.
371 * ira-color.c (allocnos_have_intersected_live_ranges_p,
372 slot_coalesced_allocno_live_ranges_intersect,
373 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
374 * ira-conflicts.c (build_conflict_bit_table): Likewise.
375 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
376 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
377 make_allocno_dead, create_start_finish_chains,
378 remove_some_program_points_and_update_live_ranges,
379 ira_debug_live_range_list): Likewise.
380
381 * ira-int.h (ira_object_conflict_iterator): Rename from
382 ira_allocno_conflict_iterator.
383 (ira_object_conflict_iter_init): Rename from
384 ira_allocno_conflict_iter_init, second arg changed to
385 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
386 FOR_EACH_ALLOCNO_CONFLICT.
387 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
388 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
389 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
390 * ira-conflicts.c (print_allocno_conflicts): Likewise.
391
392 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
393
394 PR other/44874
395 * tree-dump.c (dump_options): Add enumerate_locals entry.
396 Add TDF_NOID exclusion to all entry.
397 * tree-dump.h (dump_enumerated_decls): Declare.
398 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
399 Don't display type uid.
400 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
401 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
402 * tree-ssa-live.c: Include gimple.h.
403 (numbered_tree_d): New struct.
404 (numbered_tree): New typedef.
405 (DEF_VEC_O (numbered_tree): New.
406 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
407 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
408 (dump_enumerated_decls): Likewise.
409 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
410 debug info and flag_dump_final_insns, call dump_enumerated_decls.
411 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
412 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
413
414 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
415
416 * expmed.h (MAX_BITS_PER_WORD): Move to...
417 * defaults.h (MAX_BITS_PER_WORD): ...here.
418
419 2010-07-13 DJ Delorie <dj@redhat.com>
420
421 * config/h8300/h8300.c (h8300_init_once): Default to
422 -fstrict_volatile_bitfields.
423
424 * config/sh/sh.c (sh_override_options): Default to
425 -fstrict_volatile_bitfields.
426
427 * config/rx/rx.c (rx_option_override): New.
428
429 * config/m32c/m32c.c (m32c_override_options): Default to
430 -fstrict_volatile_bitfields.
431
432 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
433
434 * tree.h (build_function_call_expr): Delete.
435 (build_call_expr_loc_array): New function.
436 (build_call_expr_loc_vec): New function.
437 * tree-flow.h (struct omp_region): Change type of ws_args field
438 to a VEC.
439 * builtins.c (build_function_call_expr): Delete.
440 (build_call_expr_loc_array): New function.
441 (build_call_expr_loc): Call it. Use XALLOCAVEC.
442 (build_call_expr): Likewise.
443 (build_call_expr_loc_vec): New function.
444 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
445 build_function_call_expr.
446 * expr.c (emutls_var_address): Likewise.
447 * varasm.c (emutls_common_1): Likewise.
448 * omp-low.c (expand_omp_atomic_mutex): Likewise.
449 (expand_omp_taskreg): Adjust for new type of region->ws_args.
450 (get_ws_args_for): Return a VEC instead of a tree.
451 (expand_parallel_call): Call build_call_expr_loc_vec instead of
452 build_function_call_expr.
453 * stor-layout.c (self_referential_size): Likewise.
454
455 2010-07-13 Jakub Jelinek <jakub@redhat.com>
456
457 PR testsuite/44701
458 * recog.c (constrain_operands): Allow side-effects in memory
459 operands if either < or > constraint is used, rather than if
460 both < and > is used.
461
462 2010-07-13 Richard Guenther <rguenther@suse.de>
463
464 PR middle-end/44911
465 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
466 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
467 without name.
468
469 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
470
471 PR target/44761
472 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
473 to variable emited.
474 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
475 * config/sh/sh.md (symGOT_load): Likewise.
476 (symDTPOFF2reg): Likewise.
477 (symTPOFF2reg): Likewise.
478
479 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
480
481 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
482 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
483
484 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
485
486 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
487 explanation.
488 Find ucontext_t * on Solaris 11.
489 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
490 Handle new Solaris 11 __sighndlr patterns.
491
492 2010-07-13 Jakub Jelinek <jakub@redhat.com>
493
494 PR debug/44901
495 * vec.h (VEC_block_remove): Fix comment.
496 * tree-ssa-live.c (remove_unused_locals): Don't use
497 VEC_unordered_remove on local_decls, instead replace a single
498 vector element in each iteration if at least one element had
499 to be removed and VEC_truncate at the end.
500 * omp-low.c (expand_omp_taskreg): Likewise.
501
502 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
503
504 * c-decl.c (finish_function): Fix typo in comment.
505
506 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
507
508 PR bootstrap/44921
509 * postreload.c (move2add_use_add3_insn): Silence gcc warning
510 on min_regno.
511
512 2010-07-12 Jakub Jelinek <jakub@redhat.com>
513
514 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
515 (simplify_stmt_using_ranges): Use it.
516
517 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
518
519 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
520 member. Do not mark as GTY(()).
521 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
522 (spu_builtin_decls): New static variable.
523 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
524 (spu_init_builtins): Likewise.
525 (spu_builtin_mul_widen_even): Likewise.
526 (spu_builtin_mul_widen_odd): Likewise.
527 (spu_builtin_mask_for_load): Likewise.
528 (spu_builtin_vec_perm): Likewise.
529 * config/spu/spu-c.c: Include "target.h".
530 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
531 of using spu_builtins[].fndecl.
532
533 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
534
535 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
536 imply -minterlink-mips16.
537
538 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
539
540 * config/mips/mips.h (mips16_globals): Declare.
541 (SWITCHABLE_TARGET): Define.
542 * config/mips/mips.c: Include target-globals.h.
543 (mips16_globals): New variable.
544 (mips_set_mips16_mode): Use save_target_globals and
545 restore_target_globals instead of target_reinit.
546
547 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
548
549 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
550 to say that the function can be called more than once.
551 * target-globals.c (save_target_globals): Call init_reg_sets.
552
553 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
554
555 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
556 * bb-reorder.h: New file.
557 * bb-reorder.c (default_target_bb_reorder): New variable.
558 (this_target_bb_reorder): New conditional variable.
559 (uncond_jump_length): Redefine as a macro.
560 * target-globals.h (this_target_bb_reorder): Declare.
561 (target_globals): Add a bb_reorder field.
562 (restore_target_globals): Copy the bb_reorder field to
563 this_target_bb-reorder.
564 * target-globals.c: Include bb-reorder.h.
565 (default_target_globals): Initialize the bb_reorder field.
566 (save_target_globals): Likewise.
567
568 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
569
570 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
571 * gcse.h: New file.
572 * gcse.c: Include gcse.h.
573 (default_target_gcse): New variable.
574 (this_target_gcse): New conditional variable.
575 (can_copy): Redefine as a macro.
576 (can_copy_init_p): New macro.
577 (can_copy_p): Remove can_copy_init_p.
578 * target-globals.h (this_target_gcse): Declare.
579 (target_globals): Add a gcse field.
580 (restore_target_globals): Copy the gcse field to this_target_gcse.
581 * target-globals.c: Include gcse.h.
582 (default_target_globals): Initialize the gcse field.
583 (save_target_globals): Likewise.
584
585 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
586
587 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
588 and x_ira_prohibited_mode_move_regs_initialized_p.
589 (ira_prohibited_mode_move_regs): Redefine as a macro.
590 * ira.c (ira_prohibited_mode_move_regs): Delete.
591 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
592
593 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
594
595 * reload.h (target_reload): Add x_cached_reg_save_code and
596 x_cached_reg_restore_code.
597 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
598 Redefine as macros.
599
600 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
601
602 * Makefile.in (target-globals.o): Depend on builtins.h.
603 * builtins.h: New file.
604 * builtins.c: Include builtins.h.
605 (default_target_builtins): New variable.
606 (this_target_builtins): New conditional variable.
607 (apply_args_mode, apply_result_mode): Redefine as macros.
608 * target-globals.h (this_target_builtins): Declare.
609 (target_globals): Add a builtins field.
610 (restore_target_globals): Copy the builtins field to
611 this_target_builtins.
612 * target-globals.c: Include builtins.h.
613 (default_target_globals): Initialize the builtins field.
614 (save_target_globals): Likewise.
615
616 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
617
618 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
619 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
620 from expmed.c.
621 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
622 (alg_hash, alg_hash_used_p): New macros.
623 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
624 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
625 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
626
627 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
628
629 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
630 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
631 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
632 (this_op_costs, costs_classes): Redefine as macros.
633 (record_reg_classes): Don't take op_costs as a parameter.
634 (record_operand_costs): Likewise. Update calls to record_reg_classes.
635 (scan_one_insn): Update call to record_operand_costs.
636
637 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
638
639 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
640 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
641 (target_ira_int): New structure.
642 (default_target_ira_int): Declare.
643 (this_target_ira_int): Declare as a variable or define as a macro.
644 (ira_reg_mode_hard_regset, ira_register_move_cost)
645 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
646 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
647 (prohibited_class_mode_regs, ira_important_classes_num)
648 (ira_important_classes, ira_reg_class_intersect)
649 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
650 (ira_reg_class_union): Redefine as macros.
651 * ira.h (target_ira): New structure.
652 (default_target_ira): Declare.
653 (this_target_ira): Declare as a variable or define as a macro.
654 (ira_available_class_regs, ira_hard_regno_cover_class)
655 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
656 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
657 (ira_class_hard_regs_num): Redefine as macros.
658 * ira.c (default_target_ira, default_target_ira_int): New variables.
659 (this_target_ira, this_target_ira_int): New conditional variables.
660 (ira_reg_mode_hard_regset, ira_memory_move_cost)
661 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
662 (ira_class_subset_p): Delete.
663 (no_unit_alloc_regs): Redefine as a macro.
664 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
665 (ira_class_hard_regs_num, ira_class_hard_reg_index)
666 (ira_available_class_regs): Delete.
667 (alloc_reg_class_subclasses): Redefine as a macro.
668 (ira_reg_class_cover_size, ira_reg_class_cover)
669 (ira_important_classes_num, ira_important_classes)
670 (ira_important_class_nums, ira_class_translate): Delete.
671 (cover_class_order): Document the variable's lifetime.
672 (reorder_important_classes): Don't set ira_important_class_nums.
673 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
674 (ira_reg_class_super_classes, ira_reg_class_union)
675 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
676 Delete.
677 (setup_reg_class_nregs): Don't set ira_max_regs.
678 (prohibited_class_mode_regs): Delete.
679 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
680 (target_globals): Add ira and ira_int fields.
681 (restore_target_globals): Copy the ira field to this_target_ira
682 and the ira_int field to this_target_ira_int.
683 * target-globals.c: Include ira-int.h.
684 (default_target_globals): Initialize the ira and ira_int fields.
685 (save_target_globals): Likewise.
686
687 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
688
689 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
690 * cfgloop.h (target_cfgloop): New structure.
691 (default_target_cfgloop): Declare.
692 (this_target_cfgloop): Declare as a variable or define as a macro.
693 (target_avail_regs, target_clobbered_regs, target_res_regs)
694 (target_reg_cost, target_spill_cost): Redefine as macros.
695 * cfgloopanal.c (default_target_cfgloop): New variable.
696 (this_target_cfgloop): New conditional variable.
697 (target_avail_regs, target_clobbered_regs, target_res_regs)
698 (target_reg_cost, target_spill_cost): Delete.
699 * target-globals.h (this_target_cfgloop): Declare.
700 (target_globals): Add a cfgloop field.
701 (restore_target_globals): Copy the cfgloop field to
702 this_target_cfgloop.
703 * target-globals.c: Include cfgloop.h.
704 (default_target_globals): Initialize the cfgloop field.
705 (save_target_globals): Likewise.
706
707 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
708
709 * regs.h (target_regs): Add x_direct_load, x_direct_store and
710 x_float_extend_from_mem.
711 (direct_load, direct_store, float_extend_from_mem): New macros.
712 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
713
714 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
715
716 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
717 (target-globals.o): Depend on $(LIBFUNCS_H).
718 * libfuncs.h: Include hashtab.h.
719 (libfunc_entry): Moved from optabs.c.
720 (target_libfuncs): New structure.
721 (default_target_libfuncs): Declare.
722 (this_target_libfuncs): Declare as a variable or define as a macro.
723 (libfunc_table): Redefine as a macro.
724 * optabs.c (default_target_libfuncs): New variable.
725 (this_target_libfuncs): New conditional variable.
726 (libfunc_table): Delete.
727 (libfunc_entry): Moved to optabs.h.
728 (libfunc_hash): Redefine as a macro.
729 (hash_libfunc, eq_libfunc): Fix comments.
730 (init_optabs): Use libfunc_hash to detect cases where the function
731 has already been called. Clear the hash table instead of
732 recreating it.
733 * target-globals.h (this_target_libfuncs): Declare.
734 (target_globals): Add a libfuncs field.
735 (restore_target_globals): Copy the libfuncs field to
736 this_target_libfuncs.
737 * target-globals.c: Include libfuncs.h.
738 (default_target_globals): Initialize the libfuncs field.
739 (save_target_globals): Likewise.
740
741 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
742
743 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
744 in all dependency lists.
745
746 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
747
748 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
749 * optabs.h (target_optabs): New structure.
750 (default_target_optabs): Declare.
751 (this_target_optabs): Declare as a variable or define as a macro.
752 (optab_table, convert_optab_table, direct_optab_table): Redefine
753 as macros.
754 * optabs.c (default_target_optabs): New variable.
755 (this_target_optabs): New conditional variable.
756 (optab_table, convert_optab_table, direct_optab_table): Delete.
757 * target-globals.h (this_target_optabs): Declare.
758 (target_globals): Add a optabs field.
759 (restore_target_globals): Copy the optabs field to
760 this_target_optabs.
761 * target-globals.c: Include expr.h and optabs.h.
762 (default_target_globals): Initialize the optabs field.
763 (save_target_globals): Likewise.
764
765 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
766
767 * flags.h (target_flagstate): Add x_flag_excess_precision.
768 (flag_excess_precision): Redefine as a macro.
769 * toplev.c (flag_excess_precision): Delete.
770
771 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
772
773 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
774 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
775 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
776 (no_caller_save_reg_set): Redefine as a macro.
777 * reload.h (target_reload): Add x_caller_save_initialized_p and
778 x_regno_save_mode.
779 (caller_save_initialized_p): Redefine as a macro.
780 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
781 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
782 (regno_save_mode): Redefine as a macro.
783
784 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
785
786 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
787 * expmed.h: New file.
788 * expmed.c (default_target_costs): New variable.
789 (this_target_costs): New conditional variable.
790 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
791 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
792 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
793 * target-globals.h (this_target_expmed): Declare.
794 (target_globals): Add a expmed field.
795 (restore_target_globals): Copy the expmed field to
796 this_target_expmed.
797 * target-globals.c: Include expmed.h.
798 (default_target_globals): Initialize the expmed field.
799 (save_target_globals): Likewise.
800
801 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
802
803 * Makefile.in (target-globals.o): Depend on reload.h.
804 * reload.h (target_reload): New structure.
805 (default_target_reload): Declare.
806 (this_target_reload): Declare as a variable or define as a macro.
807 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
808 * reload1.c (default_target_reload): New variable
809 (this_target_reload): New conditional variable.
810 (indirect_symref_ok, double_reg_address_ok): Delete.
811 (spill_indirect_levels): Redefine as a macro.
812 * target-globals.h (this_target_reload): Declare.
813 (target_globals): Add a reload field.
814 (restore_target_globals): Copy the reload field to
815 this_target_reload.
816 * target-globals.c: Include hard-reg-set.h.
817 (default_target_globals): Initialize the reload field.
818 (save_target_globals): Likewise.
819
820 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
821
822 * rtl.h (target_rtl): Add x_static_reg_base_value.
823 * alias.c (static_reg_base_value): Redefine as a macro.
824
825 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
826
827 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
828 (GTFILES): Remove reginfo.c.
829 * rtl.h (target_rtl): Add x_top_of_stack.
830 (top_of_stack): New macro.
831 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
832 (top_of_stack): Delete.
833
834 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
835
836 * regs.h (target_regs): Add x_hard_regs_of_mode,
837 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
838 x_may_move_out_cost and x_last_mode_for_init_move_cost.
839 (have_regs_of_mode, contains_reg_of_mode, move_cost)
840 (may_move_in_cost, may_move_out_cost): Redefine as macros.
841 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
842 (may_move_in_cost, may_move_out_cost): Delete.
843 (last_mode_for_init_move_cost): Redefine as a macro.
844
845 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
846
847 * hard-reg-set.h (target_hard_regs): New structure.
848 (default_target_hard_regs): Declare.
849 (this_target_hard_regs): Declare as a variable or define as a macro.
850 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
851 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
852 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
853 (reg_class_size, reg_class_subclasses, reg_class_subunion)
854 (reg_class_superunion, reg_names): Redefine as macros.
855 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
856 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
857 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
858 (reg_class_contents, reg_class_size, reg_class_subclasses)
859 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
860 (default_target_hard_regs): New variable
861 (this_target_hard_regs, initial_call_really_used_regs)
862 (initial_reg_alloc_order): New conditional variables.
863 (initial_reg_names): New variable.
864 (init_reg_sets): Assert that initial_call_really_used_regs,
865 initial_reg_alloc_order and initial_reg_names
866 are all the same size as their variable counterparts. Use them to
867 initialize those counterparts.
868 * target-globals.h (this_target_hard_regs): Declare.
869 (target_globals): Add a hard_regs field.
870 (restore_target_globals): Copy the hard_regs field to
871 this_target_hard_regs.
872 * target-globals.c: Include hard-reg-set.h.
873 (default_target_globals): Initialize the hard_regs field.
874 (save_target_globals): Likewise.
875
876 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
877
878 * Makefile.in (target-globals.o): Depend on $(RTL_H).
879 * rtl.h: (target_rtl): New structure.
880 (default_target_rtl): Declare.
881 (this_target_rtl): Declare as a variable or define as a macro.
882 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
883 Redefine as macros.
884 * emit-rtl.c (default_target_rtl): New variable.
885 (this_target_rtl): New conditional variable.
886 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
887 (return_address_pointer_rtx): Delete.
888 (initial_regno_reg_rtx): New macro.
889 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
890 (init_emit_regs): Likewise.
891 * target-globals.h (this_target_rtl): Declare.
892 (target_globals): Add a rtl field.
893 (restore_target_globals): Copy the rtl field to this_target_rtl.
894 * target-globals.c: Include rtl.h.
895 (default_target_globals): Initialize the rtl field.
896 (save_target_globals): Likewise.
897
898 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
899
900 * Makefile.in (target-globals.o): Depend on $(REGS_H).
901 * regs.h (target_reg_modes): New structure.
902 (default_target_reg_modes): Declare.
903 (this_target_reg_modes): Declare as a variable or define as a macro.
904 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
905 * reginfo.c (default_target_reg_modes): New variable.
906 (this_target_reg_modes): New conditional variable.
907 (hard_regno_nregs, reg_raw_mode): Delete.
908 * target-globals.h (this_target_regs): Declare.
909 (target_globals): Add a regs field.
910 (restore_target_globals): Copy the regs field to this_target_regs.
911 * target-globals.c: Include regs.h.
912 (default_target_globals): Initialize the regs field.
913 (save_target_globals): Likewise.
914
915 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
916
917 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
918 * doc/tm.texi: Regenerate.
919 * Makefile.in (OBJS-common): Add target-globals.o.
920 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
921 and target-globals.h.
922 (target-globals.o): New rule.
923 (GTFILES): Include $(srcdir)/target-globals.h.
924 * defaults.h (SWITCHABLE_TARGET): Define.
925 * gengtype.c (open_base_files): Add target-globals.h to the
926 list of includes.
927 * target-globals.h: New file.
928 * target-globals.c: Likewise.
929
930 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
931 * flags.h (target_flag_state): New structure.
932 (default_target_flag_state): Declare.
933 (this_target_flag_state): Declare as a variable or define as a macro.
934 (align_loops_log): Redefine as a macro.
935 (align_loops_max_skip, align_jumps_log): Likewise.
936 (align_jumps_max_skip, align_labels_log): Likewise.
937 (align_labels_max_skip, align_functions_log): Likewise.
938 * toplev.c (default_target_flag_state): New variable.
939 (this_target_flag_state): New conditional variable.
940 (align_loops_log): Delete.
941 (align_loops_max_skip, align_jumps_log): Likewise.
942 (align_jumps_max_skip, align_labels_log): Likewise.
943 (align_labels_max_skip, align_functions_log): Likewise.
944 * target-globals.h (this_target_flag_state): Declare.
945 (target_globals): Add a flag_state field.
946 (restore_target_globals): Copy the flag_state field to
947 this_target_flag_state.
948 * target-globals.c: Include flags.h.
949 (default_target_globals): Initialize the flag_state field.
950 (save_target_globals): Likewise.
951
952 2010-07-12 Jie Zhang <jie@codesourcery.com>
953
954 * postreload.c (reg_symbol_ref[]): New.
955 (move2add_use_add2_insn): New.
956 (move2add_use_add3_insn): New.
957 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
958 (move2add_note_store): Likewise.
959
960 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
961
962 PR rtl-optimization/44752
963 * genautomata.c (main): Don't emit an empty file even if there
964 is no automaton.
965
966 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
967
968 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
969 ix86_solaris_return_in_memory.
970 * config/i386-protos.h: Reflect this.
971 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
972 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
973 Move ...
974 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
975
976 2010-07-12 Jie Zhang <jie@codesourcery.com>
977
978 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
979 align the stack when it's going to be saved.
980
981 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
982
983 PR pch/14940
984 * config/host-solaris.c (mmap_fixed): New function.
985 (sol_gt_pch_get_address): Use it.
986 (sol_gt_pch_use_address): Likewise.
987
988 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
989
990 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
991 pentiumpro on Solaris 8 and 9/x86.
992 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
993 Document SSE/SSE2 support.
994 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
995
996 2010-07-12 Andi Kleen <ak@linux.intel.com>
997
998 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
999 instead of gcc_assert to print better error message for multiple
1000 prevailing defs.
1001
1002 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
1003
1004 * config/i386/i386.c (ix86_asm_output_function_label): Change format
1005 string placeholder from 0x%x to %#x.
1006 (ix86_code_end): Use putc to output '\n'.
1007 (ix86_print_operand) <case ';'>: Use putc to output ';'.
1008
1009 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
1010
1011 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
1012 in directive -export.
1013
1014 2010-07-10 Anatoly Sokolov <aesok@post.ru>
1015
1016 * reginfo.h (reg_classes_intersect_p): Change arguments type to
1017 reg_class_t.
1018 * rtl.h (reg_classes_intersect_p): Adjust prototype.
1019
1020 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
1021 Remove macros.
1022 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
1023 rs6000_memory_move_cost): Remove
1024 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
1025 TARGET_MEMORY_MOVE_COST): Define.
1026 (rs6000_register_move_cost): Make static. Change arguments type from
1027 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
1028 (rs6000_memory_move_cost): Make static. Change arguments type from
1029 'enum reg_class' to reg_class_t.
1030
1031 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
1032
1033 PR middle-end/42505
1034 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
1035 lookup code into....
1036 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
1037 new functions.
1038 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
1039 * cfgloopanal.c (target_clobbered_regs): Define.
1040 (init_set_costs): Initialize target_clobbered_regs.
1041 (estimate_reg_pressure_cost): Add call_p argument. When true,
1042 adjust the number of available registers to exclude the
1043 call-clobbered registers.
1044 * cfgloop.h (target_clobbered_regs): Declare.
1045 (estimate_reg_pressure_cost): Adjust declaration.
1046 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
1047 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
1048 (determine_set_costs): Dump target_clobbered_regs.
1049 (loop_body_includes_call): New function.
1050 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
1051 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
1052 call_p flag through.
1053 (best_gain_for_invariant): Likewise.
1054 (find_invariants_to_move): Likewise.
1055 (move_single_loop_invariants): Likewise, using already-computed
1056 has_call field.
1057
1058 2010-07-10 Richard Guenther <rguenther@suse.de>
1059 Joern Rennecke <joern.rennecke@embecosm.com>
1060
1061 PR debug/44832
1062 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
1063 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
1064 unless they have DECL_IGNORED_P set.
1065
1066 2010-07-10 Richard Guenther <rguenther@suse.de>
1067
1068 PR lto/44889
1069 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
1070 helper function.
1071 (gimple_types_compatible_p): Similar to pointed-to
1072 types allow and merge a mix of complete and incomplete aggregate.
1073 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
1074 (iterative_hash_gimple_type): Adjust for that.
1075
1076 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
1077
1078 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
1079
1080 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
1081
1082 PR objc/44140
1083 * config/darwin.c (output_objc_section_asm_op): Save and restore
1084 section when outputting ObjC section list.
1085
1086 2010-07-09 Jan Hubicka <jh@suse.cz>
1087
1088 * lto-streamer-out.c (produce_symtab): Do not write alias
1089 cgraph/varpool nodes.
1090
1091 2010-07-09 Jan Hubicka <jh@suse.cz>
1092
1093 * tree-inline.c (declare_return_variable): Fix ICE while
1094 inlining DECL_BY_VALUE function not in SSA form
1095
1096 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
1097
1098 PR tree-optimization/44576
1099 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
1100 New. Pull out from is_loop_prefetching_profitable to implement
1101 the trip count to ahead ratio heuristic.
1102 (mem_ref_count_reasonable_p): New. Pull out from
1103 is_loop_prefetching_profitable to implement the instruction to
1104 memory reference ratio heuristic. Also consider not reasonable if
1105 the memory reference count is above a threshold (to avoid
1106 explosive compilation time.
1107 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
1108 is_loop_prefetching_profitable to implement the instruction to
1109 prefetch ratio heuristic.
1110 (is_loop_prefetching_profitable): Removed.
1111 (loop_prefetch_arrays): Distribute the cost analysis across the
1112 function to allow early exit of the prefetch analysis.
1113 is_loop_prefetching_profitable is splitted into three functions,
1114 with each one called as early as possible.
1115 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
1116 number of memory references in a loop is considered too many.
1117
1118 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
1119
1120 * reload.c (find_reloads): Don't clear badop if we have a winreg
1121 alternative, but not win, and the class only has fixed regs.
1122 * hard-reg-set.h (class_only_fixed_regs): Declare.
1123 * reginfo.c (class_only_fixed_regs): New array.
1124 (init_reg_sets_1): Initialize it.
1125 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
1126 discourage alternatives using the stack pointer.
1127
1128 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
1129
1130 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
1131
1132 * config/arm/arm.md (cbranchqi4): Fix array size.
1133 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
1134 calculating length.
1135
1136 2010-07-09 Richard Guenther <rguenther@suse.de>
1137
1138 * gimple.c (struct type_fixup_s): New struct and VEC type.
1139 (gimple_register_type_fixups): New static global.
1140 (gimple_queue_type_fixup): New function.
1141 (gimple_types_compatible_p): Queue type fixups instead of
1142 applying them here.
1143 (gimple_register_type): Apply queued fixups for the
1144 canonical type. Empty the type fixup queue.
1145
1146 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
1147
1148 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
1149 * configure: Regenerate.
1150 * config.in: Ditto.
1151
1152 2010-07-09 Jakub Jelinek <jakub@redhat.com>
1153 Denys Vlasenko <dvlasenk@redhat.com>
1154 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1155
1156 PR tree-optimization/28632
1157 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
1158 (extract_range_from_binary_expr): Further optimize
1159 BIT_AND_EXPR and BIT_IOR_EXPR.
1160
1161 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
1162
1163 * tree-if-conv.c (fold_or_predicates): New.
1164 (add_to_predicate_list): Call it.
1165
1166 2010-07-09 Richard Guenther <rguenther@suse.de>
1167
1168 PR middle-end/44890
1169 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
1170 if base is a pointer.
1171 * tree-cfg.c (verify_expr): Update MEM_REF checking.
1172
1173 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
1174
1175 PR target/44877
1176 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
1177 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
1178 builtin mask for load/store builtins.
1179
1180 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
1181
1182 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
1183 for "lock addl".
1184 * configure: Regenerate.
1185 * config/i386/i386.c (ix86_print_operand) <case ';'>:
1186 Remove TARGET_MACHO.
1187
1188 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
1189
1190 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
1191 default ISA flags.
1192 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
1193
1194 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
1195
1196 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
1197
1198 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
1199
1200 * config/picochip/picochip.md (commsTestPort): Emit more
1201 efficient sequence for tstport instruction.
1202
1203 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
1204
1205 * config/i386/i386.c (ix86_veclib_handler): Make static.
1206
1207 2010-07-09 Richard Guenther <rguenther@suse.de>
1208
1209 PR tree-optimization/44852
1210 * tree-ssa-alias.c: Include toplev.h for exact_log2.
1211 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
1212 in MEM_REF.
1213 (indirect_refs_may_alias_p): Likewise.
1214 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
1215
1216 2010-07-09 Richard Guenther <rguenther@suse.de>
1217
1218 PR tree-optimization/44882
1219 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
1220 sets do conflict.
1221 (vectorizable_load): Likewise.
1222
1223 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
1224
1225 PR target/40657
1226 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
1227 All callers changed.
1228 Handle the case when we're called for the epilogue.
1229 (thumb_unexpanded_epilogue): Use it.
1230 (thumb1_expand_epilogue): Likewise.
1231
1232 2010-07-09 Jakub Jelinek <jakub@redhat.com>
1233
1234 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
1235 both ranges are range_int_cst_p with non-negative minimum,
1236 try harder to derive smaller range.
1237
1238 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1239
1240 * genrecog.c: Include diagnostic-core.h before toplev.h.
1241 * genoutput.c: Likewise.
1242 * genextract.c: Likewise.
1243 * genautomata.c: Likewise.
1244 * genemit.c: Likewise.
1245 * genpeep.c: Likewise.
1246 * genattrtab.c: Likewise.
1247 * genconditions.c: Likewise.
1248 * genpreds.c: Likewise.
1249
1250 2010-07-08 Andi Kleen <ak@linux.intel.com>
1251
1252 * lto-section-in.c (lto_section_name): Add missing comma.
1253
1254 2010-07-08 Anatoly Sokolov <aesok@post.ru>
1255
1256 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
1257 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
1258 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
1259 (ia64_override_options): Rename to...
1260 (ia64_option_override): ... this one. Make static.
1261
1262 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1263
1264 PR middle-end/44843
1265 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
1266 pointed-to type of the offset in a MEM_REF to compute the alignment.
1267
1268 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
1269
1270 * final.c (final_scan_insn): Replace
1271 TARGET_UNWIND_INFO macro check by unwind_emit
1272 hook NULL check.
1273 * targhooks.c (default_unwind_emit): Removed.
1274 * targhooks.h (default_unwind_emit): Likewise.
1275 * target.def (unwind_emit): Set default value to NULL.
1276
1277 * config/i386/i386-protos.h (ix86_asm_output_function_label):
1278 New prototype.
1279 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
1280 for NULL fntype argument and allow 64-bit targets.
1281 (ix86_asm_output_function_label): New function.
1282 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
1283 (ix86_handle_fndecl_attribute): Likewise.
1284 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
1285 * doc/doc/tm.texi: Regenerated.
1286 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
1287 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
1288 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
1289 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1290 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
1291 * config/elfos.h: Likewise.
1292 * config/i386/cygming.h: Likewise.
1293 * config/netbsd-aout.h: Likewise.
1294 * config/openbsd.h: Likewise.
1295 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
1296 by ix86_asm_output_function_label function call.
1297 * varasm.c (assemble_start_function): Use
1298 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
1299
1300 2010-07-08 Jan Hubicka <jh@suse.cz>
1301
1302 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
1303 New function.
1304 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
1305 Declare.
1306 * ipa-cp.c (ipcp_estimate_growth): Use it.
1307 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
1308 Likewise.
1309
1310 2010-07-08 Jan Hubicka <jh@suse.cz>
1311
1312 * tree-inline.c (declare_return_variable): Allocate annotation for new
1313 temporary.
1314
1315 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
1316
1317 PR tree-optimization/44710
1318 * tree-if-conv.c (parse_predicate): New.
1319 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
1320 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
1321
1322 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
1323
1324 * common.opt (ftree-loop-if-convert): New flag.
1325 * doc/invoke.texi (ftree-loop-if-convert): Documented.
1326 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
1327 when flag_tree_loop_if_convert is set.
1328
1329 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
1330
1331 * config/i386/i386.c: Use short syntax for function calls
1332 through function pointers.
1333 * config/i386/i386.md: Ditto.
1334
1335 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1336
1337 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
1338
1339 2010-07-08 Richard Guenther <rguenther@suse.de>
1340
1341 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
1342 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
1343
1344 2010-07-08 Jakub Jelinek <jakub@redhat.com>
1345
1346 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
1347 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
1348 (loc_list_from_tree): Likewise.
1349 (output_loc_operands): Handle outputting DW_OP_const[48]u
1350 with loc->dtprel set.
1351 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
1352
1353 2010-07-08 Jan Hubicka <jh@suse.cz>
1354
1355 * ipa.c: Include pointer-set.h
1356 (cgraph_externally_visible_p): New attribute ALIASED;
1357 when in LTO, hidden symbols are local unless they are aliased.
1358 (function_and_variable_visibility): Compute aliased nodes;
1359 handle LTO and hidden symbol on functions and vars.
1360 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
1361 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
1362
1363 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1364
1365 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1366 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1367 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1368 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1369 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1370 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
1371 (ix86_gen_probe_stack_range): Likewise.
1372 (override_options): Set them.
1373 (ix86_target_stack_probe): New function.
1374 (ix86_compute_frame_layout): Force use of push instructions to
1375 save registers if stack checking with probes is enabled.
1376 (get_scratch_register_on_entry): New function.
1377 (release_scratch_register_on_entry): Likewise.
1378 (ix86_adjust_stack_and_probe): Likewise.
1379 (output_adjust_stack_and_probe): Likewise.
1380 (ix86_emit_probe_stack_range): Likewise.
1381 (output_probe_stack_range): Likewise.
1382 (ix86_expand_prologue): Emit stack checking code if static built-in
1383 stack checking is enabled.
1384 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
1385 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
1386 (output_adjust_stack_and_probe): Likewise.
1387 (output_probe_stack_range): Likewise.
1388 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1389 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
1390 TARGET_STACK_PROBE.
1391 (allocate_stack_worker_64): Likewise.
1392 (allocate_stack): Likewise.
1393 (adjust_stack_and_probe): New insn.
1394 (probe_stack_range): Likewise.
1395
1396 2010-07-08 Richard Guenther <rguenther@suse.de>
1397
1398 PR tree-optimization/44831
1399 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
1400 a MEM_REF preserving TBAA info of the original dereference.
1401 Dereference the original pointer if the address is not invariant.
1402 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
1403 at least one invariant address that we are going to dereference.
1404
1405 2010-07-08 Richard Guenther <rguenther@suse.de>
1406
1407 PR tree-optimization/44861
1408 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
1409 information when building MEM_REFs.
1410 (vectorizable_load): Likewise.
1411 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
1412
1413 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1414
1415 * config/sol2-c.c: Do not include diagnostic-core.h.
1416
1417 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1418
1419 PR bootstrap/44768
1420 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
1421 with respect to current_function_decl. Pass decl of the function.
1422 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
1423 * ipa-inline.c (compute_inline_parameters): Pass decl to
1424 estimated_stack_frame_size.
1425
1426 2010-07-08 Richard Guenther <rguenther@suse.de>
1427
1428 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
1429 New function.
1430 (valueize_refs): Call it.
1431
1432 2010-07-08 Richard Guenther <rguenther@suse.de>
1433
1434 PR rtl-optimization/44838
1435 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
1436 SSA form do not use pointer equivalence.
1437
1438 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
1439
1440 * dwarf2out.c (AT_linkage_name): Delete.
1441 (add_linkage_attr): New function.
1442 (add_linkage_name): Call it to emit the linkage attribute.
1443 (dwarf2out_finish): Likewise.
1444 (move_linkage_attr): Explicitly accept both attribute variants.
1445
1446 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1447
1448 * toplev.h: Do not include diagnostic-core.h.
1449 Include diagnostic-core.h in every file that includes toplev.h.
1450 * c-tree.h: Do not include toplev.h.
1451 * pretty-print.h: Update comment.
1452 * Makefile.in: Update dependencies.
1453 * alias.c: Include diagnostic-core.h in every file that includes
1454 toplev.h.
1455 * attribs.c: Likewise.
1456 * auto-inc-dec.c: Likewise.
1457 * bb-reorder.c: Likewise.
1458 * bt-load.c: Likewise.
1459 * caller-save.c: Likewise.
1460 * calls.c: Likewise.
1461 * cfg.c: Likewise.
1462 * cfganal.c: Likewise.
1463 * cfgbuild.c: Likewise.
1464 * cfgcleanup.c: Likewise.
1465 * cfghooks.c: Likewise.
1466 * cfgloop.c: Likewise.
1467 * combine.c: Likewise.
1468 * config/alpha/alpha.c: Likewise.
1469 * config/arc/arc.c: Likewise.
1470 * config/arm/arm.c: Likewise.
1471 * config/arm/pe.c: Likewise.
1472 * config/avr/avr.c: Likewise.
1473 * config/bfin/bfin.c: Likewise.
1474 * config/cris/cris.c: Likewise.
1475 * config/crx/crx.c: Likewise.
1476 * config/darwin-c.c: Likewise.
1477 * config/darwin.c: Likewise.
1478 * config/fr30/fr30.c: Likewise.
1479 * config/frv/frv.c: Likewise.
1480 * config/h8300/h8300.c: Likewise.
1481 * config/host-darwin.c: Likewise.
1482 * config/i386/i386.c: Likewise.
1483 * config/i386/netware.c: Likewise.
1484 * config/i386/nwld.c: Likewise.
1485 * config/i386/winnt-cxx.c: Likewise.
1486 * config/i386/winnt-stubs.c: Likewise.
1487 * config/i386/winnt.c: Likewise.
1488 * config/ia64/ia64-c.c: Likewise.
1489 * config/ia64/ia64.c: Likewise.
1490 * config/iq2000/iq2000.c: Likewise.
1491 * config/lm32/lm32.c: Likewise.
1492 * config/m32c/m32c-pragma.c: Likewise.
1493 * config/m32c/m32c.c: Likewise.
1494 * config/m32r/m32r.c: Likewise.
1495 * config/m68hc11/m68hc11.c: Likewise.
1496 * config/m68k/m68k.c: Likewise.
1497 * config/mcore/mcore.c: Likewise.
1498 * config/mep/mep-pragma.c: Likewise.
1499 * config/mep/mep.c: Likewise.
1500 * config/mmix/mmix.c: Likewise.
1501 * config/mn10300/mn10300.c: Likewise.
1502 * config/moxie/moxie.c: Likewise.
1503 * config/pa/pa.c: Likewise.
1504 * config/pdp11/pdp11.c: Likewise.
1505 * config/picochip/picochip.c: Likewise.
1506 * config/rs6000/rs6000-c.c: Likewise.
1507 * config/rs6000/rs6000.c: Likewise.
1508 * config/rx/rx.c: Likewise.
1509 * config/s390/s390.c: Likewise.
1510 * config/score/score.c: Likewise.
1511 * config/score/score3.c: Likewise.
1512 * config/score/score7.c: Likewise.
1513 * config/sh/sh.c: Likewise.
1514 * config/sh/symbian-base.c: Likewise.
1515 * config/sh/symbian-c.c: Likewise.
1516 * config/sh/symbian-cxx.c: Likewise.
1517 * config/sol2-c.c: Likewise.
1518 * config/sol2.c: Likewise.
1519 * config/sparc/sparc.c: Likewise.
1520 * config/spu/spu.c: Likewise.
1521 * config/stormy16/stormy16.c: Likewise.
1522 * config/v850/v850-c.c: Likewise.
1523 * config/v850/v850.c: Likewise.
1524 * config/vax/vax.c: Likewise.
1525 * config/vxworks.c: Likewise.
1526 * config/xtensa/xtensa.c: Likewise.
1527 * convert.c: Likewise.
1528 * cse.c: Likewise.
1529 * cselib.c: Likewise.
1530 * dbgcnt.c: Likewise.
1531 * dbxout.c: Likewise.
1532 * ddg.c: Likewise.
1533 * dominance.c: Likewise.
1534 * emit-rtl.c: Likewise.
1535 * explow.c: Likewise.
1536 * expmed.c: Likewise.
1537 * fixed-value.c: Likewise.
1538 * fold-const.c: Likewise.
1539 * fwprop.c: Likewise.
1540 * gcse.c: Likewise.
1541 * ggc-common.c: Likewise.
1542 * ggc-page.c: Likewise.
1543 * ggc-zone.c: Likewise.
1544 * gimple-low.c: Likewise.
1545 * gimplify.c: Likewise.
1546 * graph.c: Likewise.
1547 * haifa-sched.c: Likewise.
1548 * ifcvt.c: Likewise.
1549 * implicit-zee.c: Likewise.
1550 * integrate.c: Likewise.
1551 * ira-build.c: Likewise.
1552 * ira-color.c: Likewise.
1553 * ira-conflicts.c: Likewise.
1554 * ira-costs.c: Likewise.
1555 * ira-lives.c: Likewise.
1556 * ira.c: Likewise.
1557 * lists.c: Likewise.
1558 * loop-doloop.c: Likewise.
1559 * loop-iv.c: Likewise.
1560 * lto-opts.c: Likewise.
1561 * lto-symtab.c: Likewise.
1562 * main.c: Likewise.
1563 * modulo-sched.c: Likewise.
1564 * optabs.c: Likewise.
1565 * params.c: Likewise.
1566 * plugin.c: Likewise.
1567 * postreload-gcse.c: Likewise.
1568 * postreload.c: Likewise.
1569 * predict.c: Likewise.
1570 * profile.c: Likewise.
1571 * real.c: Likewise.
1572 * regcprop.c: Likewise.
1573 * reginfo.c: Likewise.
1574 * regmove.c: Likewise.
1575 * reorg.c: Likewise.
1576 * resource.c: Likewise.
1577 * rtl.c: Likewise.
1578 * rtlanal.c: Likewise.
1579 * sched-deps.c: Likewise.
1580 * sched-ebb.c: Likewise.
1581 * sched-rgn.c: Likewise.
1582 * sdbout.c: Likewise.
1583 * sel-sched-dump.c: Likewise.
1584 * sel-sched-ir.c: Likewise.
1585 * simplify-rtx.c: Likewise.
1586 * stmt.c: Likewise.
1587 * stor-layout.c: Likewise.
1588 * store-motion.c: Likewise.
1589 * targhooks.c: Likewise.
1590 * tree-cfg.c: Likewise.
1591 * tree-cfgcleanup.c: Likewise.
1592 * tree-dump.c: Likewise.
1593 * tree-eh.c: Likewise.
1594 * tree-inline.c: Likewise.
1595 * tree-nomudflap.c: Likewise.
1596 * tree-object-size.c: Likewise.
1597 * tree-optimize.c: Likewise.
1598 * tree-outof-ssa.c: Likewise.
1599 * tree-phinodes.c: Likewise.
1600 * tree-profile.c: Likewise.
1601 * tree-ssa-ccp.c: Likewise.
1602 * tree-ssa-coalesce.c: Likewise.
1603 * tree-ssa-live.c: Likewise.
1604 * tree-ssa-loop-niter.c: Likewise.
1605 * tree-ssa-loop-prefetch.c: Likewise.
1606 * tree-ssa-loop.c: Likewise.
1607 * tree-ssa-structalias.c: Likewise.
1608 * tree-ssa-uninit.c: Likewise.
1609 * tree-ssa.c: Likewise.
1610 * tree-vect-data-refs.c: Likewise.
1611 * tree-vect-loop-manip.c: Likewise.
1612 * tree-vect-loop.c: Likewise.
1613 * tree-vect-patterns.c: Likewise.
1614 * tree-vect-stmts.c: Likewise.
1615 * tree-vrp.c: Likewise.
1616 * varasm.c: Likewise.
1617 * vec.c: Likewise.
1618 * web.c: Likewise.
1619 * xcoffout.c: Likewise.
1620
1621 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
1622
1623 * gengtype.c (write_field_root): New function.
1624 (write_root): Use it.
1625
1626 2010-07-07 Wei Guozhi <carrot@google.com>
1627
1628 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
1629 of lowest bits to lshift/compare): Add a missing line.
1630
1631 2010-07-07 Wei Guozhi <carrot@google.com>
1632
1633 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
1634 of lowest bits to lshift/compare): New.
1635
1636 2010-07-07 Tom Tromey <tromey@redhat.com>
1637
1638 * doc/tm.texi: Update.
1639 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
1640 Add @hook.
1641 * target.def (want_debug_pub_sections): New hook.
1642 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
1643 * dwarf2out.c (add_pubname_string): Check
1644 targetm.want_debug_pub_sections.
1645 (add_pubname): Likewise.
1646 (add_pubtype): Likewise.
1647
1648 2010-07-07 Jie Zhang <jie@codesourcery.com>
1649
1650 * genautomata.c (output_automata_list_min_issue_delay_code):
1651 Correctly decompress min_issue_delay.
1652
1653 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
1654
1655 PR rtl-optimization/44404
1656 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
1657 possible, use reg_overlap_mentioned_p instead.
1658
1659 2010-07-07 Duncan Sands <baldrick@free.fr>
1660
1661 PR middle-end/41355
1662 * tree.c (build_function_type_skip_args): Copy the original type using
1663 build_distinct_type_copy rather than copy_node.
1664
1665 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
1666
1667 PR target/44850
1668 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
1669 revision 161876.
1670 (ix86_expand_prologue): Likewise.
1671 (ix86_handle_fndecl_attribute): Likewise.
1672 (ix86_asm_declare_function_name): Likewise.
1673 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1674 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1675 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
1676 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
1677 * doc/extend.texi: Likewise.
1678
1679 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
1680
1681 PR target/44844
1682 * config/i386/i386.md (rdrand<mode>): Changed to expand to
1683 retry if the carry flag isn't valid.
1684 (rdrand<mode>_1): New.
1685
1686 2010-07-07 Richard Guenther <rguenther@suse.de>
1687
1688 PR middle-end/44790
1689 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
1690 for expanding the constant offset for MEM_REFs.
1691
1692 2010-07-07 Richard Guenther <rguenther@suse.de>
1693
1694 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
1695 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
1696 * gimple.h (is_gimple_operand): Remove.
1697 * gimple.c (is_gimple_operand): Likewise.
1698 (walk_gimple_op): Fix wi->val_only setting for calls.
1699 * tree-cfg.c (verify_gimple_call): Fix argument validation.
1700 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
1701 invalid gimple calls.
1702
1703 2010-07-06 Jan Hubicka <jh@suse.cz>
1704
1705 * lto-cgraph.c (output_cgraph): Add missing declaration.
1706
1707 2010-07-06 Jan Hubicka <jh@suse.cz>
1708
1709 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
1710 partition.
1711
1712 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
1713
1714 * doc/gimple.texi (GIMPLE_DEBUG): Document.
1715 * doc/rtl.texi (Debug Information): New node.
1716 (NOTE_INSN_VAR_LOCATION): Document.
1717 (debug_insn): Likewise.
1718 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
1719
1720 2010-07-07 Jan Hubicka <jh@suse.cz>
1721
1722 With parts by Richard Guenther.
1723
1724 PR middle-end/44813
1725 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
1726 for functions passed by reference.
1727 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
1728 in memory when passed by reference.
1729 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
1730 beggining.
1731 * ipa-split.c (split_function): Cleanup way return value is passed;
1732 handle SSA DECL_BY_REFERENCE retvals.
1733 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
1734 DECL_BY_REFERENCE is set.
1735 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
1736 find_what_p_points_to): Handle RESULT_DECL.
1737 * tree-inline.c (declare_return_variable): Get new entry_block argument;
1738 when passing by reference ensure that RESULT_DECL is gimple_val.
1739 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
1740 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
1741
1742 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
1743
1744 PR rtl-optimization/44787
1745 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
1746 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
1747
1748 2010-07-06 Jan Hubicka <jh@suse.cz>
1749
1750 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
1751 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
1752 with body can prevail.
1753 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
1754 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
1755 * cgraph.c (cgraph_get_node_or_alias): New function.
1756 * cgraph.h (cgraph_get_node_or_alias): Declare.
1757
1758 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
1759
1760 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
1761 support.
1762 (ix86_expand_prologue): Likewise.
1763 (ix86_handle_fndecl_attribute): Likewise.
1764 (ix86_asm_declare_function_name): New function for
1765 ASM_DECLARE_FUNCTION_NAME.
1766 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
1767 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
1768 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
1769 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
1770 * doc/extend.texi: Adjust documentation about ms_hook_prologue
1771 attribute.
1772
1773 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
1774
1775 * config/i386/i386.md (immediate_operand): New mode attribute.
1776
1777 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
1778 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
1779 using P mode iterator.
1780 (pro_epilogue_adjust_stack_di_2): Rename from
1781 pro_epilogue_adjust_stack_rex64_2.
1782
1783 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
1784
1785 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
1786
1787 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
1788 through gen_mov_insv_1 function pointer.
1789 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
1790 gen_truncxf<mode>2 through gen_truncxf function pointer.
1791 (remainder<mode>3): Ditto.
1792 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
1793 (allocate_stack): Call gen_allocate_stack_worker_64 or
1794 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
1795 function pointer.
1796 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
1797 function pointer.
1798
1799 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
1800
1801 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
1802 operand constraint instead of <r><i>m.
1803
1804 2010-07-06 Richard Guenther <rguenther@suse.de>
1805
1806 PR middle-end/44828
1807 * convert.c (convert_to_integer): Watch out for overflowing
1808 MULT_EXPR as well.
1809
1810 2010-07-05 Jan Hubicka <jh@suse.cz>
1811
1812 * lto-streamer.c (write_symbol_vec): Rename to ...
1813 (write_symbol) ... this one; write only symbol given and when
1814 present in cache. Sanity check that what is defined is present
1815 in cgraph/varpool with body/finalized decl.
1816 (write_symbols_of_kind): Remove.
1817 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
1818 pairs to produce symtab.
1819 (produce_asm_for_decls): Update call of produce_symtab; don't do so
1820 when doing WPA streaming.
1821
1822 2010-07-05 Jan Hubicka <jh@suse.cz>
1823
1824 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
1825 function is still available to fold into.
1826
1827 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
1828
1829 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
1830 * function.h (struct_function): Change type of local_decls field
1831 to a VEC.
1832 (add_local_decl): New function.
1833 (FOR_EACH_LOCAL_DECL): New macro.
1834 * cfgexpand.c (init_vars_expansion): Adjust for new type of
1835 cfun->local_decls.
1836 (estimated_stack_frame_size): Likewise.
1837 (expand_used_vars): Likewise.
1838 * cgraphbuild.c (build_cgraph_edges): Likewise.
1839 * function.c (instantiate_decls_1): Likewise.
1840 * ipa-struct-reorg.c (build_data_structure): Likewise.
1841 * ipa-type-escape.c (analyze_function): Likewise.
1842 * lto-streamer-in.c (input_function): Likewise.
1843 * lto-streamer-out.c (output_function): Likewise.
1844 * tree-ssa-live.c (remove_unused_locals): Likewise.
1845 * tree.c (free_lang_data_in_decl): Likewise.
1846 (find_decls_types_in_node): Likewise.
1847 * omp-low.c (remove_exit_barrier): Likewise.
1848 (expand_omp_taskreg): Likewise.
1849 (list2chain): Rename to...
1850 (vec2chain): ...this. Adjust.
1851 * cgraphunit.c (assemble_thunk): Call add_local_decl.
1852 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
1853 * gimple-low.c (record_vars_into): Likewise.
1854 * tree-inline.c (remap_decls): Likewise.
1855 (declare_return_variable): Likewise.
1856 (declare_inline_vars): Likewise.
1857 (copy_forbidden): Adjust for new type of cfun->local_decls.
1858 (add_local_variables): New function.
1859 (expand_call_inline): Call it.
1860 (tree_function_versioning): Likewise.
1861
1862 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
1863
1864 AVX Programming Reference (June, 2010)
1865 * config/i386/cpuid.h (bit_F16C): New.
1866 (bit_RDRND): Likewise.
1867 (bit_FSGSBASE): Likewise.
1868
1869 * config/i386/i386-builtin-types.def: Add
1870 "DEF_FUNCTION_TYPE (UINT16)", function types for
1871 float16 <-> float conversions and
1872 "DEF_FUNCTION_TYPE (VOID, UINT64)".
1873
1874 * config/i386/i386-c.c (ix86_target_macros_internal): Support
1875 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
1876 OPTION_MASK_ISA_F16C.
1877
1878 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
1879 (OPTION_MASK_ISA_RDRND_SET): Likewise.
1880 (OPTION_MASK_ISA_F16C_SET): Likewise.
1881 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
1882 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
1883 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
1884 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
1885 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
1886 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
1887 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
1888 (override_options): Handle them.
1889 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
1890 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
1891 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
1892 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
1893 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
1894 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
1895 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
1896 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
1897 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
1898 (bdesc_args): Likewise.
1899 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
1900 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
1901 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
1902 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
1903 Handle non-memory store.
1904
1905 * config/i386/i386.h (TARGET_FSGSBASE): New.
1906 (TARGET_RDRND): Likewise.
1907 (TARGET_F12C): Likewise.
1908
1909 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
1910 (UNSPEC_VCVTPS2PH): Likewise.
1911 (UNSPECV_RDFSBASE): Likewise.
1912 (UNSPECV_RDGSBASE): Likewise.
1913 (UNSPECV_WRFSBASE): Likewise.
1914 (UNSPECV_WRGSBASE): Likewise.
1915 (UNSPECV_RDRAND): Likewise.
1916 (rdfsbase<mode>): Likewise.
1917 (rdgsbase<mode>): Likewise.
1918 (wrfsbase<mode>): Likewise.
1919 (wrgsbase<mode>): Likewise.
1920 (rdrand<mode>): Likewise.
1921
1922 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
1923
1924 * config/i386/immintrin.h (_rdrand_u16): New.
1925 (_rdrand_u32): Likewise.
1926 (_readfsbase_u32): Likewise.
1927 (_readfsbase_u64): Likewise.
1928 (_readgsbase_u32): Likewise.
1929 (_readgsbase_u64): Likewise.
1930 (_writefsbase_u32): Likewise.
1931 (_writefsbase_u64): Likewise.
1932 (_writegsbase_u32): Likewise.
1933 (_writegsbase_u64): Likewise.
1934 (_rdrand_u64): Likewise.
1935 (_cvtsh_ss): Likewise.
1936 (_mm_cvtph_ps): Likewise.
1937 (_mm256_cvtph_ps): Likewise.
1938 (_cvtss_sh): Likewise.
1939 (_mm_cvtps_ph): Likewise.
1940 (_mm256_cvtps_ph): Likewise.
1941
1942 * config/i386/sse.md (vcvtph2ps): New.
1943 (*vcvtph2ps_load): Likewise.
1944 (vcvtph2ps256): Likewise.
1945 (vcvtps2ph): Likewise.
1946 (*vcvtps2ph): Likewise.
1947 (*vcvtps2ph_store): Likewise.
1948 (vcvtps2ph256): Likewise.
1949
1950 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
1951
1952 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
1953
1954 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
1955
1956 PR bootstrap/44512
1957 * genenums.c (main): Output include of insn-constants.h
1958 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
1959
1960 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
1961
1962 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
1963 (override_options): Initialize it.
1964 (ix86_expand_prologue): Use it.
1965
1966 2010-07-05 Jakub Jelinek <jakub@redhat.com>
1967
1968 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
1969
1970 2010-07-05 Anatoly Sokolov <aesok@post.ru>
1971
1972 * double-int.h (fit_double_type): Remove declaration.
1973 * double-int.c (fit_double_type): Remove function.
1974 * tree.h (int_fits_type_p): Adjust prototype.
1975 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
1976 instead of fit_double_type.
1977 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
1978 instead of fit_double_type and build_int_cst_wide.
1979 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
1980 instead of fit_double_type and build_int_cst_wide.
1981 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
1982 of fit_double_type.
1983
1984 2010-07-05 Jan Hubicka <jh@suse.cz>
1985
1986 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
1987 in_other_partition.
1988 * lto-cgraph.c (referenced_from_other_partition_p,
1989 reachable_from_other_partition_p): Use in_other_partition flags.
1990 (output_node, output_varpool_node): COMDAT nodes always have private
1991 copies and thus are never used from other partition.
1992
1993 2010-07-05 Anatoly Sokolov <aesok@post.ru>
1994
1995 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
1996 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
1997 * config/ia64/ia64.c Include reload.h.
1998 (ia64_memory_move_cost): New function.
1999 (TARGET_MEMORY_MOVE_COST): Define.
2000 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
2001 memory_move_cost.
2002
2003 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
2004
2005 PR middle-end/42505
2006 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
2007 comments about cost model.
2008 (try_add_cand_for): Add second strategy for choosing initial set
2009 based on original IVs, controlled by ORIGINALP argument.
2010 (get_initial_solution): Add ORIGINALP argument.
2011 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
2012 (find_optimal_iv_set): Try two different strategies for choosing
2013 the IV set, and return the one with lower cost.
2014
2015 2010-07-05 Richard Guenther <rguenther@suse.de>
2016
2017 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
2018
2019 2010-07-05 Richard Guenther <rguenther@suse.de>
2020
2021 * tree.c (reference_alias_ptr_type): New function.
2022 * tree.h (reference_alias_ptr_type): Declare.
2023 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
2024 allow non-TARGET_MEM_REF new refs.
2025 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
2026 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
2027 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
2028 (create_mem_ref): Get alias pointer type. Adjust calls to
2029 create_mem_ref_raw.
2030 (maybe_fold_tmr): Likewise.
2031 * tree-flow.h (create_mem_ref): Adjust prototype.
2032
2033 2010-07-05 Jakub Jelinek <jakub@redhat.com>
2034
2035 PR c++/44808
2036 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
2037 *from_p is VAR_DECL.
2038
2039 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
2040
2041 * tree.h (build_call_list): Remove.
2042 * tree.c (build_call_list): Remove.
2043
2044 2010-07-05 Richard Guenther <rguenther@suse.de>
2045
2046 * double-int.h (double_int_sub): Declare.
2047 * double-int.c (double_int_sub): New function.
2048 * dwarf2out.c (field_byte_offset): Use it.
2049 * fixed-value.c (do_fixed_add): Likewise.
2050 (do_fixed_multiply): Likewise.
2051 (do_fixed_divide): Likewise.
2052 * tree-predcom.c (add_ref_to_chain): Likewise.
2053 (determine_roots_comp): Likewise.
2054 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
2055
2056 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
2057
2058 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
2059 implementations.
2060
2061 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
2062
2063 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
2064 * arm-modes.def (CC_NOTB): Don't define.
2065 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
2066 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
2067 (LTUGEU): New code_iterator.
2068 (cnb, optab): New corresponding code_attrs.
2069 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
2070 to canonical form. Operands 1 and 2 are commutative. Parametrize
2071 using LTUGEU.
2072 (addsi3_carryin_shift_<optab>): Likewise.
2073 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
2074 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
2075 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
2076 (subsi3_compare): Renamed from subsi3_compare0_c.
2077 Change CC_NOTB to CC.
2078 (arm_subsi3_insn): Allow constants for operand 0.
2079 (compare_scc peephole for eq case): New.
2080 (compare_scc splitters): Change CC_NOTB to CC.
2081
2082 2010-07-05 Richard Guenther <rguenther@suse.de>
2083
2084 * tree-ssa-loop-im.c (for_each_index): Do not handle
2085 ALIGN_INDIRECT_REF.
2086 (gen_lsm_tmp_name): Likewise.
2087 * tree-dump.c (dequeue_and_dump): Likewise.
2088 * tree-pretty-print.c (dump_generic_node): Likewise.
2089 (op_code_prio): Likewise.
2090 (op_symbol_code): Likewise.
2091 * tree.c (staticp): Likewise.
2092 (build1_stat): Likewise.
2093 * tree.h (INDIRECT_REF_P): Likewise.
2094 * fold-const.c (maybe_lvalue_p): Likewise.
2095 (operand_equal_p): Likewise.
2096 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2097 (ao_ref_init_from_vn_reference): Likewise.
2098 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
2099 (find_interesting_uses_address): Likewise.
2100 * dwarf2out.c (loc_list_from_tree): Likewise.
2101 * gimplify.c (gimplify_expr): Likewise.
2102 * tree-eh.c (tree_could_trap_p): Likewise.
2103 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2104 * cfgexpand.c (expand_debug_expr): Likewise.
2105 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2106 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2107 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
2108 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
2109 * tree-ssa-operands.c (get_expr_operands): Likewise.
2110 * expr.c (safe_from_p): Likewise.
2111 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
2112 * tree-vect-data-refs.c (vect_setup_realignment): Build
2113 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
2114 * tree-vect-stmts.c (vectorizable_load): Likewise.
2115 * tree.def (ALIGN_INDIRECT_REF): Remove.
2116
2117 2010-07-05 Richard Guenther <rguenther@suse.de>
2118
2119 PR tree-optimization/44784
2120 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
2121 for inserted stmts.
2122 (find_or_generate_expression): Fix SCCVN insertion check.
2123
2124 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
2125
2126 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
2127 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2128 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
2129 directives.
2130
2131 2010-07-05 Ira Rosen <irar@il.ibm.com>
2132
2133 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
2134 statements that are not vectorized.
2135 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
2136 in INSIDE_COST.
2137
2138 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
2139
2140 PR bootstrap/44820
2141 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
2142
2143 2010-07-05 Richard Guenther <rguenther@suse.de>
2144
2145 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
2146 RESULT_DECLs properly.
2147
2148 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
2149
2150 PR rtl-optimization/44695
2151 * config/i386/i386.md (extract_code): Removed.
2152 (<u>divmodqi4): Likewise.
2153 (divmodqi4): New.
2154 (udivmodqi4): Likewise.
2155 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
2156 (udivmodhiqi3): Likewise.
2157
2158 2010-07-04 Jan Hubicka <jh@suse.cz>
2159
2160 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
2161
2162 2010-07-04 Jan Hubicka <jh@suse.cz>
2163
2164 * cgraphunit.c (init_cgraph): Only initialize dump file if it
2165 is not already initialized.
2166
2167 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
2168
2169 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
2170 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
2171 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
2172 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
2173 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
2174 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
2175 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
2176 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
2177 (sync_new_nand_optab): Redefine as macros.
2178 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
2179 Delete.
2180 (direct_optab_index): New enum.
2181 (direct_optab_d): New structure.
2182 (direct_optab): New typedef.
2183 (direct_optab_table): Declare.
2184 (direct_optab_handler, set_direct_optab_handler): New functions.
2185 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
2186 (sync_lock_release_optab): New macros.
2187 * optabs.c (direct_optab_table): New variable.
2188 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
2189 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
2190 cmpstr_optab and cmpstrn_optab.
2191 (emit_conditional_move): Likewise for movcc_optab.
2192 (can_conditionally_move_p): Likewise for movcc_gen_code.
2193 (init_insn_codes): Clear direct_optab_table.
2194 (init_optabs): Don't initialize the new "direct optabs" here.
2195 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
2196 vcond_gen_code.
2197 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
2198 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
2199 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
2200 (expand_sync_operation): Likewise other sync_*_optabs.
2201 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
2202 to sync_compare_and_swap_optab.
2203 (expand_sync_lock_test_and_set): Use direct_optab_handler for
2204 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
2205 to the names of both.
2206 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
2207 cmpstr_optab and cmpstrn_optab.
2208 (expand_builtin_lock_release): Likewise sync_lock_release.
2209 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
2210 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
2211 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
2212 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
2213 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
2214 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
2215 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
2216 (sync_lock_test_and_set, sync_lock_release): Delete.
2217 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
2218 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
2219 * genopinit.c (optabs): Use set_direct_optab_handler for the new
2220 macro optabs.
2221 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
2222 the "optab" local variable. Use direct_optab_handler for optab and
2223 sync_compare_and_swap_optab.
2224 * reload1.c (reload_in_optab, reload_out_optab): Delete.
2225 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
2226 reload_in_optab and reload_out_optab.
2227 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
2228 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
2229 * config/pa/pa.c (pa_secondary_reload): Likewise.
2230 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
2231 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
2232 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
2233 (VMSupportsCS8_builtin): Likewise.
2234
2235 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
2236
2237 * optabs.h (optab_handlers): Change type of insn_code to int.
2238 (optab_handler, set_optab_handler, convert_optab_handler)
2239 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
2240 CODE_FOR_nothing".
2241 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
2242 (init_insn_codes): Zero both the above arrays.
2243 (init_optabs): Never call init_insn_codes first time around.
2244
2245 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
2246
2247 * optabs.h (optab_handler, convert_optab_handler): Turn into
2248 inline functions that return an insn code.
2249 (set_optab_handler, set_convert_optab_handler): New functions.
2250 * builtins.c: Replace optab_handler(X)->insn_code with
2251 optab_handler or set_optab_handler thoughout. Likewise
2252 convert_optab_handler(X)->insn_code with convert_optab_handler
2253 and set_convert_optab_handler.
2254 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
2255 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
2256 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
2257 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
2258 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
2259 config/spu/spu.c: Likewise.
2260
2261 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
2262
2263 PR target/44531
2264 * config.gcc (sh*-*-*): Use regular expressions instead of
2265 the 'i' modifier for sed substitutions.
2266
2267 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
2268
2269 * gimple.c (gimple_body): Comments added.
2270
2271 2010-07-04 Richard Guenther <rguenther@suse.de>
2272
2273 PR middle-end/44809
2274 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
2275 of an INDIRECT_REF.
2276
2277 2010-07-04 Richard Guenther <rguenther@suse.de>
2278
2279 PR tree-optimization/44479
2280 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
2281 extra SSA name copy statements which preserves points-to
2282 information.
2283 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2284 Copy points-to information for all pointers. Properly handle
2285 MEM_REFs.
2286 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
2287 copy statements.
2288 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
2289 dependency.
2290
2291 2010-07-04 Richard Guenther <rguenther@suse.de>
2292
2293 PR middle-end/44785
2294 * tree-inline.c (initialize_inlined_parameters): Do not
2295 re-use pointer-map slot over remap_type call.
2296
2297 2010-07-04 Richard Guenther <rguenther@suse.de>
2298
2299 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
2300
2301 2010-07-04 Richard Guenther <rguenther@suse.de>
2302
2303 PR tree-optimization/44656
2304 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
2305 again after value-replacing in the defintions lhs.
2306
2307 2010-07-04 Ira Rosen <irar@il.ibm.com>
2308 Revital Eres <eres@il.ibm.com>
2309
2310 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
2311 Document new arguments.
2312 * doc/tm.texi: Regenerate.
2313 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
2314 Handle unaligned store.
2315 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
2316 * target.def (builtin_vectorization_cost): Add new arguments.
2317 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
2318 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
2319 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
2320 (vect_vfa_segment_size): Fix indentation.
2321 * tree-vectorizer.h (struct _vect_peel_info): New.
2322 (struct _vect_peel_extended_info): New.
2323 (struct _loop_vec_info): Add new field for peeling hash table and a
2324 macro for its access.
2325 (VECT_MAX_COST): Define.
2326 (vect_get_load_cost): Declare.
2327 (vect_get_store_cost, vect_get_known_peeling_cost,
2328 vect_get_single_scalar_iteraion_cost): Likewise.
2329 (vect_supportable_dr_alignment): Add new argument.
2330 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
2331 field.
2332 (destroy_loop_vec_info): Free peeling hash table.
2333 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
2334 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
2335 vect_analyze_slp. Fix indentation.
2336 (vect_get_single_scalar_iteraion_cost): New function.
2337 (vect_get_known_peeling_cost): Likewise.
2338 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
2339 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
2340 statement. Move outside cost calculation inside unknown peeling case.
2341 Call vect_get_known_peeling_cost for known amount of peeling.
2342 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
2343 reference to the print message of forced alignment.
2344 (vect_verify_datarefs_alignment): Update call to
2345 vect_supportable_dr_alignment.
2346 (vect_get_data_access_cost): New function.
2347 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
2348 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
2349 vect_peeling_hash_choose_best_peeling): Likewise.
2350 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
2351 to store all the accesses in the loop and find best possible access to
2352 align using peeling for known alignment case. For unknown alignment
2353 check if stores are preferred or if peeling is worthy.
2354 (vect_find_same_alignment_drs): Analyze pairs of loads too.
2355 (vect_supportable_dr_alignment): Add new argument and check aligned
2356 accesses according to it.
2357 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
2358 (cost_for_stmt): Call vect_get_stmt_cost.
2359 (vect_model_simple_cost): Likewise.
2360 (vect_model_store_cost): Call vect_get_stmt_cost. Call
2361 vect_get_store_cost to calculate the cost of the statement.
2362 (vect_get_store_cost): New function.
2363 (vect_model_load_cost): Call vect_get_stmt_cost. Call
2364 vect_get_load_cost to calculate the cost of the statement.
2365 (vect_get_load_cost): New function.
2366 (vectorizable_store): Update call to vect_supportable_dr_alignment.
2367 (vectorizable_load): Likewise.
2368 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
2369 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
2370 arguments. Handle unaligned store.
2371 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
2372 (rs6000_builtin_support_vector_misalignment): Return true for word and
2373 double word alignments for VSX.
2374 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
2375 vect_supportable_dr_alignment and builtin_vectorization_cost.
2376
2377 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2378
2379 PR target/44597
2380 * config/pa/predicates.md (prefetch_cc_operand): Remove.
2381 (prefetch_nocc_operand): Likewise.
2382 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
2383 (prefetch_20): New insn.
2384 (prefetch_cc): Remove.
2385 (prefetch_nocc): Likewise.
2386
2387 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2388
2389 * expr.c (vector_mode_valid_p): Move to c-common.c.
2390 * expr.h (vector_mode_valid_p): Do not declare here.
2391 * system.h: Poison GCC_EXPR_H in front-ends.
2392 * Makefile.in: Update dependencies.
2393
2394 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2395
2396 PR target/44705
2397 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
2398
2399 2010-07-03 Jan Hubicka <jh@suse.cz>
2400
2401 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
2402 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
2403 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
2404 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
2405 Likewise.
2406
2407 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
2408 Update timevars.V
2409 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
2410 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
2411 TV_IPA_LTO_DECL_OUT): New.
2412 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
2413
2414 2010-07-03 Jan Hubicka <jh@suse.cz>
2415
2416 * ipa-inline.c (update_edge_key): Break out from ...
2417 update_callers_keys): ... here;
2418 (update_callee_keys): Update only the edges from caller to callee.
2419 (update_all_calle_keys): Do what update_calle_keys did.
2420 (decide_inlining_of_small_functions): Avoid recomputing of all
2421 callees when badness increase.
2422
2423 2010-07-03 Jie Zhang <jie@codesourcery.com>
2424
2425 * config/arm/arm.c (arm_attr_length_move_neon): New.
2426 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
2427 * config/arm/neon.md (define_mode_attr V_slen): Remove.
2428 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
2429 to compute length attribute.
2430
2431 2010-07-03 Jie Zhang <jie@codesourcery.com>
2432
2433 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
2434 as predicate for operand 1 and remove its constraint.
2435 * config/arm/predicates.md (vfp_register_operand): New.
2436 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
2437 (*push_fp_multi): Likewise.
2438
2439 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
2440
2441 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
2442
2443 2010-07-03 Jan Hubicka <jh@suse.cz>
2444
2445 * config/i386/i386.c (override_options): Revert accidental commit.
2446
2447 2010-07-02 Le-Chun Wu <lcwu@google.com>
2448
2449 PR c++/44128
2450 * doc/invoke.texi: Update documentation of -Wshadow.
2451
2452 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
2453 Julian Brown <julian@codesourcery.com>
2454 Sandra Loosemore <sandra@codesourcery.com>
2455
2456 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
2457 comparisons. Adjust to take both operands.
2458 (arm_select_cc_mode): Handle DImode comparisons.
2459 (arm_gen_compare_reg): Generate a scratch register for DImode
2460 comparisons which require one. Use xor for Thumb equality checks.
2461 (arm_const_double_by_immediates): New.
2462 (arm_print_operand): Allow 'Q' and 'R' for constants.
2463 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
2464 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
2465 arm_canonicalize_comparison.
2466 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
2467 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
2468 prototype.
2469 (arm_const_double_by_immediates): Declare.
2470 * config/arm/constraints.md (Di): New constraint.
2471 * config/arm/predicates.md (arm_immediate_di_operand)
2472 (arm_di_operand, cmpdi_operand): New.
2473 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
2474 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
2475 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
2476 (cstoredi4): Handle non-Cirrus also.
2477
2478 2010-07-02 Julian Brown <julian@codesourcery.com>
2479 Sandra Loosemore <sandra@codesourcery.com>
2480
2481 PR target/43703
2482 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
2483 (smax<mode>3): Disable for NEON float modes when
2484 flag_unsafe_math_optimizations is false.
2485 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
2486 (*mul<mode>3_neon)
2487 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
2488 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
2489 for NEON float modes when flag_unsafe_math_optimizations is false.
2490 (quad_halves_<code>v4sf): Only enable if
2491 flag_unsafe_math_optimizations is true.
2492 * doc/invoke.texi (ARM Options): Add note about floating point
2493 vectorization requiring -funsafe-math-optimizations.
2494
2495 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2496 Julian Brown <julian@codesourcery.com>
2497
2498 * config/arm/neon.md (UNSPEC_VABA): Delete.
2499 (UNSPEC_VABAL): Delete.
2500 (UNSPEC_VABS): Delete.
2501 (UNSPEC_VMUL_N): Delete.
2502 (adddi3_neon): New.
2503 (subdi3_neon): New.
2504 (mul<mode>3add<mode>_neon): Make the pattern named.
2505 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2506 (neon_vadd<mode>): Replace with define_expand, and move the remaining
2507 unspec parts...
2508 (neon_vadd<mode>_unspec): ...to this.
2509 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
2510 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
2511 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
2512 (neon_vaba<mode>): Rewrite in terms of vabd.
2513 (neon_vabal<mode>): Rewrite in terms of vabdl.
2514 (neon_vabs<mode>): Rewrite without unspec.
2515 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
2516 (*arm_subdi3): Likewise.
2517 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
2518 No_op attribute to disable assembly output checks.
2519 * config/arm/arm_neon.h: Regenerated.
2520 * doc/arm-neon-intrinsics.texi: Regenerated.
2521
2522 2010-07-02 Jan Hubicka <jh@suse.cz>
2523
2524 * ipa-split.c (split_function): For aggregate values, set the return
2525 slot optimization bit. When passing DECL_BY_REFERENCE, produce
2526 *<retval> = fncall.part ().
2527 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
2528
2529 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2530
2531 * config/arm/neon.md (UNSPEC_VAND): Delete.
2532 (UNSPEC_VBIC): Delete.
2533 (UNSPEC_VCLZ): Delete.
2534 (UNSPEC_VCNT): Delete.
2535 (UNSPEC_VEOR): Delete.
2536 (UNSPEC_VORN): Delete.
2537 (UNSPEC_VORR): Delete.
2538 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
2539 core registers too.
2540 (anddi3_neon): Likewise.
2541 (orndi3_neon): Likewise.
2542 (bicdi3_neon): Likewise.
2543 (xordi3_neon): Likewise.
2544 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
2545 rid of unspec and handle unused operand.
2546 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
2547 * config/arm/predicates.md (imm_for_neon_logic_operand):
2548 Require TARGET_NEON.
2549 (imm_for_neon_inv_logic_operand): Likewise.
2550 * config/arm/arm.md (define_split for logical_binary_operator):
2551 Disable for NEON registers.
2552 (anddi3): Add new define_expand, and rename the insn. Disable
2553 this insn for NEON, where anddi3_neon now applies.
2554 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
2555 (iordi3): As for anddi3.
2556 (xordi3): Likewise.
2557 * config/arm/neon.ml (Vand): Split DImode variants and mark them
2558 as No_op to disable testing for exact instruction match.
2559 (Vorr): Likewise.
2560 (Veor): Likewise.
2561 (Vbic): Likewise.
2562 (Vorn): Likewise.
2563 * config/arm/arm_neon.h: Regenerated.
2564 * doc/arm-neon-intrinsics.texi: Regenerated.
2565
2566 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
2567
2568 * expr.h (emit_stack_probe): Declare.
2569 * explow.c (emit_stack_probe): Make global.
2570 (anti_adjust_stack_and_probe): Fix comments.
2571 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
2572 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2573 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2574 * config/sparc/sparc.c: Include except.h.
2575 (sparc_emit_probe_stack_range): New function.
2576 (output_probe_stack_range): Likewise.
2577 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
2578 built-in stack checking is enabled.
2579 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
2580 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
2581 (probe_stack_range): New insn.
2582
2583 2010-07-02 Richard Guenther <rguenther@suse.de>
2584
2585 PR target/43958
2586 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
2587 for argument alignment.
2588
2589 2010-07-02 Jan Hubicka <jh@suse.cz>
2590
2591 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
2592 walk backwards from entry_bb to check only those basic block of header
2593 that might lead to execution of split part.
2594 (consider_split) ... here.
2595 (find_return_bb): Allow assignment in return BB.
2596 (find_retval): New.
2597 (split_function): Fix name of cloned function; take care of updating
2598 return value in return_bb containing move.
2599
2600 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
2601
2602 PR target/44771
2603 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
2604 used variable insn.
2605
2606 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
2607
2608 * implicit-zee.c (combine_reaching_defs): Fix long lines.
2609 (is_set_with_extension_DI): Delete.
2610 (struct zero_extend_info): New structure.
2611 (add_removable_zero_extend): New function.
2612 (find_removable_zero_extends): Use note_stores to find SETs.
2613 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
2614
2615 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
2616
2617 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
2618 is_miss_rate_acceptable. Pull total_positions computation
2619 out of the loops. Early return if miss_positions exceeds
2620 the acceptable threshold.
2621 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
2622 is_miss_rate_acceptable after renaming of compute_miss_rate.
2623
2624 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
2625
2626 PR middle-end/44576
2627 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
2628 of 1000) for miss rate if the address diference is greater than or
2629 equal to the cache line size (the two reference will never hit the
2630 same cache line).
2631
2632 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
2633
2634 PR target/42835
2635 * config/arm/arm-modes.def (CC_NOTB): New mode.
2636 * config/arm/arm.c (get_arm_condition_code): Handle it.
2637 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
2638 * config/arm/arm.md (subsi3_compare0_c): New pattern.
2639 (compare_scc): Now a define_and_split. Add a number of extra
2640 splitters before it.
2641
2642 PR target/42172
2643 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
2644 and ZERO_EXTEND.
2645 (arm_rtx_costs_1): Likewise.
2646 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
2647 * config/arm/arm.md (is_arch6): New attribute.
2648 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
2649 extendqisi2): Tighten the code somewhat, avoiding invalid
2650 RTL to occur in the expander patterns.
2651 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
2652 (thumb1_zero_extendhisi2_v6): Delete.
2653 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
2654 (thumb1_extendhisi2_v6): Delete.
2655 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
2656 (thumb1_extendqisi2_v6): Delete.
2657 (zero_extendhisi2 for register input splitter): New.
2658 (zero_extendqisi2 for register input splitter): New.
2659 (thumb1_extendhisi2 for register input splitter): New.
2660 (extendhisi2 for register input splitter): New.
2661 (extendqisi2 for register input splitter): New.
2662 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
2663 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
2664 and add support for a register alternative requiring a split.
2665 (thumb1_zero_extendqisi2): Likewise.
2666 (arm_zero_extendqisi2): Likewise.
2667 (arm_extendhisi2): Likewise.
2668 (arm_extendqisi2): Likewise.
2669
2670 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2671
2672 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
2673 instead of an unspec.
2674 (neon_expand_vector_init): Likewise.
2675 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
2676 (UNSPEC_VDUP_LANE): Delete.
2677 (UNSPEC VDUP_N): Delete.
2678 (UNSPEC_VGET_HIGH): Delete.
2679 (UNSPEC_VGET_LANE): Delete.
2680 (UNSPEC_VGET_LOW): Delete.
2681 (UNSPEC_VMVN): Delete.
2682 (UNSPEC_VSET_LANE): Delete.
2683 (V_double_vector_mode): New.
2684 (vec_set<mode>_internal): Make code emitted match that for the
2685 corresponding intrinsics.
2686 (vec_setv2di_internal): Likewise.
2687 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
2688 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
2689 (neon_vset_lane<mode>): Combine double and quad patterns and
2690 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
2691 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
2692 (neon_vdup_n<mode>): Rewrite RTL without unspec.
2693 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
2694 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
2695 with neon_vdup_lanev2di, adjusting the pattern from the latter
2696 to be predicable for consistency.
2697 (neon_vdup_lane<mode>_internal): New.
2698 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
2699 to avoid using an unspec.
2700 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
2701 (neon_vdup_lanev2di): Turn into a define_expand.
2702 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
2703 (neon_vget_high<mode>): Replace with....
2704 (neon_vget_highv16qi): New pattern using canonical RTL.
2705 (neon_vget_highv8hi): Likewise.
2706 (neon_vget_highv4si): Likewise.
2707 (neon_vget_highv4sf): Likewise.
2708 (neon_vget_highv2di): Likewise.
2709 (neon_vget_low<mode>): Replace with....
2710 (neon_vget_lowv16qi): New pattern using canonical RTL.
2711 (neon_vget_lowv8hi): Likewise.
2712 (neon_vget_lowv4si): Likewise.
2713 (neon_vget_lowv4sf): Likewise.
2714 (neon_vget_lowv2di): Likewise.
2715
2716 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
2717 test for this emitting vmov.
2718 (Vset_lane): Likewise.
2719 (Vdup_n): Likewise.
2720 (Vmov_n): Likewise.
2721
2722 * doc/arm-neon-intrinsics.texi: Regenerated.
2723
2724 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
2725
2726 * config/arm/neon.md (vec_extractv2di): Correct error in register
2727 numbering to reconcile with neon_vget_lanev2di.
2728
2729 2010-07-02 Richard Guenther <rguenther@suse.de>
2730
2731 * tree-ssa-structalias.c (pt_solution_set_var): New function.
2732 * tree-ssa-alias.h (pt_solution_set_var): Declare.
2733 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
2734 points-to information.
2735
2736 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
2737
2738 * config/s390/s390.c (override_options): Adopt prefetching
2739 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
2740
2741 2010-07-02 Jan Hubicka <jh@suse.cz>
2742
2743 * df-problems.c (df_kill_notes): Do not collect dead notes.
2744 (df_set_note): Just call add_reg_note.
2745 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
2746 df_create_unused_note): Do not deal with lists of old notes.
2747 (df_note_bb_compute): Likewise.
2748
2749 2010-07-02 Richard Guenther <rguenther@suse.de>
2750
2751 * tree-ssa-structalias.c (find_func_aliases): Handle
2752 pointer alignment via BIT_AND_EXPR.
2753 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
2754
2755 2010-07-02 Richard Guenther <rguenther@suse.de>
2756
2757 * tree-data-ref.c (initialize_data_dependence_relation): Handle
2758 mismatching number of dimensions properly.
2759
2760 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2761
2762 PR target/44707
2763 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
2764 (lo_sum (high ...) ...) patterns generated by earlier passes.
2765
2766 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2767
2768 * doc/install.texi (Prerequisites): Document Perl requirement on
2769 Solaris 2.
2770 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
2771
2772 2010-07-02 Richard Guenther <rguenther@suse.de>
2773
2774 PR middle-end/44777
2775 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
2776
2777 2010-07-02 Jan Hubicka <jh@suse.cz>
2778
2779 PR middle-end/44706
2780 * predict.c (predict_paths_for_bb): Handle case when control dependence
2781 BB has only abnormal edges.
2782
2783 2010-07-02 Richard Guenther <rguenther@suse.de>
2784
2785 PR tree-optimization/44748
2786 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
2787 the embedded conversion in MEM_REFs.
2788
2789 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
2790
2791 * reload.c: Include toplev.h.
2792 * recog.c: Likewise.
2793 * Makefile.in: Adjust dependencies.
2794
2795 2010-07-01 Jakub Jelinek <jakub@redhat.com>
2796
2797 PR debug/44694
2798 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
2799 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
2800
2801 2010-07-01 Richard Guenther <rguenther@suse.de>
2802
2803 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
2804 types for offsets.
2805
2806 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
2807
2808 PR target/44732
2809 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
2810 Fix argument types.
2811
2812 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
2813
2814 PR target/44727
2815 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
2816 Make sure operand 0 dies.
2817
2818 2010-07-01 Richard Guenther <rguenther@suse.de>
2819
2820 PR middle-end/42834
2821 PR middle-end/44468
2822 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
2823 * doc/generic.texi (References to storage): Document MEM_REF.
2824 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
2825 (print_call_name): Likewise.
2826 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
2827 (build_simple_mem_ref_loc): New function.
2828 (mem_ref_offset): Likewise.
2829 * tree.h (build_simple_mem_ref_loc): Declare.
2830 (build_simple_mem_ref): Define.
2831 (mem_ref_offset): Declare.
2832 * fold-const.c: Include tree-flow.h.
2833 (operand_equal_p): Handle MEM_REF.
2834 (build_fold_addr_expr_with_type_loc): Likewise.
2835 (fold_comparison): Likewise.
2836 (fold_unary_loc): Fold
2837 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
2838 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
2839 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
2840 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
2841 (ptr_deref_may_alias_ref_p_1): Likewise.
2842 (ao_ref_base_alias_set): Properly differentiate base object for
2843 offset and TBAA.
2844 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
2845 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
2846 (indirect_refs_may_alias_p): Likewise.
2847 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
2848 chasing code.
2849 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
2850 (call_may_clobber_ref_p_1): Likewise.
2851 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
2852 * expr.c (expand_assignment): Handle MEM_REF.
2853 (store_expr): Handle MEM_REFs from STRING_CSTs.
2854 (store_field): If expanding a MEM_REF of a non-addressable
2855 decl use bitfield operations.
2856 (get_inner_reference): Handle MEM_REF.
2857 (expand_expr_addr_expr_1): Likewise.
2858 (expand_expr_real_1): Likewise.
2859 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
2860 * alias.c (ao_ref_from_mem): Handle MEM_REF.
2861 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
2862 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
2863 (dr_analyze_indices): Likewise.
2864 (dr_analyze_alias): Likewise.
2865 (object_address_invariant_in_loop_p): Likewise.
2866 * gimplify.c (mark_addressable): Handle MEM_REF.
2867 (gimplify_cond_expr): Build MEM_REFs.
2868 (gimplify_modify_expr_to_memcpy): Likewise.
2869 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
2870 (gimple_fold_indirect_ref): Adjust.
2871 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
2872 * tree.def (MEM_REF): New tree code.
2873 * tree-dfa.c: Include toplev.h.
2874 (get_ref_base_and_extent): Handle MEM_REF.
2875 (get_addr_base_and_unit_offset): New function.
2876 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
2877 * gimple-fold.c (may_propagate_address_into_dereference): Handle
2878 MEM_REF.
2879 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
2880 accesses if the array has just one dimension. Remove always true
2881 parameter. Do not require type compatibility here.
2882 (maybe_fold_offset_to_component_ref): Remove.
2883 (maybe_fold_stmt_indirect): Remove.
2884 (maybe_fold_reference): Remove INDIRECT_REF handling.
2885 Fold back to non-MEM_REF.
2886 (maybe_fold_offset_to_address): Simplify. Deal with type
2887 mismatches here.
2888 (maybe_fold_reference): Likewise.
2889 (maybe_fold_stmt_addition): Likewise. Also handle
2890 &ARRAY + I in addition to &ARRAY[0] + I.
2891 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
2892 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
2893 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
2894 * tree-ssa.c (useless_type_conversion_p): Make most pointer
2895 conversions useless.
2896 (warn_uninitialized_var): Handle MEM_REF.
2897 (maybe_rewrite_mem_ref_base): New function.
2898 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
2899 to SSA form.
2900 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
2901 INDIRECT_REF handling.
2902 (copy_tree_body_r): Handle MEM_REF.
2903 * gimple.c (is_gimple_addressable): Adjust.
2904 (is_gimple_address): Likewise.
2905 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
2906 invariant base are invariant.
2907 (is_gimple_min_lval): Adjust.
2908 (is_gimple_mem_ref_addr): New function.
2909 (get_base_address): Handle MEM_REF.
2910 (count_ptr_derefs): Likewise.
2911 (get_base_loadstore): Likewise.
2912 * gimple.h (is_gimple_mem_ref_addr): Declare.
2913 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
2914 * tree-cfg.c (verify_address): New function, split out from ...
2915 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
2916 the address operand of MEM_REFs. Verify MEM_REFs. Reject
2917 INDIRECT_REFs.
2918 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
2919 INDIRECT_REF. Allow conversions.
2920 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
2921 a register does not change its size.
2922 (verify_types_in_gimple_reference): Verify MEM_REF.
2923 (verify_gimple_assign_single): Disallow INDIRECT_REF.
2924 Handle MEM_REF.
2925 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
2926 New.
2927 (mark_address_taken): Handle MEM_REF.
2928 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
2929 (get_asm_expr_operands): Pass opf_not_non_addressable.
2930 (get_expr_operands): Handle opf_[not_]non_addressable.
2931 Handle MEM_REF. Remove INDIRECT_REF handling.
2932 * tree-vrp.c: (check_array_ref): Handle MEM_REF.
2933 (search_for_addr_array): Likewise.
2934 (check_array_bounds): Likewise.
2935 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
2936 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
2937 (ref_always_accessed_p): Likewise.
2938 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
2939 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
2940 Handle MEM_REF.
2941 * cgraphbuild.c (mark_load): Properly check for NULL result
2942 from get_base_address.
2943 (mark_store): Likewise.
2944 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
2945 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
2946 handling for MEM_REF.
2947 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
2948 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
2949 * builtins.c (stabilize_va_list_loc): Use the function ABI
2950 valist type if we couldn't canonicalize the argument type.
2951 Always dereference with the canonical va-list type.
2952 (maybe_emit_free_warning): Handle MEM_REF.
2953 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
2954 memmove to memcpy.
2955 * builtins.c (fold_builtin_memory_op): Use ref-all types
2956 for all memcpy foldings.
2957 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
2958 (build_outer_var_ref): Likewise.
2959 (scan_omp_1_op): Likewise.
2960 (lower_rec_input_clauses): Likewise.
2961 (lower_lastprivate_clauses): Likewise.
2962 (lower_reduction_clauses): Likewise.
2963 (lower_copyprivate_clauses): Likewise.
2964 (expand_omp_atomic_pipeline): Likewise.
2965 (expand_omp_atomic_mutex): Likewise.
2966 (create_task_copyfn): Likewise.
2967 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
2968 Remove old union trick. Initialize constant offsets.
2969 (ao_ref_init_from_vn_reference): Likewise. Do not handle
2970 INDIRECT_REF. Init base_alias_set properly.
2971 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
2972 (vn_reference_fold_indirect): Adjust for MEM_REFs.
2973 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
2974 for ARRAY_REFs.
2975 (may_insert): Remove.
2976 (visit_reference_op_load): Do not test may_insert.
2977 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
2978 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
2979 a field to store the constant offset this op applies.
2980 (run_scc_vn): Adjust prototype.
2981 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
2982 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
2983 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
2984 bother about volatile qualifiers on pointers.
2985 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
2986 * tree-ssa-loop-ivopts.c
2987 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
2988 (strip_offset_1): Likewise.
2989 (find_interesting_uses_address): Replace INDIRECT_REF handling with
2990 MEM_REF handling.
2991 (get_computation_cost_at): Likewise.
2992 * ipa-pure-const.c (check_op): Handle MEM_REF.
2993 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
2994 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
2995 and constants.
2996 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
2997 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
2998 (eliminate_local_variables_1): Likewise.
2999 (create_call_for_reduction_1): Likewise.
3000 (create_loads_for_reductions): Likewise.
3001 (create_loads_and_stores_for_name): Likewise.
3002 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
3003 (ssa_accessed_in_tree): Handle MEM_REF.
3004 (ssa_accessed_in_assign_rhs): Likewise.
3005 (update_type_size): Likewise.
3006 (analyze_accesses_for_call_stmt): Likewise.
3007 (analyze_accesses_for_assign_stmt): Likewise.
3008 (transform_access_sites): Likewise.
3009 (transform_allocation_sites): Likewise.
3010 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
3011 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
3012 not handle INDIRECT_REF.
3013 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
3014 (cond_store_replacement): Likewise.
3015 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3016 MEM_REF, no not handle INDIRECT_REFs.
3017 (insert_into_preds_of_block): Properly initialize avail.
3018 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
3019 for ARRAY_REFs. Properly handle reference lookups that
3020 require a bit re-interpretation.
3021 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
3022 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
3023 (build_ref_for_offset_1): Remove.
3024 (build_ref_for_offset): Build MEM_REFs.
3025 (gate_intra_sra): Disable for now.
3026 (sra_ipa_modify_expr): Handle MEM_REF.
3027 (ipa_early_sra_gate): Disable for now.
3028 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
3029 MEM_REF handling.
3030 (disqualify_base_of_expr): Likewise.
3031 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
3032 MEM_REF handling.
3033 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
3034 Use mem_ref_offset. Remove bogus folding.
3035 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
3036 (make_fancy_name_1): Add support for MEM_REF.
3037 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
3038 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
3039 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
3040 (compute_complex_ancestor_jump_func): Likewise.
3041 (ipa_analyze_virtual_call_uses): Likewise.
3042 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
3043 INDIRECT_REF folding with more generalized MEM_REF folding.
3044 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
3045 (forward_propagate_addr_into_variable_array_index): Also handle
3046 &ARRAY + I in addition to &ARRAY[0] + I.
3047 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
3048 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
3049 creates assignments with overlap.
3050 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
3051 (get_frame_field): Likewise.
3052 (get_nonlocal_debug_decl): Likewise.
3053 (convert_nonlocal_reference_op): Likewise.
3054 (struct nesting_info): Add mem_refs pointer-set.
3055 (create_nesting_tree): Allocate it.
3056 (convert_local_reference_op): Insert to be folded mem-refs.
3057 (fold_mem_refs): New function.
3058 (finalize_nesting_tree_1): Perform defered folding of mem-refs
3059 (free_nesting_tree): Free the pointer-set.
3060 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
3061 (vectorizable_load): Likewise.
3062 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
3063 (propagate_with_phi): Likewise.
3064 * tree-object-size.c (addr_object_size): Handle MEM_REFs
3065 instead of INDIRECT_REFs.
3066 (compute_object_offset): Handle MEM_REF.
3067 (plus_stmt_object_size): Handle MEM_REF.
3068 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
3069 for &MEM_REF.
3070 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
3071 (symbol_marked_for_renaming): Likewise.
3072 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
3073 (fold-const.o): Add $(TREE_FLOW_H).
3074 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
3075 (find_func_clobbers): Likewise.
3076 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
3077 (decompose_access): Likewise.
3078 (replace_field_acc): Likewise.
3079 (replace_field_access_stmt): Likewise.
3080 (insert_new_var_in_stmt): Likewise.
3081 (get_stmt_accesses): Likewise.
3082 (reorg_structs_drive): Disable.
3083 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
3084 (ix86_canonical_va_list_type): Likewise.
3085
3086 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
3087
3088 PR other/44566
3089 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
3090 * target.def (struct gcc_target): Replace enum reg_class with
3091 reg_class_t in hook argument / return types.
3092 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
3093 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
3094 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
3095 * targhooks.h (default_branch_target_register_class): Likewise.
3096 (default_ira_cover_classes, default_secondary_reload): Likewise.
3097 (default_memory_move_cost, default_register_move_cost): Likewise.
3098 * targhooks.c (default_branch_target_register_class): Likewise.
3099 (default_ira_cover_classes, default_secondary_reload): Likewise.
3100 (default_memory_move_cost, default_register_move_cost): Likewise.
3101 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
3102 * bt-load.c (branch_target_load_optimize): Likewise.
3103 * ira.c (setup_cover_and_important_classes): Likewise.
3104 * ira-costs.c (copy_cost): Likewise.
3105 * reload1.c (emit_input_reload_insns): Likewise.
3106 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
3107 * config/frv/frv.c (frv_secondary_reload): Likewise.
3108 * config/s390/s390.c (s390_secondary_reload): Likewise.
3109 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
3110 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
3111 (ix86_register_move_cost): Likewise.
3112 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
3113 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
3114 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
3115 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
3116 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
3117 (rs6000_ira_cover_classes): Likewise.
3118 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
3119 * config/picochip/picochip-protos.h (picochip_secondary_reload):
3120 Likewise.
3121 * config/pa/pa.c (pa_secondary_reload): Likewise.
3122 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
3123 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
3124 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
3125 * doc/tm.texi: Regenerate.
3126
3127 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
3128
3129 PR bootstrrap/44726
3130 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
3131 use.
3132 (build_alias_set_optimal_p): Likewise.
3133 (build_base_obj_set_for_drs): Likewise.
3134
3135 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
3136
3137 * target.def: Remove comment about licensing problems of function
3138 declarations.
3139
3140 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
3141 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
3142 * doc/tm.texi: Regenerate.
3143
3144 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
3145 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
3146
3147 * target.def (enum_va_list_p): Use DEFHOOK.
3148 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
3149 Rename ptype to ptree.
3150 * doc/tm.texi: Regenerate.
3151
3152 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
3153 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
3154 * doc/tm.texi: Regenerate.
3155
3156 * target.def (memory_move_cost): Use DEFHOOK.
3157 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
3158 Rename regclass AKA class to rclass.
3159 * doc/tm.texi: Regenerate.
3160
3161 * target.def (pragma_parse): Use DEFHOOK.
3162 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
3163 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
3164 * doc/tm.texi: Regenerate.
3165
3166 * target.def (pass_by_reference): Use DEFHOOK.
3167 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
3168 * doc/tm.texi: Regenerate.
3169
3170 * target.def (resolve_overloaded_builtin): Rename params to arglist.
3171 Use DEFHOOK.
3172 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
3173 * doc/tm.texi: Regenerate.
3174
3175 * target.def (return_pops_args): Use DEFHOOK.
3176 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
3177 Rename stack-size to size.
3178 * doc/tm.texi: Regenerate.
3179
3180 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
3181 last-sched_cycle to last_clock, cur_cycle to clock.
3182 * doc/tm.texi.in: Use @hook.
3183 * doc/tm.texi: Regenerate.
3184
3185 * target.def (print_operand, print_operand_address): Update comment.
3186 (print_operand_punct_valid_p): Likewise.
3187
3188 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
3189
3190 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
3191 to rtl.h.
3192 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
3193 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
3194 * rtl-error.h: New.
3195 * regrename.c: Do not include toplev.h. Include rtl-error.h.
3196 * rtl-error.c: Likewise.
3197 * reload.c: Likewise.
3198 * recog.c: Likewise.
3199 * sel-sched.c: Likewise.
3200 * function.c: Likewise.
3201 * reg-stack.c: Likewise.
3202 * cfgrtl.c: Likewise.
3203 * reload1.c: Likewise.
3204 * final.c: Include rtl-error.
3205 * Makefile.in: Adjust dependencies.
3206
3207 2010-06-30 Jan Hubicka <jh@suse.cz>
3208
3209 PR middle-end/PR44706
3210 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
3211 to return the value.
3212
3213 2010-06-30 Michael Matz <matz@suse.de>
3214
3215 PR bootstrap/44699
3216 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
3217 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
3218 a gimple reg, attach the original VDEF to the last store in the
3219 sequence.
3220
3221 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
3222
3223 PR other/44034
3224 * config/darwin.c (darwin_override_options): Use renamed
3225 targetm.asm_out.emit_unwind_label.
3226
3227 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
3228
3229 PR tree-optimization/39799
3230 * tree-inline.c (remap_ssa_name): Initialize variable only if
3231 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3232
3233 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
3234
3235 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
3236
3237 2010-06-30 Richard Guenther <rguenther@suse.de>
3238
3239 PR target/44722
3240 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
3241 against oscillation with reverse peephole2.
3242
3243 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
3244
3245 PR target/44721
3246 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3247 Fix last commit.
3248
3249 2010-06-30 Nick Clifton <nickc@redhat.com>
3250
3251 * config/rx/rx-modes.def: New file.
3252 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
3253 (CC_REGNUM): Define.
3254 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
3255 register.
3256 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
3257 (SELECT_CC_MODE): Define.
3258 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
3259 (reg:CC CC_REG) instead of (cc0).
3260 (attr "cc"): Delete.
3261 (cbranchsi4): Do not split compare and branch here. Instead move
3262 it to...
3263 (cbranchsi4_<code>): ... here. New patterns.
3264 (cmpsi): Call rx-compare_redundant to find out if it is necessary
3265 to emit the compare instruction.
3266 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
3267 cc_status flags.
3268 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
3269 FIRST_PSEUDO_REGNUM.
3270 (rx_expand_prologue, rx_expand_epilogue): Likewise.
3271 (rx_notice_update_cc): Delete.
3272 (rx_cc_modes_compatible): New function.
3273 (flags_needed_for_conditional): New function.
3274 (flags_from_mode): New function.
3275 (rx_compare_redundant): New function - scans backwards through
3276 insn list to find out if condition flags are already set correctly.
3277 (TARGET_CC_MODES_COMPATIBLE): Define.
3278 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
3279
3280 * config/rx/rx.h (BRANCH_COST): Define.
3281 (REGISTER_MOVE_COST): Define.
3282 * config/rx/predicates (rx_source_operand): Allow all constant types.
3283 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
3284 (tstsi4): New pattern.
3285 * config/rx/rx.c (rx_memory_move_cost): Define.
3286 (TARGET_MEMORY_MOVE_COST): Define.
3287
3288 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
3289
3290 * tree.h (block_may_fallthru): Declare here.
3291 * tree-flow.h (block_may_fallthru): Do not declare here.
3292 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
3293 bitmap.h
3294 * Makefile.in (c-typeck.o): Update dependencies.
3295
3296 2010-06-30 Jakub Jelinek <jakub@redhat.com>
3297
3298 PR debug/44694
3299 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
3300 * cselib.c (cfa_base_preserved_regno): New static variable.
3301 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
3302 of REGNO (cfa_base_preserved_val->locs->loc).
3303 (cselib_preserve_cfa_base_value): Add regno argument, set
3304 cfa_base_preserved_regno to it.
3305 (cselib_invalidate_regno): Allow removal of registers other than
3306 cfa_base_preserved_regno from cfa_base_preserved_val.
3307 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
3308 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
3309 of MEM addresses, if not on LHS.
3310 (reverse_op): Don't add reverse ops for cfa_base_rtx.
3311 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
3312
3313 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
3314
3315 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
3316 static variables.
3317 (peep2_buf_position): New static function.
3318 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
3319 peephole2_optimize): Use it.
3320 (peep2_attempt, peep2_update_life): New static functions, broken out
3321 of peephole2_optimize.
3322 (peep2_fill_buffer): New static function.
3323 (peephole2_optimize): Change the main loop to try to fill the buffer
3324 with the maximum number of insns before matching them against
3325 peepholes. Use a forward scan. Remove special case for targets with
3326 conditional execution.
3327 * genrecog.c (change_state): Delete dead code.
3328 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3329 Rewrite so as not to expect the second insn to have had a peephole
3330 applied yet.
3331
3332 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3333
3334 * genhooks.c (emit_findices): Cast field precision to int.
3335 (emit_documentation): Likewise.
3336
3337 2010-06-29 Jakub Jelinek <jakub@redhat.com>
3338
3339 PR tree-optimization/43801
3340 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
3341 if old_decl was DECL_ONE_ONLY.
3342
3343 PR debug/44668
3344 * dwarf2out.c (add_accessibility_attribute): New function.
3345 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
3346 instead of adding DW_AT_accessibility manually.
3347 (gen_enumeration_type_die, gen_struct_or_union_type_die,
3348 gen_typedef_die): Use it.
3349
3350 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3351
3352 * vmsdbgout.c (full_name): Just output the file name if not native.
3353
3354 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3355
3356 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
3357 (funcnam_table): New static table.
3358 (funcnum_table): New static table.
3359 (write_rtnbeg): Write value saved in funcnum_table.
3360 (write_rtnend): Write value saved in funcnum_table.
3361 (vmsdbgout_begin_function): Save current function info in
3362 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
3363 (vmsdbgout_finish): Iterate over funcnum_table.
3364
3365 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3366
3367 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
3368 (vmsdbgout_type_decl): Declare
3369 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
3370 (FUNC_EPILOGUE_LABEL): New macro
3371 (vmsdbgout_begin_epilogue): New function.
3372 (vmsdbgout_type_decl): New function.
3373
3374 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3375
3376 * vmsdbg.h: Update copyright.
3377
3378 2010-06-29 Douglas B Rupp <rupp@gnat.com>
3379
3380 * vmsdbg.h (DST_K_TBG): New DST constant.
3381 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
3382 (write_modbeg): Cast module_language to avoid warning.
3383 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
3384
3385 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
3386
3387 PR other/44034
3388 * target.def, doc/tm.texi.in, genhooks.c: New files.
3389 * target.h: Instead of defining individual hook members,
3390 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
3391 include target.def.
3392 * target-def.h: Instead of defining individual hook initializers,
3393 include target-hooks-def.h.
3394 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
3395 targetm.live_on_entry -> targetm.extra_live_on_entry
3396 targetm.sched.md_finish ->targetm.sched.finish
3397 targetm.sched.md_init -> targetm.sched.init
3398 targetm.sched.md_init_global -> targetm.sched.init_global
3399 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
3400 targetm.asm_out.except_table_label ->
3401 targetm.asm_out.emit_except_table_label
3402 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
3403 targetm.target_help -> targetm.help
3404 targetm.vectorize.builtin_support_vector_misalignment ->
3405 targetm.vectorize.support_vector_misalignment
3406 targetm.file_start_app_off -> targetm.asm_file_start_app_off
3407 targetm.file_start_file_directive ->
3408 targetm.asm_file_start_file_directive
3409 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
3410 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
3411 * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
3412 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
3413 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
3414 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
3415 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
3416 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
3417 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
3418 * Makefile.in (TARGET_H): Depend on target.def.
3419 (TARGET_DEF_H): Depend on target-hooks-def.h.
3420 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
3421 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
3422 * doc/tm.texi: Regenerate.
3423
3424 * Makefile.in (s-tm-texi): Remove stray tab / rule.
3425
3426 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
3427 (targetm.sched.init): Likewise.
3428
3429 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3430
3431 PR bootstrap/44713
3432 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
3433 (function_arg_advance_32): Const-ify TYPE parameter.
3434 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
3435 (ix86_function_arg_advance): Change type of NAMED to bool.
3436 (function_arg_32): Const-ify CUM and TYPE parameters.
3437 (function_arg_64): Likewise. Change type of NAMED to bool.
3438 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
3439 to bool.
3440 (ix86_function_arg): Change type of NAMED to bool.
3441 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
3442 last argument as a bool.
3443
3444 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
3445
3446 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
3447 (OVERRIDE_OPTIONS): Add note of obsolescence.
3448 Replace references with references to TARGET_OPTION_OVERRIDE.
3449 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
3450 the macro).
3451 * targhooks.c (default_target_option_override): New function.
3452 * targhooks.h (default_target_option_override): Declare.
3453 * target.h (struct gcc_target): Add override member to
3454 target_option member.
3455 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
3456 targetm.target_option.override call.
3457 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
3458 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
3459
3460 2010-06-29 Jan Hubicka <jh@suse.cz>
3461
3462 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
3463
3464 2010-06-29 Jan Hubicka <jh@suse.cz>
3465
3466 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
3467 unreachable.
3468 (rebuild_frequencies): New function.
3469 * predict.h (rebuild_frequencies): Declare.
3470 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
3471 entry block and edge reaching new_entry.
3472 (tree_function_versioning): When doing partial cloning, rebuild
3473 frequencies when done.
3474 * passes.c (execute_function_todo): Use rebild_frequencies.
3475
3476 2010-06-29 Richard Guenther <rguenther@suse.de>
3477
3478 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
3479 * tree-flow.h (enum noalias_state): Remove.
3480 (struct var_ann_d): Remove noalias_state member.
3481
3482 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
3483
3484 PR target/43902
3485 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
3486 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
3487 (maddhidi4): Likewise.
3488
3489 Revert parts of the change for PR25130.
3490 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3491 MEM_ALIAS_SET.
3492
3493 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3494
3495 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
3496 targetm.calls.function_incoming_arg, and
3497 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
3498 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
3499 * target.h (struct gcc_target): Add function_arg_advance,
3500 function_arg, and function_incoming_arg fields.
3501 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
3502 (TARGET_FUNCTION_INCOMING_ARG): Define.
3503 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
3504 and TARGET_FUNCTION_INCOMING_ARG.
3505 * targhooks.h (default_function_arg_advance): Declare.
3506 (default_function_arg, default_function_incoming_arg): Declare.
3507 * targhooks.c (default_function_arg_advance): New function.
3508 (default_function_arg, default_function_incoming_arg): New function.
3509 * config/i386/i386.c (function_arg_advance): Rename to...
3510 (ix86_function_arg_advance): ...this. Make static.
3511 (function_arg): Rename to...
3512 (ix86_function_arg): ...this. Make static.
3513 (TARGET_FUNCTION_ARG_ADVANCE): Define.
3514 (TARGET_FUNCTION_ARG): Define.
3515 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
3516 (FUNCTION_ARG): Delete.
3517 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
3518 (function_arg): Delete prototype.
3519
3520 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
3521
3522 * reginfo.c (init_reg_sets_1): Adjust comments.
3523 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
3524 * calls.c (prepare_call_address): Likewise.
3525 (emit_call_1): Use targetm.calls.return_pops_args.
3526 (expand_call): Likewise.
3527 * function.c (assign_parms): Likewise.
3528 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
3529 * target.h (struct gcc_target) [struct calls]: Add
3530 return_pops_args field.
3531 * targhooks.h (default_return_pops_args): Declare.
3532 * targhooks.c (default_return_pops_args): Define.
3533 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
3534 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
3535 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
3536 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
3537 documentation.
3538 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
3539 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
3540 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
3541 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
3542 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
3543 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
3544 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
3545 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
3546 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
3547 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
3548 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
3549 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
3550 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
3551 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
3552 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
3553 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
3554 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
3555 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
3556 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
3557 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
3558 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
3559 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
3560 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
3561 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
3562 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
3563 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
3564 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
3565 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
3566 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
3567 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
3568 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
3569 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
3570 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
3571 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
3572 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
3573 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
3574 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
3575 * config/i386/i386.c (ix86_return_pops_args): Make static.
3576 Constify arguments.
3577 (TARGET_RETURN_POPS_ARGS): Define.
3578 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
3579 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
3580 (TARGET_RETURN_POPS_ARGS): Define.
3581 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
3582 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
3583 (TARGET_RETURN_POPS_ARGS): Define.
3584
3585 2010-06-29 Richard Guenther <rguenther@suse.de>
3586
3587 PR middle-end/44667
3588 * tree-inline.c (initialize_inlined_parameters): Make sure
3589 to remap the inlined parameter variable substitutions types.
3590
3591 2010-06-29 Eric Botcazou <ebotcazou@adacore.com>
3592
3593 PR rtl-optimization/44659
3594 * combine.c (make_compound_operation) <SUBREG>: Do not return the
3595 result of force_to_mode if it partially re-expanded the compound.
3596
3597 2010-06-28 Jan Hubicka <jh@suse.cz>
3598
3599 PR middle-end/44671
3600 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
3601 RESULT_DECL.
3602
3603 2010-06-28 Anatoly Sokolov <aesok@post.ru>
3604
3605 * double-int.h (force_fit_type_double): Remove declaration.
3606 * double-int.c (force_fit_type_double): Move to tree.c.
3607 * tree.h (force_fit_type_double): Declare.
3608 * tree.h (force_fit_type_double): Moved from double-int.c. Use
3609 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
3610 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
3611 * convert.c (convert_to_pointer): Adjust call to
3612 force_fit_type_double.
3613 * tree-vrp.c (extract_range_from_assert,
3614 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
3615 * fold-const.c: Update comment.
3616 (int_const_binop, fold_convert_const_int_from_int,
3617 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
3618 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
3619 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
3620 round_up_loc): Adjust call to force_fit_type_double.
3621
3622 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
3623
3624 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
3625
3626 2010-06-28 Martin Jambor <mjambor@suse.cz>
3627
3628 * tree-sra.c (convert_callers): New parameter, change fndecls of
3629 recursive calls.
3630 (modify_function): Pass the old decl to convert_callers.
3631
3632 2010-06-28 Martin Jambor <mjambor@suse.cz>
3633
3634 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
3635 ipa_check_create_node_params and ipa_initialize_node_params with
3636 checking asserts they are not necessary.
3637
3638 2010-06-28 Jan Hubicka <jh@suse.cz>
3639
3640 PR tree-optimization/44687
3641 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
3642
3643 2010-06-28 Martin Jambor <mjambor@suse.cz>
3644
3645 PR c++/44535
3646 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
3647 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
3648 instead of BINFO_BASE_BINFO.
3649
3650 2010-06-28 Michael Matz <matz@suse.de>
3651
3652 PR middle-end/44592
3653 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
3654 proper VDEF chain for intermediate stores in the sequence.
3655
3656 2010-06-28 Jan Hubicka <jh@suse.cz>
3657
3658 PR tree-optimization/44357
3659 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
3660 uninlinable functions.
3661
3662 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
3663
3664 * config.gcc (powerpc*-*-*): Handle titan.
3665 * config/rs6000/rs6000.c (titan_cost): New costs.
3666 (rs6000_override_options): Add "titan" to processor_target_table.
3667 Add Titan to branch alignment logic.
3668 Correctly set rs6000_cost for titan.
3669 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
3670 * config/rs6000/titan.md: New file.
3671 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
3672
3673 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
3674
3675 * tree-browser.c (TB_history_stack): Convert to a VEC.
3676 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
3677 (TB_history_prev): Likewise.
3678
3679 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
3680
3681 * vec.h (vec_heap_free): Add parentheses around free.
3682
3683 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
3684
3685 * system.h: Poison GCC_EXCEPT_H for front-end files.
3686
3687 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
3688 langhook.
3689 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
3690 Define to NULL by default.
3691 * except.h: Define GCC_EXCEPT_H.
3692 (doing_eh): Remove prototype.
3693 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
3694 (lang_protect_cleanup_actions): Remove.
3695 * except.c (lang_protect_cleanup_actions): Remove.
3696 (doing_eh): Remove.
3697 (gen_eh_region): Don't check doing_eh here.
3698 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
3699 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
3700 instead of lang_protect_cleanup_actions.
3701 * omp-low.c (maybe_catch_exception): Likewise.
3702 * Makefile.in: Update dependencies.
3703
3704 2010-06-28 Bingfeng Mei <bmei@broadcom.com>
3705
3706 * cgraph.h (struct varpool_node): new used_from_object_file flag.
3707 (struct cgraph_local_info): new used_from_object_file flag.
3708 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
3709 (cgraph_clone_node): initialize used_from_object_file.
3710 (cgraph_create_virtual_clone): initialize used_from_object_file.
3711 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
3712 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
3713 when compiling with -fwhole-program.
3714 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
3715 internal resolver.
3716 * ipa.c (function_and_variable_visibility): Set externally_visible
3717 flag of varpool_node if used_from_object_file flag is set.
3718 (cgraph_externally_visible_p): check used_from_object_file flag.
3719 * doc/invoke.texi (-fwhole-program option): Change description of
3720 externally_visible attribute accordingly.
3721 * doc/extend.texi (externally_visible): Ditto.
3722
3723 2010-06-27 Jan Hubicka <jh@suse.cz>
3724
3725 * params.def (max-inline-insns-auto): Default to 40.
3726 * doc/invoke.texi (max-inline-insns-auto): Document the change.
3727
3728 2010-06-27 Jan Hubicka <jh@suse.cz>
3729
3730 PR middle-end/44671
3731 PR middle-end/44686
3732 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
3733 signature change.
3734 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
3735 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
3736
3737 2010-06-27 Anatoly Sokolov <aesok@post.ru>
3738
3739 * target.h (struct gcc_target): Add register_move_cost field.
3740 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
3741 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
3742 * targhooks.c (default_register_move_cost): New function.
3743 * targhooks.h (default_register_move_cost): Declare function.
3744 * defaults.h (REGISTER_MOVE_COST): Delete.
3745 * ira-int.h (ira_register_move_cost): Update comment.
3746 * ira.c: (ira_register_move_cost): Update comment.
3747 * reload.h (register_move_cost): Declare.
3748 * reginfo.c (register_move_cost): New function.
3749 (move_cost): Update comment.
3750 (init_move_cost, memory_move_secondary_cost): Replace
3751 REGISTER_MOVE_COST with register_move_cost.
3752 * postreload.c (reload_cse_simplify_set): (Ditto.).
3753 * reload.c (find_valid_class, find_reloads): (Ditto.).
3754 * reload1.c (choose_reload_regs): (Ditto.).
3755 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
3756 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
3757 * doc/md.texi (can_create_pseudo_p): Update documentation.
3758
3759 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
3760 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
3761 * config/i386/i386.h (ix86_memory_move_cost): Make static.
3762 (TARGET_MEMORY_MOVE_COST): Define.
3763
3764 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
3765 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
3766 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
3767 (TARGET_MEMORY_MOVE_COST): Define.
3768
3769 2010-06-27 Richard Guenther <rguenther@suse.de>
3770
3771 PR tree-optimization/44683
3772 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
3773 false edge from the inverted condition.
3774
3775 2010-06-27 Richard Guenther <rguenther@suse.de>
3776
3777 PR middle-end/44684
3778 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
3779 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
3780 for register LHS. Or non-store assignments.
3781
3782 2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
3783
3784 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
3785 (sparc_emit_set_const64): Likewise. Remove disabled code.
3786 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
3787 (sparc_emit_set_const64): Likewise.
3788
3789 2010-06-26 Catherine Moore <clm@codesourcery.com>
3790
3791 * config/mips/mips.md (alu_type): New attribute.
3792 (type): Infer type from alu_type.
3793 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
3794 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
3795 *subsi3_extended, negsi2, negdi2, *low<mode>,
3796 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
3797 xor<mode>3, *nor<mode>3,
3798 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
3799 *zero_extendhi_truncqi): Set alu_type instead of type.
3800
3801 2010-06-26 Douglas B Rupp <rupp@gnat.com>
3802
3803 * config/alpha/alpha.c (alpha_need_linkage): Adjust
3804 splay_tree_new_ggc call.
3805 (alpha_use_linkage): Likewise.
3806
3807 2010-06-26 Joseph Myers <joseph@codesourcery.com>
3808
3809 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
3810 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
3811 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
3812 (static_specs): Remove switches_need_spaces.
3813 (process_command, do_self_spec): Hardcode handling "-o" instead of
3814 checking switches_need_spaces.
3815 * system.h (SWITCHES_NEED_SPACES): Poison.
3816
3817 2010-06-26 Richard Guenther <rguenther@suse.de>
3818
3819 PR tree-optimization/44393
3820 * tree-loop-distribution.c (generate_loops_for_partition): Fix
3821 stmt removal and VOP renaming.
3822 (generate_memset_zero): Remove redundant stmt updating.
3823 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
3824 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
3825
3826 2010-06-26 Jan Hubicka <jh@suse.cz>
3827
3828 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
3829 edges comming from header are equivalent.
3830 (visit_bb): Handle PHIs correctly.
3831 * tree-inline.c (copy_phis_for_bb): Be able to copy
3832 PHI from entry edge.
3833 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
3834
3835 2010-06-26 Richard Guenther <rguenther@suse.de>
3836
3837 PR middle-end/44674
3838 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
3839 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
3840
3841 2010-06-26 Joseph Myers <joseph@codesourcery.com>
3842
3843 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
3844 add_infile, alloc_switch): New.
3845 (process_command): Remove variable lang_n_infiles. Process
3846 options in a single pass. Use new functions for allocating
3847 infiles and switches arrays. Properly skip operands of
3848 -Xpreprocessor and -Xassembler.
3849
3850 2010-06-26 Jan Hubicka <jh@suse.cz>
3851
3852 PR middle-end/44671
3853 * cgraphunit.c (cgraph_function_versioning): Remove wrong
3854 cgraph_make_decl_local call; fix typo copying RTL data.
3855
3856 2010-06-25 DJ Delorie <dj@redhat.com>
3857
3858 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
3859 (m32c_output_aligned_common): Likewise.
3860 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
3861 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
3862 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
3863 (m32c_register_pragmas): Register it.
3864 * config/m32c/m32c.c (m32c_get_pragma_address): New.
3865 (m32c_insert_attributes): Set #pragma address decls volatile.
3866 (pragma_entry_eq): New.
3867 (pragma_entry_hash): New.
3868 (m32c_note_pragma_address): New.
3869 (m32c_get_pragma_address): New.
3870 (m32c_output_aligned_common): New.
3871 * doc/extend.texi: Document the new pragma.
3872
3873 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
3874 also.
3875 * config/m32c/predicates.md (m32c_any_operand): Check the code
3876 instead of memory_operand so as to allow matching volatile MEMs.
3877 (m32c_nonimmediate_operand): Likewise.
3878 (mra_operand): Allow volatiles.
3879
3880 2010-06-25 Alexandre Oliva <aoliva@redhat.com>
3881
3882 PR debug/44610
3883 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
3884 address if the offset is unknown.
3885
3886 2010-06-25 Douglas B Rupp <rupp@gnat.com>
3887
3888 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
3889 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
3890 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
3891 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
3892 to ia64_start_function. Invoke it.
3893 * config/ia64/ia64.c (ia64_start_function): Call new function
3894 dwarf2out_vms_debug_main_pointer.
3895
3896 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
3897
3898 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
3899 statements computing the true predicate.
3900
3901 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
3902
3903 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
3904 to boolean_true_node.
3905 (reset_bb_predicate): New.
3906 (predicate_bbs): Call reset_bb_predicate.
3907
3908 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
3909
3910 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
3911 (tree_if_conversion): Returns true when something has been changed.
3912 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
3913 changed something.
3914
3915 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
3916
3917 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
3918 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
3919 * tree-if-conv.c: Include dbgcnt.h.
3920 (tree_if_conversion): Use if_conversion_tree to count the number of
3921 if-convertible loops.
3922
3923 2010-06-25 Changpeng Fang <changpeng.fang@amd.com>
3924
3925 * common.opt (fprefetch-loop-arrays): Re-define
3926 -fprefetch-loop-arrays as a tri-state option with the initial
3927 value of -1.
3928 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
3929 pass only when flag_prefetch_loop_arrays > 0.
3930 * toplev.c (process_options): Note that, with tri-states,
3931 flag_prefetch_loop_arrays>0 means prefetching is enabled.
3932 * config/i386/i386.c (override_options): Enable prefetching at -O3
3933 for a set of CPUs that sw prefetching is helpful.
3934 (software_prefetching_beneficial_p): New. Return TRUE if software
3935 prefetching is beneficial for the given CPU.
3936
3937 2010-06-25 H.J. Lu <hongjiu.lu@intel.com>
3938
3939 PR rtl-optimization/44326
3940 * implicit-zee.c (find_removable_zero_extends): Replace
3941 INSN_P with NONDEBUG_INSN_P.
3942
3943 2010-06-25 Martin Jambor <mjambor@suse.cz>
3944
3945 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
3946 (struct ipa_node_params): Removed the modification_analysis_done flag.
3947 (ipa_is_param_modified): Removed.
3948 (ipa_analyze_node): Declare.
3949 (ipa_compute_jump_functions): Remove declaration.
3950 (ipa_count_arguments): Likewise.
3951 (ipa_detect_param_modifications): Likewise.
3952 (ipa_analyze_params_uses): Likewise.
3953 * ipa-prop.c (struct param_analysis_info): New type.
3954 (visit_store_addr_for_mod_analysis): Removed.
3955 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
3956 moved down in the file.
3957 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
3958 (ipa_count_arguments): Made static.
3959 (mark_modified): New function.
3960 (is_parm_modified_before_call): New function.
3961 (compute_pass_through_member_ptrs): New parameter parms_info, call
3962 is_parm_modified_before_call instead of ipa_is_param_modified.
3963 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
3964 it to compute_pass_through_member_ptrs.
3965 (ipa_compute_jump_functions): New parameter parms_info, pass it to
3966 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
3967 on the callee if it is analyzed. Made static.
3968 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
3969 is_parm_modified_before_call instead of ipa_is_param_modified.
3970 (ipa_analyze_call_uses): New parameter parms_info, pass it to
3971 ipa_analyze_indirect_call_uses.
3972 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
3973 ipa_analyze_call_uses.
3974 (ipa_analyze_params_uses): New parameter parms_info, pass it to
3975 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
3976 (ipa_analyze_node): New function.
3977 (ipa_print_node_params): Do not dump the modified flag.
3978 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
3979 it. Do not stream the modified parameter flag.
3980 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
3981 it. Do not stream the modified parameter flag.
3982 * ipa-cp.c (ipcp_analyze_node): Removed.
3983 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
3984 with only a call to ipa_analyze_node.
3985 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
3986 node with only a call to ipa_analyze_node.
3987
3988 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
3989
3990 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
3991
3992 2010-06-25 Jan Hubicka <jh@suse.cz>
3993
3994 * tree-pass.h (pass_split_functions): Declare.
3995 * opts.c (decode_options): Enable function splitting at -O2
3996 * timevar.def (TV_IPA_FNSPLIT): New macro.
3997 * ipa-split.c: New file.
3998 * common.opt (-fpartial-inlining): New flag.
3999 * Makefile.in (ipa-split.o): New object file.
4000 * passes.c (init_optimization_passes): Add ipa-split.
4001 * params.def (partial-inlining-entry-probability): New parameters.
4002 * doc/invoke.texi (-fpartial-inlining): New.
4003
4004 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
4005
4006 PR 44665
4007 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
4008 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
4009 (gimplify_expr): Likewise.
4010
4011 2010-06-25 Martin Jambor <mjambor@suse.cz>
4012
4013 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
4014 statements instead of bailing out on them.
4015 (ipa_analyze_indirect_call_uses): Do not require that loads from the
4016 parameter are in the same BB as the condition. Update comments.
4017
4018 2010-06-25 Jakub Jelinek <jakub@redhat.com>
4019
4020 PR middle-end/43866
4021 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
4022 true or always false, return NULL_TREE.
4023 (tree_unswitch_single_loop): Optimize conditions even when reaching
4024 max-unswitch-level parameter. If num > 0, optimize first all conditions
4025 using entry checks, then do still reachable block discovery and consider
4026 only conditions in still reachable basic blocks in the loop.
4027
4028 PR tree-optimization/44539
4029 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
4030 the call doesn't have LHS, but has VDEF.
4031
4032 2010-06-25 Joseph Myers <joseph@codesourcery.com>
4033
4034 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
4035 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
4036 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
4037 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
4038 * system.h (MODIFY_TARGET_NAME): Poison.
4039
4040 2010-06-25 Alan Modra <amodra@gmail.com>
4041
4042 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
4043 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
4044 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
4045 CMODEL_LARGE as default.
4046 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
4047 (offsettable_ok_by_alignment): Delete.
4048 (rs6000_emit_move): Remove mcmodel=medium optimization.
4049
4050 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
4051
4052 With large parts from Jim Wilson:
4053 PR target/43902
4054 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
4055 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
4056 * optabs.c (optab_for_tree_code): Likewise.
4057 (expand_widen_pattern_expr): Likewise.
4058 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
4059 out of execute_optimize_widening_mul.
4060 (convert_plusminus_to_widen): New function.
4061 (execute_optimize_widening_mul): Use the two new functions.
4062 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
4063 Remove code to generate widening multiply-accumulate. Add support
4064 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
4065 * gimple-pretty-print.c (dump_ternary_rhs): New function.
4066 (dump_gimple_assign): Call it when appropriate.
4067 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
4068 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
4069 (expand_gimple_stmt_1): Likewise.
4070 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
4071 WIDEN_MULT_MINUS_EXPR.
4072 * tree-ssa-operands.c (get_expr_operands): Likewise.
4073 * tree-inline.c (estimate_operator_cost): Likewise.
4074 * gimple.c (extract_ops_from_tree_1): Renamed from
4075 extract_ops_from_tree. Add new arg for a third operand; fill it.
4076 (gimple_build_assign_stat): Support operations with three operands.
4077 (gimple_build_assign_with_ops_stat): Likewise.
4078 (gimple_assign_set_rhs_from_tree): Likewise.
4079 (gimple_assign_set_rhs_with_ops_1): Renamed from
4080 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
4081 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
4082 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
4083 WIDEN_MULT_MINUS_EXPR.
4084 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
4085 (extract_ops_from_tree_1): Adjust declaration.
4086 (gimple_assign_set_rhs_with_ops_1): Likewise.
4087 (gimple_build_assign_with_ops): Pass NULL for last operand.
4088 (gimple_build_assign_with_ops3): New macro.
4089 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
4090 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
4091 functions.
4092 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
4093 (verify_gimple_assign): Call it.
4094 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
4095 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
4096 functions for dealing with three-operand statements.
4097 * tree.c (commutative_ternary_tree_code): New function.
4098 * tree.h (commutative_ternary_tree_code): Declare it.
4099 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
4100 ternary statements.
4101 (gimple_assign_nonzero_warnv_p): Likewise.
4102 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
4103 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
4104 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
4105 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
4106 (struct hashtable_expr): New member ternary in the union.
4107 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
4108 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
4109 (iterative_hash_hashable_expr): Likewise.
4110 (print_expr_hash_elt): Handle EXPR_TERNARY.
4111 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
4112 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
4113 statements. Handle GIMPLE_TERNARY_RHS.
4114
4115 2010-06-25 Jan Hubicka <jh@suse.cz>
4116
4117 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
4118
4119 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
4120
4121 PR c/44517
4122 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
4123 parameters are not good.
4124 (c_parser_parameter_declaration): Error unknown type name if the type
4125 name can't start declaration specifiers.
4126
4127 2010-06-25 Joseph Myers <joseph@codesourcery.com>
4128
4129 * gcc.c (translate_options): Don't mention +e in comment.
4130 (process_command): Don't handle +e specially.
4131
4132 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
4133
4134 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
4135
4136 * ira-build.c (merge_hard_reg_conflicts): New function.
4137 (create_cap_allocno, copy_info_to_removed_store_destinations,
4138 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
4139 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
4140 (remove_unnecessary_allocnos, remove_low_level_allocnos)
4141 copy_nifo_to_removed_store_destination): Use them.
4142 * ira-lives.c (make_hard_regno_born): New function, split out of
4143 make_regno_born.
4144 (make_allocno_born): Likewise.
4145 (make_hard_regno_dead): New function, split out of make_regno_dead.
4146 (make_allocno_dead): Likewise.
4147 (inc_register_pressure): New function, split out of set_allocno_live.
4148 (dec_register_pressure): New function, split out of clear_allocno_live.
4149 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
4150 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
4151 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
4152 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
4153 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
4154 mark_pseudo_regno_live.
4155 (process_bb_node_lives): Use mark_pseudo_regno_live,
4156 make_hard_regno_born and make_allocno_dead.
4157 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
4158 set_allocno_live, clear_allocno_live): Delete functions.
4159
4160 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
4161 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
4162 functions.
4163 (ira_flattening): Use ira_parent_allocno.
4164 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
4165 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
4166
4167 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
4168 statement.
4169
4170 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
4171 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
4172 minmax_set_iter_cond, minmax_set_iter_next,
4173 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
4174 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
4175 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
4176 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
4177 uses changed.
4178
4179 * ira-int.h (struct live_range, live_range_t): Renamed from struct
4180 ira_allocno_live_range and allocno_live_range_t; all uses changed.
4181 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
4182 All uses changed.
4183
4184 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
4185
4186 * thumb2.md (thumb2_tlobits_cbranch): Delete.
4187 (peephole2 to convert zero_extract/compare of single bit to
4188 lshift/compare): New.
4189
4190 2010-06-24 Anatoly Sokolov <aesok@post.ru>
4191
4192 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
4193 recursive call and call to 'int_const_binop'.
4194 (build_range_check, fold_cond_expr_with_comparison, unextend,
4195 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
4196 multiple_of_p): Adjust call to const_binop.
4197
4198 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
4199
4200 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
4201 determine size of XFmode operand.
4202 (XFmode extended DFmode push splitter): Ditto.
4203 (XFmode extended SFmode push splitter): Ditto.
4204
4205 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
4206
4207 PR target/44588
4208 * config/i386/i386.md (extract_code): New.
4209 (<u>divmodqi4): Likewise.
4210 (divmodhiqi3): Likewise.
4211 (udivmodhiqi3): Likewise.
4212 (<u>divqi3): Remvoved.
4213
4214 2010-06-24 Jakub Jelinek <jakub@redhat.com>
4215
4216 PR middle-end/44492
4217 * recog.h (struct recog_data): Add is_asm field.
4218 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
4219 present in constraints of inline-asm operand and memory operand
4220 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
4221 (extract_insn): Initialize recog_data.is_asm.
4222 * doc/md.texi (Constraints): Document operand side-effect rules.
4223
4224 2010-06-24 Andi Kleen <ak@linux.intel.com>
4225
4226 * c-parser.c (c_parser_conditional_expression): Call
4227 warn_for_omitted_condop.
4228 * doc/invoke.texi: Document omitted condop warning.
4229
4230 2010-06-24 Nick Clifton<nickc@redhat.com>
4231
4232 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
4233 insn in the sequence is a jump insn before setting its label.
4234
4235 2010-06-24 Alan Modra <amodra@gmail.com>
4236
4237 * collect2.c (main): Match exactly --version and --help.
4238
4239 2010-06-24 DJ Delorie <dj@redhat.com>
4240
4241 * config/m32c/m32c-pragma.c: Don't include rtl.h.
4242
4243 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
4244
4245 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
4246 using X87MODEF mode iterator.
4247 (pushsf splitter): Macroize splitter using P mode iterator.
4248 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
4249 mode iterator.
4250
4251 (*movxf_internal): Rename from *movxf_integer.
4252 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
4253 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
4254 (*movdf_internal): Rename from *movdf_integer.
4255 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
4256 (*movsf_internal): Rename from *movdf_1.
4257
4258 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
4259
4260 * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
4261 (const_gimple_seq_node): Removed typedefs.
4262
4263 * gimple.h: (gimple_seq_node_d, gimple_seq_node)
4264 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
4265
4266 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
4267
4268 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
4269 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
4270 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
4271 and CODE_FOR_vec_extract_lo_v4df.
4272
4273 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
4274 Changed to define_insn_and_split.
4275 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
4276 (vec_extract_lo_v16hi): Likewise.
4277 (vec_extract_lo_v32qi): Likewise.
4278 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
4279 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
4280
4281 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
4282
4283 PR target/44640
4284 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
4285 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
4286 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
4287 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
4288 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
4289
4290 PR target/44640
4291 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
4292
4293 PR other/44644
4294 * df-core.c (struct df): Rename to df_d.
4295 * df.h (struct df): Likewise.
4296 * dse.h (struct df): Remove forward declaration.
4297 * recog.h (struct insn_data): Rename to:
4298 (struct_insn_data_d). Adjusted all users.
4299
4300 2010-06-23 Arnaud Charlet <charlet@adacore.com
4301
4302 PR ada/22220
4303 * doc/install.texi: Update requirements to build GNAT.
4304
4305 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
4306
4307 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
4308 enum type.
4309 (m68k_sched_attr_opx_type): Remove unreachable return.
4310 (m68k_sched_attr_opy_type): Likewise.
4311 (m68k_sched_attr_size): Likewise.
4312 (sched_get_opxy_mem_type): Likewise.
4313 (m68k_sched_attr_op_mem): Likewise.
4314
4315 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
4316
4317 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
4318 new statement and adjust VDEF only if necessary. Remove superfluous
4319 call to maybe_clean_or_replace_eh_stmt.
4320 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
4321 copy the flags.
4322 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
4323 * tree-inline.c (copy_bb): ...and not there.
4324
4325 2010-06-22 Cary Coutant <ccoutant@google.com>
4326
4327 * dwarf2out.c (is_nested_in_subprogram): New function.
4328 (should_move_die_to_comdat): Use it.
4329 (copy_ancestor_tree): Don't mark DIEs here.
4330 (copy_decls_walk): Start walk from root of newly-added tree;
4331 mark DIEs here instead.
4332
4333 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
4334
4335 * config/i386/i386.md (unit): Also check sseishft1.
4336
4337 2010-06-22 Jan Hubicka <jh@suse.cz>
4338
4339 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
4340 enabled.
4341
4342 2010-06-22 Jan Hubicka <jh@suse.cz>
4343
4344 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
4345 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
4346 Return true if something changed.
4347 * df.h (df_confluence_function_n): Return bool.
4348 * df-core.c (df_worklist_propagate_forward,
4349 df_worklist_propagate_backward): Track changes and ages.
4350 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
4351 track ages.
4352 * dse.c (dse_confluence_n): Return always true.
4353
4354 2010-06-22 Jan Hubicka <jh@suse.cz>
4355
4356 * bitmap.c (bitmap_clear_bit): Micro optimize.
4357
4358 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
4359
4360 * config/i386/i386.md (SWI1248x): New mode iterator.
4361 (SWI48x): Ditto.
4362 (SWI12): Ditto.
4363 (SWI24): Ditto.
4364
4365 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
4366 SWI1248x mode iterator.
4367 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
4368 using SWI124 mode iterator.
4369 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
4370 mode iterator.
4371 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
4372 *pushdi2_prologue_rex64 using P mode iterator.
4373 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
4374 using SWI48 mode iterator.
4375 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
4376 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
4377 using SWI1248x mode iterator.
4378 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
4379 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
4380 SWI48 mode iterator.
4381 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
4382 iterator.
4383 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
4384 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
4385 SWI12 mode iterator.
4386 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
4387 SWI12 mode iterator.
4388 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
4389 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
4390 SWI24 mode iterator.
4391 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
4392 SWI48 mode iterator.
4393 (mov<mode>_insn_1): New expander.
4394 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
4395 using SWI48x mode iterator.
4396
4397 (*movoi_internal_avx): Rename from *movoi_internal.
4398 (*movti_internal_rex64): Rename from *movti_rex64.
4399 (*movti_internal_sse): Rename from *movti_sse.
4400 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
4401 (*movdi_internal): Rename from *movdi_2.
4402 (*movsi_internal): Rename from *movsi_1.
4403 (*movhi_internal): Rename from *movhi_1.
4404 (*movqi_internal): Rename from *movqi_1.
4405
4406 (insv): Update the call to gen_movsi_insv_1 for rename.
4407 * config/i386/i386.c (promote_duplicated_reg): Ditto.
4408
4409 2010-06-22 Jan Hubicka <jh@suse.cz>
4410
4411 * passes.c (execute_function_todo): Move call of statistics_fini_pass
4412 to ...
4413 (execute_todo) ... this one.
4414
4415 2010-06-22 Alan Modra <amodra@gmail.com>
4416
4417 PR target/44364
4418 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
4419 * caller-save.c (insert_restore, insert_save): Use non-validate
4420 form of adjust_address.
4421
4422 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4423
4424 PR target/39690
4425 * config/pa/pa.c (override_options): Disable
4426 -freorder-blocks-and-partition.
4427
4428 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
4429
4430 PR target/44615
4431 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
4432
4433 * config/i386/i386.md (type): Add sseishft1
4434
4435 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
4436 (ppro_insn_load): Likewise.
4437 (ppro_insn_store): Likewise.
4438 (ppro_insn_both): Likewise.
4439
4440 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
4441 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
4442 for type.
4443 (*vec_extractv2di_1_avx): Likewise.
4444 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
4445 type. Remove atom_unit.
4446 (*vec_extractv2di_1_sse2): Likewise.
4447
4448 2010-06-21 DJ Delorie <dj@redhat.com>
4449
4450 * diagnostic.h (diagnostic_classification_change_t): New.
4451 (diagnostic_context): Add history and push/pop list.
4452 (diagnostic_push_diagnostics): Declare.
4453 (diagnostic_pop_diagnostics): Declare.
4454 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
4455 from pragmas in a history chain instead of the global table.
4456 (diagnostic_push_diagnostics): New.
4457 (diagnostic_pop_diagnostics): New.
4458 (diagnostic_report_diagnostic): Scan history chain to find state
4459 of diagnostics as of the diagnostic location.
4460 * opts.c (set_option): Pass UNKNOWN_LOCATION to
4461 diagnostic_classify_diagnostic.
4462 (enable_warning_as_error): Likewise.
4463 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
4464 use in the history chain.
4465 * doc/extend.texi: Document pragma GCC diagnostic changes.
4466
4467 2010-06-21 Jakub Jelinek <jakub@redhat.com>
4468
4469 * dwarf2out.c (add_linkage_name): New function. Don't add
4470 anything to DW_TAG_member DIEs.
4471 (add_name_and_src_coords_attributes): Use it.
4472 (gen_variable_die): Call it for C++ static data members if
4473 specification is DW_TAG_member.
4474
4475 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
4476 C++ char16_t and char32_t.
4477
4478 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
4479 * genattrtab.c: Include vecprim.h.
4480 (cached_attrs, cached_attr_count, attrs_seen_once,
4481 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
4482 attrs_cached_after): New variables.
4483 (find_attrs_to_cache): New function.
4484 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
4485 (write_test_expr): Add attrs_cached argument, return it too,
4486 attempt to cache non-const attributes used more than once in
4487 a single case handling.
4488 (write_attr_get): Use find_attrs_to_cache, for caching candidates
4489 emit cached_* variables. Adjust write_attr_set callers.
4490 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
4491 to find attributes that should be cached in this block. Adjust
4492 write_test_expr callers.
4493 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
4494 callers.
4495 (make_automaton_attrs): Adjust write_test_expr caller.
4496
4497 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
4498 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
4499 (make_automaton_attrs): If find_tune_attr returns non-NULL,
4500 write separate internal_dfa_insn_code_* and insn_default_latency_*
4501 functions for each attribute's value and emit init_sched_attrs
4502 function and function pointers.
4503 * genattr.c (const_attrs, reservations): New variables.
4504 (gen_attr): Add const attributes to const_attrs vector.
4505 (check_tune_attr, find_tune_attr): New functions.
4506 (main): Add reservations to reservations vector. If find_tune_attr
4507 returns true, add prototype for init_sched_attrs and make
4508 internal_dfa_insn_code and insn_default_latency function pointers,
4509 otherwise define init_sched_attrs as dummy macro.
4510 * cfgexpand.c: Include insn-attr.h.
4511 (gimple_expand_cfg): Call init_sched_attrs.
4512
4513 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
4514
4515 PR target/44575
4516 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
4517 va_arg from a set of register save slots into a temporary,
4518 if the container is bigger than type size, do the copying
4519 using smaller mode or using memcpy.
4520
4521 PR bootstrap/44426
4522 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
4523 prototype.
4524 (sel_print_to_dot): Remove macro.
4525 (sel_print): Likewise. New prototype.
4526 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
4527 (sel_print): New function.
4528
4529 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4530
4531 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
4532 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
4533
4534 2010-06-21 Nick Clifton <nickc@redhat.com>
4535
4536 * config/rx/rx.h (PTRDIFF_TYPE): Define.
4537 (SMALL_REGISTER_CLASS): Define (to zero).
4538 (PRINT_OPERAND): Delete.
4539 (PRINT_OPERAND_ADDRESS): Delete.
4540 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
4541 (rx_print_operand_address): Delete prototype.
4542 * config/rx/rx.c (rx_print_operand): Make static.
4543 Allow %H and %L to handle CONST_DOUBLEs.
4544 (rx_print_operand_address): Make static.
4545 (rx_gen_move_template): Rename local variable 'template' to
4546 out_template.
4547 (rx_function_arg): Do not pass unknown sized objects in registers.
4548 (TARGET_PRINT_OPERAND): Define.
4549 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4550
4551 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
4552
4553 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
4554
4555 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
4556
4557 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
4558 stack-alignment for simple leaf-functions.
4559
4560 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
4561
4562 * doc/install.texi: Document bootstrap-lto.
4563
4564 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
4565
4566 PR debug/44248
4567 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
4568 (input_function): Drop them here, if VTA is disabled.
4569
4570 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
4571
4572 PR target/44546
4573 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
4574 New predicate.
4575 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
4576 ix86_swapped_fp_comparsion_operator instead of
4577 ix86_fp_comparison_operator.
4578
4579 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
4580 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
4581 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
4582 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
4583 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
4584 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
4585
4586 2010-06-20 Joseph Myers <joseph@codesourcery.com>
4587
4588 PR other/32998
4589 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
4590 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
4591 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
4592 (decode_cmdline_option): Update for this return value. Set
4593 orig_option_with_args_text field. Set arg field for unknown
4594 options. Make static.
4595 (decode_cmdline_options_to_array): New.
4596 (prune_options): Update handling of find_opt return value.
4597 * opts.c (read_cmdline_option): Take decoded option. Return void.
4598 (read_cmdline_options): Take decoded options.
4599 (decode_options): Add parameters for decoded options. Use
4600 decode_cmdline_options_to_array. Use decoded options for -O
4601 scan. Use integral_argument for -O parameters. Update call to
4602 read_cmdline_options.
4603 (enable_warning_as_error): Update handling of find_opt return value.
4604 * opts.h: Update comment on unknown options.
4605 (struct cl_decoded_option): Update comments on opt_index and arg.
4606 Add orig_option_with_args_text.
4607 (decode_cmdline_option): Remove.
4608 (decode_cmdline_options_to_array): Declare.
4609 (decode_options): Update prototype.
4610 * toplev.c (save_argv): Remove.
4611 (save_decoded_options, save_decoded_options_count): New.
4612 (read_integral_parameter): Remove.
4613 (print_switch_values): Use decoded options.
4614 (toplev_main): Don't set save_argv. Update call to decode_options.
4615 * toplev.h (read_integral_parameter): Remove.
4616 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
4617
4618 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
4619
4620 PR target/44072
4621 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
4622 immediate.
4623 * constraints.md (Pw, Px): New constraints.
4624 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
4625
4626 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
4627
4628 * config/i386/sse.md (fma4modesuffixf4): Removed.
4629 (ssemodesuffixf2s): Likewise.
4630 (ssemodesuffixf4): Likewise.
4631 (ssemodesuffixf2c): Likewise.
4632 (ssescalarmodesuffix2s): Likewise.
4633 (avxmodesuffixf2c): Likewise.
4634 (ssemodesuffix): New.
4635 (ssescalarmodesuffix): Likewise.
4636 Update patterns with ssemodesuffix and ssescalarmodesuffix.
4637
4638 2010-06-19 Philip Herron <herron.philip@googlemail.com>
4639
4640 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
4641
4642 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
4643
4644 * stor-layout.c (debug_rli): Remove unused local variables.
4645
4646 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
4647
4648 PR rtl-optimization/40900
4649 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
4650 original expression for later reuse.
4651 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
4652 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
4653
4654 2010-06-18 Anatoly Sokolov <aesok@post.ru>
4655
4656 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
4657 double_int_fits_in_uhwi_p): Implement as static inline.
4658 (double_int_xor): New inline function.
4659 (double_int_lrotate, double_int_rrotate, double_int_max,
4660 double_int_umax, double_int_smax, double_int_min, double_int_umin,
4661 double_int_smin): Declare.
4662 (lrotate_double, rrotate_double): Remove declaration.
4663 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
4664 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
4665 (double_int_lrotate, double_int_rrotate, double_int_max,
4666 double_int_umax, double_int_smax, double_int_min, double_int_umin,
4667 double_int_smin): New function.
4668 * fold-const.c (int_const_binop): Clean up, use double_int_*
4669 functions.
4670 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
4671 double_int_* and immed_double_int_const functions.
4672
4673 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
4674
4675 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
4676 * function.c (types_used_by_cur_var_decl): Likewise.
4677 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
4678
4679 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
4680
4681 * tree.h (record_layout_info): Change type of pending_statics field
4682 to a VEC.
4683 * stor-layout.c (start_record_layout): Store NULL into
4684 pending_statics.
4685 (debug_rli): Call debug_vec_tree instead of debug_tree.
4686 (place_field): Likewise.
4687 (finish_record_layout): Likewise.
4688
4689 2010-06-18 Alan Modra <amodra@gmail.com>
4690
4691 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
4692
4693 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4694
4695 PR target/43740
4696 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
4697 for SET source operand from SET destination operand.
4698
4699 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
4700
4701 PR rtl-optimization/39871
4702 * reload1.c (init_eliminable_invariants): For flag_pic, disable
4703 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
4704 (function_invariant_p): Rule out a plus of frame or arg pointer with
4705 a SYMBOL_REF.
4706 * ira.c (find_reg_equiv_invariant_const): Likewise.
4707
4708 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
4709
4710 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
4711 print_operand_address and puts to output the operand for CONST.
4712
4713 2010-06-17 Jakub Jelinek <jakub@redhat.com>
4714
4715 PR debug/44572
4716 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
4717 hook.
4718
4719 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4720
4721 * v850-protos.h (print_operand): Delete.
4722 (print_operand_address): Delete.
4723 * v850.h (PRINT_OPERAND): Delete.
4724 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4725 (PRINT_OPERAND_ADDRESS): Delete.
4726 * v850.c (print_operand_address): Rename to...
4727 (v850_print_operand_address): ...this. Make static. Call
4728 v850_print_operand.
4729 (print_operand): Rename to...
4730 (v850_print_operand): ...this. Make static. Call
4731 v850_print_operand_address.
4732 (v850_print_operand_punct_valid_p): New function.
4733 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4734 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4735
4736 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4737
4738 * config/sh/sh-protos.h (print_operand): Delete.
4739 (print_operand_address): Delete.
4740 * config/sh/sh.h (PRINT_OPERAND): Delete.
4741 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4742 (PRINT_OPERAND_ADDRESS): Delete.
4743 * config/sh/sh.c (sh_print_operand_address): Make static.
4744 (sh_print_operand): Make static. Call sh_print_operand_address
4745 and sh_print_operand.
4746 (sh_print_operand_punct_valid_p): New function.
4747 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4748 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4749
4750 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4751
4752 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
4753 (mcore_print_operand_address): Delete.
4754 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
4755 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4756 (PRINT_OPERAND_ADDRESS): Delete.
4757 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
4758 (mcore_print_operand): Make static.
4759 (mcore_print_operand_punct_valid_p): New function.
4760 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
4761 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4762
4763 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4764
4765 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
4766 (print_operand_address): Delete.
4767 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
4768 (PRINT_OPERAND_ADDRESS): Delete.
4769 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
4770 static.
4771 (m68hc11_print_operand): Make static.
4772 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4773
4774 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4775
4776 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
4777 (m32r_print_operand_address): Delete.
4778 * config/m32r/m32r.h (m32r_punct_chars): Delete.
4779 (PRINT_OPERAND): Delete.
4780 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4781 (PRINT_OPERAND_ADDRESS): Delete.
4782 * config/m32r/m32r.c (m32r_punct_chars): Make static.
4783 (m32r_print_operand_address): Make static.
4784 (m32r_print_operand): Make static.
4785 (m32r_print_operand_punct_valid_p): New function.
4786 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
4787 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4788
4789 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4790
4791 * config/iq2000/iq2000-protos.h (print_operand): Delete.
4792 (print_operand_address): Delete.
4793 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
4794 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4795 (PRINT_OPERAND_ADDRESS): Delete.
4796 (iq2000_print_operand_punct): Delete.
4797 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
4798 (iq2000_print_operand_address): Make static.
4799 (iq2000_print_operand): Make static.
4800 (iq2000_print_operand_punct_valid_p): New function.
4801 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
4802 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4803
4804 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4805
4806 * config/frv/frv-protos.h (frv_print_operand): Delete.
4807 (frv_print_operand_address): Delete.
4808 * config/frv/frv.h (PRINT_OPERAND): Delete.
4809 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4810 (PRINT_OPERAND_ADDRESS): Delete.
4811 * config/frv/frv.c (frv_print_operand_address): Make static.
4812 (frv_print_operand): Make static.
4813 (frv_print_operand_punct_valid_p): New function.
4814 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
4815 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4816
4817 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
4818
4819 * tree.h (vec_member): Declare.
4820 * tree.c (vec_member): Define.
4821
4822 2010-06-17 Richard Guenther <rguenther@suse.de>
4823
4824 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
4825 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
4826
4827 2010-06-17 Richard Guenther <rguenther@suse.de>
4828
4829 * tree-inline.c (declare_return_variable): Remove bogus code.
4830
4831 2010-06-17 Richard Guenther <rguenther@suse.de>
4832
4833 * gimplify.c (gimplify_bind_expr): Always promote complex
4834 and vector variables to registers if possible.
4835
4836 2010-06-17 Richard Guenther <rguenther@suse.de>
4837
4838 * expr.c (get_inner_reference): Use double_int for bit_offset
4839 calculation.
4840
4841 2010-06-16 DJ Delorie <dj@redhat.com>
4842
4843 * common.opt (-fstrict-volatile-bitfields): new.
4844 * doc/invoke.texi: Document it.
4845 * fold-const.c (optimize_bit_field_compare): For volatile
4846 bitfields, use the field's type to determine the mode, not the
4847 field's size.
4848 * expr.c (expand_assignment): Likewise.
4849 (get_inner_reference): Likewise.
4850 (expand_expr_real_1): Likewise.
4851 * expmed.c (store_fixed_bit_field): Likewise.
4852 (extract_bit_field_1): Likewise.
4853 (extract_fixed_bit_field): Likewise.
4854
4855 2010-06-16 Richard Guenther <rguenther@suse.de>
4856
4857 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
4858
4859 2010-06-16 Douglas B Rupp <rupp@gnat.com>
4860
4861 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
4862 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
4863 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
4864 * debug.c: Likewise.
4865 * sdbout.c: Likewise.
4866 * vmsdbgout.c: Likewise.
4867 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
4868 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
4869 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
4870 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
4871 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
4872 * dwarf2out.c (dw_fde_struct): New fields
4873 dw_fde_vms_{end,begin}_prologue.
4874 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
4875 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
4876 (dwarf2out_vms_end_prologue): New function.
4877 (dwarf2out_vms_begin_epilogue): New function.
4878 (dw_val_struct): New value dw_val_class_vms_delta.
4879 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
4880 begin_epilogue for VMS.
4881 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
4882 new static functions.
4883 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
4884 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
4885 static functions.
4886 (print_die): New case dw_val_class_vms_delta.
4887 (attr_checksum): Likewise.
4888 (same_dw_val_p: Likewise.
4889 (size_of_die): Likewise.
4890 (value_format): Likewise.
4891 (output_die): Likewise.
4892 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
4893 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
4894 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
4895 dwarf2out_cfi_begin_epilogue
4896 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
4897
4898 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
4899
4900 * config/cris/cris-protos.h (cris_print_operand): Delete.
4901 (cris_print_operand_address): Delete.
4902 * config/cris/cris.h (PRINT_OPERAND): Delete.
4903 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4904 (PRINT_OPERAND_ADDRESS): Delete.
4905 * config/cris/cris.c (cris_print_operand_address): Make static.
4906 (cris_print_operand): Make static.
4907 (cris_print_operand_punct_valid_p): New function.
4908 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
4909 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4910
4911 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
4912
4913 * config/arm/arm-protos.h (arm_print_operand): Delete.
4914 (arm_print_operand_address): Delete.
4915 * config/arm/arm.h (PRINT_OPERAND): Delete.
4916 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4917 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
4918 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
4919 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
4920 (arm_print_operand): Make static.
4921 (arm_print_operand_punct_valid_p): New function.
4922 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
4923 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4924
4925 2010-06-16 Nick Clifton <nickc@redhat.com>
4926
4927 * config/rx/constraints.md (NEGint4): New constraint.
4928 * config/rx/rx.md (attr cc): Add set_zsc.
4929 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
4930 initialised.
4931 (cmpsf): Likewise.
4932 (call_internal): Clobber the cc0 register.
4933 (call_value_internal): Likewise.
4934 (cstoresi4): Likewise.
4935 (movsieq): Likewise.
4936 (movsine): Likewise.
4937 (addsi3): Add alternative to handle small negative constants.
4938 (sunsi3): Likewise.
4939 (addsi3): Do not set the O bit in the cc0 register.
4940 (adddi3): Likewise.
4941 (subsi3): Likewise.
4942 (subdi3): Likewise.
4943 (andsi3): Reorder alternatives to prefer shorter forms.
4944 (mulsi3): Likewise.
4945 (iorsi3): Likewise.
4946 (negsi2): Note that the cc0 flags are set.
4947 (rotlsi3): Note that only the Z and S bits are set in cc0.
4948 (lshrsi3): Likewise.
4949 (ashlsi3): Likewise.
4950 (subsf3): Use %Q for the MEM operand.
4951 (fix_truncsfsi2): Likewise.
4952 (floatsisf2): Likewise.
4953 (bitset): Remove early clobber from destination.
4954 (bitset_in_memory): Likewise.
4955 (lrintsf2): Clobber the cc0 register.
4956 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
4957 (rx_print_operand): Handle %N.
4958
4959 2010-06-16 Jan Hubicka <jh@suse.cz>
4960
4961 * df-core.c (df_compact_blocks): Free problem_temps vector.
4962
4963 2010-06-16 Martin Jambor <mjambor@suse.cz>
4964
4965 PR tree-optimization/43905
4966 * tree-sra.c: Include tree-inline.h.
4967 (create_abstract_origin): Removed.
4968 (modify_function): Version the call graph node instead of creating
4969 abstract origins and dealing with same_body aliases.
4970 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
4971 function is versionable.
4972 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
4973
4974 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
4975
4976 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
4977 (CHOOSE_DYNAMIC_LINKER): Update.
4978
4979 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
4980
4981 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
4982 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
4983 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
4984 *prefetch_3dnow_rex.
4985
4986 2010-06-15 Anatoly Sokolov <aesok@post.ru>
4987
4988 * target.h (struct asm_out):Add declare_constant_name field.
4989 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
4990 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
4991 * output.h (default_asm_declare_constant_name): Declare.
4992 (assemble_label): Update prototype.
4993 * varasm.c (assemble_constant_contents): Use
4994 targetm.asm_out.declare_constant_name target hook.
4995 (assemble_label): Add 'file' argument.
4996 (default_asm_declare_constant_name): New function.
4997 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
4998 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
4999 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
5000
5001 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
5002 * config/darwin.c (darwin_asm_declare_constant_name): New function.
5003 (machopic_output_indirection): Update assemble_label argument list.
5004 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
5005 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
5006
5007 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
5008
5009 PR middle-end/44391
5010 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
5011 size_one_node for pointer types. Do not call gmp_cst_to_tree.
5012
5013 2010-06-15 Richard Guenther <rguenther@suse.de>
5014
5015 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
5016
5017 2010-06-15 Paul Brook <paul@codesourcery.com>
5018
5019 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
5020 hard-float ABI.
5021
5022 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
5023
5024 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
5025 don't get a vector type for output.
5026
5027 2010-06-15 Jakub Jelinek <jakub@redhat.com>
5028
5029 PR fortran/44536
5030 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
5031 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
5032 (LANG_HOOKS_DECLS): Add it.
5033 * gimplify.c (omp_notice_variable): Call
5034 lang_hooks.decls.omp_report_decl.
5035
5036 2010-06-15 Martin Jambor <mjambor@suse.cz>
5037
5038 PR lto/44464
5039 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
5040 on the newly dead SSA name.
5041
5042 2010-06-15 Alan Modra <amodra@gmail.com>
5043
5044 * doc/invoke.texi: Add mcmodel to powerpc options.
5045 * configure.ac: Add HAVE_LD_LARGE_TOC test.
5046 * configure: Regenerate.
5047 * config.in: Regenerate.
5048 * config/rs6000/linux64.opt (mcmodel): New.
5049 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
5050 (TARGET_CMODEL, SET_CMODEL): Define.
5051 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
5052 select CMODEL_MEDIUM default.
5053 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
5054 (TARGET_CMODEL): Define default.
5055 * config/rs6000/rs6000.c (cmodel): New variable.
5056 (rs6000_explicit_options): Add cmodel field.
5057 (rs6000_handle_option): Handle -mcmodel.
5058 (create_TOC_reference): Add largetoc_reg param. Generate high,
5059 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
5060 (rs6000_delegitimize_address): Recognise new toc reference rtl
5061 and minimal-toc rtl.
5062 (rs6000_legitimize_reload_address): Handle new toc references.
5063 (print_operand_address): Handle legitimate_constant_pool_address_p
5064 match before lo_sum.
5065 (rs6000_eliminate_indexed_memrefs): Tidy.
5066 (rs6000_emit_move): Tweak threshold for inlining constants.
5067 Keep rs6000_emit_allocate_stack large stack frame offsets
5068 loaded into r0 inline.
5069 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
5070 (tocrel_base, tocrel_offset): New variables.
5071 (toc_relative_expr_p): Set them here.
5072 (print_operand_address): Skip over any offset on constant pool address.
5073 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
5074 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
5075 (offsettable_ok_by_alignment): New function.
5076 (rs6000_emit_move): Address suitably aligned local symbol_refs
5077 relative to the toc pointer for -mcmodel=medium.
5078 (legitimate_constant_pool_address_p): Make param const_rtx. Add
5079 strict param. Allow lo_sum version of addressing. Verify reg
5080 used for -mminimal-toc and -mcmodel != small. Update all callers.
5081 * config/rs6000/constraints.md: Update for above change.
5082 * config/rs6000/predicates.md: Likewise.
5083 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
5084 code.
5085 (tls_gd): Split for -mcmodel=medium/large.
5086 (tls_gd_high, tls_gd_low): New.
5087 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
5088 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
5089 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
5090 (largetoc_high, largetoc_low): New.
5091 (cmptf_internal2): Add clobber.
5092 * config/rs6000/rs6000-protos.h: Update.
5093
5094 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
5095
5096 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
5097 true if no prefetch is going to be generated for a given group.
5098 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
5099 estimate the prefetch_count.
5100 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
5101 prefetch count by considering the unroll_factor and prefetch_mod
5102 for is_loop_prefetching_profitable.
5103
5104 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
5105
5106 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
5107 anything if the argument is not a MEM.
5108
5109 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
5110
5111 PR debug/43650
5112 PR debug/44181
5113 PR debug/44247
5114 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
5115 debug stmts.
5116 (canonicalize_loop_ivs): Likewise.
5117
5118 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
5119
5120 PR debug/43656
5121 * haifa-sched.c (setup_insn_reg_pressure_info,
5122 update_register_pressure): Reject debug insns.
5123 (ready_sort): Don't setup reg pressure for debug insns.
5124 (schedule_insn): Don't update reg pressure for debug insns.
5125
5126 2010-06-14 Richard Guenther <rguenther@suse.de>
5127
5128 * lto-streamer.c (cached_bp): Remove.
5129 (bitpack_delete): Likewise.
5130 (bitpack_create): Likewise.
5131 (bp_get_next_word): Likewise.
5132 (bp_pack_value, bp_unpack_value): Move ...
5133 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
5134 Re-implement.
5135 (struct bitpack_d): Likewise.
5136 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
5137 New inline functions.
5138 * lto-streamer-out.c (lto_output_bitpack): Remove.
5139 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
5140 (pack_value_fields): Adjust.
5141 (lto_write_tree): Likewise.
5142 (output_gimple_stmt): Likewise.
5143 (output_function): Likewise.
5144 * lto-streamer-in.c (input_gimple_stmt): Adjust.
5145 (input_function): Likewise.
5146 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
5147 (lto_input_bitpack): Remove.
5148 (lto_materialize_tree): Adjust.
5149 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
5150 * lto-cgraph.c (lto_output_edge): Adjust.
5151 (lto_output_node): Likewise.
5152 (lto_output_varpool_node): Likewise.
5153 (lto_output_ref): Likewise.
5154 (input_node): Likewise.
5155 (input_varpool_node): Likewise.
5156 (input_ref): Likewise.
5157 (input_edge): Likewise.
5158 (output_node_opt_summary): Likewise.
5159 (input_node_opt_summary): Likewise.
5160 * ipa-pure-const.c (pure_const_write_summary): Likewise.
5161 (pure_const_read_summary): Likewise.
5162 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
5163 (ipa_read_indirect_edge_info): Likewise.
5164 (ipa_write_node_info): Likewise.
5165 (ipa_read_node_info): Likewise.
5166
5167 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
5168
5169 PR target/44534
5170 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
5171 (vec_extract_lo_v16hi): Likewise.
5172 (vec_extract_lo_v32qi): Likewise.
5173
5174 2010-06-14 Jakub Jelinek <jakub@redhat.com>
5175
5176 PR bootstrap/44426
5177 * tree.h (build_call_expr): Don't define as vararg macro, instead
5178 add a prototype.
5179 * builtins.c (build_call_nofold): Remove.
5180 (expand_builtin_int_roundingfn, expand_builtin_pow,
5181 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
5182 expand_builtin_memset_args, expand_builtin_strcmp,
5183 expand_builtin_strncmp, expand_builtin_memory_chk): Use
5184 build_call_nofold_loc instead of build_call_nofold.
5185 (build_call_expr): New function.
5186
5187 PR tree-optimization/44508
5188 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
5189 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
5190 don't eliminate trivially dead stmts.
5191 * tree-vrp.c (vrp_finalize): Pass false as last argument
5192 to substitute_and_fold.
5193 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
5194 to substitute_and_fold.
5195 * tree-ssa-ccp.c (ccp_finalize): Likewise.
5196
5197 PR bootstrap/44509
5198 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
5199
5200 2010-06-14 Ira Rosen <irar@il.ibm.com>
5201
5202 PR tree-optimization/44507
5203 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
5204 to build initial vector for BIT_AND_EXPR.
5205 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5206
5207 2010-06-14 Jakub Jelinek <jakub@redhat.com>
5208
5209 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
5210 adjust z10prop set_attr.
5211
5212 2010-06-13 Jan Hubicka <jh@suse.cz>
5213
5214 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
5215 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
5216 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
5217 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
5218 datastructure checks into checking asserts.
5219 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
5220 * tree-ssa-sccvn.c (VN_INFO): Likewise.
5221 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
5222 df_ref_create_structure): Likewise.
5223 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
5224 pool_free): Use gcc_checking_assert.
5225 * alias.c (get_alias_set): Likewise.
5226 * var-tracking.c (variable_htab_free, shared_hash_copy,
5227 canonicalize_values_mark, variable_merge_over_cur): Likewise.
5228 * lto-streamer.c (bp_unpack_value): Likewise.
5229
5230 2010-06-13 Richard Guenther <rguenther@suse.de>
5231
5232 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
5233 Do not stream but initialize TYPE_CANONICAL to NULL.
5234 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
5235 * gimple.c (gimple_types_compatible_p): Disregard
5236 TYPE_STRUCTURAL_EQUALITY_P.
5237 (gimple_register_type): Use TYPE_CANONICAL as cache.
5238 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
5239 before registering common types.
5240 * config/i386/i386.c (ix86_function_arg_boundary): Do not
5241 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
5242 * tree.h (TYPE_CANONICAL): Clarify documentation.
5243
5244 2010-06-13 Anatoly Sokolov <aesok@post.ru>
5245
5246 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5247 LIBCALL_VALUE): Remove macros.
5248 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
5249 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5250 TARGET_FUNCTION_VALUE_REGNO_P): Define.
5251 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
5252 (ia64_function_value): Make static. Handle receiving the function
5253 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
5254
5255 2010-06-12 Jan Hubicka <jh@suse.cz>
5256
5257 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
5258 at correct place.
5259
5260 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
5261
5262 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
5263
5264 2010-06-12 Jan Hubicka <jh@suse.cz>
5265
5266 * df-core.c (df_clear_bb_info): New function.
5267 (df_set_blocks): bb_info is always allocated.
5268 (df_get_bb_info): Use block_info_elt_size.
5269 (df_set_bb_info): Likewise.
5270 (df_compact_blocks): Update for new block_info.
5271 (grow_bb_info): New function.
5272 * df-problems.c (df_grow_bb_info): Move to df-core.c
5273 (df_rd_set_bb_info): Remove.
5274 (df_rd_free_bb_info): Do not free block pool.
5275 (df_rd_alloc): Do not create pool, use check for
5276 obstack presence instead of NULL pointer for new blocks.
5277 (df_rd_free): DO not free alloc pool; clear block_info.
5278 (problem_RD): Add size of block info structure.
5279 (df_lr_set_bb_info): Remove.
5280 (df_lr_free_bb_info): Do not free block pool.
5281 (df_lr_alloc): Do not create pool, use check for
5282 obstack presence instead of NULL pointer for new blocks.
5283 (df_lr_free): DO not free alloc pool; clear block_info.
5284 (problem_LR): Add size of block info structure.
5285 (df_live_set_bb_info): Remove.
5286 (df_live_free_bb_info): Do not free block pool.
5287 (df_live_alloc): Do not create pool, use check for
5288 obstack presence instead of NULL pointer for new blocks.
5289 (df_live_free): DO not free alloc pool; clear block_info.
5290 (problem_LIVE): Add size of block info structure.
5291 (problem_CHAIN): Add size of block info structure.
5292 (df_byte_lr_set_bb_info): Remove.
5293 (df_byte_lr_free_bb_info): Do not free block pool.
5294 (df_byte_lr_alloc): Do not create pool, use check for
5295 obstack presence instead of NULL pointer for new blocks.
5296 (df_byte_lr_free): DO not free alloc pool; clear block_info.
5297 (problem_BYTE_LR): Add size of block info structure.
5298 (problem_NOTE): Add size of block info structure.
5299 (df_byte_MD_set_bb_info): Remove.
5300 (df_byte_MD_free_bb_info): Do not free block pool.
5301 (df_byte_MD_alloc): Do not create pool, use check for
5302 obstack presence instead of NULL pointer for new blocks.
5303 (df_byte_MD_free): DO not free alloc pool; clear block_info.
5304 (problem_BD): Add size of block info structure.
5305 * df-scan.c (df_scan_free_internal): Free block pool.
5306 (df_scan_set_bb_info): Remove.
5307 (df_scan_free_bb_info): Check for artificial_defs instead
5308 of bb_info being non-NULL.
5309 (df_scan_alloc): DO not create df_scan_block pool.
5310 (problem_SCAN): Set size of block info.
5311 (df_bb_refs_record): Do not allocate bb_info.
5312 * df.h (df_problem): Add block_info_elt_size.
5313 (struct dataflow): Change block_info to void *.
5314 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
5315 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
5316 in-line structures.
5317
5318 2010-06-12 Jan Hubicka <jh@suse.cz>
5319
5320 PR tree-optimize/44485
5321 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
5322 containing use of return value of noreturn function.
5323
5324 2010-06-12 Anatoly Sokolov <aesok@post.ru>
5325
5326 * targhooks.c (default_function_value): Don't use
5327 FUNCTION_OUTGOING_VALUE.
5328 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
5329 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
5330
5331 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
5332
5333 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
5334 Add crtfastmath.o to extra_parts.
5335 * config/mips/crtfastmath.c: New.
5336 * config/mips/linux.h (ENDFILE_SPEC): New.
5337
5338 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
5339
5340 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
5341 old_type in parameter.
5342 (gcc_type_for_value): Update call to gcc_type_for_interval.
5343 (compute_type_for_level_1): Renamed compute_type_for_level.
5344 Update call to gcc_type_for_interval.
5345
5346 2010-06-11 Joseph Myers <joseph@codesourcery.com>
5347
5348 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
5349 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
5350
5351 2010-06-11 Joseph Myers <joseph@codesourcery.com>
5352
5353 * opts-common.c: Include options.h.
5354 (integral_argument): Move from opts.c.
5355 (decode_cmdline_option): New. Based on read_cmdline_option.
5356 * opts.c (integral_argument): Move to opts-common.c.
5357 (read_cmdline_option): Move most contents to
5358 decode_cmdline_option. Use %qs in diagnostics.
5359 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
5360 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
5361 decode_cmdline_option): New.
5362
5363 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
5364
5365 PR target/44481
5366 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
5367 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
5368 (partiysi2_cmp): Ditto.
5369 (*partiyhi2_cmp): Ditto.
5370 (*parityqi2_cmp): Remove.
5371
5372 2010-06-11 Jan Hubicka <jh@suse.cz>
5373
5374 * bitmap.h (bmp_iter_next_bit): New.
5375 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
5376
5377 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
5378 Eric Botcazou <ebotcazou@adacore.com>
5379
5380 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
5381 computed cost.
5382
5383 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
5384
5385 * config/i386/i386.md (unspec): New define_c_enum.
5386 (unspecv): Ditto.
5387
5388 2010-06-10 Jakub Jelinek <jakub@redhat.com>
5389
5390 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
5391
5392 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
5393
5394 PR middle-end/44483
5395 * tree-if-conv.c (bb_predicate_s): New struct.
5396 (bb_predicate_p): New.
5397 (bb_has_predicate): New.
5398 (bb_predicate): New.
5399 (set_bb_predicate): New.
5400 (bb_predicate_gimplified_stmts): New.
5401 (set_bb_predicate_gimplified_stmts): New.
5402 (add_bb_predicate_gimplified_stmts): New.
5403 (init_bb_predicate): New.
5404 (free_bb_predicate): New.
5405 (is_predicated): Use bb_predicate.
5406 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
5407 (predicate_bbs): Same. Gimplify the condition of the basic blocks
5408 before processing their successors.
5409 (clean_predicate_lists): Removed.
5410 (find_phi_replacement_condition): Use bb_predicate.
5411 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
5412 computations.
5413 (insert_gimplified_predicates): New.
5414 (combine_blocks): Call insert_gimplified_predicates.
5415 (tree_if_conversion): Call free_bb_predicate instead of
5416 clean_predicate_lists.
5417
5418 2010-10-11 Paul Brook <paul@codesourcery.com>
5419
5420 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
5421 * config/arm/arm.c (all_architectures): Change v7e-m default to
5422 cortexm4.
5423 * config/arm/arm-cores.def: Add cortex-m4.
5424 * config/arm/arm-tune.md: Regenerate.
5425
5426 2010-06-11 Jan Hubicka <jh@suse.cz>
5427
5428 * ipa-pure-const.c (special_builtlin_state): New function.
5429 (check_call): Use it instead of special casign BUILT_IN_RETURN.
5430 (propagate_pure_const): Use it.
5431
5432 2010-06-11 Jan Hubicka <jh@suse.cz>
5433
5434 * df-problems.c (df_live_scratch): Convert to bitmap_head.
5435 (df_live_alloc): Initialize df_live_scratch when initializing
5436 problem_data.
5437 (df_live_transfer_function): Update uses of df_live_scratch.
5438 (df_live_free): Free problem_data; clear df_live_scratch before
5439 releasing the obstack.
5440 (df_md_free): Free problem data.
5441
5442 2010-06-11 Jan Hubicka <jh@suse.cz>
5443
5444 * doc/invoke.texi (Wsuggest-attribute): Document.
5445 (Wmissing-noreturn): Remove.
5446 * ipa-pure-const.c (warn_function_noreturn): New function.
5447 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
5448 warn_missing_noreturn.
5449 * common.opt (Wsuggest-attribute=noreturn): New.
5450 * tree-flow.h (warn_function_noreturn): Declare.
5451 * tree-cfg.c (execute_warn_function_noreturn): Use
5452 warn_function_noreturn.
5453 (gate_warn_function_noreturn): New.
5454 (pass_warn_function_noreturn): Update.
5455
5456 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
5457
5458 * c-typeck.c (handle_warn_cast_qual): Add loc
5459 parameter. Improve warning message.
5460 (build_c_cast): Pass location to handle_warn_cast_qual.
5461
5462 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
5463
5464 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
5465 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
5466 insn mnemonic.
5467 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
5468
5469 2010-06-10 Dodji Seketeli <dodji@redhat.com>
5470
5471 Fix bootstap on mips
5472 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
5473 be naming typedefs.
5474
5475 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
5476
5477 * system.h (helper_const_non_const_cast): New inline for
5478 gcc version <= 4.0.
5479 (CONST_CAST2): For gcc version <= 4.0 use
5480 new helper to do const/non-const casting.
5481
5482 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5483
5484 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
5485 * Makefile.in (OBJS-common): Include insn-enums.o.
5486 (insn-enums.o): New rule.
5487 (simple_generated_c): Add insn-enums.c.
5488 (build/genenums.o): New rule.
5489 (genprogmd): Add "enums".
5490 * genconstants.c (print_enum_type): Declare a C string array
5491 for each enum.
5492 * genenums.c: New file.
5493 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
5494 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
5495 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
5496
5497 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5498
5499 * doc/md.texi (define_enum_attr): Document.
5500 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
5501 * read-md.h (lookup_enum_type): Declare.
5502 * read-md.c (lookup_enum_type): New function.
5503 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
5504 * genattrtab.c (attr_desc): Add an enum_name field.
5505 (evaluate_eq_attr): Take the associated attribute as argument.
5506 Get the enum prefix from the enum_name field, if defined.
5507 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
5508 (simplify_test_exp): Pass attr to evaluate_eq_attr.
5509 (add_attr_value): New function, split out from...
5510 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
5511 (write_test_expr): Pass attr to evaluate_eq_attr.
5512 (write_attr_get): Use the enum_name as the enum tag, if defined.
5513 (write_attr_valueq): Use the enum_name as a prefix, if defined.
5514 (find_attr): Initialize enum_name.
5515 (main): Handle DEFINE_ENUM_ATTR.
5516 * gensupport.c (process_rtx): Likewise.
5517 * config/mips/mips.h (mips_tune_attr): Delete.
5518 * config/mips/mips.md (cpu): Use define_attr_enum.
5519
5520 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5521
5522 * doc/md.texi (define_c_enum, define_enum): Document.
5523 * read-md.h (md_constant): Add a parent_enum field.
5524 (enum_value, enum_type): New structures.
5525 (upcase_string, traverse_enum_types): Declare.
5526 * read-md.c (enum_types): New variable.
5527 (upcase_string, add_constant): New functions.
5528 (handle_constants): Don't create the hash table here.
5529 Use add_constant.
5530 (traverse_md_constants): Don't check for a null md_constants.
5531 (decimal_string, handle_enum, traverse_enum_types): New functions.
5532 (read_md_files): Initialize md_constants and md_enums.
5533 * genconstants.c (print_md_constant): Ignore info argument.
5534 Only print constants that belong to no enum.
5535 (print_enum_type): New function.
5536 (main): Don't pass stdout to print_md_constant. Call print_enum_type
5537 for each defined enum type.
5538 * config/mips/mips.md (processor): New define_enum.
5539 (unspec): New define_c_enum.
5540 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
5541 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
5542 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
5543 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
5544 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
5545 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
5546 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
5547 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
5548 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
5549 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
5550 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
5551 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
5552 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
5553 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
5554 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
5555 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
5556 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
5557 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
5558 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
5559 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
5560 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
5561 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
5562 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
5563 (UNSPEC_RDDSP): Move to mips-dsp.md.
5564 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
5565 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
5566 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
5567 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
5568 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
5569 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
5570 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
5571 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
5572 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
5573 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
5574 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
5575 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
5576 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
5577 Moved to mips-dspr2.md.
5578 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
5579 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
5580 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
5581 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
5582 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
5583 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
5584 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
5585 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
5586 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
5587 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
5588 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
5589 UNSPEC_LOONGSON_PSADBH)
5590 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
5591 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
5592 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
5593 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
5594 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
5595 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
5596 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
5597 (cpu): Update comment.
5598 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
5599 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
5600 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
5601 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
5602 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
5603 UNSPEC_LOONGSON_PCMPEQ)
5604 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
5605 UNSPEC_LOONGSON_PINSR_0)
5606 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
5607 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
5608 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
5609 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
5610 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
5611 UNSPEC_LOONGSON_PSADBH)
5612 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
5613 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
5614 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
5615 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
5616 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
5617 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
5618 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
5619 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
5620 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
5621 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
5622 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
5623 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
5624 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
5625 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
5626 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
5627 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
5628 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
5629 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
5630 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
5631 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
5632 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
5633 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
5634 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
5635 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
5636 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
5637 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
5638 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
5639 (UNSPEC_RDDSP): Moved from mips.md.
5640 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
5641 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
5642 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
5643 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
5644 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
5645 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
5646 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
5647 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
5648 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
5649 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
5650 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
5651 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
5652 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
5653 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
5654 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
5655 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
5656 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
5657 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
5658 (UNSPEC_SCC): Moved from mips.md.
5659 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
5660 "processor_type" to "processor".
5661 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
5662 * config/mips/mips.h (processor_type): Delete.
5663 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
5664 "processor_type" to "processor".
5665
5666 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5667
5668 * configure.ac (tm_include_list): Add insn-constants.h.
5669 * configure: Regenerate.
5670 * Makefile.in (GTM_H): Move insn-constants.h here from...
5671 (TM_H): ...here.
5672 * mkconfig.sh: Remove special handling for insn-constants.h.
5673
5674 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5675
5676 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
5677 (BUILD_MD): ...this new variable.
5678 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
5679 that include the old contents of simple_generated_h and
5680 simple_generated_c.
5681 (simple_generated_h, simple_generated_c): Include them. Add
5682 insn-constants.h.
5683 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
5684 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
5685 Remove these dependencies from the main rule and include
5686 insn-conditions.md in the command line only if it appears
5687 in the dependency list.
5688 (insn-constants.h, s-constants): Delete.
5689 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
5690 or gensupport.h.
5691 (build/genmddeps.o): Likewise.
5692 (genprogrtl): New variable that contains everything from genprogmd
5693 except mddeps and constants.
5694 (genprogmd): Redefine in terms of genprogrtl. Make these programs
5695 depend on $(BUILD_MD)
5696 (genprog): New variable. Make these programs depend on
5697 $(BUILD_ERRORS).
5698 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
5699 (main): Use read_md_files instead of init_rtx_reader_args.
5700 * genconstants.c: As for genmddeps.c.
5701 * read-md.h (read_skip_construct): Declare.
5702 * read-md.c (read_skip_construct): New function.
5703 (handle_file): Allow a null handle_directive, skipping the
5704 construct if so.
5705 (parse_include): Update the comment accordingly.
5706
5707 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5708
5709 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
5710 * genmddeps.c: Include read-md.h.
5711 (main): Call init_rtx_reader_args instead of init_md_reader_args.
5712 * genattr.c (main): Likewise.
5713 * genattrtab.c (main): Likewise.
5714 * genautomata.c (main): Likewise.
5715 * gencodes.c (main): Likewise.
5716 * genconditions.c (main): Likewise.
5717 * genconfig.c (main): Likewise.
5718 * genconstants.c (main): Likewise.
5719 * genemit.c (main): Likewise.
5720 * genextract.c (main): Likewise.
5721 * genflags.c (main): Likewise.
5722 * genopinit.c (main): Likewise.
5723 * genoutput.c (main): Likewise.
5724 * genpeep.c (main): Likewise.
5725 * genrecog.c (main): Likewise.
5726 * genpreds.c (main): Likewise.
5727 * gensupport.h (in_fname): Move to read-md.h.
5728 (init_md_reader_args_cb): Rename to...
5729 (init_rtx_reader_args_cb): ...this and return a bool.
5730 (init_md_reader_args): Rename to...
5731 (init_rtx_reader_args): ...this and return a bool.
5732 (include_callback): Move to read-md.h.
5733 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
5734 (file_name_list, first_dir_md_include): Move to read-md.c
5735 (first_bracket_include): Delete unused variable.
5736 (last_dir_md_include): Move to read-md.c.
5737 (process_include): Delete, moving code to read-md.c:handle_include.
5738 (process_rtx): Don't handle INCLUDE.
5739 (save_string): Delete.
5740 (rtx_handle_directive): New function.
5741 (init_md_reader_args_cb): Rename to...
5742 (init_rtx_reader_args_cb): ...this and return a boolean success value.
5743 Use read_md_args.
5744 (init_md_reader_args): Rename to...
5745 (init_rtx_reader_args): ...this and return a boolean success value.
5746 * rtl.def (INCLUDE): Delete.
5747 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
5748 argument.
5749 * read-rtl.c (read_conditions): Don't gobble ')' here.
5750 (read_mapping): Likewise.
5751 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
5752 Handle top-level non-rtx constructs here rather than in read_rtx_1.
5753 Store the whole queue in *X. Remove call to init_md_reader.
5754 (read_rtx_1): Rename to...
5755 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
5756 Don't handle top-level non-rtx constructs here. Don't handle (nil)
5757 here.
5758 (read_nested_rtx): New function. Handle (nil) here rather than
5759 in read_rtx_code.
5760 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
5761 gobble ')' here.
5762 * read-md.h (directive_handler_t): New type.
5763 (in_fname, include_callback): Moved from read-md.h.
5764 (read_constants, init_md_reader): Delete.
5765 (read_md_files): Declare.
5766 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
5767 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
5768 from gensupport.c.
5769 (read_constants): Rename to...
5770 (handle_constants): ...this. Don't gobble ')' here.
5771 (handle_include, handle_file, handle_toplevel_file)
5772 (parse_include): New functions, mostly taken from gensupport.c.
5773 (init_md_reader): Subsume into...
5774 (read_md_files): ...this new function.
5775
5776 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5777
5778 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
5779 (unread_char): Decrement read_md_lineno after putting back '\n'.
5780 * read-md.c (fatal_with_file_and_line): Push back any characters
5781 that we decide not to add to the context.
5782 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
5783 fatal_expected_char in cases where '/' ends a line (for example).
5784 (read_name): Don't increment read_md_lineno here.
5785 (read_escape): Likewise.
5786 (read_quoted_string): Likewise.
5787 (read_braced_string): Likewise.
5788
5789 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5790
5791 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
5792 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
5793 * genconstants.c: Include read-md.h.
5794 * read-rtl.c (md_constants): Move to read-md.c.
5795 (md_name): Move to read-md.h.
5796 (initialize_iterators): Use leading_string_hash instead of def_hash
5797 and leading_string_eq_p instead of def_name_eq_p.
5798 (read_name): Move to read-md.c.
5799 (def_hash, def_name_eq_p): Delete.
5800 (read_constants, traverse_md_constants): Move to read-md.c.
5801 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
5802 * read-md.h: Include hashtab.h.
5803 (md_name): Moved from read-rtl.c.
5804 (md_constant): Moved from read-md.h.
5805 (leading_string_hash, leading_string_eq_p, read_name)
5806 (read_constants, traverse_md_constants): Declare.
5807 * read-md.c (md_constants): Moved from read-rtl.c.
5808 (leading_string_hash, leading_string_eq_p): New functions.
5809 (read_name, read_constants, traverse_md_constants): Moved from
5810 read-rtl.c.
5811
5812 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5813
5814 * read-rtl.c (md_name): New structure.
5815 (read_name): Take an md_name instead of a buffer pointer.
5816 Use the "string" field instead of strcpy when expanding constants.
5817 (read_constants): Remove the tmp_char argument. Update the calls
5818 to read_name, using two local name buffers instead of the tmp_char
5819 argument. Merge the constant-creation code.
5820 (read_conditions): Remove the tmp_char argument. Update the calls
5821 to read_name, using a local name buffer instead of the tmp_char
5822 argument.
5823 (read_mapping): Replace tmp_char variable with a local name buffer.
5824 Update the calls to read_name.
5825 (read_rtx_1): Likewise. Update the calls to read_constants and
5826 read_conditions.
5827
5828 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5829
5830 * Makefile.in (build/read-md.o): Depend on errors.h.
5831 * read-md.h (error_with_line): Declare.
5832 * read-md.c: Include errors.h.
5833 (message_with_line_1): New function, extracted from...
5834 (message_with_line): ...here.
5835 (error_with_line): New function.
5836 * genattrtab.c: If a call to message_with_line is followed by
5837 "have_error = 1;", replace both statements with a call to
5838 error_with_line.
5839 * genoutput.c: Likewise.
5840 * genpreds.c: Likewise.
5841 * genrecog.c: If a call to message_with_line is followed by
5842 "error_count++;", replace both statements with a call to
5843 error_with_line.
5844 (errorcount): Delete.
5845 (main): Don't check it.
5846 * gensupport.c: If a call to message_with_line is followed by
5847 "errors = 1;", replace both statements with a call to error_with_line.
5848 (errors): Delete.
5849 (process_define_cond_exec): Check have_error instead of errors.
5850 (init_md_reader_args_cb): Likewise. Don't set errors.
5851
5852 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5853
5854 * read-md.h (read_md_file): Declare.
5855 (read_char, unread_char): New functions.
5856 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
5857 (read_quoted_string, read_string): Remove FILE * argument.
5858 * read-md.c (read_md_file): New variable.
5859 (read_md_filename, read_md_lineno): Update comments and remove
5860 unnecessary initialization.
5861 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
5862 (read_escape, read_quoted_string, read_braced_string, read_string):
5863 Remove FILE * argument. Update calls accordingly, using read_char
5864 and unread_char instead of getc and ungetc.
5865 * rtl.h (read_rtx): Remove FILE * argument.
5866 * read-rtl.c (iterator_group): Remove FILE * argument from
5867 "find_builtin".
5868 (iterator_traverse_data): Remove "infile" field.
5869 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
5870 (add_mapping, read_name, read_constants, read_conditions)
5871 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
5872 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
5873 Remove file arguments from all calls, using read_char and unread_char
5874 instead of getc and ungetc.
5875 * gensupport.c (process_include): Preserve read_md_file around
5876 the include. Set read_md_file to the handle of the included file.
5877 Update call to read_rtx.
5878 (init_md_reader_args_cb): Set read_md_file to the handle of the file
5879 and remove local FILE *. Update calls to read_rtx.
5880
5881 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5882
5883 * read-md.h (read_rtx_lineno): Rename to...
5884 (read_md_lineno): ...this.
5885 (read_rtx_filename): Rename to...
5886 (read_md_filename): ...this.
5887 (copy_rtx_ptr_loc): Rename to...
5888 (copy_md_ptr_loc): ...this.
5889 (print_rtx_ptr_loc): Rename to...
5890 (print_md_ptr_loc): ...this.
5891 * read-md.c: Likewise. Update references after renaming.
5892 (string_obstack): Replace RTL with MD in comment.
5893 (set_rtx_ptr_loc): Rename to...
5894 (set_md_ptr_loc): ...this.
5895 (get_rtx_ptr_loc): Rename to...
5896 (get_md_ptr_loc): ...this.
5897 * genconditions.c: Update references after renaming.
5898 * genemit.c: Likewise.
5899 * genoutput.c: Likewise.
5900 * genpreds.c: Likewise.
5901 * gensupport.c: Likewise.
5902 * read-rtl.c: Likewise.
5903
5904 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
5905
5906 * Makefile.in (READ_MD_H): New variable.
5907 (BUILD_RTL): Add build/read-md.o.
5908 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
5909 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
5910 (build/genattrtab.o, build/genconditions.o build/genemit.o)
5911 (build/genextract.o, build/genflags.o, build/genoutput.o)
5912 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
5913 (build/read-md.o): New rule.
5914 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
5915 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
5916 * coretypes.h: ...here.
5917 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
5918 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
5919 * genattr.c: Include read-md.h.
5920 * genattrtab.c: Likewise.
5921 * genconditions.c: Likewise.
5922 * genemit.c: Likewise.
5923 * genextract.c: Likewise.
5924 * genflags.c: Likewise.
5925 * genoutput.c: Likewise.
5926 * genpreds.c: Likewise.
5927 * genrecog.c: Likewise.
5928 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
5929 (join_c_conditions, print_c_condition, read_rtx_filename)
5930 (read_rtx_lineno): Move to read-md.h.
5931 * read-rtl.c: Include read-md.h.
5932 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
5933 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
5934 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
5935 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
5936 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
5937 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
5938 (read_braced_string, read_string): Move to read-md.c.
5939 (read_rtx): Move some initialization to init_md_reader and call
5940 init_md_reader here.
5941 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
5942 Move to read-md.h.
5943 * gensupport.c: Include read-md.h.
5944 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
5945 * read-md.h, read-md.c: New files.
5946
5947 2010-06-10 Anatoly Sokolov <aesok@post.ru>
5948
5949 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
5950 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
5951 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
5952 * config/moxie/moxie.c (moxie_function_value): Make static.
5953 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
5954 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
5955
5956 2010-06-10 Martin Jambor <mjambor@suse.cz>
5957
5958 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
5959 * dbgcnt.def (tree_sra): New counter.
5960 * tree-sra.c: Include dbgcnt.h.
5961 (gate_intra_sra): Check tree_sra debug counter.
5962
5963 2010-06-10 Martin Jambor <mjambor@suse.cz>
5964
5965 PR tree-optimization/44258
5966 * tree-sra.c (build_access_subtree): Return false iff there is a
5967 partial overlap.
5968 (build_access_trees): Likewise.
5969 (analyze_all_variable_accesses): Disqualify candidates if
5970 build_access_trees returns true for them.
5971
5972 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
5973
5974 PR debug/41371
5975 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
5976 tail-recurse into canonical node. Fast-forward over
5977 non-canonical VALUEs.
5978
5979 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
5980
5981 PR boostrap/44470
5982 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
5983 (*addsi_1_zext) <TYPE_LEA>: Likewise.
5984 (add lea splitter): Likewise.
5985 (add_zext lea splitter): Likewise.
5986
5987 2010-06-10 Joseph Myers <joseph@codesourcery.com>
5988
5989 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
5990
5991 2010-06-10 Jan Hubicka <jh@suse.cz>
5992
5993 * df-problems.c (df_live_problem_data): Add live_bitmaps.
5994 (df_live_alloc): Initialize problem data and live_osbtacks.
5995 (df_live_finalize): Remove obstack, problem data; do not
5996 clear all bitmaps.
5997 (df_live_top_dump, df_live_bottom_dump): Do not dump old
5998 data when not allocated.
5999 (df_live_verify_solution_start): Do not allocate problem data.
6000 (df_live_verify_solution_end): Check if out is allocated.
6001 (struct df_md_problem_data): New structure.
6002 (df_md_alloc): Allocate problem data.
6003 (df_md_free): Free problem data; do not clear bitmaps.
6004
6005 2010-06-10 Jan Beulich <jbeulich@novell.com>
6006
6007 PR bootstrap/37304
6008 * configure.ac: Replace $() with ${} when intending to expand
6009 variables rather than invoking commands.
6010 * configure: Re-generate.
6011
6012 2010-06-10 Jan Hubicka <jh@suse.cz>
6013
6014 PR rtl-optimization/44460
6015 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
6016 TYPE_NEEDS_CONSTRUCTING sanity check.
6017
6018 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
6019
6020 * doc/include/fdl.texi: Move to GFDL version 1.3.
6021
6022 * doc/cpp.texi: Move to GFDL version 1.3.
6023 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
6024 * doc/gccint.texi: Move to GFDL version 1.3.
6025 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
6026 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
6027 * doc/invoke.texi: Move to GFDL version 1.3.
6028
6029 2010-06-09 Jan Hubicka <jh@suse.cz>
6030
6031 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
6032 Break out from ...
6033 (propagate) ... here; swap the order.
6034
6035 2010-06-09 Jan Hubicka <jh@suse.cz>
6036
6037 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
6038 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
6039 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
6040 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
6041
6042 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
6043
6044 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
6045 Do not the gather memory reference in the outer loop if the step
6046 is not a constant.
6047
6048 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
6049
6050 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
6051 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
6052 8 to 4. Minor change of the related comments.
6053
6054 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
6055
6056 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
6057 the scev analysis when the variable is not used outside the loop
6058 in a close phi node: call compute_overall_effect_of_inner_loop.
6059
6060 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
6061
6062 * graphite-sese-to-poly.c (single_pred_cond): Renamed
6063 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
6064 (build_sese_conditions_before): Renamed call to single_pred_cond.
6065 (build_sese_conditions_after): Same.
6066
6067 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
6068
6069 * graphite-poly.h: Fix comments and indentation.
6070 * graphite-sese-to-poly.c: Same.
6071 (build_sese_conditions_before): Compute stmt and gbb only when needed.
6072 * tree-chrec.c: Fix comments and indentation.
6073 (tree-ssa-loop-niter.c): Same.
6074
6075 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
6076
6077 PR rtl-optimization/42461
6078 * dce.c (deletable_insn_p): Return true for const or pure calls again.
6079 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
6080
6081 2010-06-09 Jan Hubicka <jh@suse.cz>
6082
6083 * bitmap.c (bitmap_and): Walk array forward.
6084 (bitmap_and_compl_into): Likewise.
6085 (bitmap_xor): Likewise.
6086 (bitmap_xor_into): Likewise.
6087 (bitmap_equal_p): Likewise.
6088 (bitmap_intersect_p): Likewise.
6089 (bitmap_intersect_compl_p): Likewise.
6090 (bitmap_ior_and_into): Likewise.
6091 (bitmap_elt_copy): Likewise.
6092 (bitmap_and_compl): Likewise.
6093 (bitmap_elt_ior): Likewise.
6094
6095 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
6096
6097 * opts-common.c (prune_options): Ensure replacement argv array
6098 is correctly terminated by a NULL entry.
6099
6100 2010-06-09 Jan Hubicka <jh@suse.cz>
6101
6102 * cgraph.h (varpool_first_static_initializer,
6103 varpool_next_static_initializer): Make checking only when
6104 checking enabled.
6105 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
6106 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
6107 gcc_assert to gcc_checking_assert.
6108 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
6109 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
6110 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
6111 op_iter_init_phiuse, op_iter_init_phidef,
6112 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
6113 gcc_checking_assert.
6114 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
6115 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
6116 partition_is_global, live_on_entry, live_on_exit,
6117 live_merge_and_clear): Likewise.
6118 * system.h (gcc_checking_assert): New macro.
6119 * gimple.h (set_bb_seq): Use gcc_checking_assert.
6120
6121 2010-06-09 Jason Merrill <jason@redhat.com>
6122
6123 * Makefile.in (TAGS): Collect tags info from c-family.
6124
6125 2010-06-09 Jan Hubicka <jh@suse.cz>
6126
6127 * gimple.h (gcc_gimple_checking_assert): New macro.
6128 (gimple_set_def_ops, gimple_set_use_ops,
6129 gimple_set_vuse, gimple_set_vdef,
6130 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
6131 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
6132 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
6133 gimple_asm_output_op, gimple_asm_output_op_ptr,
6134 gimple_asm_set_output_op, gimple_asm_clobber_op,
6135 gimple_asm_set_clobber_op, gimple_asm_label_op,
6136 gimple_asm_set_label_op, gimple_try_set_kind,
6137 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
6138 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
6139 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
6140 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
6141 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
6142 gimple_omp_for_set_initial, gimple_omp_for_final,
6143 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
6144 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
6145 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
6146 conditional with ENABLE_GIMPLE_CHECKING.
6147 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
6148
6149 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
6150
6151 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
6152 (get_computation_cost_at): Use it.
6153 (determine_use_iv_cost_condition): Likewise.
6154 (determine_iv_cost): Likewise.
6155
6156 2010-06-09 Richard Guenther <rguenther@suse.de>
6157
6158 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
6159 replace constants.
6160
6161 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
6162
6163 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
6164
6165 2010-06-09 Martin Jambor <mjambor@suse.cz>
6166
6167 PR tree-optimization/44423
6168 * tree-sra.c (dump_access): Dump also grp_assignment_read.
6169 (analyze_access_subtree): Pass negative allow_replacements to children
6170 if the current type is scalar.
6171
6172 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
6173
6174 PR testsuite/42843
6175 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
6176 * doc/plugins.texi (Plugin license check): Update information
6177 on type of plugin_is_GPL_compatible.
6178 * Makefile.in (PLUGINCC): Define as $(COMPILER).
6179 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
6180
6181 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
6182
6183 * config/arm/arm.c (thumb2_reorg): New function.
6184 (arm_reorg): Call it.
6185 * config/arm/thumb2.md (define_peephole2 for flag clobbering
6186 arithmetic operations): Delete.
6187
6188 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
6189
6190 PR target/44067
6191 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
6192 e500v2 target.
6193
6194 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
6195
6196 PR plugins/44459
6197 * gcc-plugin.h: Encapsulate all declarations in extern "C".
6198
6199 2010-06-08 Jan Hubicka <jh@suse.cz>
6200
6201 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
6202 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
6203
6204 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
6205
6206 PR tree-optimization/39874
6207 PR middle-end/28685
6208 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
6209 Declare.
6210 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
6211 same_bool_result_p): New.
6212 (and_var_with_comparison, and_var_with_comparison_1,
6213 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
6214 (or_var_with_comparison, or_var_with_comparison_1,
6215 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
6216 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
6217 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
6218 of combine_comparisons.
6219 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
6220
6221 2010-06-08 Anatoly Sokolov <aesok@post.ru>
6222
6223 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6224 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6225 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
6226 pdp11_function_value_regno_p): New functions.
6227 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6228 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6229
6230 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
6231
6232 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
6233 Thumb-2 in the MINUS case.
6234
6235 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6236
6237 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
6238
6239 * doc/gty.texi (GTY Options): Document typed GC allocation and
6240 variable_size GTY option.
6241
6242 * ggc-internal.h: New.
6243
6244 * ggc.h: Update copyright year.
6245 (digit_string): Move to stringpool.c.
6246 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
6247 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
6248 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
6249 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
6250 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
6251 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
6252 (ggc_force_collect, ggc_get_size, ggc_statistics)
6253 (ggc_print_common_statistics): Move to ggc-internal.h.
6254 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
6255 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
6256 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
6257 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
6258 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
6259 (ggc_alloc_zone_pass_stat): Remove.
6260 (ggc_internal_alloc_stat, ggc_internal_alloc)
6261 (ggc_internal_cleared_alloc_stat): New.
6262 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
6263 (ggc_internal_vec_alloc_stat)
6264 (ggc_internal_cleared_vec_alloc_stat)
6265 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
6266 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
6267 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
6268 (ggc_cleared_alloc_ptr_array_two_args): New.
6269 (htab_create_ggc, splay_tree_new_ggc): Redefine.
6270 (ggc_splay_alloc): Change the type of the first argument to
6271 enum gt_types_enum.
6272 (ggc_alloc_string): Make macro.
6273 (ggc_alloc_string_stat): New.
6274 (ggc_strdup): Redefine.
6275 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
6276 (ggc_alloc_rtvec_sized): New.
6277 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
6278 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
6279 (ggc_internal_cleared_alloc_zone_stat)
6280 (ggc_internal_zone_alloc_stat)
6281 (ggc_internal_zone_cleared_alloc_stat)
6282 (ggc_internal_zone_vec_alloc_stat)
6283 (ggc_alloc_zone_rtx_def_stat)
6284 (ggc_alloc_zone_tree_node_stat)
6285 (ggc_alloc_zone_cleared_tree_node_stat)
6286 (ggc_alloc_cleared_gimple_statement_d_stat): New.
6287
6288 * ggc-common.c: Include ggc-internal.h.
6289 (ggc_internal_cleared_alloc_stat): Rename from
6290 ggc_alloc_cleared_stat.
6291 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
6292 (ggc_calloc): Remove.
6293 (ggc_cleared_alloc_htab_ignore_args): New.
6294 (ggc_cleared_alloc_ptr_array_two_args): New.
6295 (ggc_splay_alloc): Add obj_type parameter.
6296 (init_ggc_heuristics): Formatting fixes.
6297
6298 * ggc-none.c: Update copyright year.
6299 (ggc_alloc_stat): Rename to ggc_alloc_stat.
6300 (ggc_alloc_cleared_stat): Rename to
6301 ggc_internal_cleared_alloc_stat.
6302 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
6303
6304 * ggc-page.c: Update copyright year. Include ggc-internal.h.
6305 Remove references to ggc_alloc in comments.
6306 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
6307 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
6308 (new_ggc_zone, destroy_ggc_zone): Remove.
6309 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
6310
6311 * ggc-zone.c: Include ggc-internal.h. Remove references to
6312 ggc_alloc in comments.
6313 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
6314 (ggc_internal_alloc_zone_pass_stat): New.
6315 (ggc_internal_cleared_alloc_zone_stat): New.
6316 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
6317 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
6318 (new_ggc_zone, destroy_ggc_zone): Remove.
6319
6320 * stringpool.c: Update copyright year. Include ggc-internal.h
6321 (digit_vector): Make static.
6322 (digit_string): Moved from ggc.h.
6323 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
6324 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
6325
6326 * Makefile.in (GGC_INTERNAL_H): New.
6327 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
6328 $(GGC_INTERNAL_H) to dependencies.
6329
6330 * gentype.c: Update copyright year.
6331 (walk_type): Accept variable_size GTY option.
6332 (USED_BY_TYPED_GC_P): New macro.
6333 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
6334 whitespace at the end of strings.
6335 (get_type_specifier, variable_size_p): New functions.
6336 (alloc_quantity, alloc_zone): New enums.
6337 (write_typed_alloc_def): New function.
6338 (write_typed_struct_alloc_def): Likewise.
6339 (write_typed_typed_typedef_alloc_def): Likewise.
6340 (write_typed_alloc_defns): Likewise.
6341 (output_typename, write_splay_tree_allocator_def): Likewise.
6342 (write_splay_tree_allocators): Likewise.
6343 (main): Call write_typed_alloc_defns and
6344 write_splay_tree_allocators.
6345
6346 * lto-streamer.h (lto_file_decl_data_ptr): New.
6347
6348 * passes.c (order): Define using cgraph_node_ptr.
6349
6350 * strinpool.c (struct string_pool_data): Declare nested_ptr using
6351 ht_identifier_ptr.
6352
6353 * gimple.h (union gimple_statement_d): Likewise.
6354
6355 * rtl.h (struct rtx_def): Likewise.
6356 (struct rtvec_def): Likewise.
6357
6358 * tree.h (union tree_node): Likewise.
6359
6360 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
6361
6362 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
6363
6364 * tree-scalar-evolution.c (scev_initialize): Likewise.
6365
6366 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
6367
6368 * dwarf2asm.c (dw2_force_const_mem): Likewise.
6369
6370 * omp-low.c (lower_omp_critical): Likewise.
6371
6372 * bitmap.h (struct bitmap_head_def): Update comment to not
6373 reference ggc_alloc.
6374
6375 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
6376
6377 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
6378
6379 * ipa-prop.c (duplicate_ggc_array): Rename to
6380 duplicate_ipa_jump_func_array. Use typed GC allocation.
6381 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
6382
6383 * gimple.c (gimple_alloc_stat): Use
6384 ggc_alloc_cleared_gimple_statement_d_stat.
6385
6386 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
6387
6388 * tree.c (make_node_stat): Use
6389 ggc_alloc_zone_cleared_tree_node_stat.
6390 (make_tree_vec_stat): Likewise.
6391 (build_vl_exp_stat): Likewise.
6392 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
6393 (make_tree_binfo_stat): Likewise.
6394 (tree_cons_stat): Likewise.
6395
6396 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
6397 (shallow_copy_rtx_stat): Likewise.
6398 (make_node_stat): Likewise.
6399
6400 * lto-symtab.c: Fix comment.
6401
6402 * tree-cfg.c (create_bb): Update comment to not reference
6403 ggc_alloc_cleared.
6404 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
6405
6406 * varpool.c (varpool_node): Use typed GC allocation.
6407 (varpool_extra_name_alias): Likewise.
6408
6409 * varasm.c (emutls_decl): Likewise.
6410 (get_unnamed_section): Likewise.
6411 (get_noswitch_section): Likewise.
6412 (get_section): Likewise.
6413 (get_block_for_section): Likewise.
6414 (build_constant_desc): Likewise.
6415 (create_constant_pool): Likewise.
6416 (force_const_mem): Likewise.
6417
6418 * tree.c (build_vl_exp_stat): Likewise.
6419 (build_real): Likewise.
6420 (build_string): Likewise.
6421 (decl_debug_expr_insert): Likewise.
6422 (decl_value_expr_insert): Likewise.
6423 (type_hash_add): Likewise.
6424 (build_omp_clause): Likewise.
6425
6426 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
6427
6428 * tree-ssa.c (init_tree_ssa): Likewise.
6429
6430 * tree-ssa-structalias.c (heapvar_insert): Likewise.
6431
6432 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
6433
6434 * tree-ssa-loop-niter.c (record_estimate): Likewise.
6435
6436 * tree-ssa-alias.c (get_ptr_info): Likewise.
6437
6438 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
6439
6440 * tree-phinodes.c (allocate_phi_node): Likewise.
6441
6442 * tree-iterator.c (tsi_link_before): Likewise.
6443 (tsi_link_after): Likewise.
6444
6445 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
6446
6447 * tree-dfa.c (create_var_ann): Likewise.
6448
6449 * tree-cfg.c (create_bb): Likewise.
6450
6451 * toplev.c (alloc_for_identifier_to_locale): Likewise.
6452 (general_init): Likewise.
6453
6454 * stringpool.c (stringpool_ggc_alloc): Likewise.
6455 (gt_pch_save_stringpool): Likewise.
6456
6457 * sese.c (if_region_set_false_region): Likewise.
6458
6459 * passes.c (do_per_function_toporder): Likewise.
6460
6461 * optabs.c (set_optab_libfunc): Likewise.
6462 (set_conv_libfunc): Likewise.
6463
6464 * lto-symtab.c (lto_symtab_register_decl): Likewise.
6465
6466 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
6467 (input_eh_region): Likewise.
6468 (input_eh_lp): Likewise.
6469 (make_new_block): Likewise.
6470 (unpack_ts_real_cst_value_fields): Likewise.
6471
6472 * lto-section-in.c (lto_new_in_decl_state): Likewise.
6473
6474 * lto-cgraph.c (input_node_opt_summary): Likewise.
6475
6476 * loop-init.c (loop_optimizer_init): Likewise.
6477
6478 * lambda.h (lambda_vector_new): Likewise.
6479
6480 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
6481
6482 * ira.c (update_equiv_regs): Likewise.
6483
6484 * ipa.c (cgraph_node_set_new): Likewise.
6485 (cgraph_node_set_add): Likewise.
6486 (varpool_node_set_new): Likewise.
6487 (varpool_node_set_add): Likewise.
6488
6489 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
6490 (duplicate_ipa_jump_func_array): Likewise.
6491 (ipa_read_node_info): Likewise.
6492
6493 * ipa-cp.c (ipcp_create_replace_map): Likewise.
6494
6495 * integrate.c (get_hard_reg_initial_val): Likewise.
6496
6497 * gimple.c (gimple_alloc_stat): Likewise.
6498 (gimple_build_omp_for): Likewise.
6499 (gimple_seq_alloc): Likewise.
6500 (gimple_copy): Likewise.
6501
6502 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
6503 (gsi_insert_after_without_update): Likewise.
6504
6505 * function.c (add_frame_space): Likewise.
6506 (insert_temp_slot_address): Likewise.
6507 (assign_stack_temp_for_type): Likewise.
6508 (allocate_struct_function): Likewise.
6509 (types_used_by_var_decl_insert): Likewise.
6510
6511 * except.c (init_eh_for_function): Likewise.
6512 (gen_eh_region): Likewise.
6513 (gen_eh_region_catch): Likewise.
6514 (gen_eh_landing_pad): Likewise.
6515 (add_call_site): Likewise.
6516
6517 * emit-rtl.c (get_mem_attrs): Likewise.
6518 (get_reg_attrs): Likewise.
6519 (start_sequence): Likewise.
6520 (init_emit): Likewise.
6521
6522 * dwarf2out.c (new_cfi): Likewise.
6523 (queue_reg_save): Likewise.
6524 (dwarf2out_frame_init): Likewise.
6525 (new_loc_descr): Likewise.
6526 (find_AT_string): Likewise.
6527 (new_die): Likewise.
6528 (add_var_loc_to_decl): Likewise.
6529 (clone_die): Likewise.
6530 (clone_as_declaration): Likewise.
6531 (break_out_comdat_types): Likewise.
6532 (new_loc_list): Likewise.
6533 (loc_descriptor): Likewise.
6534 (add_loc_descr_to_each): Likewise.
6535 (add_const_value_attribute): Likewise.
6536 (tree_add_const_value_attribute): Likewise.
6537 (add_comp_dir_attribute): Likewise.
6538 (add_name_and_src_coords_attributes): Likewise.
6539 (lookup_filename): Likewise.
6540 (store_vcall_insn): Likewise.
6541 (dwarf2out_init): Likewise.
6542
6543 * dbxout.c (dbxout_init): Likewise.
6544
6545 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
6546
6547 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
6548
6549 * config/score/score7.c (score7_output_external): Likewise.
6550
6551 * config/score/score3.c (score3_output_external): Likewise.
6552
6553 * config/s390/s390.c (s390_init_machine_status): Likewise.
6554
6555 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
6556 (rs6000_init_machine_status): Likewise.
6557 (output_toc): Likewise.
6558
6559 * config/pa/pa.c (pa_init_machine_status): Likewise.
6560 (get_deferred_plabel): Likewise.
6561
6562 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
6563
6564 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
6565
6566 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
6567
6568 * config/mep/mep.c (mep_init_machine_status): Likewise.
6569 (mep_note_pragma_flag): Likewise.
6570
6571 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
6572
6573 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
6574
6575 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
6576
6577 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
6578 (i386_pe_maybe_record_exported_symbol): Likewise.
6579
6580 * config/i386/i386.c (get_dllimport_decl): Likewise.
6581 (ix86_init_machine_status): Likewise.
6582 (assign_386_stack_local): Likewise.
6583
6584 * config/frv/frv.c (frv_init_machine_status): Likewise.
6585
6586 * config/darwin.c (machopic_indirection_name): Likewise.
6587
6588 * config/cris/cris.c (cris_init_machine_status): Likewise.
6589
6590 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
6591
6592 * config/avr/avr.c (avr_init_machine_status): Likewise.
6593
6594 * config/arm/arm.c (arm_init_machine_status): Likewise.
6595
6596 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
6597 (alpha_need_linkage): Likewise.
6598 (alpha_use_linkage): Likewise.
6599
6600 * cgraph.c (cgraph_allocate_node): Likewise.
6601 (cgraph_create_edge_1): Likewise.
6602 (cgraph_create_indirect_edge): Likewise.
6603 (cgraph_add_asm_node): Likewise.
6604
6605 * cfgrtl.c (init_rtl_bb_info): Likewise.
6606
6607 * cfgloop.c (alloc_loop): Likewise.
6608 (rescan_loop_exit): Likewise.
6609
6610 * cfg.c (init_flow): Likewise.
6611 (alloc_block): Likewise.
6612 (unchecked_make_edge): Likewise.
6613
6614 * c-parser.c (c_parse_init): Likewise.
6615 (c_parse_file): Likewise.
6616
6617 * c-decl.c (bind): Likewise.
6618 (record_inline_static): Likewise.
6619 (push_scope): Likewise.
6620 (make_label): Likewise.
6621 (lookup_label_for_goto): Likewise.
6622 (finish_struct): Likewise.
6623 (finish_enum): Likewise.
6624 (c_push_function_context): Likewise.
6625
6626 * bitmap.c (bitmap_element_allocate): Likewise.
6627 (bitmap_gc_alloc_stat): Likewise.
6628
6629 * alias.c (record_alias_subset): Likewise.
6630 (init_alias_analysis): Likewise.
6631
6632 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
6633
6634 * fold-const.c (fold_comparison): Remove redundant parenthesis.
6635 * tree-inline.c (expand_call_inline): Pass translated return value of
6636 cgraph_inline_failed_string to diagnostic function.
6637
6638 2010-06-08 Andrew Pinski <pinskia@gmail.com>
6639 Shujing Zhao <pearly.zhao@oracle.com>
6640
6641 PR c/37724
6642 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
6643 implicit bad conversions is initialization.
6644 (error_init): Use gmsgid instead of msgid for argument name and change
6645 the call for error.
6646 (pedwarn_init): Use gmsgid instead of msgid for argument name and
6647 change the call for pedwarn.
6648 (warning_init): Use gmsgid instead of msgid for argument name and
6649 change the call for warning.
6650
6651 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
6652
6653 * config/mips/mips-protos.h (mips_print_operand): Delete.
6654 (mips_print_operand_address): Delete.
6655 * config/mips/mips.h (mips_print_operand_punct): Delete.
6656 (PRINT_OPERAND): Delete.
6657 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6658 (PRINT_OPERAND_ADDRESS): Delete.
6659 * config/mips/mips.c (mips_print_operand_punct): Make static.
6660 (mips_print_operand_address): Make static.
6661 (mips_print_operand): Make static. Call
6662 mips_print_operand_punct_valid_p.
6663 (mips_print_operand_punct_valid_p): New function.
6664 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6665 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6666
6667 2010-06-07 Jan Hubicka <jh@suse.cz>
6668
6669 PR middle-end/44454
6670 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
6671 are allocated.
6672
6673 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
6674
6675 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
6676 name of RECORD.
6677
6678 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6679
6680 * doc/sourcebuild.texi (Effective-Target Keywords, Other
6681 attributes): Document gas.
6682
6683 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
6684
6685 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
6686 <TYPE_LEA>: Split instruction.
6687 <default>: Remove alternative 2 handling.
6688 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
6689 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
6690 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
6691
6692 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
6693 (ashift_zext lea splitter): Use DImode for multiplication.
6694
6695 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
6696 to generate addition.
6697
6698 2010-06-07 Joseph Myers <joseph@codesourcery.com>
6699
6700 * common.opt (fira-verbose): Use Var.
6701 (fpcc-struct-return): Use Init instead of VarExists.
6702 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
6703 toplev.c.
6704 * flags.h (flag_signed_char, flag_short_enums,
6705 flag_pcc_struct_return, flag_ira_verbose,
6706 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
6707 * toplev.c (flag_detailed_statistics, flag_signed_char,
6708 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
6709 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
6710 * toplev.h (flag_crossjumping, flag_if_conversion,
6711 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
6712 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
6713 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
6714 flag_cprop_registers, time_report, flag_ira_loop_pressure,
6715 flag_ira_coalesce, flag_ira_move_spills,
6716 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
6717
6718 2010-06-07 Jan Hubicka <jh@suse.cz>
6719
6720 * df-core.c (df_analyze_problem): Do verification after allocation.
6721
6722 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
6723 (df_lr_alloc): Initialize problem data; move bitmaps to
6724 lr_bitmaps obstack.
6725 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
6726 (df_lr_verify_solution_start): Do not initialize problem data;
6727 allocate bitmaps in lr_bitmaps.
6728 (df_lr_verify_solution_end): Do not free problem data.
6729
6730 2010-06-07 Jan Hubicka <jh@suse.cz>
6731
6732 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
6733 if caller is noreturn.
6734 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
6735 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
6736 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
6737 * ipa-pure-const.c (check_decl): Add IPA parameter.
6738 (state_from_flags): New function.
6739 (better_state, worse_state): New functions.
6740 (check_call): When in IPA mode, do not care about callees.
6741 (check_load, check_store): Update.
6742 (check_ipa_load, check_ipa_store): New.
6743 (check_stmt): When in IPA mode, use IPA checkers.
6744 (analyze_function): Use state_from_flags.
6745 (propagate): Check indirect edges and references.
6746
6747 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
6748
6749 PR rtl-optimization/44404
6750 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
6751 of count_occurrences to see if it's safe to modify mem_insn.
6752
6753 2010-06-07 Richard Guenther <rguenther@suse.de>
6754
6755 * gimplify.c (gimplify_cleanup_point_expr): For empty body
6756 and EH-only cleanup drop the cleanup instead of inserting it
6757 unconditionally.
6758
6759 2010-06-07 Ira Rosen <irar@il.ibm.com>
6760
6761 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
6762 documentation.
6763 * targhooks.c (default_builtin_vectorization_cost): New function.
6764 * targhooks.h (default_builtin_vectorization_cost): Declare.
6765 * target.h (enum vect_cost_for_stmt): Define.
6766 (builtin_vectorization_cost): Change argument and comment.
6767 * tree-vectorizer.h: Remove cost model macros.
6768 * tree-vect-loop.c: Include target.h.
6769 (vect_get_cost): New function.
6770 (vect_estimate_min_profitable_iters): Replace cost model macros with
6771 calls to vect_get_cost.
6772 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
6773 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
6774 default implementation.
6775 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
6776 calls to target hook builtin_vectorization_cost.
6777 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
6778 Likewise.
6779 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
6780 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
6781 implementation to return costs.
6782 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
6783 * config/spu/spu.h: Remove vectorizer cost model macros.
6784 * config/i386/i386.h: Likewise.
6785 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
6786 a call to target hook builtin_vectorization_cost.
6787
6788 2010-06-06 Sriraman Tallam <tmsriram@google.com>
6789
6790 PR target/44319
6791 * config/i386/i386.c (override_options): Turn zee pass on for level 2
6792 and above and defer till target is known.
6793 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
6794 turn off otherwise.
6795
6796 2010-05-25 Jan Hubicka <jh@suse.cz>
6797
6798 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
6799 (df_compact_blocks): Likewise.
6800 * df.h (struct df): Turn hardware_regs_used,
6801 regular_block_artificial_uses, eh_block_artificial_uses,
6802 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
6803 bitmap_head.
6804 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
6805 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
6806 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
6807 df_scan_blocks, df_insn_delete, df_insn_rescan,
6808 df_insn_rescan_debug_internal, df_insn_rescan_all,
6809 df_process_deferred_rescans, df_process_deferred_rescans,
6810 df_notes_rescan, df_get_call_refs, df_get_call_refs,
6811 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
6812 df_record_entry_block_defs, df_record_exit_block_uses,
6813 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
6814 df_scan_verify): Update.
6815
6816 2010-05-25 Dodji Seketeli <dodji@redhat.com>
6817
6818 PR c++/44188
6819 * c-common.c (is_typedef_decl): Move this definition ...
6820 * tree.c (is_typedef_decl): ... here.
6821 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
6822 * c-common.h (is_typedef_decl): Move this declaration ...
6823 * tree.h (is_typedef_decl): ... here.
6824 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
6825 * dwarf2out.c (is_naming_typedef_decl): New function.
6826 (gen_tagged_type_die): Split out of ...
6827 (gen_type_die_with_usage): ... this function. When an anonymous
6828 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
6829 is emitted for the typedef.
6830 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
6831 anonymous tagged types.
6832
6833 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
6834
6835 PR c/20000
6836 * c-decl.c (grokdeclarator): Delete warning.
6837
6838 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
6839
6840 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
6841 newly built CALL_EXPR.
6842 * tree-profile.c (tree_profiling): Don't profile functions produced
6843 for built-in stuff.
6844
6845 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
6846
6847 PR bootstrap/44427
6848 PR bootstrap/44428
6849 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
6850 endianness-independent.
6851
6852 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
6853
6854 * c-common.c: Move to c-family/.
6855 * c-common.def: Likewise.
6856 * c-common.h: Likewise.
6857 * c-cppbuiltin.c: Likewise.
6858 * c-dump.c: Likewise.
6859 * c-format.c: Likewise.
6860 * c-format.h : Likewise.
6861 * c-gimplify.c: Likewise.
6862 * c-lex.c: Likewise.
6863 * c-omp.c: Likewise.
6864 * c.opt: Likewise.
6865 * c-opts.c: Likewise.
6866 * c-pch.c: Likewise.
6867 * c-ppoutput.c: Likewise.
6868 * c-pragma.c: Likewise.
6869 * c-pragma.h: Likewise.
6870 * c-pretty-print.c: Likewise.
6871 * c-pretty-print.h: Likewise.
6872 * c-semantics.c: Likewise.
6873 * stub-objc.c: Likewise.
6874
6875 * gengtype.c (get_file_langdir): Special-case files in c-family/.
6876 (get_output_file_with_visibility): Fix name for c-common.h.
6877 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
6878
6879 * c-tree.h: Update include path for moved files.
6880 * c-lang.c: Likewise.
6881 * c-lang.h: Likewise.
6882 * c-parser.c: Likewise.
6883 * c-convert.c: Likewise.
6884 * c-decl.c: Likewise.
6885 * c-objc-common.c: Likewise.
6886 * configure.ac: Make sure c-family/ exists in the build directory.
6887 * configure: Regenerate.
6888 * Makefile.in: Update paths for moved files. Regroup files per
6889 location and update dependencies. Move generated_files down after
6890 ALL_GTFILES_H.
6891
6892 * config/spu/spu-c.c: Update paths for moved files.
6893 * config/mep/mep-pragma.c: Likewise.
6894 * config/darwin-c.c: Likewise.
6895 * config/i386/msformat-c.c: Likewise.
6896 * config/i386/i386-c.c: Likewise.
6897 * config/avr/avr-c.c: Likewise.
6898 * config/sol2-c.c: Likewise.
6899 * config/ia64/ia64-c.c: Likewise.
6900 * config/rs6000/rs6000-c.c: Likewise.
6901 * config/arm/arm.c: Likewise.
6902 * config/arm/arm-c.c: Likewise.
6903 * config/h8300/h8300.c: Likewise.
6904 * config/v850/v850-c.c: Likewise.
6905
6906 * config/t-darwin: Fix dependencies for moved files.
6907 * config/t-sol2: Fix dependencies for moved files.
6908 * config/mep/t-mep: Fix dependencies for moved files.
6909 * config/ia64/t-ia64: Fix dependencies for moved files.
6910 * config/rs6000/t-rs6000: Fix dependencies for moved files.
6911 * config/v850/t-v850: Fix dependencies for moved files.
6912 * config/v850/t-v850e: Fix dependencies for moved files.
6913
6914 * config/m32c/m32c-pragma.c
6915
6916 * po/exgettext: Look in c-family/ also.
6917
6918 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
6919
6920 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
6921 (mark_control_dependent_edges_necessary): Call it instead of marking
6922 the last statement manually.
6923 (propagate_necessity): Likewise.
6924
6925 2010-06-05 Jan Hubicka <jh@suse.cz>
6926
6927 * basic-block.h (compute_dominance_frontiers): Updated.
6928 (compute_idf): Likewise.
6929
6930 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
6931 for dominance frontiers.
6932 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
6933 (insert_updated_phi_nodes_for): Likewise.
6934 (update_ssa): Likewise.
6935 * cfganal.c (compute_dominance_frontiers_1): Likewise.
6936 (compute_dominance_frontiers): Likewise.
6937 (compute_idf): Likewise.
6938 * df-problems.c (df_md_local_compute): Likewise.
6939
6940 2010-06-05 Anatoly Sokolov <aesok@post.ru>
6941
6942 * target.h (struct gcc_target): Add memory_move_cost field.
6943 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
6944 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
6945 * targhooks.c (default_memory_move_cost): New function.
6946 * targhooks.h (default_memory_move_cost): Declare function.
6947 * reload.h (memory_move_cost): Declare.
6948 (memory_move_secondary_cost): Change type of 'in' argument to bool.
6949 * reginfo.c (memory_move_cost): New function.
6950 (memory_move_secondary_cost): Change type of 'in' argument to bool.
6951 * ira.h (ira_memory_move_cost): Update comment.
6952 * ira.c: (ira_memory_move_cost): Update comment.
6953 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
6954 with memory_move_cost.
6955 * postreload.c (reload_cse_simplify_set): (Ditto.).
6956 * reload1.c (choose_reload_regs): (Ditto.).
6957 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
6958 (MEMORY_MOVE_COST): Revise documentation.
6959
6960 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
6961 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
6962 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
6963 type of 'in' argument to bool.
6964 (TARGET_MEMORY_MOVE_COST): Define.
6965
6966 2010-06-05 Jan Hubicka <jh@suse.cz>
6967
6968 * ipa-pure-const.c (propagate): Fix typo in handling of functions
6969 that cannot return. Be more careful when merging the results with
6970 previously known ones.
6971
6972 2010-06-05 Matthias Klose <doko@ubuntu.com>
6973
6974 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
6975 function to add the -iplugindir option.
6976 (find_plugindir_spec_function): Add new declaration and function.
6977 (static_spec_func): Use it for "find-plugindir".
6978
6979 2010-06-05 Jakub Jelinek <jakub@redhat.com>
6980
6981 PR c++/44361
6982 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
6983 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
6984 statement expression.
6985
6986 2010-06-05 Jan Hubicka <jh@suse.cz>
6987
6988 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
6989 (df_rd_problem_data): Convert sparse_invalidated_by_call,
6990 dense_invalidated_by_call to bitmap head.
6991 (df_rd_alloc, df_rd_bb_local_compute_process_def,
6992 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
6993 df_rd_start_dump, df_lr_verify_transfer_functions,
6994 df_live_verify_transfer_functions, df_chain_create_bb,
6995 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
6996 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
6997 df_simulate_one_insn_forwards, df_md_alloc,
6998 df_md_bb_local_compute_process_def,
6999 df_md_bb_local_compute_process_def, df_md_local_compute,
7000 df_md_transfer_function df_md_free): Update.
7001
7002 2010-06-05 Joseph Myers <joseph@codesourcery.com>
7003
7004 PR c/44322
7005 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
7006 target type for ADDR_EXPR; require no changes to qualifiers except
7007 for function types.
7008 * c-tree.h (c_build_type_variant): Remove.
7009
7010 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
7011
7012 * genautomata.c (get_excl_set): Do work per element, not per char.
7013 (check_presence_pattern_sets): Similar.
7014 (check_absence_pattern_sets): Similar.
7015
7016 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
7017
7018 * genautomata.c (curr_state_pass_num): Delete.
7019 (min_issue_delay_pass_states): Delete.
7020 (min_issue_delay): Delete.
7021 (initiate_min_issue_delay_pass_states): Delete.
7022 (output_min_issue_delay_table): Compute min_issue_delay_vect
7023 using a breadth-first search variant.
7024 (output_tables): Don't call initiate_min_issue_delay_pass_states.
7025
7026 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
7027
7028 PR boostrap/44421
7029 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
7030 (df_byte_lr_bb_local_compute): Likewise.
7031
7032 2010-06-03 Jason Merrill <jason@redhat.com>
7033
7034 Implement noexcept operator (5.3.7)
7035 * c-common.c (c_common_reswords): Add noexcept.
7036 * c-common.h (enum rid): Add RID_NOEXCEPT.
7037
7038 2010-06-04 Joseph Myers <joseph@codesourcery.com>
7039
7040 * config/darwin-driver.c (darwin_default_min_version): Use
7041 GCC-specific formats in diagnostics.
7042 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
7043 diagnostics.
7044 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
7045 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
7046 eval_spec_function, handle_braces, process_brace_body, main,
7047 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
7048 getenv_spec_function, compare_version_strings,
7049 version_compare_spec_function): Use GCC-specific formats in
7050 diagnostics.
7051
7052 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
7053
7054 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
7055 that operand 0 and operand 1 are equal.
7056 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
7057 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
7058 and operand 1 are equal.
7059 <default>: Ditto. Remove ??? comment.
7060 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
7061 and operand 1 are equal.
7062 <default>: Ditto. Remove ??? comment.
7063 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
7064 are equal.
7065 (*add<mode>_4) <default>: Ditto.
7066 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
7067
7068 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
7069
7070 * config/i386/i386-protos.h (ix86_print_operand): Declare.
7071 * config/i386/i386.c (ix86_print_operand): Make non-static.
7072 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
7073 * output.h (output_operand): Declare.
7074 * final.c (output_operand): Make non-static.
7075
7076 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
7077
7078 PR rtl-optimization/44013
7079 * sched-deps.c (add_dependence_list_and_free): Don't free lists
7080 when processing debug insns.
7081
7082 PR debug/41371
7083 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
7084 recursing. Check that recursion is bounded. Rename inner var
7085 to avoid hiding incoming argument.
7086
7087 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
7088
7089 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
7090 operands[2] == 255.
7091 (*addqi_3): Ditto.
7092 (*addqi_4): Ditto.
7093 (*addqi_5): Ditto.
7094 (*addqi_ext_1_rex64): Ditto.
7095 (*addqi_ext_1): Ditto.
7096
7097 (*addqi_4): Check for incdec_operand in QImode.
7098
7099 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
7100 using SWI mode iterator.
7101 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
7102 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
7103 mode iterator.
7104 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
7105 using SWI mode iterator.
7106
7107 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
7108
7109 PR c/25880
7110 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
7111 * c-format.c (gcc_diag_flag_specs): Add hash.
7112 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
7113 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
7114 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
7115 pp_c_cv_qualifiers. Handle qualifiers spelling here.
7116 (pp_c_type_qualifier_list): Call the function above.
7117 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
7118 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
7119 (WARN_FOR_QUALIFIERS): New macro.
7120 (convert_for_assignment): Use it.
7121
7122 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
7123
7124 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
7125
7126 2010-06-04 Jan Hubicka <jh@suse.cz>
7127
7128 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
7129 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
7130 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
7131 DF_BYTE_LR_OUT): Update for embedded bitmaps.
7132 * fwprop.c (single_def_use_enter_block): Likewise.
7133 * ddg.c (create_ddg_dep_from_intra_loop_link,
7134 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
7135 * loop-iv.c (latch_dominating_def): Likewise.
7136 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
7137 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
7138 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
7139 df_rd_transfer_function, df_rd_top_dump,
7140 df_rd_bottom_dump): Update.
7141 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
7142 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
7143 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
7144 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
7145 df_lr_verify_solution_start, df_lr_verify_solution_end,
7146 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
7147 df_live_free_bb_info, df_live_alloc, df_live_reset,
7148 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
7149 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
7150 df_live_verify_solution_start, df_live_verify_solution_end,
7151 df_live_verify_transfer_functions, df_chain_create_bb,
7152 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
7153 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
7154 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
7155 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
7156 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
7157 df_byte_lr_transfer_function, df_byte_lr_top_dump,
7158 df_byte_lr_bottom_dump, df_create_unused_note,
7159 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
7160 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
7161 df_md_transfer_function, df_md_init, df_md_confluence_0,
7162 df_md_confluence_n,
7163 df_md_top_dump, df_md_bottom_dump): Update.
7164 (struct df_lr_problem_data): Embedd bitmap headers.
7165
7166 2010-06-04 Jan Hubicka <jh@suse.cz>
7167
7168 * dce.c (dce_process_block): Do not re-scan already marked
7169 instructions.
7170
7171 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
7172
7173 PR rtl-optimization/39871
7174 PR rtl-optimization/40615
7175 PR rtl-optimization/42500
7176 PR rtl-optimization/42502
7177 * ira.c (init_reg_equiv_memory_loc: New function.
7178 (ira): Call it twice.
7179 * reload.h (calculate_elim_costs_all_insns): Declare.
7180 * ira-costs.c: Include "reload.h".
7181 (regno_equiv_gains): New static variable.
7182 (init_costs): Allocate it.
7183 (finish_costs): Free it.
7184 (ira_costs): Call calculate_elim_costs_all_insns.
7185 (find_costs_and_classes): Take estimated elimination costs
7186 into account.
7187 (ira_adjust_equiv_reg_cost): New function.
7188 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
7189 * reload1.c (init_eliminable_invariants, free_reg_equiv,
7190 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
7191 (elim_bb): New static variable.
7192 (reload): Move code out of here into init_eliminable_invariants and
7193 free_reg_equiv. Call them.
7194 (calculate_elim_costs_all_insns): New function.
7195 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
7196 all callers changed. If FOR_COSTS is true, don't call alter_reg,
7197 but call note_reg_elim_costly if we turned a valid memory address
7198 into an invalid one.
7199 * Makefile.in (ira-costs.o): Depend on reload.h.
7200
7201 2010-06-04 Julian Brown <julian@codesourcery.com>
7202
7203 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
7204 for pool ranges.
7205
7206 2010-06-04 Richard Guenther <rguenther@suse.de>
7207
7208 PR lto/41584
7209 * cgraph.h (struct varpool_node): Add lto_file_data field.
7210 * lto-cgraph.c (input_varpool_node): Initialize it.
7211
7212 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
7213
7214 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
7215 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
7216 predicate in "type" attribute calculation.
7217 (*addsi_1_zext): Ditto.
7218 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
7219 (*addsi_2_zext): Ditto.
7220 (*add<mode>_3): Ditto.
7221 (*addsi_3_zext): Ditto.
7222 (*add<mode>_5): Ditto.
7223
7224 2010-06-03 Jan Hubicka <jh@suse.cz>
7225
7226 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
7227 of bitmap_bit_p.
7228 * cfganal.c (compute_dominance_frontiers_1): Likewise.
7229
7230 2010-06-03 Jan Hubicka <jh@suse.cz>
7231
7232 * df-problems.c (df_create_unused_note, df_note_bb_compute):
7233 micro-optimize the checks when to add new note.
7234
7235 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
7236
7237 * final.c (output_asm_insn): Call
7238 targetm.asm_out.print_operand_punct_valid_p. Update comments.
7239 (output_operand): Call targetm.asm_out.print_operand. Update comments.
7240 (output_address): Call targetm.asm_out.print_operand_address.
7241 Update comments.
7242 * target.h (struct gcc_target): Add print_operand,
7243 print_operand_address, and print_operand_punct_valid_p fields.
7244 * targhooks.h (default_print_operand): Declare.
7245 (default_print_operand_address): Declare.
7246 (default_print_operand_punct_valid_p): Declare.
7247 * targhooks.c (default_print_operand): Define.
7248 (default_print_operand_address): Define.
7249 (default_print_operand_punct_valid_p): Define.
7250 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
7251 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
7252 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
7253 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
7254 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
7255 * vmsdbgout.c (addr_const_to_string): Update comment.
7256 * config/i386/i386.c (print_operand): Rename to...
7257 (ix86_print_operand): ...this. Make static.
7258 (print_operand_address): Rename to...
7259 (ix86_print_operand_address): ...this. Make static. Call
7260 ix86_print_operand instead of PRINT_OPERAND.
7261 (ix86_print_operand_punct_valid_p): New function.
7262 (TARGET_PRINT_OPERAND): Define.
7263 (TARGET_PRINT_OPERAND_ADDRESS): Define.
7264 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7265 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
7266 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7267 (PRINT_OPERAND): Delete.
7268 (PRINT_OPERAND_ADDRESS): Delete.
7269 * config/i386/i386-protos.h (print_operand): Delete prototype.
7270 (print_operand_address): Delete prototype.
7271
7272 2010-06-03 Richard Guenther <rguenther@suse.de>
7273
7274 PR tree-optimization/44403
7275 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
7276 Preserve pointer qualifiers.
7277 (vect_create_data_ref_ptr): Likewise.
7278
7279 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
7280
7281 PR c++/44294
7282 * defaults.h (MAX_FIXED_MODE_SIZE): New.
7283
7284 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
7285
7286 2010-06-03 Jakub Jelinek <jakub@redhat.com>
7287
7288 PR debug/44375
7289 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
7290 return false if merging the bbs would lead to goto_locus
7291 location being lost from the IL.
7292
7293 2010-06-03 Jan Hubicka <jh@suse.cz>
7294 Jakub Jelinek <jakub@redhat.com>
7295
7296 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
7297 set->regs[i] is NULL or has just one entry.
7298
7299 2010-06-03 Jan Hubicka <jh@suse.cz>
7300
7301 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
7302 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
7303
7304 2010-06-03 Paul Brook <paul@codesourcery.com>
7305
7306 * config/arm/arm.c (FL_TUNE): Define.
7307 (arm_default_cpu, arm_cpu_select): Remove.
7308 (all_cores): Populate core field.
7309 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
7310 (arm_find_cpu): New function.
7311 (arm_handle_option): Lookup cpu/architecture names.
7312 (arm_override_options): Cleanup mcpu/march/mtune handling.
7313 (arm_file_start): Ditto.
7314
7315 2010-06-03 Alan Modra <amodra@gmail.com>
7316
7317 PR target/44169
7318 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
7319 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
7320 rtx to gen_load_toc_v4_PIC_1b. Tidy.
7321 (rs6000_emit_load_toc_table): Likewise.
7322
7323 2010-06-02 Jan Hubicka <jh@suse.cz>
7324
7325 * passes.c (init_optimization_passes): Put ipa reference
7326 after ipa pure-const.
7327
7328 2010-06-02 Jan Hubicka <jh@suse.cz>
7329
7330 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
7331 calls_read_all and calls_write_all.
7332 (get_reference_optimization_summary): Fix formatting.
7333 (is_proper_for_analysis): Check that decl is not readonly.
7334 (propagate_bits): Check CONST/PURE/noreturn flags.
7335 (ipa_init): Move all_module_statics to optimization_summary_obstack.
7336 (analyze_function): Ignore indirect edges.
7337 (copy_global_bitmap): For all module statics, do nothing.
7338 (generate_summary): Do not print calls_read_all/calls_write_all.
7339 (read_write_all_from_decl): Take node as argument; check
7340 cgraph_node_cannot_return.
7341 (propagate): Reorganize read_all/write_all computation;
7342 check indirect edges; check ecf flags; use all_module_statics
7343 in the results; do not free all_module_statics.
7344 (stream_out_bitmap): Handle all_module_statics.
7345 (ipa_reference_write_optimization_summary): Likewise; use
7346 varpool/cgraph encoders to get boundaries.
7347 (ipa_reference_read_optimization_summary): Read in all_module_statics;
7348 use it when possible.
7349
7350 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7351
7352 PR target/44218
7353 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
7354 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
7355
7356 * doc/extend.texi (powerpc builtins): Document vec_recip,
7357 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
7358
7359 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
7360 (rs6000_emit_swrsqrt): Ditto.
7361 (rs6000_emit_swdivsf): Delete.
7362 (rs6000_emit_swdivdf): Ditto.
7363 (rs6000_emit_swrsqrtsf): Ditto.
7364
7365 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
7366 describe the reciprocal estimate support for each type.
7367 (recip_options): Map -mrecip=<opt> into option bits.
7368 (gen_2arg_fn_t): New typedef for binary rtx gen function.
7369 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
7370 reciprocal estimate instructions.
7371 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
7372 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
7373 Set up rs6000_recip_bits based on the -mrecip* options. Print the
7374 cost information if -mdebug=cost or -mdebug=reg.
7375 (rs6000_override_options): Set -mrecip-precision for power6, and
7376 power7 machines. If -mvsx or -mdfp, enable various options that
7377 came in previous instruction set ISAs, unless the option was
7378 explicitly disabled by the command line option. Parse
7379 -mrecip=<opt> options.
7380 (rs6000_builtin_vectorized_function): Add support for vectorizing
7381 the reciprocal estimate builtins and expansions.
7382 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
7383 (bdesc_2arg): Add reciprocal estimate builtins.
7384 (bdesc_1arg): Add reciprocal square root estimate builtins.
7385 (rs6000_expand_builtin): Rewrite to use a switch statement,
7386 instead of multiple if/then/elses. Add reciprocal estimate builtins.
7387 (rs6000_init_builtins): Create declarations for reciprocal
7388 estimate builtins.
7389 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
7390 sized, prefer traditional floating point registers, if integer
7391 vector types, prefer altivec registers. Don't actually look at
7392 the memory address any more.
7393 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
7394 builtins.
7395 (rs6000_load_constant_and_splat): New helper function to load up
7396 the constant for reciprocal estimate instructions.
7397 (rs6000_emit_madd): New helper function for generating
7398 multiply/add type instructions, based on the current switches.
7399 (rs6000_emit_msub): Ditto.
7400 (rs6000_emit_mnsub): Ditto.
7401 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
7402 replace a divide with a reciprocal estimate and fixup, adding
7403 support for machines with high precision and vectors.
7404 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
7405 low precision machines.
7406 (rs6000_emit_swdiv): New common function to be called to replace a
7407 division with reciprocal estimate and fixup.
7408 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
7409 for double and vector types. Add support for high precision machines.
7410
7411 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
7412 the reciprocal estimate instructions can be generated.
7413 (TARGET_FRE): Ditto.
7414 (TARGET_FRSQRTES): Ditto.
7415 (TARGET_FRSQRTE): Ditto.
7416 (RS6000_RECIP_*): New macros for reciprocal estimate support.
7417
7418 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
7419 square root estimate on vectors.
7420 (re<mode>2): New insn for reciprocal division estimate on vectors.
7421
7422 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
7423 New builtin.
7424 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
7425 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
7426 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
7427 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
7428 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
7429 (RS6000_BUILTIN_RSQRT): Ditto.
7430 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
7431 floating point builtin.
7432
7433 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7434 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
7435 __RECIP_PRECISION__ based on the command line switches.
7436 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
7437
7438 * config/rs6000/rs6000.opt (-mrecip): Document add support for
7439 replacing division instructions with reciprocal estimate and fixup.
7440 (-mrecip=<opt>): New option.
7441 (-mrecip-precision): Ditto.
7442
7443 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
7444 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
7445 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
7446 precision scalar.
7447
7448 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
7449 (UNSPEC_VREFP): Ditto.
7450 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
7451 conterparts with regard to support of -mno-fused-madd and -ffast-math.
7452 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
7453 reciprocal estimate instructions to be generated.
7454 (altivec_vrefp): Ditto.
7455
7456 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
7457 estimate support.
7458 (rreg): New mode attribute for reciprocal estimate support.
7459 (recip<mode>3): New insn for division using reciprocal estimate
7460 and fixup builtins.
7461 (divide define_split): New define_split to convert floating point
7462 division to use reciprocal estimate if the user used the
7463 appropriate options and the split is run when we can add new
7464 pseudo registers for the fixup.
7465 (rsqrt<mode>2): New insn for reciprocal square root support.
7466 (recipsf3): Move into recip<mode>3.
7467 (recipdf3): Ditto.
7468 (fres): Use TARGET_FRES.
7469 (rsqrtsf2): Move into rsqrt<mode>2.
7470 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
7471 (copysignsf3): Add support for VSX.
7472 (fred): Use TARGET_FRE.
7473 (fred_fpr): Ditto.
7474 (rsqrtdf_internal1): New function for frsqrte instruciton.
7475
7476 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
7477 (vec_rsqrt): Ditto.
7478
7479 2010-06-03 Richard Guenther <rguenther@suse.de>
7480
7481 PR middle-end/44291
7482 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
7483 (set_user_assembler_libfunc): Likewise.
7484
7485 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
7486
7487 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
7488 defaults.h.
7489 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
7490 to defaults.h
7491 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
7492 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
7493 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
7494 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
7495 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
7496 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
7497 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
7498 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
7499 * defaults.h: Updated for above mentioned changes.
7500
7501 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
7502
7503 * c-common.c: Remove header include of tm_p.h.
7504 * Makefile.in (c-common.o): Remove TM_P_H dependency.
7505
7506 2010-06-02 Jakub Jelinek <jakub@redhat.com>
7507
7508 * tree.h (struct tree_decl_map): New type.
7509 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
7510 (tree_decl_map_hash): New prototype.
7511 (debug_expr_for_decl, value_expr_for_decl): Change into
7512 tree_decl_map hashtab from tree_map.
7513 (init_ttree): Adjust initialization.
7514 (tree_decl_map_hash): New function.
7515 (decl_debug_expr_lookup, decl_debug_expr_insert,
7516 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
7517
7518 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7519
7520 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
7521 linker emulations.
7522 * configure: Regenerate.
7523 * config.in: Regenerate.
7524
7525 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
7526 (X86_64_EMULATION): Define.
7527 (TARGET_LD_EMULATION): Use them.
7528
7529 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
7530 (SPARC64_EMULATION): Define.
7531 (LINK_ARCH_SPEC): Use them.
7532
7533 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
7534
7535 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
7536 smallest_mode_for_size for computing the precision types of new
7537 graphite IVs. Do not call lang_hooks.types.type_for_size.
7538
7539 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
7540
7541 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
7542 information.
7543 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
7544
7545 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
7546
7547 PR middle-end/44363
7548 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
7549 return false instead.
7550
7551 2010-06-02 Jan Hubicka <jh@suse.cz>
7552
7553 PR middle-end/44295
7554 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
7555 create new cgraph node to check callee.
7556
7557 2010-06-02 Richard Guenther <rguenther@suse.de>
7558
7559 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
7560
7561 2010-06-02 Richard Guenther <rguenther@suse.de>
7562
7563 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
7564 (lto_wrapper_cleanup): ... this. Do not exit.
7565 (fatal): Adjust. Exit here.
7566 (fatal_perror): Likewise.
7567 (fatal_signal): New function.
7568 (main): Set up signal handlers to cleanup temporary files.
7569 * Makefile.in (lto-wrapper.o): Adjust dependencies.
7570
7571 2010-06-02 Richard Guenther <rguenther@suse.de>
7572
7573 PR tree-optimization/44377
7574 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
7575
7576 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7577
7578 * config/s390/2097.md (z10_fhex): Remove insn reservation.
7579 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
7580 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
7581 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
7582 instruction.
7583 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
7584
7585 2010-06-02 Jan Hubicka <jh@suse.cz>
7586
7587 * bitmap.c (bitmap_descriptor): Add search_iter.
7588 (bitmap_find_bit): Increment it.
7589 (print_statistics): Print it.
7590
7591 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
7592
7593 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
7594 instead of gimple_build_call_vec. Delete unnecessary local variable.
7595
7596 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
7597
7598 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
7599 change from yesterday.
7600
7601 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
7602
7603 * c-ada-spec.c: Clean up redundant includes.
7604
7605 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
7606
7607 * gimplify.c: Do not include except.h and optabs.h.
7608 (gimplify_body): Do not initialize RTL profiling.
7609 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
7610 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
7611 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
7612 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
7613 langhooks.h.
7614
7615 * tree-pretty-print.h: Include pretty-print.h.
7616 * gimple-pretty-print.h: Include pretty-print.h.
7617
7618 * tree-pretty-print.c: Do not include diagnostic.h.
7619 * tree-vrp.c: Likewise.
7620 * tree-tailcall.c: Likewise
7621 * tree-scalar-evolution.c: Likewise
7622 * tree-ssa-dse.c: Likewise
7623 * tree-chrec.c: Likewise
7624 * tree-ssa-sccvn.c: Likewise
7625 * tree-ssa-copyrename.c: Likewise
7626 * tree-nomudflap.c: Likewise
7627 * tree-call-cdce.c: Likewise
7628 * tree-stdarg.c: Likewise
7629 * tree-ssa-math-opts.c: Likewise
7630 * tree-nrv.c: Likewise
7631 * tree-ssa-sink.c: Likewise
7632 * tree-browser.c: Likewise
7633 * tree-ssa-loop-ivcanon.c: Likewise
7634 * tree-ssa-loop.c: Likewise
7635 * tree-parloops.c: Likewise
7636 * tree-ssa-address.c: Likewise
7637 * tree-ssa-ifcombine.c: Likewise
7638 * tree-if-conv.c: Likewise
7639 * tree-data-ref.c: Likewise
7640 * tree-affine.c: Likewise
7641 * tree-ssa-phiopt.c: Likewise
7642 * tree-ssa-coalesce.c: Likewise
7643 * tree-ssa-pre.c: Likewise
7644 * tree-ssa-live.c: Likewise
7645 * tree-predcom.c: Likewise
7646 * tree-ssa-forwprop.c: Likewise
7647 * tree-ssa-dce.c: Likewise
7648 * tree-ssa-ter.c: Likewise
7649 * tree-ssa-loop-prefetch.c: Likewise
7650 * tree-optimize.c: Likewise
7651 * tree-ssa-phiprop.c: Likewise
7652 * tree-object-size.c: Likewise
7653 * tree-outof-ssa.c: Likewise
7654 * tree-ssa-structalias.c: Likewise
7655 * tree-switch-conversion.c: Likewise
7656 * tree-ssa-reassoc.c: Likewise
7657 * tree-ssa-operands.c: Likewise
7658 * tree-vectorizer.c: Likewise
7659 * tree-vect-data-refs.c: Likewise
7660 * tree-vect-generic.c: Likewise
7661 * tree-vect-stmts.c: Likewise
7662 * tree-vect-patterns.c: Likewise
7663 * tree-vect-slp.c: Likewise
7664 * tree-vect-loop.c: Likewise
7665 * tree-ssa-loop-ivopts.c: Likewise
7666 * tree-ssa-loop-im.c: Likewise
7667 * tree-ssa-loop-niter.c: Likewise
7668 * tree-ssa-loop-unswitch.c: Likewise
7669 * tree-ssa-loop-manip.c: Likewise
7670 * tree-ssa-loop-ch.c: Likewise
7671 * tree-dump.c: Likewise
7672 * tree-complex.c: Likewise
7673
7674 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
7675 * tree-ssa-uninit.c: Likewise
7676 * tree-ssa-threadupdate.c: Likewise
7677 * tree-ssa-uncprop.c: Likewise
7678 * tree-ssa-ccp.c: Likewise
7679 * tree-ssa-dom.c: Likewise
7680 * tree-ssa-propagate.c: Likewise
7681 * tree-ssa-alias.c: Likewise
7682 * tree-dfa.c: Likewise
7683 * tree-cfgcleanup.c: Likewise
7684 * tree-sra.c: Likewise
7685 * tree-ssa-copy.c: Likewise
7686 * tree-ssa.c: Likewise
7687 * tree-profile.c: Likewise
7688 * tree-cfg.c: Likewise
7689 * tree-ssa-threadedge.c: Likewise
7690 * tree-vect-loop-manip.c: Likewise
7691
7692 * tree-inline.c: Do not include diagnostic.h and expr.h.
7693 Include rtl.h.
7694 (copy_decl_for_dup_finish): Do not use NULL_RTX.
7695
7696 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
7697 * tree-loop-distribution.c: Likewise.
7698
7699 2010-06-01 Jan Hubicka <jh@suse.cz>
7700
7701 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
7702
7703 2010-06-01 Jan Hubicka <jh@suse.cz>
7704
7705 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
7706 remove return value.
7707 (split_bbs_on_noreturn_calls) .... here.
7708 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
7709 * tree-flow.h (fixup_noreturn_call): New.
7710
7711 2010-06-01 Jan Hubicka <jh@suse.cz>
7712
7713 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
7714
7715 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
7716
7717 * tree.h (build_nt_call_list): Delete.
7718 * tree.c (build_nt_call_list): Delete.
7719
7720 2010-06-01 Jan Hubicka <jh@suse.cz>
7721
7722 * fwprop.c: Make emit-rtl.h include last.
7723 * rtlanal.c: Include emit-rtl.h.
7724 * genautomata.c: Output emit-rtl include into insn-automata.c
7725 * df-scan.c: Include emit-rtl.h.
7726 * haifa-sched.c: Indlude emit-rtl.h.
7727 * mode-switching.c: Indlude emit-rtl.h.
7728 * graph.c: Indlude emit-rtl.h.
7729 * sel-sched.c: Include emit-rtl.h.
7730 * sel-sched-ir.c: Include emit-rtl.h.
7731 * ira-build.c: Include emit-rtl.h.
7732 * emit-rtl.c: (first_insn, last_insn): Remove defines.
7733 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
7734 Move to emit-rtl.h.
7735 (set_new_first_and_last_insn, get_last_insn_anywhere,
7736 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
7737 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
7738 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
7739 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
7740 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
7741 Use accessor functions.
7742 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
7743 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
7744 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
7745 mem_expr_equal_p): Move here from rtl.h.
7746 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
7747 Move here from emit-rtl.c; make inline.
7748 * cfglayout.h: Include emit-rtl.h.
7749 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
7750 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
7751 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
7752 mem_expr_equal_p, get_insns, set_first-insn,
7753 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
7754 * reg-stack.c: Include emit-rtl.h.
7755 * dce.c: Likewise.
7756
7757 2010-06-01 Jan Hubicka <jh@suse.cz>
7758
7759 * cgraph.h (tree_function_versioning): Update prototype.
7760 (cgraph_function_versioning): Update prototype.
7761 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
7762 bitmap.
7763 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
7764 (cgraph_materialize_clone, save_inline_function_body): Update use of
7765 tree_function_versioning.
7766 * tree-inline.c (copy_bb): Look for previous copied block to link
7767 after; fix debug output.
7768 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
7769 (copy_body): Likewise.
7770 (expand_call_inline): Update use of copy_body.
7771 (tree_function_versioning): Update use of copy body; accept
7772 blocks_to_copy and new_entry.
7773
7774 2010-06-01 Jan Hubicka <jh@suse.cz>
7775
7776 * gegenrtl.c: Remove unnecesary prototypes.
7777 (gendecl): Remove.
7778 (gendef): Produce static inline.
7779 (gencode): Remove.
7780 (main): Do not decode parameters; generate header only.
7781 * Makefile.in (genrtl.c): Remove.
7782
7783 2010-06-01 Jan Hubicka <jh@suse.cz>
7784
7785 * tree-switch-conversion.c (build_one_array): Make it readonly.
7786
7787 2010-06-01 Richard Guenther <rguenther@suse.de>
7788
7789 * optabs.c (init_optabs): Guard all accesses to reinit.
7790 * ipa-pure-const.c (propagate): Fix another typo.
7791 * opts.c (common_handle_option): Split assignment to bool.
7792 * c-opts.c (c_common_handle_option): Likewise.
7793
7794 2010-06-01 Arnaud Charlet <charlet@adacore.com>
7795 Matthew Gingell <gingell@adacore.com>
7796
7797 * doc/invoke.texi: Mention -fdump-ada-spec.
7798 * tree-dump.c (dump_files): Add ada-spec.
7799 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
7800 * tree-pass.h (tree_dump_index): Add TDI_ada.
7801 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
7802 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
7803 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
7804 * c-decl.c: Include c-ada-spec.h.
7805 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
7806 functions.
7807 (c_write_global_declarations): Add handling of -fdump-ada-spec.
7808 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
7809 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
7810 * c-ada-spec.h, c-ada-spec.c: New files.
7811
7812 2010-06-01 Richard Guenther <rguenther@suse.de>
7813
7814 PR lto/43853
7815 * ipa-pure-const.c (get_function_state): Hand back varying state
7816 if we do not have one.
7817 (has_function_state): New function.
7818 (duplicate_node_data): Adjust.
7819 (remove_node_data): Likewise.
7820 (pure_const_write_summary): Likewise.
7821 (propagate): Likewise. Fix typo.
7822
7823 2010-06-01 Jan Hubicka <jh@suse.cz>
7824
7825 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
7826 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
7827 (execute_all_ipa_transforms): Do not play with the states.
7828
7829 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
7830
7831 * config/arm/t-linux-androideabi: New.
7832 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
7833
7834 2010-06-01 Jan Hubicka <jh@suse.cz>
7835
7836 * tree-inline.c (estimate_num_insns): For stdarg functions look
7837 into call statement to count cost of argument passing.
7838
7839 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
7840
7841 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
7842 argument for fprintf.
7843 (ix86_output_addr_diff_elt): Likewise.
7844 (x86_function_profiler): Likewise.
7845 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
7846 (LPREFIX): Likewise.
7847 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
7848
7849 2010-05-31 Jakub Jelinek <jakub@redhat.com>
7850
7851 PR target/44338
7852 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
7853 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
7854 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
7855 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
7856 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
7857 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
7858 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
7859 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
7860 TARGET_FUSED_MADD.
7861
7862 2010-05-31 Jan Hubicka <jh@suse.cz>
7863
7864 * tree.h (tree_range_check_failed): Declare noreturn.
7865
7866 2010-05-31 Jan Hubicka <jh@suse.cz>
7867
7868 * gimple.c (gimple_call_builtin_p): New function.
7869 * gimple.h (gimple_call_builtin_p): Declare.
7870 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
7871 to exit.
7872 (execute_warn_function_return): BUILT_IN_RETURN is return.
7873 (split_critical_edges): Return edges are not critical.
7874 (is_ctrl_altering_stmt): Builtin_in_return is altering.
7875 (gimple_verify_flow_info): Handle built_in_return.
7876 (execute_warn_function_return): Handle built_in_return.
7877 * ipa-pure-const.c (check_call): Ignore builtin_return.
7878
7879 2010-05-31 Jakub Jelinek <jakub@redhat.com>
7880
7881 PR middle-end/44337
7882 * expr.c (expand_assignment): Don't store anything for out-of-bounds
7883 array accesses with non-MEM.
7884
7885 PR tree-optimization/44182
7886 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
7887 newly needs to end a bb is followed by debug stmts, instead return
7888 true from the function at the end.
7889 (maybe_move_debug_stmts_to_successors): New function.
7890 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
7891
7892 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
7893
7894 PR target/44161
7895 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
7896
7897 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
7898
7899 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
7900 for nested functions in non-optimized compilation.
7901
7902 2010-05-31 Richard Guenther <rguenther@suse.de>
7903
7904 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
7905
7906 2010-05-30 Jan Hubicka <jh@suse.cz>
7907
7908 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
7909
7910 2010-05-30 Richard Guenther <rguenther@suse.de>
7911
7912 PR lto/42975
7913 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
7914 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
7915 no longer needed.
7916
7917 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
7918
7919 * config/darwin.c (output_objc_section_asm_op): Add comment.
7920 (name_needs_quotes): Add '_' to list of valid comment chars.
7921 (machopic_output_function_base_name): Remove unneeded quotes.
7922 (darwin_encode_section_info): Adjust asm whitespace.
7923 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
7924 (ASM_OUTPUT_LOCAL): Ditto.
7925 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
7926 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
7927 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
7928
7929 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
7930
7931 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
7932 RS6000_OUTPUT_BASENAME unconditionally.
7933 (rs6000_output_function_epilogue): Likewise.
7934
7935 2010-05-30 Jan Hubicka <jh@suse.cz>
7936
7937 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
7938 nodes.
7939
7940 2010-05-30 Richard Guenther <rguenther@suse.de>
7941
7942 * tree-cfg.c (verify_gimple_assign_single): Implement
7943 verification for COND_EXPR rhs.
7944
7945 2010-05-30 Jan Hubicka <jh@suse.cz>
7946
7947 * cgraph.h (cgraph_dump_file): Declare.
7948 * cgraphunit.c (cgraph_dump_file): Export.
7949 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
7950
7951 2010-05-30 Jan Hubicka <jh@suse.cz>
7952
7953 * dwarf2out.c (reference_to_unused,
7954 premark_types_used_by_global_vars_helper): Avoid creation of new
7955 varpool nodes.
7956
7957 2010-05-30 Jan Hubicka <jh@suse.cz>
7958
7959 * cgraph.h (cgraph_node_cannot_return,
7960 cgraph_edge_cannot_lead_to_return): New functions.
7961 * cgraph.c (cgraph_node_cannot_return,
7962 cgraph_edge_cannot_lead_to_return): Use them.
7963 * ipa-pure-const.c (pure_const_names): New static var.
7964 (check_call): Handle calls not leading to return.
7965 (pure_const_read_summary): Dump info read.
7966 (propagate): Dump info about propagation process; ignore side effects
7967 of functions not leading to exit; fix handling of pure functions.
7968
7969 2010-05-30 Jan Hubicka <jh@suse.cz>
7970
7971 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
7972 for tail call epilogues.
7973
7974 2010-05-30 Jan Hubicka <jh@suse.cz>
7975
7976 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
7977 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
7978 dump files.
7979
7980 2010-05-29 Jan Hubicka <jh@suse.cz>
7981
7982 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
7983 node; remove references in node we no longer keep in cgrpah but need
7984 body of.
7985
7986 2010-05-29 Jan Hubicka <jh@suse.cz>
7987
7988 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
7989
7990 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7991
7992 PR target/44165
7993 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
7994
7995 2010-05-29 Jan Hubicka <jh@suse.cz>
7996
7997 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
7998 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
7999 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
8000 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
8001 debug_names_replaced_by, debug_update_ssa): Likewise.
8002 * sbitmap.c (debug_sbitmap): Likewise.
8003 * genrecog.c (debug_decision, debug_decision_list): Likewise.
8004 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
8005 debug_tree_chain): Likewise.
8006 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
8007 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
8008 * optabs.c (debug_optab_libfuncs): Likewise.
8009 (verify_loop_closed_ssa): Likewise.
8010 * value-prof.c (verify_histograms): Likewise.
8011 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
8012 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
8013 * cfghooks.c (verify_flow_info): Likewise.
8014 * fold-const.c (debug_fold_checksum): Likewise.
8015 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
8016 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
8017 Likewise.
8018 * omega.c (debug_omega_problem): Likewise.
8019 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
8020 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
8021 * dominance.c (verify_dominators, debug_dominance_info,
8022 debug_dominance_tree): Likewise.
8023 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
8024 * df_regno_debug, df_ref_debug,
8025 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
8026 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
8027 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
8028 * sel-sched.c (debug_state): Likewise.
8029 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
8030 Likewise.
8031 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
8032 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
8033 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
8034 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
8035 Likewise.
8036 * c-pretty-print.c (debug_c_tree): Likewise.
8037 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
8038 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
8039 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
8040 * ebitmap.c (debug_ebitmap): Likewise.
8041 * function.c (debug_find_var_in_block_tree): Likewise.
8042 * print-rtl.c (debug_rtx): Likewise.
8043 (debug_rtx_count): Likewise.
8044 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
8045 * stor-layout.c (debug_rli): Likewise.
8046 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
8047 * tree-data-ref.c (debug_data_references,
8048 debug_data_dependence_relations, debug_data_reference,
8049 debug_data_dependence_relation, debug_rdg_vertex,
8050 debug_rdg_component, debug_rdg): Likewise.
8051 * tree-affine.c (debug_aff): Likewise.
8052 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
8053 Likewise.
8054 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
8055 * emit-rtl.c (verify_rtl_sharing): Likewise.
8056 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
8057 debug_value_expressions): Likewise.
8058 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
8059 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
8060 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
8061 * cfglayout.c (verify_insn_chain): Likewise.
8062 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
8063 debug_clast_stmt, debug_generated_program): Likewise.
8064 * ggc-page.c (debug_print_page_list): Likewise.
8065 * tree-ssa-ter.c (debug_ter): Likewise.
8066 * graphite-dependences.c (debug_pddr): Likewise.
8067 * sched-deps.c (debug_ds): Likewise.
8068 * tree-ssa.c (verify_ssa): Likewise.
8069 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
8070 debug_scattering_functions, debug_iteration_domains, debug_pdr,
8071 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
8072 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
8073 * tree-inline.c (debug_find_tree): Likewise.
8074 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
8075 debug_ppl_powerset_matrix): Likewise.
8076 * var-tracking.c (debug_dv): Likewise.
8077 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
8078 * cfgloop.c (verify_loop_structure): Likewise.
8079 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
8080 * c-common.c (verify_sequence_points): Likewise.
8081 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
8082 debug_candidates, debug_rgn_dependencies): Likewise.
8083 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
8084 * debug_constraint_graph, debug_solution_for_var,
8085 debug_sa_points_to_info): Likewise.
8086 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
8087 Likewie.
8088 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
8089 debug_loops, debug_loop, debug_loop_num): Likewise.
8090 * passes.c (debug_pass): Likewise.
8091 (dump_properties): Likewise; add cfglayout property.
8092 (debug_properties): Likewise.
8093 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
8094 * varpool.c (debug_varpool): Likewise.
8095 * regcprop.c (debug_value_data): Likewise.
8096 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
8097 debug_immediate_uses_for): Likewise.
8098
8099 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
8100
8101 PR bootstrap/44315
8102 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
8103 Filter out insn-flags.h.
8104
8105 2010-05-29 Jan Hubicka <jh@suse.cz>
8106
8107 * cgraph.h (struct varpool_node_set_def,
8108 struct cgraph_node_set_def): Remove unused AUX pointer.
8109 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
8110 VEC_empty macro.
8111
8112 2010-05-29 Jan Hubicka <jh@suse.cz>
8113
8114 PR middle-end/44324
8115 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
8116
8117 2010-05-29 Richard Guenther <rguenther@suse.de>
8118
8119 * lto-streamer.c (cached_bp): New global variable.
8120 (bitpack_create): Return the cached bitpack, if available.
8121 (bitpack_delete): Clear and cache the bitpack, if appropriate.
8122 (bp_pack_value): Remove redundant asserts.
8123
8124 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
8125
8126 PR middle-end/44306
8127 * tree-if-conv.c (is_true_predicate): New.
8128 (is_predicated): Use is_true_predicate.
8129 (add_to_predicate_list): Same. Do not use unshare_expr.
8130 (add_to_dst_predicate_list): Same.
8131
8132 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
8133
8134 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
8135 field on edges.
8136 (predicate_bbs): Same.
8137 (clean_predicate_lists): Same.
8138 (find_phi_replacement_condition): Do not AND the predicate from
8139 edge->aux.
8140
8141 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
8142
8143 PR bootstrap/44315
8144 * Makefile.in (build/gencondmd.o): Add a missing `\'.
8145
8146 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8147
8148 PR target/44261
8149 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
8150 (negdf2): Adjust expander pattern and use negdf2_slow.
8151 (negsf2): Likewise.
8152
8153 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
8154
8155 * basic-block.h (struct control_flow_graph): Move last_label_uid field
8156 up.
8157 * df.h (struct df_base_ref): Move regno field up.
8158 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
8159 * expr.h (struct separate_ops): Move location field up.
8160 * optabs.h (struct optab_d): Move libcall_basename field down.
8161 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
8162 * config/i386/i386.h (struct machine_function): Convert call_abi field
8163 into a bitfield. Move cfa field to the end of the structure.
8164
8165 2010-05-29 Jan Hubicka <jh@suse.cz>
8166
8167 * varpool.c (varpool_get_node): Fix lookup.
8168
8169 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
8170
8171 * config/spu/spu-protos.h: Do not include rtl.h. Protect
8172 RTL specific prototypes with #ifdef RTX_CODE.
8173 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
8174 * config/spu/t-spu-elf: Fix dependencies.
8175
8176 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
8177
8178 2010-05-29 Mike Stump <mikestump@comcast.net>
8179
8180 PR bootstrap/44315
8181 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
8182 TM_H when building to avoid dependency loops.
8183
8184 2010-05-29 Jan Hubicka <jh@suse.cz>
8185
8186 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
8187 refs and body; not the whole node for masters of materialized clones.
8188
8189 2010-05-29 Mike Stump <mikestump@comcast.net>
8190
8191 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
8192
8193 2010-05-29 Jan Hubicka <jh@suse.cz>
8194
8195 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
8196 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
8197 use of clone_function_name.
8198 * cgraph.h (cgraph_create_virtual_clone,
8199 cgraph_function_versioning): update prototypes.
8200 (clone_function_name): Declare.
8201 * ipa-cp.c (ipcp_insert_stage): Update call of
8202 cgraph_create_virtual_clone.
8203 * omp-low.c (create_omp_child_function_name): Use
8204 cgraph_create_virtual_clone.
8205 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
8206 (cgraph_function_versioning): Take SUFFIX argument; produce new name
8207 and make decl local.
8208
8209 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
8210
8211 * vec.h: Include statistics.h
8212 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
8213 with VEC_H.
8214
8215 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
8216
8217 * c-lex.c: Do not include c-tree.h.
8218 * c-pretty-print.c: Likewise.
8219 * c-opts.c: Likewise.
8220 * c-gimplify.c: Likewise.
8221 * c-common.c: Likewise.
8222 * c-dump.c: Likewise. Include c-common.h.
8223
8224 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
8225
8226 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
8227 before including diagnostic-core.h.
8228 (c_cpp_error): New prototype moved from c-tree.h.
8229 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
8230 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
8231 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
8232 (c_cpp_error): Prototype moved to c-common.h.
8233 * Makefile.in: Update dependency for C_COMMON_H.
8234
8235 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
8236
8237 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
8238 * c-common.c (c_register_addr_space): Remove here.
8239 * c-decl.c (c_register_addr_space): Re-add here.
8240
8241 2010-05-28 Mike Stump <mikestump@comcast.net>
8242
8243 * config/darwin-c.c: Remove c-tree.h include.
8244
8245 2010-05-28 Joseph Myers <joseph@codesourcery.com>
8246
8247 * gcc.c: Include diagnostic.h.
8248 (error_count): Remove. All users changed to use errorcount.
8249 (programname): Remove. All users changed to use progname.
8250 (fancy_abort, internal_error, fatal_error, error, warning, inform,
8251 fnotice): Remove.
8252 (execute): Don't include "Internal error" and bug reporting
8253 information in argument of internal_error call.
8254 (process_command): Don't increment error_count after calling
8255 perror_with_name.
8256 (input_filename): Rename to gcc_input_filename. All users
8257 changed.
8258 (main): Call diagnostic_initialize. Register delete_temp_files
8259 with atexit. Use seen_error to test for errors.
8260 * gcc.h: Include diagnostic-core.h.
8261 (fatal_error, error, warning): Remove.
8262 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
8263 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
8264 (gcc.o): Update dependencies.
8265
8266 2010-05-28 Jeff Law <law@redhat.com>
8267
8268 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
8269 functions.
8270 * ira.h (ira_bad_reload_regno): Declare
8271 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
8272
8273 * ira-color.c (update_curr_costs): Free updated hard reg costs.
8274 (ira_reassign_conflict_allocnos): Remove bogus asserts.
8275 (allocno_reload_assign): Likewise.
8276
8277 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
8278
8279 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
8280 build1_stat.
8281
8282 2010-05-28 Richard Guenther <rguenther@suse.de>
8283
8284 PR lto/44312
8285 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
8286 Stream fixed-point constants mode.
8287 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
8288 and TYPE_PRECISION.
8289 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
8290 Stream fixed-point constants mode.
8291 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
8292 and TYPE_PRECISION.
8293
8294 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
8295
8296 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
8297 only place it was called from.
8298 (number_of_latch_executions): Do not return chrec_dont_know when the
8299 may_be_zero is a runtime condition: instead, return a COND_EXPR
8300 including the may_be_zero condition.
8301 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
8302 of nb_iterations.
8303 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
8304 COND_EXPRs.
8305
8306 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
8307
8308 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
8309 generate COND_EXPRs for degenerate_phi_result.
8310
8311 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
8312
8313 PR middle-end/44293
8314 * tree-if-conv.c (if_convertible_loop_p): Check the
8315 if-convertibility of phi nodes in non predicated BBs.
8316
8317 2010-05-28 Joseph Myers <joseph@codesourcery.com>
8318
8319 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
8320
8321 2010-05-28 Joseph Myers <joseph@codesourcery.com>
8322
8323 PR driver/15303
8324 * gcc.c (inform, warning, inform): New functions.
8325 (fatal_ice): Rename to internal_error; change cmsgid parameter to
8326 gmsgid. All callers changed.
8327 (notice): Rename to fnotice; add parameter fp. All callers changed.
8328 (fatal_error): Rename to fatal_signal. All users changed.
8329 (fatal): Rename to fatal_error; change cmsgid parameter to
8330 gmsgid. All callers changed.
8331 (process_command): Use warning instead of error for warnings.
8332 (end_going_arg): Don't use _() around argument of error.
8333 (do_spec_1): Use inform for message from %n specs. Use warning
8334 instead of error for warnings.
8335 (main): Use inform for comparison messages. Use warning for
8336 message about unused linker input.
8337 (error): Increment error_count. Print "error: ".
8338 * gcc.h (fatal): Change to fatal_error.
8339 (warning): Declare.
8340 * config/darwin-driver.c (darwin_default_min_version): Use warning
8341 instead of fprintf for warnings.
8342 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
8343
8344 2010-05-28 Julian Brown <julian@codesourcery.com>
8345
8346 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
8347 (*thumb2_addsi3_compare0_scratch): New.
8348 * config/arm/constraints.md (Pv): New.
8349 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
8350 for ARM mode only.
8351 (*addsi3_compare0_scratch): Likewise.
8352
8353 2010-05-28 Jan Hubicka <jh@suse.cz>
8354
8355 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
8356 check.
8357 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
8358 only on local statics.
8359
8360 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
8361
8362 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
8363
8364 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
8365
8366 PR bootstrap/44314
8367 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
8368 (OPTION_GLIBC): Define.
8369
8370 2010-05-28 Jakub Jelinek <jakub@redhat.com>
8371
8372 PR debug/41048
8373 * dwarf2out.c (double_int_type_size_in_bits): New function.
8374 (round_up_to_align): Change first argument and return value to
8375 double_int.
8376 (field_byte_offset): Work internally on double_ints.
8377
8378 PR target/43636
8379 * builtins.c (expand_movstr): Use a temporary pseudo instead
8380 of target even when target is not NULL and not const0_rtx, but
8381 fails movstr predicate.
8382 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
8383
8384 2010-05-28 Joseph Myers <joseph@codesourcery.com>
8385
8386 * final.c (rest_of_clean_state): Use %m in errors instead of
8387 strerror (errno).
8388 * gengtype.c (read_input_list, close_output_files): Use xstrerror
8389 instead of strerror.
8390 * toplev.c (process_options): Use %m in errors instead of strerror
8391 (errno).
8392 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
8393 (errno).
8394
8395 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
8396
8397 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
8398 (ix86_canonical_va_list_type): Make static. Add declaration.
8399 (ix86_enum_va_list): Make static. Reindent.
8400 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
8401 (ix86_canonical_va_list_type): Ditto.
8402 (ix86_enum_va_list): Ditto.
8403
8404 2010-05-28 Richard Guenther <rguenther@suse.de>
8405
8406 * lto-wrapper.c (run_gcc): With -save-temps generate a
8407 user-visible ltrans filename. Fixup ltrans unit numbering.
8408
8409 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
8410
8411 * c-common.c (c_common_nodes_and_builtins): Replace use
8412 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
8413 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
8414 to ix86_enum_va_list.
8415 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
8416 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
8417 (TARGET_ENUM_VA_LIST_P): Add hook description.
8418 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
8419 * target.h (gcc_target): Add enum_va_list hook.
8420
8421 PR bootstrap/44299
8422 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
8423 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
8424 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
8425
8426 2010-05-28 Alan Modra <amodra@gmail.com>
8427
8428 PR target/44266
8429 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
8430 emit_library_call machinery to set up __tls_get_addr calls.
8431
8432 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8433
8434 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
8435
8436 2010-05-28 Dodji Seketeli <dodji@redhat.com>
8437
8438 Revert fix for PR c++/44188
8439 * c-common.c (is_typedef_decl): Revert the moving of this
8440 definition ...
8441 * tree.c (is_typedef_decl): ... here.
8442 (typdef_variant_p): Revert the moving of this definition
8443 here from gcc/cp/tree.c.
8444 * c-common.h (is_typedef_decl): Revert the moving of this
8445 declaration ...
8446 * tree.h (is_typedef_decl): ... here.
8447 (typedef_variant_p): Revert the moving of this declaration here
8448 from gcc/cp/cp-tree.h
8449 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
8450 (gen_tagged_type_die): Revert the splitting out of ...
8451 (gen_type_die_with_usage): ... this function. Revert the anonymous
8452 tagged type handling.
8453 (gen_typedef_die): Revert emitting DW_TAG_typedef for
8454 typedefs naming anonymous tagged types.
8455
8456 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
8457
8458 * config/rs6000/rs6000-modes.def (PSImode): Delete.
8459
8460 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
8461
8462 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
8463 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
8464 throughout.
8465 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
8466 "xer" to "ca".
8467 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
8468 XER_REGS to CA_REGS throughout.
8469 * config/rs6000/rs6000.h: Same.
8470 (ADDITIONAL_REGISTER_NAMES): Add "xer".
8471 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
8472 that mode_iterator "P" is the size for arithmetic carries as well.
8473 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
8474
8475 2010-05-28 Jakub Jelinek <jakub@redhat.com>
8476
8477 PR bootstrap/44255
8478 * combine.c (struct rtx_subst_pair): Define unconditionally.
8479 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
8480 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
8481 Call make_compound_operation on pair->to.
8482 (propagate_for_debug): Don't call make_compound_operation here.
8483 Always use simplify_replace_fn_rtx.
8484
8485 2010-05-27 Sterling Augustine <sterling@tensilica.com>
8486
8487 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
8488 * config/xtensa/xtensa.c (override_options): Check
8489 TARGET_FORCE_NO_PIC and set flag_pic.
8490 * config/xtensa/xtensa.opt: Document -mforce-no-pic
8491
8492 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
8493
8494 PR bootstrap/44299
8495 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
8496 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
8497
8498 2010-05-27 Joseph Myers <joseph@codesourcery.com>
8499
8500 * diagnostic-core.h: New. Contents moved from diagnostic.h and
8501 toplev.h.
8502 * diagnostic.c: Don't include toplev.h.
8503 (progname): Define. Moved from toplev.c.
8504 (seen_error): New function.
8505 * diagnostic.h: Include diagnostic-core.h.
8506 (diagnostic_t, emit_diagnostic): Don't declare here.
8507 * toplev.c (progname): Move to toplev.c.
8508 (emit_debug_global_declarations, compile_file, finalize,
8509 do_compile, toplev_main): Use seen_error.
8510 * toplev.h: Include diagnostic-core.h.
8511 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
8512 internal_error, warning, warning_at, error, error_n, error_at,
8513 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
8514 verbatim, fnotice, progname): Move to diagnostic-core.h.
8515 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
8516 (expand_builtin_expect): Use seen_error.
8517 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
8518 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
8519 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
8520 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
8521 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
8522 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
8523 errorcount for errors.
8524 * c-opts.c (c_common_finish): Use seen_error.
8525 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
8526 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
8527 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
8528 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
8529 (get_coverage_counts): Use seen_error.
8530 * dwarf2out.c (dwarf2out_finish): Use seen_error.
8531 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
8532 gimplify_body): Use seen_error.
8533 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
8534 * ipa-pure-const.c (gate_pure_const): Use seen_error.
8535 * ipa-reference.c (gate_reference): Use seen_error.
8536 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
8537 * lambda-code.c: Include diagnostic-core.h instead of
8538 diagnostic.h.
8539 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
8540 * lto-compress.c: Include diagnostic-core.h instead of
8541 diagnostic.h.
8542 * lto-section-in.c: Include diagnostic-core.h instead of
8543 diagnostic.h.
8544 * lto-streamer-out.c: Include diagnostic-core.h instead of
8545 diagnostic.h.
8546 * lto-streamer.c: Include diagnostic-core.h instead of
8547 diagnostic.h.
8548 (gate_lto_out): Use seen_error.
8549 * matrix-reorg.c: Include diagnostic-core.h instead of
8550 diagnostic.h.
8551 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
8552 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
8553 (gate_expand_omp, lower_omp_1): Use seen_error.
8554 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
8555 (rest_of_decl_compilation, rest_of_type_compilation,
8556 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
8557 * tree-cfg.c (label_to_block_fn): Use seen_error.
8558 * tree-inline.c (optimize_inline_calls): Use seen_error.
8559 * tree-mudflap.c (mudflap_finish_file): Use
8560 seen_error.
8561 * tree-optimize.c (gate_all_optimizations,
8562 gate_all_early_local_passes, gate_all_early_optimizations): Use
8563 seen_error.
8564 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
8565 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
8566 (varpool_remove_unreferenced_decls,
8567 varpool_assemble_pending_decls): Use seen_error.
8568 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
8569 (TOPLEV_H, DIAGNOSTIC_H): Update.
8570 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
8571 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
8572 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
8573 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
8574 coverage.o, lambda-code.o): Update dependencies.
8575
8576 2010-05-25 Dodji Seketeli <dodji@redhat.com>
8577
8578 PR c++/44188
8579 * c-common.c (is_typedef_decl): Move this definition ...
8580 * tree.c (is_typedef_decl): ... here.
8581 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
8582 * c-common.h (is_typedef_decl): Move this declaration ...
8583 * tree.h (is_typedef_decl): ... here.
8584 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
8585 * dwarf2out.c (is_naming_typedef_decl): New function.
8586 (gen_tagged_type_die): Split out of ...
8587 (gen_type_die_with_usage): ... this function. When an anonymous
8588 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
8589 is emitted for the typedef.
8590 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
8591 anonymous tagged types.
8592
8593 2010-05-27 Jason Merrill <jason@redhat.com>
8594
8595 * print-tree.c (debug_vec_tree): New fn.
8596 (print_vec_tree): New fn.
8597 * tree.h: Declare them.
8598 * gdbinit.in (pvt): New command.
8599
8600 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
8601
8602 * gdbinit.in (pdd): New command.
8603
8604 2010-05-27 Jan Hubicka <jh@suse.cz>
8605
8606 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
8607 (update_caller_keys): Return early if there are no callers;
8608 only update fibheap when decresing the key.
8609 (update_callee_keys): Avoid recursion.
8610 (decide_inlining_of_small_functions): When badness does not match;
8611 re-insert into fibheap.
8612
8613 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
8614
8615 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
8616 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
8617 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
8618 (ALL_HOST_OBJS): Now a union of the above two.
8619 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
8620 all files in ALL_HOST_FRONTEND_OBJS.
8621 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
8622
8623 * c-common.c: Pretend to be a backend file by undefining
8624 IN_GCC_FRONTEND (still need rtl.h here).
8625
8626 2010-05-27 Jan Hubicka <jh@suse.cz>
8627
8628 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
8629 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
8630
8631 2010-05-27 Jan Hubicka <jh@suse.cz>
8632
8633 * sched-ebb.c: Rename struct deps to struct deps_desc.
8634 * ddg.c: Likewise.
8635 * sel-sched-ir.c: Likewise.
8636 * sched-deps.c: Likewise.
8637 * sched-int.h: Likewise.
8638 * sched-rgn.c: Likewise.
8639
8640 2010-05-27 Jon Beniston <jon@beniston.com>
8641
8642 PR 43726
8643 * config/lm32/lm32.h: Remove definition of
8644 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
8645
8646 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
8647
8648 PR lto/44230
8649 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
8650
8651 2010-05-27 Richard Guenther <rguenther@suse.de>
8652
8653 PR tree-optimization/44284
8654 * tree-vect-stmts.c (vectorizable_assignment): Handle
8655 sign-changing conversions as simple copy.
8656
8657 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8658
8659 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
8660 Bionic C library.
8661 (__gthread_active_p): Check for pthread_create if compiling against
8662 Bionic C library.
8663
8664 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8665
8666 Support compilation for Android platform. Reimplement -mandroid.
8667
8668 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
8669 (*android*): Set ANDROID_DEFAULT.
8670 (arm*-*-linux*): Include linux-android.h.
8671 (arm*-*-eabi*): Don't include previous -mandroid implementation.
8672 * config/arm/eabi.h: Remove, move Android-specific parts ...
8673 * config/linux-android.h: ... here. New file.
8674 * config/arm/eabi.opt: Rename to ...
8675 * config/linux-android.opt: ... this.
8676 (mandroid): Allow -mno-android option. Initialize based on
8677 ANDROID_DEFAULT.
8678 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
8679 Move logic to corresponding LINUX_TARGET_* macros.
8680 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
8681 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
8682 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
8683 Android definitions.
8684 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
8685 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
8686 Document.
8687
8688 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8689
8690 Add support for Bionic C library
8691
8692 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
8693 macro.
8694 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
8695 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
8696
8697 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
8698 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
8699 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
8700 to support multiple C libraries. Handle Bionic.
8701 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
8702 (BIONIC_DYNAMIC_LINKER64): Define.
8703 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
8704 Update.
8705 (TARGET_HAS_SINCOS): Enable for Bionic.
8706
8707 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
8708 the last option specified on command line take effect.
8709 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
8710 (mbionic): New.
8711 (mglibc, muclibc): Update.
8712
8713 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
8714 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
8715 DEFAULT_LIBC.
8716
8717 * doc/invoke.texi (-mglibc, -muclibc): Update.
8718 (-mbionic): Document.
8719
8720 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8721
8722 * c-common.h (c_register_addr_space): Add prototype.
8723 (ADDR_SPACE_KEYWORD): Remove.
8724 * c-common.c (c_register_addr_space): New function.
8725 (c_addr_space_name): Reimplement.
8726 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
8727
8728 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
8729 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
8730
8731 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
8732 Remove TARGET_ADDR_SPACE_KEYWORDS.
8733
8734 2010-05-27 Joseph Myers <joseph@codesourcery.com>
8735
8736 * input.c: New file.
8737 * input.h (main_input_filename): Move declaration to toplev.h.
8738 * toplev.c (input_location, line_table): Move to input.c
8739 * toplev.h (main_input_filename): Move declaration from input.h.
8740 * tree.c (expand_location): Move to input.c.
8741 * Makefile.in (OBJS-common): Add input.o.
8742 (input.o): Add dependencies.
8743
8744 2010-05-27 Richard Guenther <rguenther@suse.de>
8745
8746 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
8747 for non-existant files.
8748 (fork_execute): Mark args_name file as deleted.
8749
8750 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
8751
8752 PR bootstrp/44287
8753 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
8754 (narrow_signed_type): Likewise.
8755
8756 2010-05-26 Jan Hubicka <jh@suse.cz>
8757
8758 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
8759 edge only when checking is enabled; check using former_clone_of;
8760 check inline clones too.
8761 (cgraph_materialize_clone): Record former_clone_of pointer.
8762 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
8763 combining redirections; dump args_to_skip bitmap
8764 (cgraph_materialize_all_clones): Do no redirection here.
8765 * ipa-inline.c (inline_transform): Do redirection here.
8766 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
8767 cheking only).
8768
8769 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
8770
8771 * config/avr/avr-c.c: Do not include regs.h.
8772 Include cpplib.h for cpp_define and tree.h for c-common.h.
8773 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
8774 * config/avr/t-avr: Fix dependencies for avr-c.o.
8775
8776 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
8777
8778 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
8779 string instead of SYMBOL_REF rtx.
8780 * rtl.h (set_stack_check_libfunc): Move prototype from here...
8781 * libfuncs.h: ...to here. Adjust for explow.c change.
8782
8783 2010-05-26 Joseph Myers <joseph@codesourcery.com>
8784
8785 * pretty-print.c: Don't include ggc.h.
8786 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
8787 (identifier_to_locale): Use them for allocation.
8788 * pretty-print.h (identifier_to_locale_alloc,
8789 identifier_to_locale_free): Declare.
8790 * toplev.c (alloc_for_identifier_to_locale): New.
8791 (general_init): Set identifier_to_locale_alloc and
8792 identifier_to_locale_free.
8793 * Makefile.in (pretty-print.o): Update dependencies.
8794
8795 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
8796
8797 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
8798 pointer types if they have different alignment or mode.
8799
8800 2010-05-26 Anatoly Sokolov <aesok@post.ru>
8801
8802 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
8803 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
8804 * config/sparc/sparc-protos.h (function_value): Remove declaration.
8805 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
8806 sparc_function_value_regno_p): New functions.
8807 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8808 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8809 (function_value): Rename to...
8810 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
8811 argument to 'outgoing'.
8812 (function_arg_record_value, function_arg_union_value,
8813 function_arg_vector_value): Update comment.
8814
8815 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
8816
8817 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
8818 (fde_needed_for_eh_p): New predicate.
8819 (output_call_frame_info): Use it throughout to decide whether FDEs
8820 are needed for EH purpose.
8821 (dwarf2out_begin_prologue): Reorder assignments.
8822
8823 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8824
8825 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
8826 special case loop->header.
8827 (is_predicated): New.
8828 (if_convertible_loop_p): Call it.
8829
8830 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8831
8832 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
8833 iterator in parameter. Do not generate code during the analysis.
8834 (tree_if_convert_cond_stmt): Removed.
8835 (tree_if_convert_stmt): Removed.
8836 (predicate_bbs): New.
8837 (if_convertible_loop_p): Call predicate_bbs.
8838 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
8839 now contains all the analysis part.
8840
8841 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8842
8843 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
8844 statements in the analysis part.
8845 (tree_if_convert_stmt): Update comment.
8846 (remove_conditions_and_labels): New.
8847 (combine_blocks): Call remove_conditions_and_labels.
8848 (tree_if_conversion): Update comment.
8849
8850 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8851
8852 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
8853 than 2 predecessors or more than 2 successors.
8854
8855 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8856
8857 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
8858 of loops in which the data dependence analysis fails.
8859
8860 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8861
8862 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
8863 CDI_POST_DOMINATORS.
8864 (tree_if_conversion): Same.
8865
8866 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8867
8868 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
8869
8870 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
8871
8872 * tree-if-conv.c: Update copyright years. Fix comments.
8873 Fix indentation.
8874
8875 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
8876
8877 * builtin-types.def (BT_INT128): New primitive type.
8878 (BT_UINT128): Likewise.
8879 * c-common.c (c_common_r): Add __int128 keyword.
8880 (c_common_type_for_size): Handle __int128.
8881 (c_common_type_for_mode): Likewise.
8882 (c_common_signed_or_unsigned_type): Likewise.
8883 (c_common_nodes_and_builtins): Add builtin type
8884 if target supports 128-bit integer scalar.
8885 * c-common.h (enum rid): Add RID_INT128.
8886 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
8887 if target supports 128-bit integer scalar.
8888 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
8889 (finish_declspecs): Likewise.
8890 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
8891 (c_token_starts_declspecs): Likewise.
8892 (c_parser_declspecs): Likewise.
8893 (c_parser_attributes): Likewise.
8894 (c_parser_objc_selector): Likewise.
8895 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
8896 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
8897 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
8898 * tree.c (make_or_reuse_type): Likewise.
8899 (make_unsigned_type): Likewise.
8900 (build_common_tree_nodes_2): Likewise.
8901 * tree.h (enum integer_type_kind): Add itk_int128 and
8902 itk_unsigned_int128.
8903 (int128_integer_type_node): New define.
8904 (int128_unsigned_type_node): New define.
8905 * doc/extend.texi: Add documentation about __int128 type.
8906
8907 2010-05-26 Richard Guenther <rguenther@suse.de>
8908
8909 * tree-ssa-sccvn.c (copy_nary): Adjust.
8910 (copy_phis): Rename to ...
8911 (copy_phi): ... this. Adjust.
8912 (copy_references): Rename to ...
8913 (copy_reference): ... this. Adjust.
8914 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
8915 result into the valid table.
8916
8917 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
8918
8919 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
8920 insn-config.h, insn-codes.h, recog.h, and optabs.h.
8921
8922 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8923
8924 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
8925
8926 2010-05-26 Richard Guenther <rguenther@suse.de>
8927
8928 * opts.c (common_handle_option): Handle OPT_Ofast.
8929
8930 2010-05-26 Joseph Myers <joseph@codesourcery.com>
8931
8932 * diagnostic.c: Don't include opts.h.
8933 (permissive_error_option): Define.
8934 (diagnostic_initialize): Take n_opts parameter. Allocate memory
8935 for classify_diagnostic. Don't use memset for
8936 classify_diagnostic. Initialize new and recently added fields.
8937 (diagnostic_classify_diagnostic): Use context->n_opts instead of
8938 N_OPTS.
8939 (diagnostic_report_diagnostic): Pass context parameter to
8940 diagnostic_report_warnings_p. Use option_enabled and option_name
8941 hooks from context.
8942 (emit_diagnostic): Use permissive_error_option.
8943 (permerror): Likewise.
8944 * diagnostic.h: Don't include options.h.
8945 (struct diagnostic_context): Add n_opts, opt_permissive,
8946 inhibit_warnings, warn_system_headers, option_enabled and
8947 option_name fields. Change classify_diagnostic to a pointer.
8948 * opts-diagnostic.h: New file.
8949 * opts.c: Include opts-diagnostic.h.
8950 (common_handle_option): Set global_dc fields for -Wfatal-errors,
8951 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
8952 (option_name): New function.
8953 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
8954 (c_common_handle_option): Set global_dc->permissive for
8955 -fpermissive.
8956 * c-common.c (c_cpp_error): Save and restore
8957 global_dc->warn_system_headers, not variable warn_system_headers.
8958 * toplev.c: Include opts-diagnostic.h.
8959 (general_init): Update call to diagnostic_initialize. Set
8960 global_dc->show_column, global_dc->option_enabled and
8961 global_dc->option_name.
8962 (process_options): Don't set global_dc fields here.
8963 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
8964 (diagnostic.o, opts.o, toplev.o): Update dependencies.
8965
8966 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
8967
8968 * config/picochip/picochip.md (movsi): Split a movsi from a
8969 const after reload.
8970
8971 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8972
8973 * ggc-zone.c: Update copyright year.
8974 (poison_region): Mark memory for Valgrind as undefined before
8975 memset () call and inaccessible afterwards.
8976 (ggc_pch_total_size): Change type of i to int.
8977
8978 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8979
8980 * ggc-common.c (ggc_free_overhead): Allow empty slot.
8981
8982 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8983
8984 * ggc-common.c: Update copyright year.
8985 (ggc_rlimit_bound): Remove prototype. Compile only if
8986 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
8987 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
8988 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
8989 (ggc_min_heapsize_heuristic): Likewise.
8990
8991 2010-05-26 Richard Guenther <rguenther@suse.de>
8992
8993 PR rtl-optimization/44164
8994 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
8995 no-common access-path disambiguation.
8996 (indirect_ref_may_alias_decl_p): Adjust.
8997 (indirect_refs_may_alias_p): Likewise.
8998 (refs_may_alias_p_1): Likewise.
8999
9000 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
9001
9002 * c-typeck.c: Do not include expr.h.
9003
9004 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
9005
9006 * rtl.h (decl_default_tls_model): Move prototype from here...
9007 * output.h: ...to here.
9008 * c-decl.c: Do not include rtl.h.
9009 * c-pragma.c: Likewise.
9010 * c-parser.c: Likewise.
9011 * c-gimplify.c: Likewise. And also not hard-reg-set.
9012 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
9013 FIXME note for it. Add a FIXME note for expr.h.
9014 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
9015 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
9016 defined.
9017
9018 2010-05-26 Jakub Jelinek <jakub@redhat.com>
9019
9020 PR target/44199
9021 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
9022 or total_size is larger than red zone size for non-V4 ABI, emit a
9023 stack_tie resp. frame_tie insn before stack pointer restore.
9024 * config/rs6000/rs6000.md (frame_tie): New insn.
9025
9026 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
9027
9028 * function.h (struct function): Add can_throw_non_call_exceptions bit.
9029 * lto-streamer-in.c (input_function): Stream it in.
9030 * lto-streamer-out.c (output_function): Stream it out.
9031 * function.c (allocate_struct_function): Set it.
9032 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
9033 for flag_non_call_exceptions.
9034 * cfgbuild.c (control_flow_insn_p): Likewise.
9035 (make_edges): Likewise.
9036 * cfgexpand.c (expand_stack_alignment): Likewise.
9037 * combine.c (distribute_notes): Likewise.
9038 * cse.c (cse_extended_basic_block): Likewise.
9039 * except.c (insn_could_throw_p): Likewise.
9040 * gcse.c (simple_mem): Likewise.
9041 * ipa-pure-const.c (check_call): Likewise.
9042 (check_stmt ): Likewise.
9043 * lower-subreg.c (lower-subreg.c): Likewise.
9044 * optabs.c (emit_libcall_block): Likewise.
9045 (prepare_cmp_insn): Likewise.
9046 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
9047 * postreload.c (rest_of_handle_postreload): Likewise.
9048 * reload1.c (reload_as_needed): Likewise.
9049 (emit_input_reload_insns): Likewise.
9050 (emit_output_reload_insns): Likewise.
9051 (fixup_abnormal_edges): Likewise.
9052 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
9053 * store-motion.c (find_moveable_store): Likewise.
9054 * tree-eh.c (stmt_could_throw_p): Likewise.
9055 (tree_could_throw_p): Likewise.
9056 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9057 * config/arm/arm.c (arm_expand_prologue): Likewise.
9058 (thumb1_expand_prologue): Likewise.
9059 * config/rx/rx.md (cbranchsf4): Likewise.
9060 (cmpsf): Likewise.
9061 * config/s390/s390.c (s390_emit_prologue): Likewise.
9062 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
9063 (inline_forbidden_into_p): New predicate.
9064 (expand_call_inline): Use it to forbid inlining.
9065 (tree_can_inline_p): Likewise.
9066
9067 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
9068
9069 * config/i386/i386-c.c: Do not include rtl.h.
9070 * config/i386/t-i386: Update dependencies.
9071
9072 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
9073
9074 * attribs.c: Do not include rtl.h.
9075 * Makefile.in: Update dependencies.
9076
9077 2010-05-25 Anatoly Sokolov <aesok@post.ru>
9078
9079 * double-int.h (double_int_and): New.
9080 * combine.c (try_combine): Clean up, use double_int_* and
9081 immed_double_int_const functions.
9082
9083 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9084
9085 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
9086 stderr to /dev/null instead of grep -q.
9087 * configure: Regenerate.
9088
9089 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
9090
9091 * Makefile.in (EXCEPT_H): Fix typo.
9092
9093 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
9094
9095 * ira-build.c (update_conflict_hard_reg_costs): New.
9096 (ira_build): Call update_conflict_hard_reg_costs.
9097
9098 2010-05-25 Jakub Jelinek <jakub@redhat.com>
9099
9100 PR debug/41371
9101 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
9102 ENABLE_CHECKING.
9103 (intersect_loc_chains): Walk the s2var's loc_chain together
9104 with s1node chain as long as the locations are equal, don't
9105 call find_loc_in_1pdv in that case.
9106
9107 PR debug/42801
9108 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
9109 (copy_bind_expr): ... instead of here.
9110 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
9111 if the block hasn't been remapped.
9112 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
9113 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
9114
9115 2010-05-25 Richard Guenther <rguenther@suse.de>
9116
9117 PR middle-end/44069
9118 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
9119 out-of-bounds array accesses.
9120
9121 2010-05-25 Richard Guenther <rguenther@suse.de>
9122
9123 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
9124 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
9125 (run_gcc): Re-organize to make cleanup easier.
9126
9127 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9128
9129 * config/s390/s390.c (optimization_options): Fix and move the
9130 flag_prefetch_loop_arrays override ...
9131 (override_options): ... here.
9132
9133 2010-05-25 Joseph Myers <joseph@codesourcery.com>
9134
9135 * diagnostic.c: Don't include plugin.h.
9136 (diagnostic_report_diagnostic): Don't handle plugins specially
9137 here. Pass context to internal_error callback.
9138 * diagnostic.h (struct diagnostic_context): Add context parameter
9139 to internal_error callback.
9140 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
9141 * plugin.h (struct diagnostic_context): Declare.
9142 (warn_if_plugins, plugins_internal_error_function): Declare.
9143 * toplev.c (general_init): Set global_dc->internal_error.
9144 * Makefile.in (diagnostic.o): Update dependencies.
9145
9146 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
9147
9148 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
9149 * config/rs6000/t-darwin64: New.
9150 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
9151 build crt2.
9152
9153 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
9154
9155 PR 44203
9156 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
9157 match the original (and intended) behaviour before r159557. This
9158 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
9159 in two ways.
9160
9161 2010-05-25 Richard Guenther <rguenther@suse.de>
9162
9163 * doc/invoke.texi: Document -Ofast.
9164 * target.h (struct gcc_target): Add handle_ofast.
9165 * target-def.h (TARGET_HANDLE_OFAST): Add.
9166 (TARGET_INITIALIZER): Adjust.
9167 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
9168 * common.opt (Ofast): Add.
9169
9170 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
9171
9172 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
9173 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
9174
9175 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
9176
9177 PR target/43610
9178 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
9179 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
9180 false_rtx. Use false_rtx to compute the correct *ptest for reversed
9181 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
9182
9183 2010-05-25 Jakub Jelinek <jakub@redhat.com>
9184
9185 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
9186 DW_OP_minus with negated offset instead of DW_OP_plus.
9187 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
9188
9189 2010-05-25 Wei Guozhi <carrot@google.com>
9190
9191 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
9192 tst instruction and a new alternative.
9193 * config/arm/constraints.md (Pu): New constraint.
9194
9195 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
9196
9197 * function.c (assign_stack_local_1): Initialize variable
9198 to avoid warning when bootstrapping at -O3.
9199
9200 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
9201
9202 * configure.ac (all_lang_makefiles): Remove everything related to it.
9203 * configure: Regenerate.
9204 * Makefile.in: Fix reference to ada Make-lang.in.
9205 Remove support for LANG_MAKEFILES.
9206
9207 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
9208 Sandra Loosemore <sandra@codesourcery.com>
9209
9210 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
9211 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
9212 description. Add arm_neon_fp16_ok.
9213 (Add Options): Add arm_neon and arm_neon_fp16.
9214
9215 2010-05-24 Joseph Myers <joseph@codesourcery.com>
9216
9217 * diagnostic.c: Don't include flags.h.
9218 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
9219 context parameters. Check flags in the context passed as a parameter.
9220 (diagnostic_build_prefix): Add context parameter. Check
9221 show_column flag in context.
9222 (diagnostic_action_after_output): Check fatal_errors flag in context.
9223 (diagnostic_report_current_module): Check show_column flag in context.
9224 (default_diagnostic_starter): Update call to
9225 diagnostic_build_prefix.
9226 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
9227 (emit_diagnostic): Pass context to permissive_error_kind.
9228 (permerror): Pass context to permissive_error_kind.
9229 * diagnostic.h (struct diagnostic_context): Add show_column,
9230 pedantic_errors, permissive and fatal_errors fields.
9231 (diagnostic_build_prefix): Update prototype.
9232 * langhooks.c
9233 * toplev.c (process_options): Set flags in global_dc from
9234 flag_show_column, flag_pedantic_errors, flag_permissive,
9235 flag_fatal_errors.
9236 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
9237 to diagnostic_build_prefix.
9238 * Makefile.in (diagnostic.o): Update dependencies.
9239
9240 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
9241
9242 * config/i386/ia32intrin.h (__crc32q): Define only if
9243 __SSE4_2__ is defined.
9244
9245 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
9246
9247 PR target/44132
9248 PR middle-end/43602
9249 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
9250 DECL_VISIBILITY_SPECIFIED.
9251 (emutls_decl): Set DECL_PRESERVE_P and copy
9252 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
9253 (emutls_finalize_control_var): New callback.
9254 (emutls_finish): Finalize emutls control variables.
9255 * toplev.c (compile_file): Move the call to emutls_finish ()
9256 before varpool_assemble_pending_decls ().
9257
9258 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
9259
9260 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
9261 added to the preprocessor condition.
9262
9263 2010-05-24 Paul Brook <paul@codesourcery.com>
9264
9265 * gengtype-lex.l: Add HARD_REG_SET.
9266 * expr.c (expand_expr_real_1): Record writes to hard registers.
9267 * function.c (rtl_data): Add asm_clobbers.
9268 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
9269 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
9270 Use crtl->asm_clobbers.
9271
9272 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9273
9274 * doc/makefile.texi (Makefile): Mention stages 'profile'
9275 and 'feedback' for profiledbootstrap.
9276
9277 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
9278
9279 PR target/44245
9280 * config/i386/i386.c (def_builtin): Properly check
9281 OPTION_MASK_ISA_64BIT.
9282
9283 2010-05-23 Joseph Myers <joseph@codesourcery.com>
9284
9285 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
9286 typedefs with different but compatible types. Allow duplicate
9287 typedefs with the same type except for pedantic non-C1X, but give
9288 warning for variably modified types.
9289 * c-typeck.c (tagged_types_tu_compatible_p,
9290 function_types_compatible_p, type_lists_compatible_p,
9291 comptypes_internal): Add parameter different_types_p; set
9292 *different_types_p for different but compatible types. All
9293 callers changed.
9294 (comptypes_check_different_types): New.
9295 * c-tree.h (comptypes_check_different_types): Declare.
9296
9297 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
9298
9299 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
9300 * jump.c: Include basic-block.h.
9301 * profile.c: Likewise.
9302 * tree-profile.c: Likewise.
9303 * coverage.c: Likewise.
9304 * basic-block.h (optimize_function_for_size_p): Move to function.h.
9305 (optimize_function_for_speed_p): Likewise.
9306 * function.h (optimize_function_for_size_p,
9307 optimize_function_for_speed_p): Moved here from basic-block.h.
9308 * Makefile.in: Update dependencies.
9309
9310 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9311
9312 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
9313 before calling make; allow override through $MAKE.
9314 * doc/invoke.texi (Optimize Options): Document override.
9315
9316 2010-05-23 Anatoly Sokolov <aesok@post.ru>
9317
9318 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
9319 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9320 (rs6000_mode_dependent_address_ptr): Make static.
9321 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9322 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
9323 Remove.
9324
9325 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
9326
9327 PR target/43869
9328 * config/i386/i386.c: Make sure that the correct regparm is passed.
9329
9330 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
9331
9332 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
9333 * sbitmap.c: ...to here to internalize sbitmap element access.
9334 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
9335 Explain why basic-block.h is included.
9336 * function.h: Include tm.h for CUMULATIVE_ARGS.
9337 * Makefile.in: Update dependencies.
9338
9339 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
9340
9341 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
9342 New core types.
9343 * sbitmap.h (struct sbitmap_def): Do not typedef here.
9344 * sbitmap.c: Include sbitmap.h.
9345 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
9346 hard-reg-set.h. Split everything related to regsets out from here...
9347 * regset.h: ...to here. New file.
9348 * df.h: Include regset.h and sbitmap.h.
9349 * tree-flow.h: Likewise.
9350 * cfgloop.h: Likewise.
9351 * except.h: Do not include sbitmap.h. Include hashtab.h.
9352 * cgraph.h: Include vec.h and function.h.
9353 * reload.h (struct insn_chain): Change types of live_throughout
9354 and dead_or_set from regset_head to bitmap_head.
9355 (compute_use_by_pseudos): Be defined also if regset.h is not included.
9356 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
9357 spilled_regs from regset_head to bitmap_head to avoid dependency
9358 in regset.h.
9359 * sel-sched-ir.h: Include regset.h.
9360 * reload.c: Include df.h before reload.h.
9361 * caller-save.c: Likewise.
9362 * reload1.c: Likewise.
9363 * ira.c: Likewise.
9364 (mark_elimination): Update type of r to bitmap, consistent with
9365 DF_LR_IN.
9366 * dominance.c: Include bitmap.h.
9367 * modulo-sched.c: Include df.h.
9368 * cfganal.c: Include bitmap.h and sbitmap.h.
9369 * cfgbuild.c: Include sbitmap.h.
9370 * lcm.c: Include sbitmap.h.
9371 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
9372 * domwalk.c: Include sbitmap.h, exclude ggc.h.
9373 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
9374 * cselib.c: Include bitmap.h.
9375 * tree-optimize.c: Include regset.h.
9376 * stmt.c: Include bitmap.h.
9377 * Makefile.in: Update dependencies.
9378
9379 2010-05-22 Jan Hubicka <jh@suse.cz>
9380
9381 * cgraph.h (struct varpool_node): Add same_comdat_group.
9382 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
9383 pointer.
9384 (output_varpool): Update call of lto_output_varpool_node.
9385 (input_varpool): Read same_comdat_group pointer.
9386 (input_varpool_1): Fixup same_comdat_group pointer.
9387 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
9388 group is needed, all are.
9389 * varpool.c (varpool_remove_node): Remove node from same comdat group
9390 linklist too.
9391 (varpool_analyze_pending_decls): Walk same comdat groups.
9392
9393 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
9394
9395 * rtl.h (union rtunion_def): Remove rt_bit member.
9396 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
9397 * print-rtl (print_rtx): Do not print the member.
9398 * gengtype.c (adjust_field_rtx_def): Do not handle it.
9399 * gengenrtl.c (type_from_format): Likewise.
9400 (accessor_from_format): Likewise.
9401
9402 2010-05-22 Joseph Myers <joseph@codesourcery.com>
9403
9404 * dbgcnt.c: Include toplev.h instead of errors.h.
9405 * ira-emit.c: Don't include errors.h.
9406 * ira.c: Include toplev.h instead of errors.h.
9407 * lto-compress.c: Include toplev.h instead of errors.h.
9408 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
9409 ira.o, dbgcnt.o): Update dependencies.
9410
9411 2010-05-22 Richard Guenther <rguenther@suse.de>
9412
9413 * gimple.c (gimple_types_compatible_p): Check type qualifications
9414 before merging pointer to complete and pointer to incomplete type.
9415 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
9416 we use our own resolution algorithm. The gold linker plugin
9417 doesn't do the job we want it to do here.
9418
9419 2010-05-22 Anatoly Sokolov <aesok@post.ru>
9420
9421 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9422 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9423 (sparc_mode_dependent_address_p): New function.
9424
9425 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
9426
9427 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
9428
9429 * timevar.c: Do not include any core headers.
9430 (timevar_print): De-i18n-ize.
9431 (print_time): Likewise.
9432 * timevar.h (timevar_push, timevar_pop): Make inline functions.
9433
9434 2010-05-21 Joseph Myers <joseph@codesourcery.com>
9435
9436 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
9437 langhooks-def.h.
9438 (diagnostic_initialize): Initialize x_data not last_function.
9439 (diagnostic_report_current_function): Move to tree-diagnostic.c.
9440 (default_diagnostic_starter): Call
9441 diagnostic_report_current_module not
9442 diagnostic_report_current_function.
9443 (diagnostic_report_diagnostic): Initialize x_data not
9444 abstract_origin.
9445 (verbatim): Likewise.
9446 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
9447 x_data.
9448 (struct diagnostic_context): Change last_function to x_data.
9449 (diagnostic_auxiliary_data): Replace with
9450 diagnostic_context_auxiliary_data and
9451 diagnostic_info_auxiliary_data.
9452 (diagnostic_last_function_changed, diagnostic_set_last_function,
9453 diagnostic_report_current_function): Move to tree-diagnostic.h.
9454 (print_declaration, dump_generic_node, print_generic_stmt,
9455 print_generic_stmt_indented, print_generic_expr,
9456 print_generic_decl, debug_c_tree, dump_omp_clauses,
9457 print_call_name, debug_generic_expr, debug_generic_stmt,
9458 debug_tree_chain, default_tree_printer): Move to
9459 tree-pretty-print.h.
9460 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
9461 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
9462 gimple-pretty-print.h.
9463 * pretty-print.c: Don't include tree.h
9464 (pp_base_format): Don't handle %K here.
9465 (pp_base_tree_identifier): Move to tree-pretty-print.c.
9466 * pretty-print.h (text_info): Change abstract_origin to x_data.
9467 (pp_tree_identifier, pp_unsupported_tree,
9468 pp_base_tree_identifier): Move to tree-pretty-print.h.
9469 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
9470 tree-pretty-print.h: New files.
9471 * tree-pretty-print.c: Include tree-pretty-print.h.
9472 (percent_K_format): New. Moved from pretty-print.c.
9473 (pp_base_tree_identifier): Move from pretty-print.c.
9474 * c-objc-common.c: Include tree-pretty-print.h.
9475 (c_tree_printer): Handle %K here.
9476 * langhooks.c: Include tree-diagnostic.h.
9477 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
9478 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
9479 (default_tree_printer): Handle %K using percent_K_format.
9480 (general_init): Use default_tree_diagnostic_starter.
9481 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
9482 (free_lang_data): Use default_tree_diagnostic_starter.
9483 * c-pretty-print.c: Include tree-pretty-print.h.
9484 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9485 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9486 * dwarf2out.c: Include tree-pretty-print.h.
9487 * except.c: Include tree-pretty-print.h.
9488 * gimple-pretty-print.c: Include tree-pretty-print.h and
9489 gimple-pretty-print.h.
9490 * gimplify.c: Include tree-pretty-print.h.
9491 * graphite-poly.c: Include tree-pretty-print.h and
9492 gimple-pretty-print.h.
9493 * ipa-cp.c: Include tree-pretty-print.h.
9494 * ipa-inline.c: Include gimple-pretty-print.h.
9495 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9496 * ipa-pure-const.c: Include gimple-pretty-print.h.
9497 * ipa-struct-reorg.c: Include tree-pretty-print.h and
9498 gimple-pretty-print.h.
9499 * ipa-type-escape.c: Include tree-pretty-print.h.
9500 * print-rtl.c: Include tree-pretty-print.h.
9501 * print-tree.c: Include gimple-pretty-print.h.
9502 * sese.c: Include tree-pretty-print.h.
9503 * tree-affine.c: Include tree-pretty-print.h.
9504 * tree-browser.c: Include tree-pretty-print.h.
9505 * tree-call-cdce.c: Include gimple-pretty-print.h.
9506 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9507 * tree-chrec.c: Include tree-pretty-print.h.
9508 * tree-data-ref.c: Include tree-pretty-print.h and
9509 gimple-pretty-print.h.
9510 * tree-dfa.c: Include tree-pretty-print.h.
9511 * tree-if-conv.c: Include tree-pretty-print.h and
9512 gimple-pretty-print.h.
9513 * tree-inline.c: Include tree-pretty-print.h.
9514 * tree-into-ssa.c: Include tree-pretty-print.h and
9515 gimple-pretty-print.h.
9516 * tree-nrv.c: Include tree-pretty-print.h.
9517 * tree-object-size.c: Include tree-pretty-print.h and
9518 gimple-pretty-print.h.
9519 * tree-outof-ssa.c: Include tree-pretty-print.h and
9520 gimple-pretty-print.h.
9521 * tree-parloops.c: Include tree-pretty-print.h and
9522 gimple-pretty-print.h.
9523 * tree-predcom.c: Include tree-pretty-print.h and
9524 gimple-pretty-print.h.
9525 * tree-scalar-evolution.c: Include tree-pretty-print.h and
9526 gimple-pretty-print.h.
9527 * tree-sra.c: Include tree-pretty-print.h.
9528 * tree-ssa-address.c: Include tree-pretty-print.h.
9529 * tree-ssa-alias.c: Include tree-pretty-print.h.
9530 * tree-ssa-ccp.c: Include tree-pretty-print.h and
9531 gimple-pretty-print.h.
9532 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
9533 * tree-ssa-copy.c: Include tree-pretty-print.h and
9534 gimple-pretty-print.h.
9535 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
9536 * tree-ssa-dce.c: Include tree-pretty-print.h and
9537 gimple-pretty-print.h.
9538 * tree-ssa-dom.c: Include tree-pretty-print.h and
9539 gimple-pretty-print.h.
9540 * tree-ssa-dse.c: Include gimple-pretty-print.h.
9541 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
9542 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
9543 * tree-ssa-live.c: Include tree-pretty-print.h and
9544 gimple-pretty-print.h.
9545 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
9546 gimple-pretty-print.h.
9547 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
9548 gimple-pretty-print.h.
9549 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
9550 gimple-pretty-print.h.
9551 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
9552 gimple-pretty-print.h.
9553 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
9554 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
9555 * tree-ssa-operands.c: Include tree-pretty-print.h and
9556 gimple-pretty-print.h.
9557 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
9558 gimple-pretty-print.h.
9559 * tree-ssa-pre.c: Include tree-pretty-print.h and
9560 gimple-pretty-print.h.
9561 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
9562 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
9563 gimple-pretty-print.h.
9564 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
9565 gimple-pretty-print.h.
9566 * tree-ssa-sink.c: Include gimple-pretty-print.h.
9567 * tree-ssa-ter.c: Include tree-pretty-print.h and
9568 gimple-pretty-print.h.
9569 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
9570 * tree-ssa.c: Include tree-pretty-print.h and
9571 gimple-pretty-print.h.
9572 * tree-stdarg.c: Include gimple-pretty-print.h.
9573 * tree-switch-conversion.c: Include gimple-pretty-print.h.
9574 * tree-tailcall.c: Include tree-pretty-print.h and
9575 gimple-pretty-print.h.
9576 * tree-vect-data-refs.c: Include tree-pretty-print.h and
9577 gimple-pretty-print.h.
9578 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
9579 gimple-pretty-print.h.
9580 * tree-vect-loop.c: Include tree-pretty-print.h and
9581 gimple-pretty-print.h.
9582 * tree-vect-patterns.c: Include gimple-pretty-print.h.
9583 * tree-vect-slp.c: Include tree-pretty-print.h and
9584 gimple-pretty-print.h.
9585 * tree-vect-stmts.c: Include tree-pretty-print.h and
9586 gimple-pretty-print.h.
9587 * tree-vectorizer.c: Include tree-pretty-print.h.
9588 * tree-vrp.c: Include tree-pretty-print.h and
9589 gimple-pretty-print.h.
9590 * value-prof.c: Include tree-pretty-print.h and
9591 gimple-pretty-print.h.
9592 * var-tracking.c: Include tree-pretty-print.h.
9593 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
9594 (tree-diagnostic.o): New dependencies.
9595 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
9596 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
9597 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
9598 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
9599 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
9600 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
9601 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
9602 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
9603 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
9604 tree-ssa-address.o, tree-ssa-loop-niter.o,
9605 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
9606 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
9607 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
9608 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
9609 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
9610 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
9611 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
9612 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
9613 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
9614 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
9615 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
9616 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
9617 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
9618 tree-switch-conversion.o, var-tracking.o, value-prof.o,
9619 cfgexpand.o, pretty-print.o): Update dependencies.
9620
9621 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
9622
9623 * tree-ssa-structalias.c: Remove tm_p.h from include.
9624
9625 2010-05-21 Jeff Law <law@redhat.com>
9626
9627 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
9628
9629 2010-05-21 Jason Merrill <jason@redhat.com>
9630
9631 * tree-eh.c (cleanup_is_dead_in): New.
9632 (lower_try_finally): Don't generate a dead cleanup region.
9633 (lower_cleanup): Likewise.
9634
9635 2010-05-21 Jakub Jelinek <jakub@redhat.com>
9636
9637 PR debug/44223
9638 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
9639 unchain each use from the cyclic next_regno_use chain first.
9640
9641 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
9642
9643 * real: Do not include gmp.h, mpfr.h, and mpc.h.
9644 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
9645 (real_value_negate, real_value_abs): New prototypes.
9646 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
9647 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
9648 new include file for interface between MPFR and REAL_VALUE_TYPE.
9649 * real.c: Include realmpfr.h.
9650 (real_arithmetic2): Remove legacy function.
9651 (real_value_negate): New.
9652 (real_value_abs): New.
9653 (mfpr_from_real, real_from_mpfr): Move from here...
9654 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
9655 * builtins.c: Include realmpfr.h.
9656 * fold-const.c: Include realmpfr.h.
9657 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
9658 (fold_negate_const): Likewise.
9659 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
9660 * toplev.c: Include realmpfr.h.
9661 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
9662 and real_value_negate.
9663 * fixed-value.c (check_real_for_fixed_mode): Likewise.
9664 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
9665 (vfp3_const_double_index): Likewise.
9666 (arm_print_operand): Likewise.
9667 * Makefile.in: Update dependencies.
9668
9669 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9670
9671 * config/s390/s390.c (override_options): Increase the default
9672 of max-completely-peel-times.
9673
9674 2010-05-21 Julian Brown <julian@codesourcery.com>
9675 Mark Mitchell <mark@codesourcery.com>
9676
9677 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
9678 sibling calls for Thumb-1.
9679 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
9680 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
9681 Thumb-2.
9682 (*call_insn, *call_value_insn): Don't use for Thumb-2.
9683 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
9684 for Thumb-2.
9685 (return): New expander.
9686 (*arm_return): New name for ARM return insn.
9687 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
9688
9689 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
9690
9691 * config.gcc (sparc64-*-rtems*): New target.
9692
9693 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
9694
9695 * tree.c (build_function_decl_skip_args): Fix grammar.
9696 (build_function_type_list_1): Fix typos, adjust formatting.
9697
9698 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
9699
9700 * tree.h: Include real.h and fixed-value.h as basic datatypes.
9701 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
9702 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
9703 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
9704 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
9705 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
9706 tree-pretty-print.c, tree-loop-distribution.c,
9707 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
9708 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
9709 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
9710 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
9711 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
9712 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
9713 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
9714 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
9715 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
9716 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
9717 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
9718 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
9719 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
9720 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
9721 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
9722 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
9723 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
9724 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
9725 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
9726 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
9727 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
9728 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
9729 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
9730 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
9731 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
9732 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
9733 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
9734 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
9735 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
9736 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
9737 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
9738 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
9739 config/score/score7.c, config/score/score.c, config/arm/arm.c,
9740 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
9741 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
9742 config/bfin/bfin.c: Clean up redundant includes.
9743 * Makefile.in: Update accordingly.
9744
9745 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
9746
9747 PR middle-end/44204
9748 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
9749 statement has no arguments.
9750
9751 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
9752
9753 PR/44139
9754 * varasm.c (emutls_decl): Merge attributes to new decl.
9755
9756 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
9757
9758 PR middle-end/44101
9759 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
9760 around the uniquized constructor if its type requires a conversion.
9761
9762 2010-05-21 Jakub Jelinek <jakub@redhat.com>
9763
9764 PR debug/44205
9765 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
9766 at -O0 goto_locus of any of the incoming edges differs from
9767 goto_locus of outgoing edge, or gimple_location of any of the
9768 labels differs.
9769
9770 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
9771
9772 * ira.c (ira_non_ordered_class_hard_regs): Define.
9773 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
9774 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
9775 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
9776 cost of unaligned hard regs when allocating multi-reg pseudos.
9777
9778 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
9779
9780 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
9781 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
9782 for TARGET_NO_FLOAT.
9783 * config/mips/mips.c (mips_file_start): Expand conditional expression
9784 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
9785 (mips_override_options): Move -mno-float override -msoft-float and
9786 -mhard-float.
9787 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
9788 Condition(TARGET_SUPPORTS_NO_FLOAT).
9789 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
9790 __mips_no_float here.
9791 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
9792 (TARGET_SUPPORTS_NO_FLOAT): Define.
9793 * config/mips/sdemtk.opt: Delete.
9794
9795 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
9796
9797 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
9798
9799 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
9800
9801 PR target/43733
9802 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
9803 * configure: Regenerate.
9804 * config.in: Regenerate.
9805 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
9806 instead of sahf only for 64bit targets.
9807
9808 2010-05-20 Jakub Jelinek <jakub@redhat.com>
9809
9810 PR debug/44178
9811 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
9812 setup_ref_regs for DEBUG_INSNs.
9813
9814 2010-05-20 Jan Hubicka <jh@suse.cz>
9815
9816 PR middle-end/44197
9817 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
9818
9819 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
9820
9821 PR bootstrap/43870
9822 * df-scan.c (df_ref_compare): Stabilize sort.
9823
9824 2010-05-20 Jakub Jelinek <jakub@redhat.com>
9825
9826 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
9827 argument. Don't use DW_OP_piece if offset is non-zero,
9828 put offset into second DW_OP_bit_piece argument.
9829 (dw_sra_loc_expr): Adjust callers. For memory expressions
9830 compute offset.
9831
9832 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
9833
9834 PR target/44202
9835 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
9836 settings for 16-bit-constant "addo" alternative.
9837
9838 2010-05-19 James E. Wilson <wilson@codesourcery.com>
9839
9840 * config/mips/mips-dsp.md (add<DSPV:mode>3,
9841 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
9842
9843 PR target/43764
9844 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
9845 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
9846 Use it.
9847
9848 2010-05-19 Joseph Myers <joseph@codesourcery.com>
9849
9850 * diagnostic.c (FLOAT, FFS): Don't undefine.
9851 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
9852 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
9853 include ordering.
9854
9855 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
9856
9857 * combine.c (propagate_for_debug): Call make_compound_operation
9858 on the source value.
9859 (try_combine): When implementing a split chosen by find_split_point,
9860 either copy i2src or set it to null. Assert that i2src is not null
9861 before substituting into CALL_INSN_FUNCTION_USAGE.
9862
9863 2010-05-19 Anatoly Sokolov <aesok@post.ru>
9864
9865 * double-int.h (double_int_ior): New function.
9866 * tree.h (build_int_cst_wide_type): Remove.
9867 * tree.c (build_int_cst_wide_type): Remove.
9868 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
9869 of build_int_cst_wide_type.
9870 * stor-layout.c (set_sizetype): (Ditto.).
9871 * dojump.c (do_jump): Use build_int_cstu instead of
9872 build_int_cst_wide_type.
9873
9874 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
9875
9876 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
9877 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
9878 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
9879 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
9880 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
9881 propagate the 'data' argument to copy_tree_r.
9882 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
9883 Propagate 'data' argument to walk_tree.
9884 (copy_if_shared): New function.
9885 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
9886 (unmark_visited): New function.
9887 (unshare_body): Call copy_if_shared instead of doing it manually.
9888 (unvisit_body): Call unmark_visited instead of doing it manually.
9889
9890 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
9891
9892 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
9893 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
9894 * hooks.c: Likewise.
9895 * target-def.h (TARGET_FOLD_BUILTIN): Define to
9896 hook_tree_tree_int_treep_bool_null.
9897 * target.h (struct gcc_target): Update signature of fold_builtin
9898 field.
9899 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
9900 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
9901 instead of the call expression.
9902 (fold_builtin_call_array): Pass n and argarray directly.
9903 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
9904 consing a list.
9905 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
9906 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
9907 `i' and use it in place of `arity'.
9908 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
9909 Dereference `args' directly.
9910 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
9911
9912 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9913
9914 * doc/sourcebuild.texi (Effective-Target Keywords): Document
9915 3dnow, sse3, sse2.
9916 (Directives): Document optional dg-require-effective-target
9917 selector.
9918
9919 2010-05-19 Richard Guenther <rguenther@suse.de>
9920
9921 PR lto/44196
9922 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
9923
9924 2010-05-19 Richard Guenther <rguenther@suse.de>
9925
9926 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
9927 * common.opt (fwhopr=): New.
9928 * opts.c (common_handle_option): Handle OPT_fwhopr.
9929 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
9930 * collect2.c (main): Match -fwhopr*.
9931 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
9932 Execute ltrans stage in parallel when jobs is bigger than 1.
9933
9934 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9935
9936 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
9937 pentiumpro on Solaris 8/x86 with Sun as.
9938 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
9939 hidden alias bug.
9940 (gcc_cv_as_ix86_quad): Check for .quad directive.
9941 * configure: Regenerate.
9942 * config.in: Regenerate.
9943 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
9944
9945 2010-05-19 Martin Jambor <mjambor@suse.cz>
9946
9947 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
9948 also for indirect edges. Actual printing moved...
9949 (ipa_print_node_jump_functions_for_edge): ...here.
9950 (ipa_compute_jump_functions): Renamed to
9951 ipa_compute_jump_functions_for_edge and made static.
9952 (ipa_compute_jump_functions): New function.
9953 (make_edge_direct_to_target): Check if the number of arguments on
9954 the newly direct edge is the same as the number of parametrs of
9955 the callee.
9956 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
9957 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
9958 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
9959 analysis functions unconditionally, call the new
9960 ipa_analyze_params_uses on the node instead of every edge.
9961
9962 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
9963
9964 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
9965 to tree.
9966 (dump_mem_ref): Adopt debug code to handle a tree as step. This
9967 also checks for a constant int vs. non-constant but
9968 loop-invariant steps.
9969 (find_or_create_group): Change the sort algorithm to only consider
9970 steps that are constant ints.
9971 (idx_analyze_ref): Adopt code to handle a tree instead of a
9972 HOST_WIDE_INT for step.
9973 (gather_memory_references_ref): Handle tree instead of int and be
9974 prepared to see a NULL_TREE.
9975 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
9976 prefetches if the step cannot be calculated at compile time.
9977 (issue_prefetch_ref): Issue prefetches for non-constant but
9978 loop-invariant steps.
9979
9980 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
9981
9982 Revert:
9983 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
9984
9985 * tree.h (build_call_list): Remove.
9986 * tree.c (build_call_list): Remove.
9987
9988 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
9989
9990 * tree.h (build_call_list): Remove.
9991 * tree.c (build_call_list): Remove.
9992
9993 2010-05-18 Jan Hubicka <jh@suse.cz>
9994
9995 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
9996
9997 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
9998
9999 PR rtl-optimization/43332
10000 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
10001
10002 2010-05-18 Anatoly Sokolov <aesok@post.ru>
10003
10004 * tree.h (build_int_cstu): Implement as static inline.
10005 * tree.c (build_int_cstu): Remove function.
10006 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
10007 sign extended.
10008
10009 2010-05-18 Richard Guenther <rguenther@suse.de>
10010
10011 PR lto/44143
10012 * lto-wrapper.c (verbose): New variable. Initialize from -v.
10013 (debug): Initialize from -save-temps.
10014 (collect_execute): Print command-line when verbose.
10015 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
10016 for ltrans invocation. Produce -dumpbase flag again.
10017 (process_args): Remove.
10018 (main): Simplify.
10019 * collect2.c (maybe_run_lto_and_relink): Only pass object
10020 files to lto-wrapper.
10021 * gcc.c (LINK_COMMAND_SPEC): Likewise.
10022
10023 2010-05-18 Jan Hubicka <jh@suse.cz>
10024
10025 * opts.c (decode_options): Do not disable whopr at ipa_cp.
10026 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
10027
10028 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
10029
10030 PR lto/44184
10031 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
10032 in a GIMPLE_ASM.
10033 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
10034 in a GIMPLE_ASM.
10035
10036 2010-05-18 Jakub Jelinek <jakub@redhat.com>
10037
10038 PR debug/41371
10039 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
10040 rtx_equal_p inline.
10041
10042 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
10043
10044 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
10045 lto-macho as lto_binary_reader.
10046
10047 * darwin.c (darwin_asm_named_section): Do not add assembler comment
10048 after .section directive; just print it before the directive instead.
10049
10050 2010-05-17 Jan Hubicka <jh@suse.cz>
10051
10052 * cgraph.c (cgraph_create_virtual_clone): Only check
10053 versionable_function_p when not in wpa and checking is enabled.
10054 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
10055 there are no more functions to materialize.
10056
10057 2010-05-17 Jan Hubicka <jh@suse.cz>
10058
10059 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
10060 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
10061 New functions.
10062 (output_cgraph): Call output_cgraph_opt_summary.
10063 (input_cgrpah): Call input_cgraph_opt_summary.
10064 (output_cgraph_opt_summary_p, output_node_opt_summary,
10065 input_node_opt_summary, input_cgraph_opt_section): New functions.
10066 * lto-section-in.c (lto_section_name): Add cgraphopt.
10067 * tree-inline.c (tree_function_versioning): Handle parm_num.
10068 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
10069 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
10070
10071 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
10072
10073 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
10074 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
10075 the insn to prefetch ratio heuristic to loops with known trip count.
10076
10077 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
10078
10079 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
10080 (schedule_prefetches): Do not generate a prefetch if the unroll factor
10081 is far from what is required by the prefetch.
10082
10083 2010-05-17 Jan Hubicka <jh@suse.cz>
10084
10085 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
10086 (ipcp_estimate_growth): Likewise.
10087 (ipcp_const_param_count): Likewise.
10088 (ipcp_insert_stage): Likewise.
10089 * ipa-prop.c (visit_load_for_mod_analysis): New function.
10090 (visit_store_addr_for_mod_analysis): Set used flag.
10091 (ipa_detect_param_modifications): Set used flag for SSE params;
10092 update use of walk_stmt_load_store_addr_ops.
10093 (ipa_print_node_params): Print used flag.
10094 (ipa_write_node_info): Stream used flag.
10095 (ipa_read_node_info): Likewise.
10096 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
10097 (ipa_is_param_used): New function.
10098 (lto_ipa_fixup_call_notes): Remove unused declaration.
10099
10100 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10101
10102 PR target/44074
10103 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
10104 * configure: Regenerate.
10105 * config.in: Regenerate.
10106 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
10107 !HAVE_AS_IX86_REP_LOCK_PREFIX.
10108 Don't emit whitespace.
10109 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
10110 (*rep_movsi): Likewise.
10111 (*rep_movsi_rex64): Likewise.
10112 (*rep_movqi): Likewise.
10113 (*rep_movqi_rex64): Likewise.
10114 (*rep_stosdi_rex64): Likewise.
10115 (*rep_stossi): Likewise.
10116 (*rep_stossi_rex64): Likewise.
10117 (*rep_stosqi): Likewise.
10118 (*rep_stosqi_rex64): Likewise.
10119 (*cmpstrnqi_nz_1): Use {%;} after repz.
10120 (*cmpstrnqi_nz_rex_1): Likewise.
10121 (*cmpstrnqi_1): Likewise.
10122 (*cmpstrnqi_rex_1): Likewise.
10123 (*strlenqi_1): Use {%;} after repnz.
10124 (*strlenqi_rex_1): Likewise.
10125 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
10126 (*sync_compare_and_swap<mode>): Likewise.
10127 (sync_double_compare_and_swap<mode>): Likewise.
10128 (*sync_double_compare_and_swapdi_pic): Likewise.
10129 (sync_old_add<mode>): Likewise.
10130 (sync_add<mode>): Likewise.
10131 (sync_sub<mode>): Likewise.
10132 (sync_<code><mode>): Likewise.
10133
10134 2010-05-17 Martin Jambor <mjambor@suse.cz>
10135
10136 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
10137 otr_token and polymorphic.
10138 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
10139 (cgraph_clone_edge): Copy the above fields.
10140 * tree.c (get_binfo_at_offset): New function.
10141 * tree.h (get_binfo_at_offset): Declare.
10142 * ipa-prop.h (enum jump_func_type): Added known_type jump function
10143 type, reordered items, updated comments.
10144 (union jump_func_value): Added base_type field, reordered fields.
10145 (enum ipa_lattice_type): Moved down in the file.
10146 (struct ipa_param_descriptor): New field polymorphic.
10147 (ipa_is_param_polymorphic): New function.
10148 * ipa-prop.c: Include gimple.h and gimple-fold.h.
10149 (ipa_print_node_jump_functions): Print known type jump functions.
10150 (compute_complex_pass_through): Renamed to...
10151 (compute_complex_assign_jump_func): this.
10152 (compute_complex_ancestor_jump_func): New function.
10153 (compute_known_type_jump_func): Likewise.
10154 (compute_scalar_jump_functions): Create known type and complex ancestor
10155 jump functions.
10156 (ipa_note_param_call): New parameter polymorphic, set the corresponding
10157 flag in the call note accordingly.
10158 (ipa_analyze_call_uses): Renamed to...
10159 (ipa_analyze_indirect_call_uses): this. New parameter target, define
10160 variable var only in the block where it is used.
10161 (ipa_analyze_virtual_call_uses): New function.
10162 (ipa_analyze_call_uses): Likewise.
10163 (combine_known_type_and_ancestor_jfs): Likewise.
10164 (update_jump_functions_after_inlining): Implemented handling of a
10165 number of new jump function types combination.
10166 (print_edge_addition_message): Removed.
10167 (make_edge_direct_to_target): New function.
10168 (try_make_edge_direct_simple_call): Likewise.
10169 (try_make_edge_direct_virtual_call): Likewise.
10170 (update_call_notes_after_inlining): Renamed to...
10171 (update_indirect_edges_after_inlining): this. Moved edge creation for
10172 indirect calls to try_make_edge_direct_simple_call, also calls
10173 try_make_edge_direct_virtual_call for virtual calls.
10174 (ipa_print_node_params): Changed the header message.
10175 (ipa_write_jump_function): Stream also known type jump functions.
10176 (ipa_read_jump_function): Likewise.
10177 (ipa_write_indirect_edge_info): Stream new fields in
10178 cgraph_indirect_call_info.
10179 (ipa_read_indirect_edge_info): Likewise.
10180 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
10181 GIMPLE_FOLD_H.
10182
10183 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10184
10185 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
10186
10187 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
10188
10189 * tree.h (CALL_EXPR_ARGS): Delete.
10190 (call_expr_arglist): Delete.
10191 * tree.c (call_expr_arglist): Delete.
10192 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
10193 targetm.fold_builtin.
10194 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
10195 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
10196 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
10197 arglist parameter. Use CALL_EXPR_ARG.
10198 (picochip_expand_builtin_3op): Likewise.
10199 (picochip_expand_builtin_2opvoid): Likewise.
10200 (picochip_expand_array_get): Likewise.
10201 (picochip_expand_array_put): Likewise.
10202 (picochip_expand_array_testport): Likewise.
10203 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
10204 rather than arglist.
10205 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
10206 CALL_EXPR_ARGS.
10207 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
10208 than TREE_VALUE and TREE_CHAIN.
10209 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
10210 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
10211 the arglist.
10212
10213 2010-05-17 Jakub Jelinek <jakub@redhat.com>
10214
10215 PR bootstrap/42347
10216 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
10217 to have no fallthru edge.
10218
10219 PR middle-end/44102
10220 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
10221 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
10222 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
10223 add BARRIER after previous bb if needed.
10224
10225 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
10226
10227 * tree.c (build_function_type_list_1): Remove bogus assert condition.
10228
10229 2010-05-17 Alan Modra <amodra@gmail.com>
10230
10231 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
10232 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
10233 with copy_reg rtx param.
10234 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
10235 Correct cases where code for ABI_V4 did not initialise the reg
10236 used to access frame. Also leave frame_reg_rtx as sp for large
10237 frames that save no regs.
10238
10239 2010-05-17 Martin Jambor <mjambor@suse.cz>
10240
10241 PR middle-end/44133
10242 * tree-sra.c (create_access_replacement): New parameter rename, mark
10243 the replaement for renaming only when it is true.
10244 (get_access_replacement): Pass true in the rename parameter of
10245 create_access_replacement.
10246 (get_unrenamed_access_replacement): New function.
10247 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
10248 replacement declaration from it.
10249
10250 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
10251
10252 * function.c (try_fit_stack_local, add_frame_space): New static
10253 functions.
10254 (assign_stack_local_1): Use them. Look for opportunities to use
10255 space previously wasted on alignment.
10256 * function.h (struct frame_space): New.
10257 (struct rtl_data): Add FRAME_SPACE_LIST member.
10258 * reload1.c (something_was_spilled): New static variable.
10259 (alter_reg): Set it.
10260 (reload): Test it in addition to testing if the frame size changed.
10261
10262 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
10263
10264 * config/s390/s390.c: Define sane prefetch settings and activate
10265 flag_prefetch_loop_arrays on -O3.
10266 * config/s390/s390.h: Declare that read can use write prefetch.
10267
10268 2010-05-17 Jakub Jelinek <jakub@redhat.com>
10269
10270 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
10271 build.
10272
10273 2010-05-16 Jan Hubicka <jh@suse.cz>
10274
10275 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
10276 function body; do not check stdarg field of struct function.
10277
10278 2010-05-16 Jan Hubicka <jh@suse.cz>
10279
10280 * cgraph.c (dump_cgraph_node): Dump versionable flag.
10281 * cgraph.h (cgraph_local_info): Add versionable flag.
10282 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
10283 (ipcp_versionable_function_p): Use it.
10284 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
10285 versionable flag.
10286
10287 2010-05-16 Jan Hubicka <jh@suse.cz>
10288
10289 * cgraph.c (cgraph_clone_node): Take decl argument and insert
10290 clone into hash when it is different from orig.
10291 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
10292 * cgraph.h (cgraph_clone_node): Update prototype.
10293 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
10294 (lto_cgraph_encoder_delete): Delete body map.
10295 (lto_cgraph_encoder_size): Move to header.
10296 (lto_cgraph_encoder_encode_body_p,
10297 lto_set_cgraph_encoder_encode_body): New.
10298 (lto_output_node): Do not take written_decls argument; output clone_of
10299 pointer.
10300 (add_node_to): Add include_body_argument; call
10301 lto_set_cgraph_encoder_encode_body on master of the clone.
10302 (add_references): Update use of add_node_to.
10303 (compute_ltrans_boundary): Likewise.
10304 (output_cgraph): Do not create written_decls bitmap.
10305 (input_node): Take nodes argument; stream in clone_of correctly.
10306 (input_cgraph_1): Update use of input_node.
10307 * lto-streamer-out.c (lto_output): Use encoder info to decide
10308 what bodies to output.
10309 * ipa-inline.c (cgraph_clone_inlined_nodes,
10310 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
10311 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
10312 (lto_cgraph_encoder_size): Define here.
10313 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
10314 Declare.
10315
10316 2010-05-16 Richard Guenther <rguenther@suse.de>
10317
10318 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
10319 -fipa-type-escape.
10320 * ipa-type-escape.c (gate_type_escape_vars): Run when
10321 -fipa-struct-reorg runs.
10322 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
10323 * common.opt (fipa-type-escape): Remove.
10324
10325 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
10326
10327 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
10328 (decode_options): Likewise.
10329 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
10330
10331 2010-05-16 Jan Hubicka <jh@suse.cz>
10332
10333 * ipa.c (function_and_variable_visibility): Also bring local all
10334 aliases.
10335
10336 2010-05-16 Richard Guenther <rguenther@suse.de>
10337
10338 * alias.c (nonoverlapping_memrefs_p): Remove use of
10339 IPA type-escape information.
10340
10341 2010-05-16 Joseph Myers <joseph@codesourcery.com>
10342
10343 * c-common.c (c_common_reswords): Add _Static_assert for C.
10344 * c-parser.c (c_token_starts_declaration,
10345 c_parser_next_token_starts_declaration,
10346 c_parser_static_assert_declaration_no_semi,
10347 c_parser_static_assert_declaration): New.
10348 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
10349 Handle static assertions if static_assert_ok.
10350 (c_parser_external_declaration, c_parser_declaration_or_fndef,
10351 c_parser_compound_statement_nostart, c_parser_label,
10352 c_parser_for_statement, c_parser_objc_methodprotolist,
10353 c_parser_omp_for_loop): All callers of
10354 c_parser_declaration_or_fndef changed.
10355 (c_parser_struct_declaration): Handle static assertions.
10356 (c_parser_compound_statement_nostart): Use
10357 c_parser_next_token_starts_declaration and
10358 c_token_starts_declaration to detect start of declarations.
10359 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
10360 Likewise.
10361
10362 2010-05-16 Anatoly Sokolov <aesok@post.ru>
10363
10364 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
10365 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10366 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10367 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10368 (mmix_function_outgoing_value): Rename to...
10369 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
10370 (mmix_function_value_regno_p): Make static.
10371 (mmix_libcall_value): New function.
10372 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
10373 mmix_function_value_regno_p): Remove declaration.
10374
10375 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
10376
10377 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
10378 BUILT_IN_ALLOCA if stack checking is enabled.
10379
10380 2010-05-16 Richard Guenther <rguenther@suse.de>
10381
10382 * var-tracking.c (vars_copy_1): Inline ...
10383 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
10384 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
10385 (variable_merge_over_cur): Adjust. Merge asserts.
10386 (variable_merge_over_src): Likewise.
10387 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
10388 (variable_post_merge_new_vals): Merge asserts.
10389 (variable_post_merge_perm_vals): Likewise.
10390 (find_mem_expr_in_1pdv): Likewise.
10391 (dataflow_set_different_value): Remove.
10392 (onepart_variable_different_p): Merge asserts.
10393 (variable_different_p): Likewise.
10394 (dataflow_set_different_1): Inline ...
10395 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
10396 (emit_notes_for_differences_1): Merge asserts.
10397
10398 2010-05-16 Richard Guenther <rguenther@suse.de>
10399
10400 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
10401 * optabs.c (libfunc_decl_hash): Likewise.
10402 * varasm.c (emutls_decl): Likewise.
10403
10404 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
10405
10406 * c-decl.c: Don't include gimple.h.
10407 (merge_decls): Do not copy gimple_body.
10408
10409 2010-05-15 Jason Merrill <jason@redhat.com>
10410
10411 * c.opt: Add -fnothrow-opt.
10412
10413 2010-05-15 Jan Hubicka <jh@suse.cz>
10414
10415 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
10416 analyzed.
10417 * passes.c (ipa_write_summaries): Write all analyzed nodes.
10418
10419 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
10420
10421 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
10422 * Makefile.in: Add it.
10423 Fix all other Makefile dependencies for changes below.
10424 * tree.h: Include it instead of defining VEC primitives here.
10425 * gimple.h: Likewise.
10426 * rtl.h: Likewise.
10427 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
10428 * except.h: Include vecir.h, break dependence on tree.h.
10429
10430 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
10431 Move from here...
10432 * tree-iterator.c: ...to here.
10433 * tree-iterator.h: Fix file introduction comment. Add extern markers.
10434
10435 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
10436 tm_p.h.
10437 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
10438 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
10439 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
10440 tree-mudflap.h, and target.h.
10441 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
10442 predict.h, tree-inline.h, gimple.h, and langhooks.h.
10443 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
10444 Add FIXME for why gimple.h is still included (should be unnecessary
10445 since GCC 4.5 gimplification unit-at-a-time).
10446 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
10447 * c-pragma.c: Add FIXME for why function.h needs to be included just
10448 for cfun, at front-end level.
10449 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
10450 Do not include ggc.h, but include vecprim.h for VEC(char).
10451 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
10452 Explain why target.h is included.
10453 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
10454 Explain why gimple.h is included.
10455 * c-ppoutput.c: Do not include tm.h.
10456 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
10457 * c-parses.c: Explain why rtl.h is included, and that this (and only
10458 this) is also why tm.h must be included.
10459 Do not include except.h.
10460 * c-lang.c: Do not include ggc.h.
10461
10462 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
10463
10464 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
10465
10466 2010-05-15 Joseph Myers <joseph@codesourcery.com>
10467
10468 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
10469 unions by default if those structs and unions have no tags. Do
10470 not condition anonymous struct and unions handling on flag_iso.
10471 Allow anonymous structs and unions for C1X.
10472 (finish_struct): Do not diagnose lack of named fields when
10473 anonymous structs and unions present for C1X. Accept flexible
10474 array members in structure with anonymous structs or unions but no
10475 directly named fields.
10476 * doc/extend.texi (Unnamed Fields): Update.
10477
10478 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
10479
10480 * gimple.h (compare_field_offset): Rename into...
10481 (gimple_compare_field_offset): ...this.
10482 * gimple.c (compare_field_offset): Rename into...
10483 (gimple_compare_field_offset): ...this. Compare the full access if
10484 the offset is self-referential.
10485 (gimple_types_compatible_p): Adjust for above renaming.
10486 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
10487 DECL_NONADDRESSABLE_P flag of fields before merging them.
10488
10489 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
10490
10491 * tree.h (ctor_to_list): Delete.
10492 * tree.c (ctor_to_list): Delete.
10493
10494 2010-05-15 Jan Hubicka <jh@suse.cz>
10495
10496 * ipa-reference.c: Include toplev.h
10497 (is_proper_for_analysis): Only add to all_module_statics
10498 if it is allocated.
10499 (write_node_summary_p, stream_out_bitmap,
10500 ipa_reference_write_optimization_summary,
10501 ipa_reference_read_optimization_summary): New.
10502 (struct ipa_opt_pass_d pass_ipa_reference): Add
10503 optimization summary streaming.
10504 * lto-cgraph.c (referenced_from_this_partition_p,
10505 reachable_from_this_partition_p): New functions.
10506 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
10507 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
10508 * opts.c (decode_options): Enable ipa_reference.
10509 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
10510 * lto-streamer.h (referenced_from_this_partition_p,
10511 reachable_from_this_partition_p): Declare.
10512
10513 2010-05-15 Richard Guenther <rguenther@suse.de>
10514
10515 PR tree-optimization/44038
10516 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
10517 taking the address of a V_C_E of a constant.
10518
10519 2010-05-14 Jan Hubicka <jh@suse.cz>
10520
10521 * tree.h (memory_identifier_string): Remove.
10522 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
10523 (ipa_reference_global_vars_info_d): Remove statics_not_read and
10524 statics_not_written.
10525 (ipa_reference_optimization_summary_d): New structure.
10526 (ipa_reference_optimization_summary_t): New type and vector.
10527 (ipa_reference_vars_info_d): Embedd structures instead of using
10528 pointers.
10529 (reference_vars_to_consider): Remove out of GGC space.
10530 (module_statics_escape): Remove.
10531 (global_info_obstack): Rename to ...
10532 (optimization_summary_obstack): ... this one.
10533 (initialization_status_t): Remove.
10534 (memory_identifier_string): Remove.
10535 (get_reference_vars_info): Fix indenting.
10536 (set_reference_vars_info): Likewise.
10537 (get_reference_optimization_summary): New.
10538 (set_reference_optimization_summary): New.
10539 (get_global_reference_vars_info): Remove.
10540 (ipa_reference_get_read_global): Remove.
10541 (ipa_reference_get_written_global): Remove.
10542 (ipa_reference_get_not_read_global): Update.
10543 (ipa_reference_get_not_written_global): Update.
10544 (is_proper_for_analysis): Outlaw addressable.
10545 (propagate_bits): Update for new datastructures.
10546 (analyze_variable): Remove.
10547 (init_function_info): Update for new datastructures.
10548 (clean_function_local_data): Remove.
10549 (clean_function): Remove.
10550 (copy_global_bitmap): Use optimizations_summary_obstack.
10551 (duplicate_node_data): Duplicate optimization summary only.
10552 (remove_node_data): Remove optimization summary only.
10553 (generate_summary): Do not analyze variables; do not compute
10554 module_statics_escape; do not prune solutions by it.
10555 (read_write_all_from_decl): Fix typos in comments.
10556 (propagate): Doscover readonly and nonaddressable first;
10557 update for new datastructures; share global bitmaps.
10558 * ipa-reference.h (ipa_reference_get_read_global,
10559 ipa_reference_get_written_global): Remove.
10560 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
10561 * Makefile.in: Remove ipa-refereference from GT files.
10562
10563 2010-05-14 Jakub Jelinek <jakub@redhat.com>
10564
10565 PR debug/44112
10566 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
10567 for all SYMBOL_REF_DECLs.
10568
10569 2010-05-14 Jan Hubicka <jh@suse.cz>
10570
10571 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
10572 (varpool_all_refs_explicit_p): New inline function.
10573 * ipa-reference.c: Update comment.
10574 (module_statics_written): Remove.
10575 (get_static_decl): Remove.
10576 (ipa_init): Do not initialize module_statics_written.
10577 (analyze_function): Likewise.
10578 (generate_summary): Likewise; do not compute module_statics_readonly
10579 and do not update variable flags.
10580 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
10581 * ipa.c: Inlucde flags.h
10582 (cgraph_local_node_p): New.
10583 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
10584 promote functions to local.
10585 (ipa_discover_readonly_nonaddressable_vars): New function.
10586 (function_and_variable_visibility): Use cgraph_local_node_p.
10587 * varpool.c (varpool_finalize_decl): Set force_output for
10588 DECL_PRESERVE_P vars.
10589
10590 2010-05-14 Jan Hubicka <jh@suse.cz>
10591
10592 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
10593
10594 2010-05-14 Richard Guenther <rguenther@suse.de>
10595
10596 PR tree-optimization/44119
10597 * tree-ssa-pre.c (eliminate): Properly mark replacement of
10598 a PHI node necessary.
10599
10600 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
10601
10602 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
10603
10604 2010-05-14 Jason Merrill <jason@redhat.com>
10605
10606 PR c++/44127
10607 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
10608 (gimple_call_set_nothrow): New.
10609 * gimple.c (gimple_build_call_from_tree): Call it.
10610 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
10611
10612 PR c++/44127
10613 * gimplify.c (gimplify_seq_add_stmt): No longer static.
10614 * gimple.h: Declare it.
10615 * gimple.c (gimple_build_eh_filter): No ops.
10616
10617 2010-05-14 Jan Hubicka <jh@suse.cz>
10618
10619 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
10620 nodes already in queue.
10621 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
10622 re-enqueueing node.
10623
10624 2010-05-14 Jakub Jelinek <jakub@redhat.com>
10625
10626 PR debug/44136
10627 * cfgexpand.c (expand_debug_expr): If non-memory op0
10628 has BLKmode, return NULL.
10629
10630 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
10631
10632 * config.gcc: Add support for --with-cpu option for bdver1.
10633 * config/i386/i386.h (TARGET_BDVER1): New macro.
10634 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
10635 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
10636 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
10637 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
10638 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
10639 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
10640 (processor_type): Add PROCESSOR_BDVER1.
10641 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
10642 processor_type in config/i386/i386.h.
10643 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
10644 movaps <reg, reg> instead of movapd <reg, reg> when replacing
10645 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
10646 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
10647 to emit packed xor instead of packed double/packed integer
10648 xor for SSE and AVX when moving a zero value.
10649 * config/i386/sse.md: Add check for
10650 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
10651 movapd/movdqa for SSE and AVX.
10652 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
10653 single logical operations i.e and, or and xor instead of packed double
10654 logical operations for SSE and AVX.
10655 * config/i386/i386-c.c (ix86_target_macros_internal):
10656 Add PROCESSOR_BDVER1.
10657 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
10658 (has_fma4, has_xop): New.
10659 * config/i386/i386.c (bdver1_cost): New variable.
10660 (m_BDVER1): New macro.
10661 (m_AMD_MULTIPLE): Add m_BDVER1.
10662 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
10663 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
10664 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
10665 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
10666 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
10667 x86_tune_sse_partial_reg_dependency,
10668 x86_tune_sse_unaligned_load_optimal,
10669 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
10670 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
10671 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
10672 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
10673 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
10674 Enable/disable for bdver1.
10675 (processor_target_table): Add bdver1_cost.
10676 (cpu_names): Add bdver1.
10677 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
10678 processor_alias_table.
10679 (ix86_expand_vector_move_misalign): Change.
10680 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
10681 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
10682 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
10683 of movupd/movdqu for SSE and AVX.
10684 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
10685 (ix86_tune_adjust_cost): Add code for bdver1.
10686 (standard_sse_constant_opcode): Add check for
10687 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
10688 of packed double xor for SSE and AVX.
10689
10690 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
10691
10692 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
10693 result to unsigned.
10694
10695 2010-05-14 Tristan Gingold <gingold@adacore.com>
10696
10697 * toplev.c (default_debug_hooks): Remove this variable.
10698 (process_options): Remove assignments to default_debug_hooks.
10699
10700 2010-05-14 Martin Jambor <mjambor@suse.cz>
10701
10702 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
10703 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
10704 * langhooks.h (struct lang_hooks_for_decls): Removed field
10705 fold_obj_type_ref.
10706 * tree.c (free_lang_data): Remove assignment to
10707 lang_hooks.fold_obj_type_ref.
10708 * tree.def (OBJ_TYPE_REF): Update comment.
10709
10710 2010-05-14 Richard Guenther <rguenther@suse.de>
10711
10712 PR tree-optimization/44124
10713 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
10714
10715 2010-05-14 Alan Modra <amodra@gmail.com>
10716
10717 PR target/44075
10718 * config/rs6000/rs6000.c (struct machine_function): Reorder
10719 fields for better packing. Add lr_save_state.
10720 (rs6000_ra_ever_killed): Return lr_save_state if set.
10721 (rs6000_emit_eh_reg_restore): Set lr_save_state.
10722
10723 2010-05-13 Jan Hubicka <jh@suse.cz>
10724
10725 * varpool.c (decide_is_variable_needed): Drop code checking
10726 TREE_SYMBOL_REFERENCED.
10727
10728 2010-05-13 Jan Hubicka <jh@suse.cz>
10729
10730 * final.c (output_addr_const): Do not call mark_decl_referenced.
10731 * cgraphunit.c (process_function_and_variable_attributes): Use
10732 mark_needed_node dirrectly.
10733 (assemble_thunk): Do not call mark_decl_referenced.
10734
10735 2010-05-13 Anatoly Sokolov <aesok@post.ru>
10736
10737 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
10738
10739 2010-05-13 Jeff Law <law@redhat.com>
10740
10741 * ira-conflicts.c (print_allocno_conflicts): New function broken out
10742 from...
10743 (print_conflicts): Call print_allocno_conflicts.
10744
10745 2010-05-13 Jakub Jelinek <jakub@redhat.com>
10746
10747 PR debug/44104
10748 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
10749 if it is NULL.
10750
10751 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
10752
10753 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
10754 t-mingw-w64 or t-mingw-w32 for multilib configuration.
10755 * config/i386/t-mingw-w32: New.
10756 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
10757
10758 2010-05-13 Martin Jambor <mjambor@suse.cz>
10759
10760 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
10761 gimple-fold.c).
10762 * gimple-fold.c (get_base_binfo_for_type): New function.
10763 (gimple_get_relevant_ref_binfo): Likewise.
10764 (gimple_fold_obj_type_ref_known_binfo): Likewise.
10765 (gimple_fold_obj_type_ref): Likewise.
10766 (fold_gimple_call): Simplify condition for folding virtual calls
10767 and call gimple_fold_obj_type_ref.
10768 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
10769 (gimple_fold_obj_type_ref_known_binfo): Likewise.
10770
10771 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
10772
10773 * config/rs6000/rs6000-protos.h
10774 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
10775 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
10776 (rs6000_debug_mode_dependent_address)
10777 (rs6000_mode_dependent_address_ptr): Likewise.
10778
10779 2010-05-13 Jakub Jelinek <jakub@redhat.com>
10780
10781 PR debug/43983
10782 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
10783 by SRA.
10784 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
10785 * tree-sra.c (create_access_replacement): Call unshare_expr before
10786 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
10787 * dwarf2out.c: Include tree-flow.h.
10788 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
10789 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
10790 Handle DW_OP_bit_piece.
10791 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
10792 construct_piece_list, adjust_piece_list): New functions.
10793 (add_var_loc_to_decl): Handle SRA optimized variables.
10794 Adjust for var_loc_note to loc field renaming.
10795 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
10796 in VAR_LOCATION note.
10797 (new_loc_descr_op_bit_piece): New function.
10798 (dw_sra_loc_expr): New function.
10799 (dw_loc_list): Use it. Don't handle the last range after the
10800 loop, handle it inside of the loop. Adjust for var_loc_note
10801 to loc field renaming.
10802 (add_location_or_const_value_attribute): Only special case
10803 single entry loc lists if loc is NOTE_P. Adjust for
10804 var_loc_note to loc field renaming.
10805 (dwarf2out_var_location): Don't set newloc->var_loc_note
10806 and newloc->next here.
10807
10808 2010-05-12 Jan Hubicka <jh@suse.cz>
10809
10810 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
10811 flag.
10812 * cgraph.h (cgraph_only_called_directly_p,
10813 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
10814 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
10815 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
10816 (assemble
10817 * ipa.c (cgraph_remove_unreachable_nodes): Use
10818 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
10819 flags.
10820 * tree-inline.c (copy_bb): Check address_taken flag.
10821 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
10822 externally_visible flag.
10823
10824 2010-05-12 Jason Merrill <jason@redhat.com>
10825
10826 PR bootstrap/44048
10827 PR target/44099
10828 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
10829 * sdbout.c (plain_type_1): Likewise.
10830 * dwarf2out.c (is_base_type): Likewise.
10831 (gen_type_die_with_usage): Likewise. Generate
10832 DW_TAG_unspecified_type for any LANG_TYPE.
10833
10834 2010-05-12 Jan Hubicka <jh@suse.cz>
10835
10836 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
10837 indrect edges too.
10838 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
10839 (cgraph_clone_edge): Update.
10840 (cgraph_node_remove_callees): Remove indirect calls too.
10841 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
10842 (cgraph_create_indirect_edge): Update prototype.
10843 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
10844 is_proper_for_analysis.
10845 (add_new_function, visited_nodes, function_insertion_hook_holder,
10846 get_local_reference_vars_info, mark_address_taken, mark_address,
10847 mark_load, mark_store, check_asm_memory_clobber, check_call,
10848 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
10849 (ipa_init): Do not initialize visited_nodes;
10850 function_insertion_hook_holder.
10851 (analyze_variable): Rewrite.
10852 (analyze_function): Rewrite.
10853 (copy_local_bitmap): Remove.
10854 (duplicate_node_dat): Do not duplicate local info.
10855 (generate_summary): Simplify to only walk cgraph.
10856 (write_node_summary_p, ipa_reference_write_summary,
10857 ipa_reference_read_summary): Remove.
10858 (propagate): Do not remove function insertion;
10859 generate summary.
10860 (pass_ipa_reference): NULLify summary handling fields.
10861 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
10862 (input_edge): Input ecf_flags.
10863 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
10864 (update_indirect_edges_after_inlining): Ignore edges with unknown
10865 param.
10866
10867 2010-05-12 Sriraman Tallam <tmsriram@google.com>
10868
10869 * implicit-zee.c: New file.
10870 * tree-pass.h (pass_implicit_zee): Declare.
10871 * passes.c (init_optimization_passes): Add zee pass.
10872 * common.opt (fzee): New flag.
10873 * timevar.def (TV_ZEE): Define.
10874 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
10875 and beyond.
10876 * Makefile.in (implicit-zee.o): Add new build file.
10877
10878 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
10879 Nathan Froyd <froydnj@codesourcery.com>
10880
10881 * c-common.c (sync_resolve_params): Remove write-only variable.
10882
10883 2010-05-12 Anatoly Sokolov <aesok@post.ru>
10884
10885 * target.h (struct gcc_target): Add mode_dependent_address_p field.
10886 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
10887 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
10888 * targhooks.c (default_mode_dependent_address_p): New function.
10889 * targhooks.h (default_mode_dependent_address_p): Declare function.
10890 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
10891 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
10892 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
10893 target hook. Change return type to bool.
10894 * recog.h (mode_dependent_address_p): Change return type to bool.
10895
10896 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
10897 Nathan Froyd <froydnj@codesourcery.com>
10898
10899 * tree-mudflap.c (build_function_type_0, build_function_type_1,
10900 build_function_type_2, build_function_type_3): Remove.
10901 (mudflap_init): Use build_function_type_list.
10902
10903 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
10904 Nathan Froyd <froydnj@codesourcery.com>
10905
10906 * coverage.c (build_fn_info_value): Call build_constructor instead of
10907 build_constructor_from_list.
10908 (build_ctr_info_value): Likewise.
10909 (build_gcov_info): Likewise.
10910
10911 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
10912
10913 * tree.c (build_constructor): Compute TREE_CONSTANT for the
10914 resultant constructor.
10915 (build_constructor_single): Don't set TREE_CONSTANT.
10916 (build_constructor_from_list): Don't compute TREE_CONSTANT.
10917
10918 2010-05-12 Jan Hubicka <jh@suse.cz>
10919
10920 * cgraph.h (struct varpool_node): Add aux.
10921 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
10922 * varpool.c (varpool_remove_node): Do not remove initializer.
10923 (varpool_reset_queue): Export.
10924 (varpool_finalize_decl): Volatile vars are forced to be output.
10925 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
10926 replaced decl.
10927 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
10928 process_references, varpool_can_remove_if_no_refs): New functions.
10929 (cgraph_remove_unreachable_nodes): Handle variables too.
10930
10931 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
10932
10933 PR target/44088
10934 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
10935
10936 2010-05-12 Jakub Jelinek <jakub@redhat.com>
10937
10938 PR middle-end/44085
10939 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
10940 change value of ORT_TASK.
10941 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
10942 (omp_notice_threadprivate_variable): New function.
10943 (omp_notice_variable): Call it for threadprivate variables.
10944 If enclosing ctx is a task, print enclosing task rather than
10945 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
10946 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
10947 if task has untied clause.
10948
10949 PR debug/42278
10950 * dwarf2out.c (base_type_die): Don't add name attribute here.
10951 (modified_type_die): Instead of sizetype use
10952 its underlying original type. If a DW_TAG_base_type doesn't
10953 have name added, add __unknown__.
10954 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
10955 always call force_type_die instead.
10956
10957 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
10958
10959 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
10960 for __stack_chk_guard.
10961
10962 2010-05-11 Jakub Jelinek <jakub@redhat.com>
10963
10964 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
10965 don't call start_source_file debug hook here...
10966 (finish_options): ... but here, after outputting predefined and
10967 command line defines and undefs.
10968
10969 PR middle-end/44071
10970 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
10971 no fallthru edge.
10972 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
10973 optimizing away empty bb with no successors, move over its
10974 footer chain to fallthru predecessor.
10975 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
10976 (rtl_split_edge): For asm goto call patch_jump_insn even if
10977 splitting fallthru edge.
10978
10979 PR c++/44059
10980 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
10981 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
10982 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
10983 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
10984 on DW.ref.* decls.
10985
10986 PR c++/44062
10987 * c-parser.c (c_parser_expression): Mark LHS of a comma
10988 expression as read if it is a decl, handled component or
10989 COMPOUND_EXPR with that on the RHS.
10990 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
10991 if it is a decl or handled component.
10992
10993 2010-05-11 Jan Hubicka <jh@suse.cz>
10994
10995 * lto-symtab.c (lto_symtab_free): New function.
10996 * lto-streamer.h (lto_symtab_free): Declare.
10997
10998 2010-05-11 Jan Hubicka <jh@suse.cz>
10999
11000 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
11001 that if function is needed it is reachable.
11002 (lto_output_node): See if it the function is reachable or referenced.
11003 (output_cgraph): Update call of lto_output_node.
11004 * lto-streamer.h (reachable_from_other_partition_p): Declare.
11005
11006 2010-05-11 Jan Hubicka <jh@suse.cz>
11007
11008 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
11009 Mark as used.
11010
11011 2010-05-11 Jan Hubicka <jh@suse.cz>
11012
11013 PR tree-optimize/44063
11014 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
11015 queue.
11016 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
11017 limits.
11018 (estimate_function_body_sizes): Compute sizes even when disregarding.
11019
11020 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
11021
11022 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
11023
11024 2010-05-11 Jan Hubicka <jh@suse.cz>
11025
11026 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
11027 into every boundary.
11028
11029 2010-05-11 Jan Hubicka <jh@suse.cz>
11030
11031 * matrix-reorg.c (matrix_reorg): Rebuild edges.
11032
11033 2010-05-11 Jan Hubicka <jh@suse.cz>
11034
11035 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
11036 lto_streamer_cache_delete): Put nodes into heap.
11037 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
11038 heap.
11039
11040 2010-05-11 Jan Hubicka <jh@suse.cz>
11041
11042 * cgraphbuild.c (cgraph_rebuild_references): New.
11043 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
11044 out extern inlines.
11045 * cgraph.h (cgraph_rebuild_references): Declare.
11046 * tree-inline.c (tree_function_versioning): Use it.
11047 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
11048
11049 2010-05-11 Jan Hubicka <jh@suse.cz>
11050
11051 * cgraph.c: Include ipa-utils.h
11052 (cgraph_create_virtual_clone): Update references.
11053 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
11054
11055 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
11056
11057 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
11058 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
11059 cache size.
11060
11061 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
11062
11063 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
11064
11065 2010-05-11 Jakub Jelinek <jakub@redhat.com>
11066
11067 * gcc.c (execute): For -### don't quote arguments that
11068 contain just alphanumerics and _/-. characters.
11069 * doc/invoke.texi: Document that change for -###.
11070
11071 PR debug/44023
11072 * df-problems.c (struct dead_debug): Add to_rescan field.
11073 (dead_debug_init): Clear to_rescan field.
11074 (dead_debug_finish): Rescan all debug insns in to_rescan
11075 bitmap and free the bitmap.
11076 (dead_debug_insert_before): Instead of rescanning debug insns
11077 immediately queue their rescanning until dead_debug_finish.
11078 (df_note_bb_compute): After dead_debug_add do continue instead
11079 of break.
11080
11081 2010-05-10 Jakub Jelinek <jakub@redhat.com>
11082
11083 PR debug/44028
11084 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
11085 clear also INSN_REG_USE_LIST.
11086
11087 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11088
11089 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
11090
11091 2010-05-10 Jan Hubicka <jh@suse.cz>
11092
11093 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
11094 commited change.
11095
11096 2010-05-10 Jan Hubicka <jh@suse.cz>
11097
11098 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
11099 Allocate encoders.
11100 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
11101 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
11102 (lto_streamer_cache_create): Init alloc pool.
11103 (lto_streamer_cache_delete): Free alloc pool.
11104 * lto-streamer.h: Include alloc pool.
11105 (lto_streamer_cache_d): Use alloc pool.
11106 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
11107
11108 2010-05-10 Jan Hubicka <jh@suse.cz>
11109
11110 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
11111 * cgraphbuild.c: Include except.h
11112 (record_type_list, record_eh_tables): New function.
11113 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
11114
11115 2010-05-10 Jan Hubicka <jh@suse.cz>
11116
11117 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
11118 __frame_dummy_init_array_entry, force_to_data): Attribute as used
11119 rather than unused.
11120
11121 2010-05-10 Michael Matz <matz@suse.de>
11122
11123 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
11124 (can_reassociate_p): Use FLOAT_TYPE_P.
11125 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
11126 (vect_force_simple_reduction): ... this.
11127 * tree-parloops.c (gather_scalar_reductions): Use
11128 vect_force_simple_reduction.
11129 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
11130 vect_is_simple_reduction, add modify argument, if true rewrite
11131 "a-b" into "a+(-b)".
11132 (vect_is_simple_reduction, vect_force_simple_reduction): New
11133 functions.
11134 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
11135
11136 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
11137 Vladimir Makarov <vmakarov@redhat.com>
11138
11139 PR rtl-optimization/44012
11140 * ira-build.c (remove_unnecessary_allocnos): Nullify
11141 regno_allocno_map of the removed allocno.
11142
11143 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11144
11145 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
11146 to /dev/null.
11147 * configure: Regenerate.
11148
11149 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11150
11151 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
11152 unused.
11153 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
11154 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
11155 support in Sun ld.
11156 * configure: Regenerate.
11157
11158 2010-05-10 Richard Guenther <rguenther@suse.de>
11159
11160 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
11161 marked if the entry identifier is marked.
11162
11163 2010-05-10 Richard Guenther <rguenther@suse.de>
11164
11165 * c-common.c (struct c_common_attributes): Add fnspec attribute.
11166 (handle_fnspec_attribute): New function.
11167 * gimple.h (gimple_call_return_flags): Declare.
11168 (gimple_call_arg_flags): Likewise.
11169 * gimple.c (gimple_call_arg_flags): New function.
11170 (gimple_call_return_flags): Likewise.
11171 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
11172 New argument flags.
11173 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
11174 return value flags.
11175 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
11176 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
11177 main work to ...
11178 (make_heapvar_for): ... this new function.
11179 (handle_rhs_call): Handle fnspec attribute argument specifiers.
11180 (handle_lhs_call): Likewise.
11181 (find_func_aliases): Adjust.
11182
11183 2010-05-10 Richard Guenther <rguenther@suse.de>
11184
11185 PR tree-optimization/44050
11186 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
11187
11188 2010-05-10 Wei Guozhi <carrot@google.com>
11189
11190 PR target/42879
11191 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
11192
11193 2010-05-09 Joseph Myers <joseph@codesourcery.com>
11194
11195 PR c/10676
11196 * c-typeck.c (lookup_field): Take a type directly. Update
11197 recursive calls.
11198 (build_component_ref): Update call to lookup_field.
11199 (set_init_label): Use lookup_field to find initialized field.
11200 Handle returned list of fields like a sequence of designators.
11201
11202 2010-05-09 Richard Guenther <rguenther@suse.de>
11203
11204 PR middle-end/44024
11205 * fold-const.c (tree_single_nonzero_warnv_p): Properly
11206 handle &FUNCTION_DECL.
11207
11208 2010-05-09 Joseph Myers <joseph@codesourcery.com>
11209
11210 PR c/4784
11211 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
11212 structures and unions recursively.
11213 (detect_field_duplicates): Move duplicate detection with a hash to
11214 detect_field_duplicates_hash. Always use a hash if anonymous
11215 structures or unions are present.
11216 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
11217 give errors.
11218
11219 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
11220
11221 PR target/44046
11222 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
11223 detect Atom, Core 2 and Core i7.
11224
11225 2010-05-09 Richard Guenther <rguenther@suse.de>
11226
11227 * gcc.c (store_arg): Handle temporary file deletion for
11228 joined arguments.
11229
11230 2010-05-09 Richard Guenther <rguenther@suse.de>
11231
11232 PR middle-end/44043
11233 * ipa-inline.c (estimate_function_body_sizes): Return after
11234 disregarding inline limits.
11235
11236 2010-05-09 Richard Guenther <rguenther@suse.de>
11237
11238 * gcc.c (store_arg): Revert last change.
11239
11240 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
11241
11242 PR middle-end/28685
11243 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
11244 (optimize_ops_list): Call it.
11245
11246 2010-05-08 Richard Guenther <rguenther@suse.de>
11247
11248 PR tree-optimization/44030
11249 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
11250 NECESSARY flag if we propagate from a inserted expression.
11251
11252 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
11253
11254 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
11255 domain types as equal if they are both PLACEHOLDER_EXPRs.
11256
11257 2010-05-08 Richard Guenther <rguenther@suse.de>
11258
11259 * lto-wrapper.c (run_gcc): Remove linker output from
11260 command line for LTRANS invocation.
11261
11262 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
11263
11264 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11265 lto-macho as lto_binary_reader.
11266 * target.h (struct gcc_target): New hooks lto_start and lto_end.
11267 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
11268 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
11269 in lto_start and lto_end calls.
11270 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
11271 magic numbers.
11272 (scan_prog_file): Update is_elf_or_coff call.
11273 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
11274
11275 * collect2.c (main): Fix enum comparison.
11276
11277 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
11278 Add prototypes.
11279 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
11280 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
11281 and TARGET_ASM_LTO_END.
11282 * darwin.c: Include obstack.h and lto-streamer.h.
11283 (lto_section_names_offset, lto_section_names_obstack,
11284 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
11285 global variables.
11286 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
11287 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
11288 to a temporary file.
11289 (darwin_asm_lto_end): New function. Restore asm_out_file.
11290 (darwin_asm_named_section): For LTO sections, replace the name with
11291 the offset of the section name in a string table, and build this
11292 table.
11293 (darwin_file_start): Initialize global vars for LTO support.
11294 (darwin_file_end): If output to asm_out_file was redirected, append it
11295 to the proper asm_out_file here. Add the section names section.
11296
11297 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
11298
11299 * c-pragma.c (pending_weak_d, pending_weak): New.
11300 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
11301 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
11302 handle_pragma_weak): Update the uses of pending_weaks.
11303
11304 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11305
11306 PR documentation/44016
11307 * doc/standards.texi (Standards): Link to unversioned
11308 cxx0x_status.html page.
11309
11310 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
11311
11312 PR target/43708
11313 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
11314 in addition to TREE_USED, to avoid "set but unused" warnings.
11315
11316 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
11317
11318 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
11319 (is_loop_prefetching_profitable): Do not insert prefetches
11320 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
11321 times the prefetch ahead distance.
11322
11323 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
11324
11325 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
11326 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
11327 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
11328 the unroll_factor.
11329
11330 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
11331
11332 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
11333 a diagnostic info when the insn-to-mem ratio is too small.
11334
11335 2010-05-07 Richard Guenther <rguenther@suse.de>
11336
11337 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
11338 the linker plugin.
11339 (store_arg): Queue temp_filename for deletion instead of
11340 the whole argument.
11341
11342 2010-05-07 Richard Guenther <rguenther@suse.de>
11343
11344 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
11345 (run_gcc): Handle LTRANS phase invocation.
11346 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
11347
11348 2010-05-07 Jakub Jelinek <jakub@redhat.com>
11349
11350 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
11351 this is also meaningful on PARM_DECLs and RESULT_DECLs.
11352
11353 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11354
11355 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
11356
11357 2010-05-07 Richard Guenther <rguenther@suse.de>
11358
11359 PR tree-optimization/44020
11360 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
11361 code when PRE is not yet initialized.
11362
11363 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11364
11365 * config/mips/dbxmdebug.h: Remove.
11366 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
11367
11368 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
11369
11370 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
11371 with null pointer and also warn about ordered comparison of zero with
11372 pointer if -Wextra.
11373
11374 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
11375
11376 * graphite-blocking.c
11377 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
11378 * graphite-clast-to-gimple.c
11379 (clast_to_gcc_expression): Same.
11380 (precision_for_value): Same.
11381 (precision_for_interval): Same.
11382 (gcc_type_for_interval): Same.
11383 (graphite_create_new_guard): Same.
11384 (compute_bounds_for_level): Same.
11385 (graphite_create_new_loop_guard): Same.
11386 * graphite-interchange.c
11387 (build_linearized_memory_access): Same.
11388 (pdr_stride_in_loop): Same.
11389 (memory_strides_in_loop_1): Same.
11390 (memory_strides_in_loop): Same.
11391 (extend_scattering): Same.
11392 (psct_scattering_dim_for_loop_depth): Same.
11393 (pbb_number_of_iterations): Same.
11394 * graphite-poly.h
11395 (debug_iteration_domains): Same.
11396 * graphite-ppl.c
11397 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
11398 (ppl_set_inhomogeneous_gmp): Same.
11399 (ppl_strip_loop): Same.
11400 (ppl_lexico_compare_linear_expressions): Same.
11401 (ppl_read_polyhedron_matrix): Same.
11402 (ppl_max_for_le_pointset): Same.
11403 * graphite-ppl.h
11404 (ppl_read_polyhedron_matrix): Same.
11405 (tree_int_to_gmp): Same.
11406 (gmp_cst_to_tree): Same.
11407 (ppl_set_inhomogeneous): Same.
11408 (ppl_set_inhomogeneous_tree): Same.
11409 (ppl_set_coef): Same.
11410 (ppl_set_coef_tree): Same.
11411 * graphite-sese-to-poly.c
11412 (build_pbb_scattering_polyhedrons): Same.
11413 (build_scop_scattering): Same.
11414 (scan_tree_for_params_right_scev): Same.
11415 (scan_tree_for_params): Same.
11416 (find_params_in_bb): Same.
11417 (find_scop_parameters): Same.
11418 (add_upper_bounds_from_estimated_nit): Same.
11419 (build_loop_iteration_domains): Same.
11420 (add_condition_to_domain): Same.
11421 (pdr_add_memory_accesses): Same.
11422
11423 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
11424
11425 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
11426 CLooG's value_* macros to their respective mpz_* counterparts.
11427 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
11428 (graphite_create_new_loop_guard): Same.
11429 * graphite-interchange.c (build_linearized_memory_access): Same.
11430 (pdr_stride_in_loop): Same.
11431 (memory_strides_in_loop_1): Same.
11432 (1st_interchange_profitable_p): Same.
11433 * graphite-poly.c (extend_scattering): Same.
11434 (psct_scattering_dim_for_loop_depth): Same.
11435 (pbb_number_of_iterations): Same.
11436 (pbb_number_of_iterations_at_time): Same.
11437 * graphite-poly.h (new_1st_loop): Same.
11438 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
11439 (oppose_constraint): Same.
11440 (insert_constraint_into_matrix): Same.
11441 (ppl_set_inhomogeneous_gmp): Same.
11442 (ppl_set_coef_gmp): Same.
11443 (ppl_strip_loop): Same.
11444 (ppl_lexico_compare_linear_expressions): Same.
11445 (ppl_max_for_le_pointset): Same.
11446 (ppl_min_for_le_pointset): Same.
11447 (ppl_build_realtion): Same.
11448 * graphite-ppl.h (gmp_cst_to_tree): Same.
11449 (ppl_set_inhomogeneous): Same.
11450 (ppl_set_inhomogeneous_tree): Same.
11451 (ppl_set_coef): Same.
11452 (ppl_set_coef_tree): Same.
11453 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11454 (build_scop_scattering): Same.
11455 (add_value_to_dim): Same.
11456 (scan_tree_for_params_right_scev): Same.
11457 (scan_tree_for_params_int): Same.
11458 (scan_tree_for_params): Same.
11459 (find_params_in_bb): Same.
11460 (find_scop_parameters): Same.
11461 (add_upper_bounds_from_estimated_nit): Same.
11462 (build_loop_iteration_domains): Same.
11463 (create_linear_expr_from_tree): Same.
11464 (add_condition_to_domain): Same.
11465 (pdr_add_memory_accesses): Same.
11466
11467 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
11468 Jason Merrill <jason@redhat.com>
11469
11470 * c-common.c (c_common_reswords): Add nullptr.
11471 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
11472 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
11473 (gen_type_die_with_usage): Likewise.
11474 * dbxout.c (dbxout_type): Likewise.
11475 * sdbout.c (plain_type_1): Likewise.
11476
11477 2010-05-06 Jason Merrill <jason@redhat.com>
11478
11479 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
11480 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
11481 ret appropriately.
11482 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
11483
11484 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
11485 stripping WITH_SIZE_EXPR.
11486 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
11487 change.
11488
11489 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11490
11491 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
11492 list of obsolete configurations.
11493 Disabled check for obsolete configurations.
11494 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
11495 Removed support for previous versions.
11496 * config/mips/iris.h: Removed.
11497 * config/mips/iris5.h: Removed.
11498 * config/mips/iris6.h: Merged old iris.h contents.
11499 (TARGET_IRIX): Removed.
11500 (DRIVER_SELF_SPECS): Removed mabi=32.
11501 (IDENT_ASM_OP): Removed undef.
11502 (STARTFILE_SPEC): Removed mabi=32.
11503 (ENDFILE_SPEC): Likewise.
11504 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
11505 (MACHINE_TYPE): Update for IRIX 6.5.
11506 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
11507 TARGET_IRIX by TARGET_IRIX6.
11508 (mips_file_start): Likewise.
11509 (mips_output_external): Remove IRIX 5/6 O32 support.
11510 (mips_output_function_prologue): Likewise.
11511 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
11512 TARGET_IRIX6.
11513 (TARGET_CPU_CPP_BUILTINS): Likewise.
11514 (TARGET_IRIX): Removed.
11515 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
11516 (MULTILIB_DIRNAMES): Removed 32.
11517 (MULTILIB_OSDIRNAMES): Removed ../lib.
11518 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
11519 (Specific, mips-sgi-irix5): Document removal.
11520 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
11521 Remove references to older IRIX 6 releases and the O32 ABI.
11522
11523 2010-05-06 Jakub Jelinek <jakub@redhat.com>
11524
11525 PR bootstrap/43994
11526 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
11527 instead of DF_REF_REAL_REG.
11528
11529 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
11530
11531 PR target/43888
11532 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
11533 handling to still return true for x64 targets.
11534
11535 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
11536
11537 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
11538
11539 2010-05-06 Jan Hubicka <jh@suse.cz>
11540
11541 PR tree-optimization/43791
11542 * ipa-inline.c (update_caller_keys): Remove bogus
11543 disregard_inline_limits check.
11544
11545 2010-05-06 Michael Matz <matz@suse.de>
11546
11547 PR tree-optimization/43984
11548 * tree-ssa-pre.c (inserted_phi_names): Remove.
11549 (inserted_exprs): Change to bitmap.
11550 (create_expression_by_pieces): Set bits, don't append to vector.
11551 (insert_into_preds_of_block): Don't handle inserted_phi_names.
11552 (eliminate): Don't look at inserted_phi_names, remove deleted
11553 insns from inserted_exprs.
11554 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
11555 (init_pre, fini_pre): Allocate and free bitmaps.
11556 (execute_pre): Insert insns on edges before elimination.
11557
11558 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
11559
11560 * tree.c (initializer_zerop): Handle STRING_CST.
11561
11562 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
11563
11564 PR 40989
11565 * doc/invoke.texi (Wimplicit): Document as C only.
11566 * opts.c (common_handle_option): Add argument kind.
11567 (handle_option): Rename as read_cmdline_option. Factor out code to...
11568 (handle_option): ... here. New.
11569 (handle_options): Rename as read_cmdline_options.
11570 (decode_options): Update call.
11571 (set_option): Use option index instead of option pointer. Classify
11572 diagnostics correctly.
11573 (enable_warning_as_error): Call handle_option.
11574 * opts.h (set_option): Update declaration.
11575 (handle_option): Declare.
11576 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
11577 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
11578 * c-opts.c (set_Wimplicit): Delete.
11579 (c_family_lang_mask): New static constant.
11580 (c_common_handle_option): Add argument kind. Use handle_option
11581 instead of set_Wimplicit.
11582 (c_common_post_options): warn_implicit and warn_implicit_int
11583 are disabled by default.
11584 * c-common.c (warn_implicit): Do not define here.
11585 * c-common.h (warn_implicit): Do not declare here.
11586 (c_common_handle_option): Update declaration.
11587 * lto-opts.c (lto_reissue_options): Update call to set_option.
11588
11589 2010-05-06 Richard Guenther <rguenther@suse.de>
11590
11591 PR tree-optimization/43571
11592 * domwalk.c (walk_dominator_tree): Walk the dominator
11593 sons in more optimal order.
11594
11595 2010-05-06 Richard Guenther <rguenther@suse.de>
11596
11597 PR tree-optimization/43934
11598 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
11599 (stmt_cost): Likewise.
11600 (extract_true_false_args_from_phi): New helper.
11601 (determine_max_movement): For PHI nodes verify we can hoist them
11602 and compute their cost.
11603 (determine_invariantness_stmt): Handle PHI nodes.
11604 (move_computations_stmt): Likewise. Hoist PHI nodes in
11605 if-converted form using COND_EXPRs.
11606 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
11607 (tree_ssa_lim): Likewise.
11608 * tree-flow.h (tree_ssa_lim): Adjust prototype.
11609 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
11610
11611 2010-05-06 Richard Guenther <rguenther@suse.de>
11612
11613 PR tree-optimization/43987
11614 * tree-ssa-structalias.c (could_have_pointers): For possibly
11615 address-taken variables force pointers to be recorded.
11616 (create_variable_info_for_1): Likewise.
11617 (push_fields_onto_fieldstack): Pass in wheter all fields
11618 must have pointers.
11619 (find_func_aliases): Query types instead of vars whether
11620 they contain pointers where appropriate.
11621
11622 2010-05-06 Jan Hubicka <jh@suse.cz>
11623
11624 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
11625 (record_reference, mark_address, mark_load, mark_store): Record
11626 references.
11627 (record_references_in_initializer): Update call of record_references.
11628 (rebuild_cgraph_edges): Remove all references before rebuiding.
11629 * cgraph.c (cgraph_create_node): Clear ref list.
11630 (cgraph_remove_node): Remove references.
11631 (dump_cgraph_node): Dump references.
11632 (cgraph_clone_node): Clone references.
11633 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
11634 (struct cgraph_node, varpool_node): Add ref_lst.
11635 * ipa-ref.c: New file.
11636 * ipa-ref.h: New file.
11637 * ipa-ref-inline.h: New file.
11638 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
11639 (referenced_from_other_partition_p): New function.
11640 (lto_output_varpool_node): Take set arugment; call
11641 referenced_from_other_partition.
11642 (lto_output_ref): New.
11643 (add_references): New.
11644 (output_refs): New.
11645 (output_cgraph): Compute boundary based on references; output refs.
11646 (output_varpool): Accept cgraph_node_set argument.
11647 (input_ref): New.
11648 (input_refs): New.
11649 (input_cgraph): Call input_refs.
11650 * lto-section-in.c (lto_section_name): Add refs.
11651 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
11652 (ipa-ref.o): New file.
11653 * varpool.c (varpool_node): Clear ipa ref list.
11654 (varpool_remove_node): Remove references.
11655 (dump_varpool_node): Dump references.
11656 (varpool_assemble_decl): Only compile finalized ones.
11657 (varpool_extra_name_alias): Initialize ref list.
11658 * lto-streamer.c (lto-get_section_name): Add .refs section.
11659 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
11660 (referenced_from_other_partition_p): Declared.
11661
11662 2010-05-06 Ira Rosen <irar@il.ibm.com>
11663
11664 PR tree-optimization/43901
11665 * tree-vect-stmts.c (vectorizable_call): Assert that vector
11666 type is not NULL if it's transformation phase, and return
11667 FALSE if it's analysis.
11668 (vectorizable_conversion, vectorizable_operation,
11669 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
11670
11671 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
11672
11673 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
11674 Delete.
11675 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
11676 New define.
11677 * config/mips/mips-protos.h
11678 (mips_small_register_classes_for_mode_p): Delete prototype.
11679
11680 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
11681
11682 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
11683 * config/arm/arm.c (multiple_operation_profitable_p,
11684 compute_offset_order): New static functions.
11685 (load_multiple_sequence, store_multiple_sequence): Use them.
11686 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
11687 memory offsets, not register numbers.
11688 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
11689
11690 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
11691
11692 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
11693 (get_pending_sizes, put_pending_size, put_pending_sizes):
11694 Update the uses of pending_sizes.
11695 * c-decl.c (store_parm_decls): Likewise.
11696 * c-tree.h (struct c_arg_info): Likewise.
11697 * tree.h: Update the prototype for get_pending_sizes and
11698 put_pending_sizes.
11699
11700 2010-05-05 Jason Merrill <jason@redhat.com>
11701
11702 PR debug/43370
11703 * c-common.c (handle_aligned_attribute): Respect
11704 ATTR_FLAG_TYPE_IN_PLACE.
11705
11706 PR testsuite/43758
11707 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
11708 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
11709 (TARGET_INITIALIZER): Use it.
11710 * c-common.c (attribute_takes_identifier_p): Call it.
11711 * c-common.h: Update prototype.
11712 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
11713 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
11714
11715 2010-05-05 Jakub Jelinek <jakub@redhat.com>
11716
11717 PR debug/43950
11718 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
11719 DW_ID_down_case for Fortran compilation units.
11720
11721 2010-05-05 Jan Hubicka <jh@suse.cz>
11722
11723 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
11724 handle aliases.
11725
11726 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
11727
11728 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
11729 a variable-sized RESULT_DECL.
11730
11731 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
11732
11733 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
11734
11735 2010-05-05 Jason Merrill <jason@redhat.com>
11736
11737 PR c++/43787
11738 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
11739 returns GS_OK.
11740 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
11741
11742 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
11743 Jakub Jelinek <jakub@redhat.com>
11744
11745 PR debug/43478
11746 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
11747 (dead_debug_init, dead_debug_finish): New functions.
11748 (dead_debug_add, dead_debug_insert_before): Likewise.
11749 (df_note_bb_compute): Initialize a dead_debug object, add dead
11750 debug uses to it, insert debug bind insns before death insns,
11751 reset debug insns that refer to pending uses at the end.
11752 * rtl.h (make_debug_expr_from_rtl): New prototype.
11753 * varasm.c (make_debug_expr_from_rtl): New function.
11754
11755 2010-05-05 Jan Hubicka <jh@suse.cz>
11756
11757 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
11758 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
11759 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
11760 lto_varpool_encoder_deref, lto_varpool_encoder_size,
11761 lto_varpool_encoder_encode_initializer_p,
11762 lto_set_varpool_encoder_encode_initializer): New functions.
11763 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
11764 call output_varpool.
11765 (input_varpool_node): Do not always set analyzed.
11766 (input_cgraph_1): Return vector of cgraph nodes.
11767 (input_varpool_1): Return vector of varpools.
11768 (input_cgraph): Free the vectors.
11769 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11770 output only initializers needed.
11771 (lto_output): Only call output_cgraph.
11772 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
11773 * lto-section-out.c (lto_new_out_decl_state): Initialize
11774 state->varpool_node_encoder.
11775 * lto-streamer.h (lto_varpool_encoder_d): New.
11776 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
11777 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
11778 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
11779 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
11780 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
11781 Declare.
11782 (output_varpool, input_varpool): Remove declarations.
11783
11784 2010-05-05 Jan Hubicka <jh@suse.cz>
11785
11786 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
11787 with body can prevail.
11788
11789 2010-05-05 Jan Hubicka <jh@suse.cz>
11790
11791 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
11792 size.
11793
11794 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
11795
11796 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
11797
11798 * gengtype.h (erro_at_line): Constify pos argument.
11799
11800 * gengtype.c: Include hashtab.h.
11801 (enum gc_used): Document GC_MAYBE_POINTED_TO.
11802 (error_at_line): Constify pos argument.
11803 (do_typedef): Initialize p->opt field.
11804 (get_file_gtfilename): Fix comment typo.
11805 (struct walk_type_data): Constify line field.
11806 (get_output_file_for_structure): New function.
11807 (write_local_func_for_structure): Constify orig_s argument.
11808 Use get_output_file_for_structure.
11809 (write_func_for_structure): Use get_output_file_for_structure.
11810 (INDENT): New define.
11811 (dump_pair, dump_type, dump_type_list, dump_typekind)
11812 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
11813 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
11814 functions.
11815 (seen_types): New variable.
11816 (main): New variable do_dump. Process "-d" command line option.
11817 Call dump_everything if dump requested.
11818
11819 2010-05-05 Jakub Jelinek <jakub@redhat.com>
11820
11821 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
11822 in a temporary instead of invoking the macro multiple times.
11823 (track_expr_p): Likewise.
11824
11825 2010-05-04 Neil Vachharajani <nvachhar@google.com>
11826
11827 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
11828 per new semantics.
11829 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
11830 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
11831 conditions for printing notes.
11832 * common.opt (-Wcoverage-mismatch): Allow negative, default to
11833 true, update documentation.
11834 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
11835
11836 2010-05-04 Jakub Jelinek <jakub@redhat.com>
11837
11838 PR c/43981
11839 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
11840 on dimen.
11841
11842 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
11843
11844 PR target/43799
11845 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
11846 (*sse_prologue_save_insn1): Likewise.
11847 (SSE prologue save splitter): Likewise.
11848
11849 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
11850
11851 * tree.c (free_lang_data_in_one_sizepos): New inline function.
11852 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
11853 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
11854 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
11855 all decls. Call it on DECL_FIELD_OFFSET of fields.
11856 (find_decls_types_r): Follow DECL_VALUE_EXPR.
11857 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
11858
11859 2010-05-04 Martin Jambor <mjambor@suse.cz>
11860
11861 * tree-sra.c (build_access_from_expr_1): The first parameter type
11862 changed to simple tree.
11863 (build_access_from_expr): Likewise, gsi parameter was eliminated.
11864 (scan_assign_result): Renamed to assignment_mod_result, enum elements
11865 renamed as well.
11866 (build_accesses_from_assign): Removed all parameters except for a
11867 simple gimple statement. Now returns a simple bool.
11868 (scan_function): All non-analysis parts moved to separate functions
11869 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
11870 parameters and updated both callers.
11871 (sra_modify_expr): Removed parameter data.
11872 (sra_modify_function_body): New function.
11873 (perform_intra_sra): Call sra_modify_function_body to modify the
11874 function body.
11875 (replace_removed_params_ssa_names): Parameter data changed into
11876 adjustments vector.
11877 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
11878 changed the parameter dont_convert to convert with the opposite
11879 meaning.
11880 (sra_ipa_modify_assign): Parameter data changed into adjustments
11881 vector, return value changed to bool.
11882 (ipa_sra_modify_function_body): New function.
11883 (sra_ipa_reset_debug_stmts): Updated a comment.
11884 (modify_function): Use ipa_sra_modify_function_body to modify function
11885 body.
11886
11887 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
11888
11889 PR middle-end/43671
11890 * alias.c (true_dependence): Handle the same VALUE in x and mem.
11891 (canon_true_dependence): Likewise.
11892 (write_dependence_p): Likewise.
11893
11894 2010-05-04 Jan Hubicka <jh@suse.cz>
11895
11896 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
11897 * cgraphbuild.c: Include ipa-utils.h
11898 (record_reference_ctx): New struct.
11899 (record_reference): Simplify to work on initializers; not statements.
11900 (mark_address, mark_load, mark_store): New.
11901 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
11902 walk PHI nodes too.
11903 (record_references_in_initializer): Update use of record_reference.
11904 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
11905 walk PHI nodes too.
11906
11907 2010-05-04 Jan Hubicka <jh@suse.cz>
11908
11909 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
11910 node will be removed anyway.
11911 (lto_varpool_replace_node): Allow also unanalyzed nodes;
11912 relink aliases of node into prevailing node.
11913 * varpool.c (varpool_remove_node): Remove aliases properly;
11914 when removing node, remove all its aliases too; remove DECL_INITIAL
11915 of removed node; ggc_free the varpool node.
11916
11917 2010-05-04 Richard Guenther <rguenther@suse.de>
11918
11919 PR tree-optimization/43879
11920 * tree-ssa-structalias.c (alias_get_name): Use
11921 DECL_ASSEMBLER_NAME if available.
11922 (create_function_info_for): Return the varinfo node.
11923 (ipa_pta_execute): Associate same-body aliases and extra names
11924 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
11925
11926 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
11927
11928 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
11929
11930 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
11931
11932 PR bootstrap/43964
11933 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
11934 only if HONOR_REG_ALLOC_ORDER is not defined.
11935
11936 2010-05-04 Richard Guenther <rguenther@suse.de>
11937
11938 PR tree-optimization/43949
11939 * tree-vrp.c (extract_range_from_binary_expr): Only handle
11940 TRUNC_MOD_EXPR.
11941
11942 2010-04-26 Jason Merrill <jason@redhat.com>
11943
11944 * c.opt (-fstrict-enums): New.
11945 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
11946
11947 2010-05-03 David Ung <davidu@mips.com>
11948 James E. Wilson <wilson@codesourcery.com>
11949
11950 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
11951 emit the trap instruction before the divide for TUNE_74K.
11952
11953 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
11954
11955 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
11956 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
11957 based on the above, for new target hook.
11958
11959 * hooks.c (hook_bool_mode_true): New generic hook.
11960 * hooks.h (hook_bool_mode_true): Add prototype.
11961
11962 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
11963 target hook.
11964 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
11965 target hook, set to hook_bool_mode_false.
11966 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
11967 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
11968 with targetm.small_register_classes_for_mode_p.
11969 (find_reusable_reload): Likewise.
11970 (combine_reloads): Likewise.
11971 * reload1.c (reload_as_needed): Likewise.
11972 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
11973 * ifcvt.c (noce_process_if_block, check_cond_move_block,
11974 dead_or_predicable): Likewise.
11975 * regmove.c (optimize_reg_copy_1): Likewise.
11976 * calls.c (prepare_call_address): Likewise.
11977 (precompute_register_parameters): Likewise.
11978
11979 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
11980 hook definition.
11981 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
11982 implementation of the hook that considers all register classes
11983 small except for SH64.
11984 (sh_override_options): Use the new hook.
11985 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
11986 Add prototype.
11987
11988 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
11989 hook definition.
11990 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
11991 implementation of the hook that considers all register classes
11992 small for THUMB1.
11993 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
11994 Add prototype.
11995
11996 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
11997 hook definition.
11998 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
11999 implementation of the hook that considers all register classes
12000 small for MIPS16.
12001 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
12002 Add prototype.
12003
12004 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
12005 hook definition.
12006 * config/m32c/m32c.h: Likewise.
12007 * config/pdp11/pdp11.h: Likewise.
12008 * config/avr/avr.h: Likewise.
12009 * config/xtensa/xtensa.h: Likewise.
12010 * config/m68hc11/m68hc11.h: Likewise.
12011 * config/mn10300/mn10300.h: Likewise.
12012 * config/mcore/mcore.h: Likewise.
12013 * config/h8300/h8300.h: Likewise.
12014 * config/bfin/bfin.h: Likewise.
12015
12016 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
12017 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
12018
12019 2010-05-03 Anatoly Sokolov <aesok@post.ru>
12020
12021 * double-int.h (tree_to_double_int): Remove macro.
12022 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
12023 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
12024 (tree_to_double_int): New function.
12025 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
12026 Move ...
12027 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
12028
12029 2010-05-03 Richard Guenther <rguenther@suse.de>
12030
12031 PR tree-optimization/43971
12032 * tree-ssa-structalias.c (get_constraint_for_1): Fix
12033 constraints in the !flag_delete_null_pointer_checks case.
12034
12035 2010-05-03 Jakub Jelinek <jakub@redhat.com>
12036
12037 PR debug/43972
12038 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
12039 result mode matches original rtl mode.
12040
12041 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
12042
12043 PR target/43888
12044 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
12045
12046 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
12047
12048 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
12049 when processing flag options.
12050
12051 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
12052
12053 * gcov-iov.c (main): Change format string placeholder
12054 from %#08x to 0x%08x.
12055 * genchecksum.c (dosum): Change format string placeholder
12056 from %#02x to 0x%02x.
12057
12058 2010-05-02 Richard Guenther <rguenther@suse.de>
12059
12060 PR tree-optimization/43879
12061 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
12062
12063 2010-05-02 Bruno Haible <bruno@clisp.org>
12064
12065 * doc/extend.texi (Function Attributes): Fix a typo.
12066
12067 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
12068
12069 Revert:
12070 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
12071 placeholder from 0x%x to %#x.
12072 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
12073 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
12074 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
12075 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
12076 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
12077 * config/i386/i386.c (ix86_target_string): Ditto.
12078 * config/i386/i386.c (output_pic_addr_const): Ditto.
12079 (print_operand): Ditto.
12080
12081 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
12082
12083 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
12084 placeholder from 0x%x to %#x.
12085 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
12086 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
12087 (ASM_OUTPUT_DEBUG_DATA): Ditto.
12088 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
12089 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
12090 * optc-gen.awk: Ditto.
12091 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
12092 (HOST_WIDE_INT_PRINT_HEX): Ditto.
12093 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
12094 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
12095
12096 2010-05-01 Anatoly Sokolov <aesok@post.ru>
12097
12098 * target.h (struct calls): Add function_value_regno_p field.
12099 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
12100 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
12101 * targhooks.c (default_function_value_regno_p): New function.
12102 * targhooks.h (default_function_value_regno_p): Declare function.
12103 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
12104 * builtins.c. (apply_result_size): (Ditto.).
12105 * combine.c. (likely_spilled_retval_p): (Ditto.).
12106 * mode-switching.c. Include 'target.h'.
12107 (create_pre_exit): Use function_value_regno_p hook.
12108 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
12109 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
12110 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
12111
12112 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
12113 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
12114 (ix86_function_value_regno_p): Declare as static, change argument
12115 type to const unsigned int.
12116 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
12117
12118 2010-05-01 Richard Guenther <rguenther@suse.de>
12119
12120 PR tree-optimization/43949
12121 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
12122 types.
12123 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
12124
12125 2010-05-01 Anatoly Sokolov <aesok@post.ru>
12126
12127 * rtl.h (CONST_DOUBLE_P): Define.
12128 (rtx_to_double_int): Declare.
12129 * emit-rtl.c (rtx_to_double_int): New function.
12130 * dwarf2out.c (insert_double): New function.
12131 (loc_descriptor, add_const_value_attribute): Clean up, use
12132 rtx_to_double_int and insert_double functions.
12133
12134 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
12135
12136 * doc/extend.texi (Inline): Add missing return keyword to examples.
12137 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
12138 "command-line".
12139
12140 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
12141
12142 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
12143 the variable part of the offset as well. Use highest_pow2_factor for
12144 all alignment checks.
12145
12146 2010-04-30 Richard Guenther <rguenther@suse.de>
12147
12148 PR tree-optimization/43879
12149 * tree-ssa-structalias.c (type_could_have_pointers): Functions
12150 can have pointers.
12151
12152 2010-04-30 Jan Hubicka <jh@suse.cz>
12153
12154 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
12155 varpool.
12156 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
12157
12158 2010-04-30 Jan Hubicka <jh@suse.cz>
12159
12160 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
12161 New.
12162 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
12163 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
12164 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
12165 cgraph_node_set_needs_ltrans_p): Remove.
12166
12167 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
12168
12169 * sdbout.c: Include vec.h, do not include varray.h.
12170 (deferred_global_decls, sdbout_global_decl,
12171 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
12172 * toplev.c: Do not include varray.h.
12173 (dump_memory_report): Do not dump VARRAY statistics.
12174 * gengtype.c (open_base_file): Ignore varray.h.
12175 * Makefile.in: Update for abovementioned changes.
12176 Remove all traces of varray.c and varray.h.
12177 * varray.c: Remove file.
12178 * varray.h: Remove file.
12179
12180 2010-04-30 Jan Hubicka <jh@suse.cz>
12181
12182 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
12183 references.
12184
12185 2010-04-30 Jan Hubicka <jh@suse.cz>
12186
12187 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
12188 needed.
12189
12190 2010-04-30 Richard Guenther <rguenther@suse.de>
12191
12192 * tree-ssa-structalias.c (get_constraint_for_1): Generate
12193 constraints for CONSTRUCTOR.
12194
12195 2010-04-30 Richard Guenther <rguenther@suse.de>
12196
12197 PR lto/43946
12198 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
12199 first after all lowering passes.
12200
12201 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
12202
12203 * toplev.c: Include varray.h for statistics dumping.
12204 * tree.h: Do not declare varray_head_tag.
12205 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
12206 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
12207 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
12208 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
12209 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
12210 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
12211 c-common.c, c-common.h, reg-stack.c, basic-block.h,
12212 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
12213 include varray.h.
12214 * Makefile.in: Update for abovementioned changes.
12215
12216 2010-04-30 Jakub Jelinek <jakub@redhat.com>
12217
12218 PR debug/43942
12219 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
12220
12221 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
12222
12223 * config/picochip/picochip.c (picochip_legitimize_address): Define.
12224 Use this function to do machine-specific conversion.
12225 (picochip_legitimize_reload_address): Likewise.
12226 (picochip_legitimate_address_p): Check valid base register only if
12227 strict.
12228 (picochip_check_conditional_copy): Check for modw only if opnd is
12229 register.
12230 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
12231 to call the function in c.
12232 * config/picochip/picochip-protos.h
12233 (picochip_legitimize_reload_address): Define.
12234 * config/picochip/picochip.md (supported_compare1): Define.
12235
12236 2010-04-30 Jan Hubicka <jh@suse.cz>
12237
12238 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
12239 (cgraph_global_info): Remove inlined.
12240 (LTO_cgraph_tag_names): Remove.
12241 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
12242 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
12243 simplify cgraph tags and document.
12244 (lto_output_node): Use only LTO_cgraph_unavail_node and
12245 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
12246 for_functions_valid, global info, process and output flags.
12247 (input_overwrite_node): Initialize estimated stack size and
12248 estimated growth. Do not read flags we no longer store.
12249 (input_node): Likewise do not read info no longer stored.
12250 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
12251 flag.
12252
12253 2010-04-30 Richard Guenther <rguenther@suse.de>
12254
12255 PR tree-optimization/43879
12256 * tree-ssa-structalias.c (get_constraint_for_1): Properly
12257 handle non-zero initializers.
12258
12259 2010-04-30 Richard Guenther <rguenther@suse.de>
12260
12261 * builtins.c (fold_builtin_1): Delete free (0).
12262
12263 2010-04-29 Jan Hubicka <jh@suse.cz>
12264
12265 * gengtype.c (open_base_files): Add lto-streamer.h
12266 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
12267 (pass_ipa_cp): GGC collect.
12268 * toplev. (compile_file): Do not output symbols.
12269 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
12270 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
12271 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
12272 * lto-section-in.c: Include ggc.h
12273 (lto_new_in_decl_state): Alloc in GGC.
12274 (lto_delete_in_decl_state): Likewise.
12275 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
12276 Collect.
12277
12278 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
12279
12280 PR target/42895
12281 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
12282 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
12283 (HONOR_REG_ALLOC_ORDER): Describe new macro.
12284 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
12285 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
12286 account only if HONOR_REG_ALLOC_ORDER is not defined.
12287 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
12288 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
12289
12290 2010-04-29 Jon Grant <04@jguk.org>
12291
12292 * collect2.c (vflag): Change type from int to bool.
12293 (debug): Likewise.
12294 (helpflag): New global bool.
12295 (main): Set vflag and debug with boolean, not integer truth values.
12296 Accept new "--help" option and output usage text if found.
12297 * collect2.h (vflag): Update prototype.
12298 (debug): Likewise.
12299
12300 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
12301
12302 PR bootstrap/43936
12303 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
12304
12305 2010-04-29 Richard Guenther <rguenther@suse.de>
12306
12307 PR bootstrap/43935
12308 * plugin.h (invoke_plugin_callbacks): Annotate arguments
12309 with ATTRIBUTE_UNUSED.
12310
12311 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
12312
12313 PR target/43921
12314 * config/i386/i386.c (get_some_local_dynamic_name): Replace
12315 INSN_P with NONDEBUG_INSN_P.
12316 (distance_non_agu_define): Likewise.
12317 (distance_agu_use): Likewise.
12318
12319 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
12320
12321 From Dominique d'Humieres <dominiq@lps.ens.fr>
12322 PR bootstrap/43858
12323 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
12324 test_set.
12325
12326 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
12327
12328 * plugin.h (invoke_plugin_callbacks): New inline function.
12329 * plugin.c (flag_plugin_added): New global flag.
12330 (add_new_plugin): Initialize above flag.
12331 (invoke_plugin_callbacks): Rename to ...
12332 (invoke_plugin_callbacks_full): ... this.
12333
12334 2010-04-28 Jan Hubicka <jh@suse.cz>
12335
12336 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
12337 (lto_varpool_replace_node): New.
12338 (lto_symtab_resolve_symbols): Resolve varpool nodes.
12339 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
12340 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
12341 * cgraph.h (varpool_node_ptr): New type.
12342 (varpool_node_ptr): New vector.
12343 (varpool_node_set_def): New structure.
12344 (varpool_node_set): New type.
12345 (varpool_node_set): New vector.
12346 (varpool_node_set_element_def): New structure.
12347 (varpool_node_set_element, const_varpool_node_set_element): New types.
12348 (varpool_node_set_iterator): New type.
12349 (varpool_node): Add prev pointers, add used_from_other_partition,
12350 in_other_partition.
12351 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
12352 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
12353 varpool_get_node, varpool_remove_node): Declare.
12354 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
12355 varpool_node_set_size): New inlines.
12356 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
12357 * tree-pass.h (varpool_node_set_def): Forward declare.
12358 (ipa_opt_pass_d): Summary writting takes vnode sets too.
12359 (ipa_write_optimization_summaries): Update prototype.
12360 * ipa-cp.c (ipcp_write_summary): Update.
12361 * ipa-reference.c (ipa_reference_write_summary): Update.
12362 * lto-cgraph.c (lto_output_varpool_node): New static function.
12363 (output_varpool): New function.
12364 (input_varpool_node): New static function.
12365 (input_varpool_1): New function.
12366 (input_cgraph): Input varpool.
12367 * ipa-pure-const.c (pure_const_write_summary): Update.
12368 * lto-streamer-out.c (lto_output): Update, output varpool too.
12369 (write_global_stream): Kill WPA hack.
12370 (produce_asm_for_decls): Update.
12371 (output_alias_pair_p): Handle variables.
12372 (output_unreferenced_globals): Output only needed partition of varpool.
12373 * ipa-inline.c (inline_write_summary): Update.
12374 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
12375 cgraph.
12376 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
12377 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
12378 varpool_node_set_new, varpool_node_set_add,
12379 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
12380 debug_varpool_node_set): New functions.
12381 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
12382 (execute_one_pass): Process new decls too.
12383 (ipa_write_summaries_2): Pass around vsets.
12384 (ipa_write_summaries_1): Likewise.
12385 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
12386 to add.
12387 (ipa_write_optimization_summaries_1): Pass around vsets.
12388 (ipa_write_optimization_summaries): Likewise.
12389 * varpool.c (varpool_get_node): New.
12390 (varpool_node): Update doubly linked lists.
12391 (varpool_remove_node): New.
12392 (dump_varpool_node): More dumping.
12393 (varpool_enqueue_needed_node): Update doubly linked lists.
12394 (decide_is_variable_needed): Kill ltrans hack.
12395 (varpool_finalize_decl): Kill lto hack.
12396 (varpool_assemble_decl): Skip decls in other partitions.
12397 (varpool_assemble_pending_decls): Update doubly linkes lists.
12398 (varpool_empty_needed_queue): Likewise.
12399 (varpool_extra_name_alias): Likewise.
12400 * lto-streamer.c (lto_get_section_name): Add vars section.
12401 * lto-streamer.h (lto_section_type): Update.
12402 (output_varpool, input_varpool): Declare.
12403
12404 2010-04-28 Mike Stump <mikestump@comcast.net>
12405
12406 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
12407
12408 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
12409
12410 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
12411 record or union type with RECORD_OR_UNION_TYPE_P predicate.
12412 (lto_input_ts_type_tree_pointers): Likewise.
12413 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
12414 (lto_output_ts_type_tree_pointers): Likewise.
12415
12416 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
12417
12418 Uniquization of constants at the Tree level
12419 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
12420 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
12421 bit to the end.
12422 (tree_output_constant_def): Declare.
12423 * gimplify.c (gimplify_init_constructor): When using block copy, first
12424 uniquize the constant constructor on the RHS.
12425 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
12426 DECL_IN_CONSTANT_POOL flag.
12427 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
12428 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
12429 constant pool.
12430 (assemble_variable): Deal with symbols belonging to the tree constant
12431 pool.
12432 (get_constant_section): Add ALIGN parameter and simplify.
12433 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
12434 (assemble_constant_contents): Use the expression of the VAR_DECL.
12435 (output_constant_def_contents): Use the alignment of the VAR_DECL.
12436 (tree_output_constant_def): New global function.
12437 (mark_constant): Use the expression of the VAR_DECL.
12438 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
12439 its expression.
12440 (output_object_block): Likewise and assemble the expression.
12441
12442 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
12443
12444 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
12445 hash_tree, eq_tree): New tree hash table.
12446 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
12447 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
12448 lto_orig_address_remove): Reimplement.
12449
12450 2010-04-28 Xinliang David Li <davidxl@google.com>
12451
12452 PR c/42643
12453 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
12454 (compute_uninit_opnds_pos): New function.
12455 (is_non_loop_exit_postdominating): New function.
12456 (compute_control_dep_chain): New function.
12457 (find_pdom): New function.
12458 (convert_control_dep_chain_into_preds): New function.
12459 (find_predicates): New function.
12460 (find_control_equiv_block): New function.
12461 (collect_phi_def_edges): New function.
12462 (find_def_preds): New function.
12463 (find_dom): New function.
12464 (dump_predicates): New function.
12465 (get_cmp_code): New function.
12466 (is_value_included_in): New function.
12467 (find_matching_predicate_in_rest_chains): New function.
12468 (use_pred_not_overlap_with_undef_path_pred): New function.
12469 (is_use_properly_guarded): New function.
12470 (normalize_cond_1): New function.
12471 (is_and_or_or): New function.
12472 (normalize_cond): New function.
12473 (is_gcond_subset_of): New function.
12474 (is_subset_of_any): New function.
12475 (is_or_set_subset_of): New function.
12476 (is_and_set_subset_of): New function.
12477 (is_norm_cond_subset_of): New function.
12478 (is_pred_expr_subset_of): New function.
12479 (is_pred_chain_subset_of): New function.
12480 (is_included_in): New function.
12481 (is_superset_of): New function.
12482 (find_uninit_use): New function.
12483 (warn_uninitialized_phi): New function.
12484 (compute_possibly_undefined_names): New function.
12485 (ssa_undefined_value_p): New function.
12486 (execute_late_warn_uninitialized): New function.
12487 * tree-ssa.c (ssa_undefined_value_p): Removed.
12488 (warn_uninit): Changed to extern.
12489 (warn_uninitialized_phi): Removed.
12490 (warn_uninitialized_vars): Changed to extern.
12491 (execute_late_warn_uninitialized): Removed
12492 * tree-flow.h: Add new prototypes.
12493 * timevar.def: Add new time variable.
12494 * Makefile.in: Add new build file.
12495
12496 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
12497
12498 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
12499 type if available.
12500
12501 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12502
12503 PR target/22224
12504 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
12505
12506 2010-04-28 Martin Jambor <mjambor@suse.cz>
12507
12508 * cgraph.h (struct cgraph_node): New field indirect_calls.
12509 (struct cgraph_indirect_call_info): New type.
12510 (struct cgraph_edge): Removed field indirect_call. New fields
12511 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
12512 (cgraph_create_indirect_edge): Declare.
12513 (cgraph_make_edge_direct): Likewise.
12514 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
12515 * ipa-prop.h (struct ipa_param_call_note): Removed.
12516 (struct ipa_node_params): Removed field param_calls.
12517 (ipa_create_all_structures_for_iinln): Declare.
12518 * cgraph.c: Described indirect edges and uids in initial comment.
12519 (cgraph_add_edge_to_call_site_hash): New function.
12520 (cgraph_edge): Search also among the indirect edges, use
12521 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
12522 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
12523 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
12524 site hash.
12525 (initialize_inline_failed): Assign a reason to indirect edges.
12526 (cgraph_create_edge_1): New function.
12527 (cgraph_create_edge): Moved some functionality to
12528 cgraph_create_edge_1.
12529 (cgraph_create_indirect_edge): New function.
12530 (cgraph_edge_remove_callee): Add an assert checking for
12531 non-indirectness.
12532 (cgraph_edge_remove_caller): Special-case indirect edges.
12533 (cgraph_remove_edge): Likewise.
12534 (cgraph_set_edge_callee): New function.
12535 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
12536 (cgraph_make_edge_direct): New function.
12537 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
12538 the declaration of the call statement matches.
12539 (cgraph_node_remove_callees): Special-case indirect edges.
12540 (cgraph_clone_edge): Likewise.
12541 (cgraph_clone_node): Clone also the indirect edges.
12542 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
12543 indirect_call, dump count of indirect_calls edges.
12544 * ipa-prop.c (iinlining_processed_edges): New variable.
12545 (ipa_note_param_call): Create indirect edges instead of
12546 creating notes. New parameter node.
12547 (ipa_analyze_call_uses): New parameter node, pass it on to
12548 ipa_note_param_call.
12549 (ipa_analyze_stmt_uses): Likewise.
12550 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
12551 (print_edge_addition_message): Work on edges rather than on notes.
12552 (update_call_notes_after_inlining): Likewise, renamed to
12553 update_indirect_edges_after_inlining.
12554 (ipa_create_all_structures_for_iinln): New function.
12555 (ipa_free_node_params_substructures): Do not free notes.
12556 (ipa_edge_duplication_hook): Propagate bits within
12557 iinlining_processed_edges bitmap.
12558 (ipa_node_duplication_hook): Do not duplicate notes.
12559 (free_all_ipa_structures_after_ipa_cp): Renamed to
12560 ipa_free_all_structures_after_ipa_cp.
12561 (free_all_ipa_structures_after_iinln): Renamed to
12562 ipa_free_all_structures_after_iinln.
12563 (ipa_write_param_call_note): Removed.
12564 (ipa_read_param_call_note): Removed.
12565 (ipa_write_indirect_edge_info): New function.
12566 (ipa_read_indirect_edge_info): Likewise.
12567 (ipa_write_node_info): Do not stream notes, do stream information
12568 in indirect edges.
12569 (ipa_read_node_info): Likewise.
12570 (lto_ipa_fixup_call_notes): Removed.
12571 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
12572 * ipa-inline.c (pass_ipa_inline): Likewise.
12573 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
12574 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
12575 * tree-inline.c (copy_bb): Removed an unnecessary double check for
12576 is_gimple_call.
12577 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
12578 edges.
12579 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
12580 (output_cgraph): Stream also indirect edges.
12581 (lto_output_edge): Added capability to stream indirect edges.
12582 (input_edge): Likewise.
12583 (input_cgraph_1): Likewise.
12584 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
12585 of indirect edges.
12586
12587 2010-04-28 Richard Guenther <rguenther@suse.de>
12588
12589 PR tree-optimization/43879
12590 PR tree-optimization/43909
12591 * tree-ssa-structalias.c (struct variable_info): Add
12592 only_restrict_pointers flag.
12593 (new_var_info): Initialize it. Increment stats.total_vars here.
12594 (create_function_info_for): Do not increment stats.total_vars here.
12595 (get_function_part_constraint): Fix build with C++.
12596 (insert_into_field_list): Remove.
12597 (push_fields_onto_fieldstack): Properly merge fields.
12598 (create_variable_info_for): Split and simplify.
12599 (create_variable_info_for_1): New piece.
12600 (intra_create_variable_infos): Properly make restrict constraints
12601 from parameters.
12602
12603 2010-04-28 Richard Guenther <rguenther@suse.de>
12604
12605 PR c++/43880
12606 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
12607
12608 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
12609 Jan Hubicka <hubicka@ucw.cz>
12610
12611 * doc/invoke.texi (-Wsuggest-attribute=const,
12612 -Wsuggest-attribute=pure): Document.
12613 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
12614 (function_always_visible_to_compiler_p,
12615 suggest_attribute, warn_function_pure, warn_function_const):
12616 New functions.
12617 (check_call): Improve debug info.
12618 (analyze_function): Do not check availability.
12619 (add_new_function): Check availability.
12620 (propagate): Output warnings.
12621 (skip_function_for_local_pure_const): New function.
12622 (local_pure_const): Use it; output warnings.
12623 * common.opt (Wsuggest-attribute=const,
12624 Wsuggest-attribute=pure): New.
12625
12626 2010-04-27 Jakub Jelinek <jakub@redhat.com>
12627
12628 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
12629 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
12630 or DW_CFA_def_cfa_offset{,_sf}.
12631
12632 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
12633
12634 * tree.h: Fix truncated long macros.
12635
12636 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
12637
12638 * collect2.c (TARGET_64BIT): Redefine to target's default.
12639 * tlink.c: Likewise.
12640 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
12641 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
12642 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
12643 for underscoring __USER_LABEL_PREFIX__.
12644 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
12645 (SUB_LINK_ENTRY32): New.
12646 (SUB_LINK_ENTRY64): New.
12647 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
12648 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
12649 (SUB_LINK_ENTRY64): New.
12650 (SUB_LINK_ENTRY): New.
12651 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
12652 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
12653 x64 target is choosen.
12654 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
12655 * configure: Regenerated.
12656 * configure.ac (leading-mingw64-underscores): Option added.
12657
12658 2010-04-27 Jan Hubicka <jh@suse.cz>
12659
12660 * doc/invoke.texi (-fipa-profile): Document.
12661 * opts.c (decode_options): Enable ipa-profile at -O1.
12662 * timevar.def (TV_IPA_PROFILE): Define.
12663 * common.opt (fipa-profile): Add.
12664 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
12665 flag for clones.
12666 (cgraph_propagate_frequency): Handle only local ones.
12667 * tree-pass.h (pass_ipa_profile): Declare.
12668 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
12669 (pass_ipa_profile): Use TV_IPA_PROFILE.
12670 * ipa.c (ipa_profile): New function.
12671 (gate_ipa_profile): Likewise.
12672 (pass_ipa_profile): New global variable.
12673 * passes.c (pass_ipa_profile): New.
12674
12675 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
12676
12677 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
12678
12679 2010-04-27 Martin Jambor <mjambor@suse.cz>
12680
12681 PR middle-end/43812
12682 * ipa.c (dissolve_same_comdat_group_list): New function.
12683 (function_and_variable_visibility): Call
12684 dissolve_same_comdat_group_list when comdat group contains external or
12685 newly local nodes.
12686 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
12687 lists are circular and that they contain only DECL_ONE_ONLY nodes.
12688
12689 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
12690
12691 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
12692 (const_hash_1) <VECTOR_CST>: New case.
12693 (compare_constant) <VECTOR_CST>: Likewise.
12694 <ADDR_EXPR>: Deal with LABEL_REFs.
12695 (copy_constant) <VECTOR_CST>: New case.
12696
12697 2010-04-27 Jan Hubicka <jh@suse.cz>
12698
12699 * cgraph.c (cgraph_propagate_frequency): New function.
12700 * cgraph.h (cgraph_propagate_frequency): Declare.
12701 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
12702 cgraph_propagate_frequency.
12703
12704 2010-04-27 Jakub Jelinek <jakub@redhat.com>
12705
12706 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
12707
12708 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
12709
12710 PR target/40657
12711 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
12712 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
12713 here to determine which regs to push and how much stack to reserve.
12714
12715 2010-04-27 Jie Zhang <jie@codesourcery.com>
12716
12717 * doc/gimple.texi (gimple_statement_with_ops): Remove
12718 addresses_taken field.
12719 (gimple_statement_with_memory_ops): Likewise.
12720
12721 2010-04-27 Jan Hubicka <jh@suse.cz>
12722
12723 * tree-inline.c (eni_inlining_weights): Remove.
12724 (estimate_num_insns): Special case more builtins.
12725
12726 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
12727
12728 PR c/32207
12729 * c-typeck.c (build_binary_op): Move forward check for comparison
12730 pointer with null pointer constant and adjust the diagnostic message.
12731
12732 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
12733
12734 PR lto/42776
12735 * configure.ac (gcc_cv_as_section_has_align): Set if installed
12736 binutils supports extended .section directive needed by LTO, or
12737 warn if older binutils found.
12738 (LTO_BINARY_READER): New AC_SUBST'd variable.
12739 (LTO_USE_LIBELF): Likewise.
12740 * gcc/config.gcc (lto_binary_reader): New target-specific configure
12741 variable.
12742 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
12743 (LTO_USE_LIBELF): Likewise.
12744 * configure: Regenerate.
12745
12746 * collect2.c (is_elf): Rename from this ...
12747 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
12748 object files in addition to ELF-formatted ones.
12749 (scan_prog_file): Caller updated. Also allow for LTO info marker
12750 symbol to be prefixed or not by an extra underscore.
12751
12752 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
12753 * config/i386/winnt.c: Also #include lto-streamer.h
12754 (i386_pe_asm_named_section): Specify 1-byte section alignment for
12755 LTO named sections.
12756 (i386_pe_asm_output_aligned_decl_common): Add comment.
12757 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
12758
12759 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
12760
12761 PR target/43889
12762 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
12763 Add missing earlyclobber for second alternative.
12764
12765 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
12766
12767 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
12768 bits for artificial defs at the top of the block.
12769 * fwprop.c (single_def_use_enter_block): Don't call it.
12770
12771 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
12772
12773 PR 43715
12774 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
12775 instead of "$gcc_cv_objdump -T".
12776 Use "-undefined dynamic_lookup" on darwin.
12777 * gcc/configure: Regenerate.
12778
12779 2010-04-26 Jakub Jelinek <jakub@redhat.com>
12780
12781 PR c/43893
12782 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
12783
12784 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
12785
12786 * c-parser.c (struct c_token): Move location field up.
12787 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
12788 (struct c_declspecs): Convert typespec_word, storage_class, and
12789 default_int_p into bitfields.
12790 (struct c_declarator): Move loc field up.
12791
12792 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
12793
12794 * cfgloop.h (struct loop): Move can_be_parallel field up.
12795 * ipa-prop.h (struct ip_node_params): Move bitfields up.
12796 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
12797 down.
12798 (struct iv_cand): Convert pos field into a bitfield.
12799 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
12800 field up.
12801 (struct _stmt_vec_info): Shuffle fields for better packing.
12802
12803 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
12804
12805 * varasm.c (IN_NAMED_SECTION): Remove guard.
12806 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
12807 (IN_NAMED_SECTION_P): ...this.
12808 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
12809 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
12810
12811 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
12812
12813 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
12814 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
12815 of shadowing it. Fix comments.
12816
12817 2010-04-26 Jan Hubicka <jh@suse.cz>
12818
12819 * cgraph.c (cgraph_create_node): Set node frequency to normal.
12820 (cgraph_clone_node): Copy function frequency.
12821 * cgraph.h (node_frequency): New enum
12822 (struct cgraph_node): Add.
12823 * final.c (rest_of_clean_state): Update.
12824 * lto-cgraph.c (lto_output_node): Output node frequency.
12825 (input_overwrite_node): Input node frequency.
12826 * tre-ssa-loop-ivopts (computation_cost): Update.
12827 * lto-streamer-out.c (output_function): Do not output function
12828 frequency.
12829 * predict.c (maybe_hot_frequency_p): Update and handle functions
12830 executed once.
12831 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
12832 attribute lookup.
12833 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
12834 (compute_function_frequency): Set noreturn functions to be executed
12835 once.
12836 (choose_function_section): Update.
12837 * lto-streamer-in.c (input_function): Do not input function frequency.
12838 * function.c (allocate_struct_function): Do not initialize function
12839 frequency.
12840 * function.h (function_frequency): Remove.
12841 (struct function): Remove function frequency.
12842 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
12843 (try_update): Update.
12844 * tree-inline.c (initialize_cfun): Do not update function frequency.
12845 * passes.c (pass_init_dump_file): Update.
12846 * i386.c (ix86_compute_frame_layout): Update.
12847 (ix86_pad_returns): Update.
12848
12849 2010-04-26 Jie Zhang <jie@codesourcery.com>
12850
12851 PR tree-optimization/43833
12852 * tree-vrp.c (range_int_cst_p): New.
12853 (range_int_cst_singleton_p): New.
12854 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
12855 when both operands are constants. Use range_int_cst_p in
12856 BIT_IOR_EXPR case.
12857
12858 2010-04-26 Jan Hubicka <jh@suse.cz>
12859
12860 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
12861
12862 2010-04-26 Richard Guenther <rguenther@suse.de>
12863
12864 PR lto/43080
12865 * gimple.c (gimple_decl_printable_name): Deal gracefully
12866 with a NULL DECL_NAME.
12867
12868 2010-04-26 Richard Guenther <rguenther@suse.de>
12869
12870 PR lto/42425
12871 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
12872 if emitting debug information and it is either a function
12873 or a namespace decl.
12874
12875 2010-04-26 Ira Rosen <irar@il.ibm.com>
12876
12877 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
12878 determine if the statement is vectorizable, and a macro to access it.
12879 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
12880 Skip statements that can't be vectorized. If the analysis fails,
12881 mark the statement as unvectorizable if vectorizing basic block.
12882 (vect_compute_data_refs_alignment): Likewise.
12883 (vect_verify_datarefs_alignment): Skip statements marked as
12884 unvectorizable. Add print.
12885 (vect_analyze_group_access): Skip statements that can't be
12886 vectorized. If the analysis fails, mark the statement as
12887 unvectorizable if vectorizing basic block.
12888 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
12889 * tree-vect-stmts.c (vectorizable_store): Fix the number of
12890 generated stmts for SLP.
12891 (new_stmt_vec_info): Initialize the new field.
12892 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
12893 statements marked as unvectorizable.
12894
12895 2010-04-25 Joseph Myers <joseph@codesourcery.com>
12896
12897 * c-common.c (flag_isoc1x): New.
12898 (flag_isoc99): Update comment.
12899 * c-common.h (flag_isoc1x): New.
12900 (flag_isoc99): Update comment.
12901 * c-cppbuiltin.c (builtin_define_float_constants): Also define
12902 __<type>_DECIMAL_DIG__.
12903 * c-opts.c (set_std_c1x): New.
12904 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
12905 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
12906 * c.opt (-std=c1x, -std=gnu1x): New options.
12907 * doc/cpp.texi: Mention -std=c1x.
12908 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
12909 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
12910 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
12911 * doc/standards.texi: Mention C1X.
12912 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
12913 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
12914 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
12915 Define for C1X.
12916
12917 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
12918
12919 * config/i386/gmon-sol2.c (_mcleanup): Change format string
12920 placeholder from 0x%x to %#x.
12921 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
12922 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
12923 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
12924 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
12925 * config/i386/i386.c (ix86_target_string): Ditto.
12926 (output_pic_addr_const): Ditto.
12927 (print_operand): Ditto.
12928
12929 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
12930
12931 * combine.c (find_split_point): Add third argument. Use it
12932 to find nested multiply-accumulate instructions. Adjust calls.
12933 (try_combine): Adjust call to find_split_point.
12934
12935 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
12936
12937 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
12938
12939 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
12940
12941 PR tree-optimization/41442
12942 * fold-const.c (merge_truthop_with_opposite_arm): New function.
12943 (fold_binary_loc): Call it.
12944
12945 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
12946
12947 * toplev.c (general_init): Set default for fdiagnostics-show-option.
12948 * opts.c (common_handle_option): Allow disabling it.
12949 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
12950
12951 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
12952
12953 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
12954 between modes if both types are integral.
12955
12956 2010-04-23 Richard Guenther <rguenther@suse.de>
12957
12958 PR tree-optimization/43572
12959 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
12960
12961 2010-04-23 Richard Guenther <rguenther@suse.de>
12962
12963 PR lto/43455
12964 * tree-inline.c (tree_can_inline_p): Also check compatibility
12965 of return types.
12966
12967 2010-04-23 Martin Jambor <mjambor@suse.cz>
12968
12969 PR tree-optimization/43846
12970 * tree-sra.c (struct access): New flag grp_assignment_read.
12971 (build_accesses_from_assign): Set grp_assignment_read.
12972 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
12973 (enum mark_read_status): New type.
12974 (analyze_access_subtree): Propagate grp_assignment_read, create
12975 accesses also if both direct_read and root->grp_assignment_read.
12976
12977 2010-04-23 Martin Jambor <mjambor@suse.cz>
12978
12979 PR middle-end/43835
12980 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
12981 function does not have type attributes.
12982
12983 2010-04-23 Richard Guenther <rguenther@suse.de>
12984
12985 PR lto/42653
12986 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
12987 of FUNCTION_DECLs.
12988
12989 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12990
12991 * sese.h (create_if_region_on_edge): Remove.
12992
12993 * sese.c (create_if_region_on_edge): Make static.
12994
12995 * tree-inline.c: Do not include ggc.h.
12996
12997 * expr.c: Do not include ggc.h.
12998
12999 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
13000 dependencies.
13001
13002 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
13003
13004 PR target/43744
13005 * config/sh/sh.c (find_barrier): Don't emit a constant pool
13006 in the middle of insns for casesi_worker_2.
13007
13008 2010-04-22 David Edelsohn <edelsohn@gnu.org>
13009
13010 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
13011
13012 2010-04-22 Ira Rosen <irar@il.ibm.com>
13013
13014 PR tree-optimization/43842
13015 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
13016 loop unrolling in update of exit phis. Fix comment.
13017 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
13018 least two reduction statements in the loop before starting SLP
13019 analysis.
13020
13021 2010-04-22 Nick Clifton <nickc@redhat.com>
13022
13023 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
13024
13025 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
13026
13027 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
13028 to simplify a + ~a.
13029
13030 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
13031
13032 * tree-parloops.c (loop_parallel_p): New argument
13033 parloop_obstack. Pass it down.
13034 (parallelize_loops): New variable parloop_obstack. Initialize it,
13035 pass it down, free it.
13036
13037 * tree-loop-linear.c (linear_transform_loops): Pass down
13038 lambda_obstack.
13039
13040 * tree-data-ref.h (lambda_compute_access_matrices): New argument
13041 of type struct obstack *.
13042
13043 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
13044 scratch_obstack. Initialize it, pass down, free it.
13045
13046 * lambda.h (lambda_loop_new): Remove.
13047 (lambda_matrix_new, lambda_matrix_inverse)
13048 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
13049 argument of type struct obstack *.
13050
13051 * lambda-trans.c (lambda_trans_matrix_new): New argument
13052 lambda_obstack. Pass it down, use obstack allocation for ret.
13053 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
13054 it down.
13055
13056 * lambda-mat.c (lambda_matrix_get_column)
13057 (lambda_matrix_project_to_null): Remove.
13058 (lambda_matrix_new): New argument lambda_obstack. Use obstack
13059 allocation for mat.
13060 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
13061 lambda_obstack.
13062
13063 * lambda-code.c (lambda_loop_new): New function.
13064 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
13065 (lambda_compute_auxillary_space, lambda_compute_target_space)
13066 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
13067 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
13068 (build_access_matrix): New argument lambda_obstack. Use obstack
13069 allocation for am.
13070 (lambda_compute_step_signs, lambda_compute_access_matrices): New
13071 argument lambda_obstack. Pass it down.
13072
13073 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
13074
13075 * optabs.h (expand_widening_mult): Declare.
13076
13077 2010-04-22 Richard Guenther <rguenther@suse.de>
13078
13079 PR tree-optimization/43845
13080 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
13081 lookup the CALL_EXPR function and arguments.
13082
13083 2010-04-22 Nick Clifton <nickc@redhat.com>
13084
13085 * config/stormy16/stormy16.c
13086 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
13087 * config/stormy16/stormy16.h: Tidy up formatting.
13088 (DONT_USE_BUILTIN_SETJMP): Remove definition.
13089 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
13090 (ineqbranchsi): Delete pattern.
13091 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
13092 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
13093 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
13094 stormy16-lib2-ucmpsi2.c.
13095
13096 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
13097
13098 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
13099 df_simulate_find_noclobber_defs as appropriate. Keep track of an
13100 extra set merge_set_noclobber, and use it to relax the final test
13101 slightly.
13102 * df.h (df_simulate_find_noclobber_defs): Declare.
13103 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
13104 conditional defs.
13105 (df_simulate_find_noclobber_defs): New function.
13106
13107 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
13108
13109 * config/i386/i386.md: Use {} around multi-line preparation statements.
13110
13111 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
13112
13113 * c-tree.h (push_init_level, pop_init_level, set_init_index)
13114 (process_init_element): New argument of type struct obstack *.
13115
13116 * c-typeck.c (push_init_level, pop_init_level, set_designator)
13117 (set_init_index, set_init_label, set_nonincremental_init)
13118 (set_nonincremental_init_from_string, find_init_member)
13119 (output_init_element, output_pending_init_elements)
13120 (process_init_element): New argument braced_init_obstack. Pass it
13121 down.
13122 (push_range_stack, add_pending_init): New argument
13123 braced_init_obstack. Use obstack allocation.
13124
13125 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
13126 braced_init_obstack. Pass it down.
13127 (c_parser_braced_init): New variables ret, braced_init_obstack.
13128 Initialize obstack, pass it down and finally free it.
13129
13130 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
13131
13132 PR middle-end/29274
13133 * tree-pass.h (pass_optimize_widening_mul): Declare.
13134 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
13135 gate_optimize_widening_mul): New static functions.
13136 (pass_optimize_widening_mul): New.
13137 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
13138 <case MULT_EXPR>: Remove support for widening multiplies.
13139 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
13140 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
13141 simplify_gen_unary rather than directly building extensions.
13142 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
13143 WIDEN_MULT_EXPR.
13144 * expmed.c (expand_widening_mult): New function.
13145 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
13146
13147 2010-04-21 Jan Hubicka <jh@suse.cz>
13148
13149 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
13150 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
13151 * lto-wpa-fixup.c: Remove.
13152 * Makefile.in (lto-wpa-fixup.o): Remove.
13153 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
13154 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
13155 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
13156
13157 2010-04-21 Jan Hubicka <jh@suse.cz>
13158
13159 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
13160 add write_optimization_summary, read_optimization_summary.
13161 (ipa_write_summaries_of_cgraph_node_set): Remove.
13162 (ipa_write_optimization_summaries): Declare.
13163 (ipa_read_optimization_summaries): Declare.
13164 * ipa-cp.c (pass_ipa_cp): Update.
13165 * ipa-reference.c (pass_ipa_reference): Update.
13166 * ipa-pure-const.c (pass_ipa_pure_const): Update.
13167 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
13168 Update.
13169 * ipa-inline.c (pass_ipa_inline): Update.
13170 * ipa.c (pass_ipa_whole_program): Update.
13171 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
13172 * passes.c (ipa_write_summaries_1): Do not test wpa.
13173 (ipa_write_optimization_summaries_1): New.
13174 (ipa_write_optimization_summaries): New.
13175 (ipa_read_summaries): Do not test ltrans.
13176 (ipa_read_optimization_summaries_1): New.
13177 (ipa_read_optimization_summaries): New.
13178
13179 2010-04-21 Jan Hubicka <jh@suse.cz>
13180
13181 * lto-cgraph.c (lto_output_node): Do not output comdat groups
13182 for boundary nodes.
13183 (output_cgraph): Do not arrange comdat groups for boundary nodes.
13184
13185 2010-04-21 Jakub Jelinek <jakub@redhat.com>
13186
13187 PR debug/40040
13188 * dwarf2out.c (add_name_and_src_coords_attributes): Add
13189 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
13190
13191 2010-04-21 Jan Hubicka <jh@suse.cz>
13192
13193 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
13194
13195 2010-04-21 Jan Hubicka <jh@suse.cz>
13196
13197 * varpool.c (decide_is_variable_needed): Variable is always needed
13198 during ltrans.
13199
13200 2010-04-21 Jan Hubicka <jh@suse.cz>
13201
13202 * opts.c (decode_options): Enable pure-const pass for whopr.
13203
13204 2010-04-21 Jan Hubicka <jh@suse.cz>
13205
13206 * cgraph.c (dump_cgraph_node): Dump also assembler name.
13207 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
13208 at WPA dumping.
13209 (cgraph_decide_inlining): Do not expect callee to be removed in all
13210 cases.
13211
13212 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
13213
13214 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
13215
13216 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
13217
13218 * config/i386/i386.md (x86_shrd): Add athlon_decode and
13219 amdfam10_decode attributes.
13220
13221 2010-04-21 Jakub Jelinek <jakub@redhat.com>
13222
13223 PR middle-end/43570
13224 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
13225 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
13226 (lower_copyprivate_clauses): Use private var in outer
13227 context instead of original var. Make sure the types
13228 are correct for VLAs.
13229
13230 2010-04-21 Richard Guenther <rguenther@suse.de>
13231
13232 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
13233 to non-pointer objects.
13234
13235 2010-04-21 Jakub Jelinek <jakub@redhat.com>
13236
13237 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
13238 last chain entry if it starts with the still current label.
13239 (add_location_or_const_value_attribute): Check that
13240 loc_list->first->next is NULL instead of comparing ->first with ->last.
13241 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
13242 to add_var_loc_to_decl.
13243
13244 * dwarf2out.c (output_call_frame_info): For dw_cie_version
13245 >= 4 add also address size and segment size fields into CIE header.
13246
13247 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
13248 long as address size is the same as sizeof (void *) and
13249 segment size is 0.
13250 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
13251 address size or segment size is unexpected, return DW_EH_PE_omit.
13252 (classify_object_over_fdes): If get_cie_encoding returned
13253 DW_EH_PE_omit, return -1.
13254 (init_object): If classify_object_over_fdes returned -1,
13255 pretend there were no FDEs at all.
13256
13257 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
13258
13259 * config/i386/i386.md (bswap<mode>2): Macroize expander from
13260 bswap{si,di}2 using SWI48 mode iterator.
13261 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
13262 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
13263 set modrm attribute of bswap insn to 0 and remove length attribute.
13264 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
13265 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
13266 set mode attribute to <MODE> and remove length attribute.
13267
13268 2010-04-20 James E. Wilson <wilson@codesourcery.com>
13269
13270 PR rtl-optimization/43520
13271 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
13272 zero available registers.
13273
13274 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13275
13276 * builtins.c (fold_builtin_cproj): Fold more cases.
13277
13278 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13279
13280 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
13281 (fold_builtin_1): Fold builtin cproj.
13282 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
13283 Use ATTR_CONST_NOTHROW_LIST.
13284
13285 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
13286
13287 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
13288 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
13289 ffsi2_no_cmove for !TARGET_CMOVE.
13290 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
13291 (ffssi2): Remove expander.
13292 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
13293 mode iterator.
13294 (ctz<mode>2): Ditto from ctz{si,di}2.
13295 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
13296 mode iterator.
13297 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
13298 mode iterator.
13299
13300 2010-04-20 Jakub Jelinek <jakub@redhat.com>
13301
13302 * dwarf2out.c (AT_linkage_name): Define.
13303 (clone_as_declaration): Handle DW_AT_linkage_name.
13304 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
13305 of DW_AT_MIPS_linkage_name.
13306 (move_linkage_attr): Likewise.
13307 (dwarf2out_finish): Likewise.
13308
13309 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
13310
13311 PR middle-end/41952
13312 * fold-const.c (fold_comparison): New folding rule.
13313
13314 2010-04-20 Anatoly Sokolov <aesok@post.ru>
13315
13316 * double-int.h (double_int_setbit): Declare.
13317 * double-int.c (double_int_setbit): New function.
13318 * rtl.h (immed_double_int_const): Declare.
13319 * emit-rtl.c (immed_double_int_const): New function.
13320 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
13321 and immed_double_int_const functions.
13322 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
13323 expand_copysign_bit): (Ditto.).
13324 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
13325 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
13326 * dojump.c (prefer_and_bit_test): (Ditto.).
13327 * expr.c (convert_modes, reduce_to_bit_field_precision,
13328 const_vector_from_tree): (Ditto.).
13329 * expmed.c (mask_rtx, lshift_value): (Ditto.).
13330
13331 2010-04-20 Jan Hubicka <jh@suse.cz>
13332
13333 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
13334 (dump_cgraph_node): Dump new flags.
13335 * cgraph.h (struct cgraph_node): Add flags
13336 reachable_from_other_partition and in_other_partition.
13337 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
13338 other partition can not be removed.
13339 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
13340 the other partition must be output; silence sanity checking on
13341 leaking functions bodies from other paritition.
13342 * lto-cgraph.c (reachable_from_other_partition_p): New function.
13343 (lto_output_node): Output new flags; do not sanity check that inline
13344 clones are output; drop lto_forced_extern_inline_p code; do not mock
13345 visibility flags at partition boundaries.
13346 (add_node_to): New function.
13347 (output_cgraph): Use it to sort functions so masters appear before
13348 clones.
13349 (input_overwrite_node): Input new flags.
13350 * passes.c (ipa_write_summaries): Do not call
13351 lto_new_extern_inline_states.
13352 * lto-section-out.c (forced_extern_inline,
13353 lto_new_extern_inline_states lto_delete_extern_inline_states,
13354 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
13355 * lto-streamer.h (lto_new_extern_inline_states,
13356 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
13357 lto_forced_extern_inline_p): Kill.
13358
13359 2010-04-20 Richard Guenther <rguenther@suse.de>
13360
13361 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
13362 from vars that can have pointers.
13363 (process_constraint): Dump useless constraints.
13364
13365 2010-04-20 Richard Guenther <rguenther@suse.de>
13366
13367 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
13368 (dump_sa_points_to_info): Remove asserts.
13369 (init_base_vars): nothing_id isn't an escape point nor does it
13370 have pointers.
13371
13372 2010-04-20 Jakub Jelinek <jakub@redhat.com>
13373
13374 * tree.h (TYPE_REF_IS_RVALUE): Define.
13375 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
13376 should_move_die_to_comdat, prune_unused_types_walk): Handle
13377 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
13378 (modified_type_die, gen_reference_type_die): Emit
13379 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
13380 if TYPE_REF_IS_RVALUE and -gdwarf-4.
13381
13382 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13383
13384 PR target/43635
13385 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
13386 calls for -fpic -m31 if they have been sibcall optimized.
13387
13388 2010-04-19 James E. Wilson <wilson@codesourcery.com>
13389
13390 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
13391 ar.lc fixed and call-used.
13392
13393 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
13394
13395 2010-04-19 Jan Hubicka <jh@suse.cz>
13396
13397 * opts.c (decode_options): Disable whpr incompatible passes.
13398 * lto/lto.c (lto_1_to_1_map): Skip clones.
13399 (read_cgraph_and_symbols): Do not mark everything as needed.
13400 (do_whole_program_analysis): Do map only after optimizing;
13401 set proper cgraph_state; use passmanager.
13402
13403 2010-04-19 DJ Delorie <dj@redhat.com>
13404
13405 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
13406 POINTER_PLUS_EXPR and fix them.
13407
13408 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
13409
13410 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
13411 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
13412 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
13413 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
13414 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
13415 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
13416 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
13417 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
13418 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
13419 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
13420 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
13421
13422 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
13423
13424 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
13425 (check_cond_move_block): Likewise.
13426 (cond_move_process_if_block): Likewise.
13427 (noce_find_if_block): Improve formatting.
13428 (find_if_header): Pass 0 to memset and tweak conditions.
13429 (cond_exec_find_if_block): Fix long lines and tweak conditions.
13430
13431 2010-04-19 Jakub Jelinek <jakub@redhat.com>
13432
13433 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
13434 for -gdwarf-4.
13435
13436 PR middle-end/43337
13437 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
13438 with non-local decl doesn't need chain.
13439
13440 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
13441
13442 * ira-color.c (allocno_reload_assign): Avoid accumulating
13443 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
13444
13445 2010-04-19 Martin Jambor <mjambor@suse.cz>
13446
13447 * gimple.h (create_tmp_reg): Declare.
13448 * gimplify.c (create_tmp_reg): New function.
13449 (gimplify_return_expr): Use create_tmp_reg.
13450 (gimplify_omp_atomic): Likewise.
13451 (gimple_regimplify_operands): Likewise.
13452 * tree-dfa.c (make_rename_temp): Likewise.
13453 * tree-predcom.c (predcom_tmp_var): Likewise.
13454 (reassociate_to_the_same_stmt): Likewise.
13455 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
13456 (get_replaced_param_substitute): Likewise.
13457 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
13458 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
13459 * tree-ssa-pre.c (get_representative_for): Likewise.
13460 (create_expression_by_pieces): Likewise.
13461 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
13462 (create_tailcall_accumulator): Likewise.
13463
13464 2010-04-19 Martin Jambor <mjambor@suse.cz>
13465
13466 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
13467 new_stmt.
13468 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
13469
13470 2010-04-19 Richard Guenther <rguenther@suse.de>
13471
13472 PR tree-optimization/43796
13473 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
13474 from SCEV in the lattice.
13475 (vrp_visit_phi_node): Dump change.
13476
13477 2010-04-19 Richard Guenther <rguenther@suse.de>
13478
13479 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
13480 * configure: Re-generated.
13481
13482 2010-04-19 Richard Guenther <rguenther@suse.de>
13483
13484 PR tree-optimization/43783
13485 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
13486 constant ARRAY_REF operands two and three if possible.
13487
13488 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
13489
13490 PR target/43766
13491 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
13492
13493 2010-04-19 Jie Zhang <jie@codesourcery.com>
13494
13495 PR target/43662
13496 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
13497
13498 2010-04-19 Ira Rosen <irar@il.ibm.com>
13499
13500 PR tree-optimization/37027
13501 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
13502 and macro to access it.
13503 (vectorizable_reduction): Add argument.
13504 (vect_get_slp_defs): Likewise.
13505 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
13506 statements for possible use in SLP.
13507 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
13508 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
13509 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
13510 add new argument.
13511 (vectorizable_reduction): Likewise.
13512 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
13513 vect_get_slp_defs.
13514 (vectorizable_type_demotion, vectorizable_type_promotion,
13515 vectorizable_store): Likewise.
13516 (vect_analyze_stmt): Update call to vectorizable_reduction.
13517 (vect_transform_stmt): Likewise.
13518 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
13519 (vect_build_slp_tree): Fix indentation. Check that there are no loads
13520 from different interleaving chains in same node.
13521 (vect_slp_rearrange_stmts): New function.
13522 (vect_supported_load_permutation_p): Allow load permutations for
13523 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
13524 inside SLP nodes if necessary.
13525 (vect_analyze_slp_instance): Handle reductions.
13526 (vect_analyze_slp): Try to build SLP instances originating from groups
13527 of reductions.
13528 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
13529 (vect_get_constant_vectors): Create initial vectors for reductions
13530 according to reduction code. Add new argument.
13531 (vect_get_slp_defs): Add new argument, pass it to
13532 vect_get_constant_vectors.
13533 (vect_schedule_slp_instance): Remove SLP tree root statements.
13534
13535 2010-04-19 Jakub Jelinek <jakub@redhat.com>
13536
13537 * tree.h (ENUM_IS_SCOPED): Define.
13538 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
13539 for ENUM_IS_SCOPED enums.
13540
13541 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
13542
13543 * fold-const.c (fold_comparison): Use ssizetype.
13544 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
13545 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
13546 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
13547 * tree-object-size.c (compute_object_sizes): Use size_type_node.
13548
13549 * tree.h (initialize_sizetypes): Remove parameter.
13550 (build_common_tree_nodes): Remove second parameter.
13551 * stor-layout.c (initialize_sizetypes): Remove parameter.
13552 Always create an unsigned type.
13553 (set_sizetype): Assert that the passed type is unsigned and simplify.
13554 * tree.c (build_common_tree_nodes): Remove second parameter.
13555 Adjust call to initialize_sizetypes.
13556 * c-decl.c (c_init_decl_processing): Remove second argument in call to
13557 build_common_tree_nodes.
13558
13559 2010-04-18 Matthias Klose <doko@ubuntu.com>
13560
13561 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
13562
13563 2010-04-18 Ira Rosen <irar@il.ibm.com>
13564
13565 PR tree-optimization/43771
13566 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
13567 load permutation doesn't have gaps.
13568
13569 2010-04-18 Jan Hubicka <jh@suse.cz>
13570
13571 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
13572 (sse_prologue_save_insn expander): Use new pattern.
13573 (sse_prologue_save_insn1): New pattern and splitter.
13574 (sse_prologue_save_insn): Update to deal also with 64bit aligned
13575 blocks.
13576 * i386.c (setup_incoming_varargs_64): Do not compute jump
13577 destination here.
13578 (ix86_gimplify_va_arg): Update alignment needed.
13579 (ix86_local_alignment): Do not align all local arrays to 128bit.
13580
13581 2010-04-17 Jan Hubicka <jh@suse.cz>
13582
13583 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
13584
13585 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
13586
13587 * arm.md (negdi2): Remove redundant code to force values into a
13588 register.
13589
13590 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
13591
13592 * arm/bpabi.S: Add EABI alignment attributes to objects.
13593 * arm/bpabi-v6m.S: Likewise.
13594 * arm/crti.asm: Likewise.
13595 * arm/crtn.asm: Likewise.
13596 * arm/lib1funcs.asm: Likewise.
13597 * arm/libunwind.S: Likewise.
13598
13599 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
13600
13601 * arm-protos.h (tune_params): New structure.
13602 * arm.c (current_tune): New variable.
13603 (arm_constant_limit): Delete.
13604 (struct processors): Add pointer to the tune parameters.
13605 (arm_slowmul_tune): New tuning option.
13606 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
13607 (all_cores): Adjust to pick up the tuning model.
13608 (arm_constant_limit): New function.
13609 (arm_override_options): Select the appropriate tuning model. Delete
13610 initialization of arm_const_limit.
13611 (arm_split_constant): Use the new constant-limit model.
13612 (arm_rtx_costs): Pick up the current tuning model.
13613 * arm.md (is_strongarm, is_xscale): Delete.
13614 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
13615 for Xscale variant architectures.
13616 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
13617
13618 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13619
13620 * config/arm/arm.c (arm_gen_constant): Remove unused variable
13621 can_shift.
13622 (arm_rtx_costs_1): Remove unused variable extra_cost.
13623 (arm_unwind_emit_set): Use variable offset.
13624 (thumb1_output_casesi): Remove unused variable flags.
13625
13626 2010-04-16 Jeff Law <law@redhat.com>
13627
13628 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
13629 needing assignment rather than doing a two-phase assignment. Remove
13630 unused variable 'm'.
13631
13632 2010-04-16 Jakub Jelinek <jakub@redhat.com>
13633
13634 PR bootstrap/43767
13635 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
13636
13637 2010-04-16 Doug Kwan <dougkwan@google.com>
13638
13639 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
13640 (next_operand_entry_id): New static variable.
13641 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
13642 (add_to_ops_vec): Assigned unique ID to operand entry.
13643 (struct oecount_s): New field ID.
13644 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
13645 (undistribute_ops_list): Assign unique IDs to oecounts.
13646 (init_reassoc): reset next_operand_entry_id.
13647
13648 2010-04-16 Doug Kwan <dougkwan@google.com>
13649
13650 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
13651 missing left parenthesis.
13652
13653 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
13654
13655 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
13656 *btdi_rex64 using SWI48 mode iterator.
13657 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
13658 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
13659 *jcc_btdi_mask_rex64.
13660
13661 2010-04-16 Anatoly Sokolov <aesok@post.ru>
13662
13663 * double-int.h (tree_to_double_int): Convert to macro.
13664 * double-int.c (tree_to_double_int): Remove.
13665
13666 2010-04-16 Jakub Jelinek <jakub@redhat.com>
13667
13668 PR debug/43762
13669 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
13670 with want_address 2 and in case a single element list might be
13671 possible, call it again with want_address 0.
13672
13673 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13674
13675 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
13676 case 'W' print operands for HI mode.
13677 * config/h8300/h8300.h (Y0, Y2) : New constraints.
13678 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
13679 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
13680 * config/h8300/predicate.md (bit_register_indirect_operand): New.
13681
13682 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
13683
13684 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
13685 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
13686 #xx:3 and #xx:4 mode.
13687
13688 * config/h8300/h8300.md (inverted load with HImode dest): Add
13689 support for H8300SX.
13690
13691 * config/h8300/predicate.md (bit_operand): Allow immediate values that
13692 satisfy 'U' constraint.
13693
13694 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13695
13696 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
13697 * configure: Regenerate.
13698 * config.in: Regenerate.
13699 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
13700 works.
13701
13702 2010-04-16 Richard Guenther <rguenther@suse.de>
13703
13704 * tree.h (struct tree_decl_minimal): Move pt_uid ...
13705 (struct tree_decl_common): ... here.
13706 (DECL_PT_UID): Adjust.
13707 (SET_DECL_PT_UID): Likewise.
13708 (DECL_PT_UID_SET_P): Likewise.
13709
13710 2010-04-16 Richard Guenther <rguenther@suse.de>
13711
13712 PR tree-optimization/43572
13713 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
13714 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
13715 * tree-flow.h (is_call_clobbered): Remove.
13716 * tree-flow-inline.h (is_call_clobbered): Likewise.
13717 * tree-dfa.c (dump_variable): Do not dump call clobber state.
13718 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
13719 (execute_return_slot_opt): Adjust.
13720 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
13721 check for call clobbered vars here.
13722 (find_tail_calls): Move tailcall verification to the
13723 proper place.
13724
13725 2010-04-16 Diego Novillo <dnovillo@google.com>
13726
13727 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
13728
13729 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
13730
13731 PR target/40603
13732 * config/arm/arm.md (cbranchqi4): New pattern.
13733 * config/arm/predicates.md (const0_operand,
13734 cbranchqi4_comparison_operator): New predicates.
13735
13736 2010-04-16 Richard Guenther <rguenther@suse.de>
13737
13738 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
13739 (dump_gimple_stmt): Likewise.
13740
13741 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
13742
13743 * recog.h (struct recog_data): New field is_operator.
13744 (struct insn_operand_data): New field is_operator.
13745 * recog.c (extract_insn): Set recog_data.is_operator.
13746 * genoutput.c (output_operand_data): Emit code to set the
13747 is_operator field.
13748 * reload.c (find_reloads): Use it rather than testing for an
13749 empty constraint string.
13750
13751 PR target/41514
13752 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
13753 If the previous insn is a cbranchsi4_insn with the same arguments,
13754 omit the compare instruction.
13755
13756 * config/arm/arm.md (addsi3_cbranch): If destination is a high
13757 register, inputs must be low registers and we need a low register
13758 scratch. Handle alternative 2 like alternative 3.
13759
13760 2010-04-16 Jakub Jelinek <jakub@redhat.com>
13761
13762 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
13763 don't call get_addr on both. If one expression is a VALUE and
13764 the other a REG, check VALUE's locs if the REG isn't among them.
13765
13766 2010-04-16 Christian Bruel <christian.bruel@st.com>
13767
13768 * config/sh/sh.h (sh_frame_pointer_required): New function.
13769 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
13770 (flag_omit_frame_pointer) Set.
13771 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
13772 (rounded_frame_size): Adjust size with outgoing_args_size.
13773 (sh_set_return_address): Must return from stack pointer.
13774 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
13775 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
13776 (ACCUMULATE_OUTGOING_ARGS): Define.
13777 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
13778 * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
13779
13780 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
13781
13782 PR target/43471
13783 * config/sh/sh.c (sh_legitimize_reload_address): Use
13784 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
13785 Remove a unneeded check for offset_base.
13786
13787 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
13788
13789 * configure: Regenerated.
13790
13791 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13792
13793 * config/s390/s390.c (s390_call_save_register_used): Switch back
13794 to HARD_REGNO_NREGS.
13795
13796 2010-04-15 Richard Guenther <rguenther@suse.de>
13797
13798 * alias.c (alias_set_subset_of): Handle alias-set zero
13799 child properly.
13800
13801 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
13802 Julian Brown <julian@codesourcery.com>
13803
13804 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
13805 alternatives according to use of high and low regs.
13806 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
13807 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
13808 optimizing for size on Thumb-2.
13809
13810 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
13811
13812 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
13813
13814 2010-04-15 Richard Guenther <rguenther@suse.de>
13815
13816 * tree-ssa-structalias.c (struct variable_info): Add
13817 is_fn_info flag.
13818 (new_var_info): Initialize it.
13819 (dump_constraints): Support printing last added constraints.
13820 (debug_constraints): Adjust.
13821 (dump_constraint_graph): Likewise.
13822 (make_heapvar_for): Check for NULL cfun.
13823 (get_function_part_constraint): New function.
13824 (get_fi_for_callee): Likewise.
13825 (find_func_aliases): Properly implement IPA PTA constraints.
13826 (process_ipa_clobber): New function.
13827 (find_func_clobbers): Likewise.
13828 (insert_into_field_list_sorted): Remove.
13829 (create_function_info_for): Properly allocate vars for IPA mode.
13830 Do not use insert_into_field_list_sorted.
13831 (create_variable_info_for): Properly generate constraints for
13832 global vars in IPA mode.
13833 (dump_solution_for_var): Always dump the solution.
13834 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
13835 (find_what_var_points_to): Adjust.
13836 (pt_solution_set): Change.
13837 (pt_solution_ior_into): New function.
13838 (pt_solution_empty_p): Export.
13839 (pt_solution_includes_global): Adjust.
13840 (pt_solution_includes_1): Likewise.
13841 (pt_solutions_intersect_1): Likewise.
13842 (dump_sa_points_to_info): Check some invariants.
13843 (solve_constraints): Move constraint dumping ...
13844 (compute_points_to_sets): ... here.
13845 (ipa_pta_execute): ... and here.
13846 (compute_may_aliases): Do not re-compute points-to info
13847 locally if IPA info is available.
13848 (ipa_escaped_pt): New global var.
13849 (ipa_pta_execute): Properly implement IPA PTA.
13850 * tree-into-ssa.c (dump_decl_set): Support dumping
13851 decls not in referenced-vars.
13852 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
13853 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
13854 (dump_points_to_solution): Likewise.
13855 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
13856 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
13857 (remap_gimple_stmt): Reset call clobber/use information if necessary.
13858 (copy_decl_to_var): Copy DECL_PT_UID.
13859 (copy_result_decl_to_var): Likewise.
13860 * tree.c (make_node_stat): Initialize DECL_PT_UID.
13861 (copy_node_stat): Copy it.
13862 * tree.h (DECL_PT_UID): New macro.
13863 (SET_DECL_PT_UID): Likewise.
13864 (DECL_PT_UID_SET_P): Likewise.
13865 (struct tree_decl_minimal): Add pt_uid member.
13866 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
13867 (pt_solution_empty_p): Declare.
13868 (pt_solution_set): Adjust.
13869 (ipa_escaped_pt): Declare.
13870 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
13871 * gimple-pretty-print.c (pp_points_to_solution): New function.
13872 (dump_gimple_call): Dump call clobber/use information.
13873 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
13874 * tree-pass.h (TDF_ALIAS): New dump option.
13875 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
13876 * doc/invoke.texi (-fipa-pta): Update documentation.
13877
13878 2010-04-15 Richard Guenther <rguenther@suse.de>
13879
13880 * Makefile.in (OBJS-common): Add gimple-fold.o.
13881 (gimple-fold.o): New rule.
13882 * tree.h (maybe_fold_offset_to_reference,
13883 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
13884 prototypes ...
13885 * gimple.h: ... here.
13886 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
13887 may_propagate_address_into_dereference): Move prototypes ...
13888 * gimple.h: ... here.
13889 * tree-ssa-ccp.c (get_symbol_constant_value,
13890 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
13891 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
13892 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
13893 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
13894 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
13895 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
13896 gimplify_and_update_call_from_tree): Move ...
13897 * gimple-fold.c: ... here. New file.
13898 (ccp_fold_builtin): Rename to ...
13899 (gimple_fold_builtin): ... this.
13900 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
13901
13902 2010-04-15 Richard Guenther <rguenther@suse.de>
13903
13904 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
13905 fit_double_type, force_fit_type_double, add_double_with_sign,
13906 neg_double, mul_double_with_sign, lshift_double, rshift_double,
13907 lrotate_double, rrotate_double, div_and_round_double): Move ...
13908 * double-int.c: ... here.
13909 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
13910 add_double, neg_double, mul_double_with_sign, mul_double,
13911 lshift_double, rshift_double, lrotate_double, rrotate_double,
13912 div_and_round_double): Move prototypes ...
13913 * double-int.h: ... here.
13914
13915 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
13916
13917 PR target/43742
13918 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
13919 matching constraints to ensure inputs match the output.
13920
13921 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
13922
13923 PR target/43742
13924 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
13925 in an input-only operand.
13926
13927 2010-04-15 Anatoly Sokolov <aesok@post.ru>
13928
13929 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
13930 (double_int_not, double_int_lshift, double_int_rshift): Declare.
13931 (double_int_negative_p): Convert to static inline function.
13932 * double-int.c (double_int_lshift, double_int_lshift): New functions.
13933 (double_int_negative_p): Remove.
13934 * tree.h (lshift_double, rshift_double):
13935 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
13936 * fold-const.c (fold_convert_const_int_from_real,
13937 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
13938 (lshift_double): Change type of arith argument to bool.
13939 (rshift_double): Change type of arith argument to bool. Correct
13940 comment.
13941 * expmed.c (mask_rtx, lshift_value): (Ditto.).
13942
13943 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
13944
13945 PR target/21803
13946 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
13947 at the start and end of the then/else blocks, and omit them from the
13948 conversion.
13949 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
13950 argument; all callers changed. Pass zero to old_insns_match_p instead.
13951 (flow_find_head_matching_sequence): New function.
13952 (old_insns_match_p): Check REG_EH_REGION notes for calls.
13953 * basic-block.h (flow_find_cross_jump,
13954 flow_find_head_matching_sequence): Declare functions.
13955
13956 2010-04-14 Jason Merrill <jason@redhat.com>
13957
13958 PR c++/36625
13959 * c-common.c (attribute_takes_identifier_p): New fn.
13960 * c-common.h: Declare it.
13961
13962 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
13963
13964 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
13965 splitter condition.
13966 (*udivmod<mode>4): Ditto.
13967
13968 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
13969
13970 * config/i386/i386.md (maxmin_int): Rename code attribute from
13971 maxminiprefix and update all users.
13972 (maxmin_float): Ditto from maxminfprefix.
13973 (logic): Ditto from logicprefix.
13974 (absneg_mnemonic): Ditto from absnegprefix.
13975 * config/i386/mmx.md: Update all users of maxminiprefix,
13976 maxminfprefix and logicprefix for rename.
13977 * config/i386/sse.md: Ditto.
13978 * config/i386/sync.md (sync_<code><mode>): Update for
13979 logicprefix rename.
13980
13981 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
13982
13983 PR 42966
13984 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
13985 warnings converted to errors.
13986
13987 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
13988
13989 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
13990 used insn_type variable.
13991 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
13992 to avoid set-but-not-used warning.
13993
13994 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
13995
13996 * df-core.c (df_ref_debug): Change format string placeholder
13997 from 0x%x to %#x.
13998 * dwarf2asm.c (dw2_asm_output_data_raw,
13999 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
14000 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
14001 * dwarf2out.c (output_cfi, output_cfi_directive,
14002 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
14003 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
14004 Ditto.
14005 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
14006 * print-rtl.c (print_rtx): Ditto.
14007
14008 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14009
14010 PR middle-end/42694
14011 * builtins.c (expand_builtin_pow_root): New function to expand pow
14012 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
14013 series of sqrt and cbrt calls under -ffast-math.
14014 (expand_builtin_pow): Call it.
14015
14016 2010-04-14 Michael Matz <matz@suse.de>
14017
14018 PR tree-optimization/42963
14019 * tree-cfg.c (touched_switch_bbs): New static variable.
14020 (group_case_labels_stmt): New function broken out from ...
14021 (group_case_labels): ... here, use the above.
14022 (start_recording_case_labels): Allocate touched_switch_bbs.
14023 (end_recording_case_labels): Deallocate it, call
14024 group_case_labels_stmt.
14025 (gimple_redirect_edge_and_branch): Remember index of affected BB.
14026
14027 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
14028
14029 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
14030 from insn template.
14031
14032 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
14033
14034 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
14035
14036 2010-04-13 Jan Hubicka <jh@suse.cz>
14037
14038 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
14039 of optimized out static functions.
14040 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
14041 cost computation. Also sanity check for overflows.
14042 (update_caller_keys): Update cgraph_edge_badness call; properly
14043 update fibheap and sanity check that it is up to date.
14044 (add_new_edges_to_heap): Update cgraph_edge_badness.
14045 (cgraph_decide_inlining_of_small_function): Likewise;
14046 add sanity checking that badness in heap is up to date;
14047 improve dumping of reason; Update badness of calls to the
14048 offline copy of function currently inlined; dump badness
14049 of functions not inlined because of unit growth limits.
14050
14051 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
14052
14053 PR middle-end/32628
14054 * c-common.c (pointer_int_sum): Disregard overflow that occured only
14055 because of sign-extension change when converting to sizetype here...
14056 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
14057
14058 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
14059 the folding to constants. Remove redundant final conversion.
14060 (fold_binary) <associate>: Do not associate if the re-association of
14061 constants alone overflows.
14062 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
14063 to the end of the list.
14064 (multiple_of_p) <COND_EXPR>: New case.
14065
14066 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
14067
14068 * opt-functions.awk (opt_sanitized_name): New.
14069 (opt_enum): New.
14070 * optc-gen.awk: Use it
14071 * opth-gen.awk: Use it.
14072
14073 2010-04-13 Martin Jambor <mjambor@suse.cz>
14074
14075 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
14076 (sra_modify_assign): Delete stmts loading dead data even if racc has no
14077 children. Call replace_uses_with_default_def_ssa_name to handle
14078 SSA_NAES on lhs.
14079
14080 2010-04-13 Michael Matz <matz@suse.de>
14081
14082 PR middle-end/43730
14083 * builtins.c (expand_builtin_interclass_mathfn): Also create
14084 a register if the predicate doesn't match.
14085
14086 2010-04-13 Diego Novillo <dnovillo@google.com>
14087
14088 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
14089 * c-pch.c: Include timevar.h.
14090 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
14091 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
14092 * ggc-common.c: Include timevar.h.
14093 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
14094 * timevar.def (TV_PCH_SAVE): Define.
14095 (TV_PCH_CPP_SAVE): Define.
14096 (TV_PCH_PTR_REALLOC): Define.
14097 (TV_PCH_PTR_SORT): Define.
14098 (TV_PCH_RESTORE): Define.
14099 (TV_PCH_CPP_RESTORE): Define.
14100
14101 2010-04-13 Michael Matz <matz@suse.de>
14102
14103 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
14104 into MINUS_EXPRs.
14105 (can_reassociate_p): New function.
14106 (break_up_subtract_bb, reassociate_bb): Use it.
14107
14108 2010-04-13 Richard Guenther <rguenther@suse.de>
14109
14110 PR bootstrap/43737
14111 * builtins.c (c_readstr): Fix assert.
14112
14113 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
14114
14115 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
14116 when generating cltd insn.
14117
14118 (*ashl<mode>3_1): Remove special handling for register operand 2.
14119 (*ashlsi3_1_zext): Ditto.
14120 (*ashlhi3_1): Ditto.
14121 (*ashlhi3_1_lea): Ditto.
14122 (*ashlqi3_1): Ditto.
14123 (*ashlqi3_1_lea): Ditto.
14124 (*<shiftrt_insn><mode>3_1): Ditto.
14125 (*<shiftrt_insn>si3_1_zext): Ditto.
14126 (*<shiftrt_insn>qi3_1_slp): Ditto.
14127 (*<rotate_insn><mode>3_1): Ditto.
14128 (*<rotate_insn>si3_1_zext): Ditto.
14129 (*<rotate_insn>qi3_1_slp): Ditto.
14130
14131 2010-04-13 Richard Guenther <rguenther@suse.de>
14132
14133 * tree-ssa-structalias.c (callused_id): Remove.
14134 (call_stmt_vars): New.
14135 (get_call_vi): Likewise.
14136 (lookup_call_use_vi): Likewise.
14137 (lookup_call_clobber_vi): Likewise.
14138 (get_call_use_vi): Likewise.
14139 (get_call_clobber_vi): Likewise.
14140 (make_transitive_closure_constraints): Likewise.
14141 (handle_const_call): Adjust to do per-call call-used handling.
14142 (handle_pure_call): Likewise.
14143 (find_what_var_points_to): Remove general callused handling.
14144 (init_base_vars): Likewise.
14145 (init_alias_vars): Initialize call_stmt_vars.
14146 (compute_points_to_sets): Process call-used and call-clobbered
14147 vars for call statements.
14148 (delete_points_to_sets): Free call_stmt_vars.
14149
14150 2010-04-13 Richard Guenther <rguenther@suse.de>
14151
14152 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14153 Only add RW dependence for dependence distance zero.
14154 Adjust maximal vectorization factor according to dependences.
14155 Move alignment handling ...
14156 (vect_find_same_alignment_drs): ... here. New function.
14157 (vect_analyze_data_ref_dependences): Adjust.
14158 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
14159 (vect_analyze_data_refs): Adjust minimal vectorization factor
14160 according to data references.
14161 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
14162 dependences before determining the vectorization factor.
14163 Analyze alignment after determining the vectorization factor.
14164 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
14165 dependences before alignment.
14166 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
14167 Adjust prototype.
14168 (vect_analyze_data_refs): Likewise.
14169 (MAX_VECTORIZATION_FACTOR): New define.
14170
14171 2010-04-13 Duncan Sands <baldrick@free.fr>
14172
14173 * except.h (lang_eh_type_covers): Remove.
14174 * except.c (lang_eh_type_covers): Likewise.
14175
14176 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14177 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14178
14179 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
14180 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
14181 UNITS_PER_LONG where it is ABI relevant.
14182 (s390_return_addr_rtx): Likewise.
14183 (s390_back_chain_rtx): Likewise.
14184 (s390_frame_area): Likewise.
14185 (s390_frame_info): Likewise.
14186 (s390_initial_elimination_offset): Likewise.
14187 (save_gprs): Likewise.
14188 (s390_emit_prologue): Likewise.
14189 (s390_emit_epilogue): Likewise.
14190 (s390_function_arg_advance): Likewise.
14191 (s390_function_arg): Likewise.
14192 (s390_va_start): Likewise.
14193 (s390_gimplify_va_arg): Likewise.
14194 (s390_function_profiler): Likewise.
14195 (s390_optimize_prologue): Likewise.
14196 (s390_rtx_costs): Likewise.
14197 (s390_secondary_reload): Likewise.
14198 (s390_promote_function_mode): Likewise.
14199 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
14200 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
14201 registers available.
14202 (s390_unwind_word_mode): New function.
14203 (s390_function_value): Split 64 bit values into register pair if
14204 used as return value.
14205 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
14206 function call parameters. Handle parallels.
14207 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
14208 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
14209 (DWARF_CIE_DATA_ALIGNMENT): New macro.
14210 (s390_expand_setmem): Remove unused variable src_addr.
14211 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
14212 deal with 64 bit registers.
14213 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
14214 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
14215 (UNITS_PER_LONG): New macro.
14216 * libjava/include/s390-signal.h: Define extended ucontext
14217 structure containing the upper halfs of the 64 bit registers.
14218
14219 2010-04-13 Simon Baldwin <simonb@google.com>
14220
14221 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
14222
14223 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
14224
14225 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
14226 rvalue on the RHS if the LHS is of a non-renamable type.
14227 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
14228
14229 2010-04-13 Matthias Klose <doko@ubuntu.com>
14230
14231 * gcc.c (cc1_options): Handle -iplugindir before processing
14232 the cc1 spec. Only add -iplugindir once.
14233 (cpp_unique_options): Add -iplugindir option if -fplugin* options
14234 found.
14235 * common.opt (iplugindir): Remove `Separate' property, initialize.
14236 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
14237 option.
14238 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
14239 (distclean): Remove plugin dir.
14240 * doc/invoke.texi: Document -iplugindir.
14241
14242 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
14243
14244 * doc/plugins.texi (Loading Plugins): Document short
14245 -fplugin=foo option.
14246 (Plugin API): Mention default_plugin_dir_name function.
14247
14248 * gcc.c (find_file_spec_function): Add new declaration.
14249 (static_spec_func): Use it for "find-file".
14250 (find_file_spec_function): Add new function.
14251 (cc1_options): Add -iplugindir option if -fplugin* options found.
14252
14253 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
14254
14255 * plugin.c (add_new_plugin): Updated comment, and handle short
14256 plugin name.
14257 (default_plugin_dir_name): Added new function.
14258
14259 * common.opt (iplugindir): New option to set the plugin directory.
14260
14261 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
14262
14263 * config/i386/i386.md (any_rotate): New code iterator.
14264 (rotate_insn): New code attribute.
14265 (rotate): Ditto.
14266 (SWIM124): New mode iterator.
14267 (<rotate_insn>ti3): New expander.
14268 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
14269 any_rotate code iterator.
14270 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
14271 using any_rotate code iterator and SWIM124 mode iterator.
14272 (ix86_rotlti3): New insn_and_split pattern.
14273 (ix86_rotrti3): Ditto.
14274 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
14275 ix86_rotl{di,ti}3 patterns.
14276 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
14277 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
14278 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
14279 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
14280 code iterator and SWI mode iterator.
14281 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
14282 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
14283 code iterator.
14284 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
14285 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
14286 (bswap rotatert splitter): Add splitter.
14287 (bswap splitter): Macroize splitter using any_rotate code iterator.
14288 Add insn predicate to split only for TARGET_USE_XCHGB or when
14289 optimizing function for size.
14290
14291 2010-04-12 Steve Ellcey <sje@cup.hp.com>
14292
14293 * config/pa/pa.c (emit_move_sequence): Remove use of
14294 deleted variable flag_argument_noalias.
14295
14296 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14297
14298 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
14299 configurations.
14300 Add to unsupported targets list.
14301 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
14302 sparc*-sun-solaris2.[567]* from target lists.
14303 * configure: Regenerate.
14304 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
14305 removal.
14306 Remove Solaris 7 patch references.
14307 (Specific, sparc-sun-solaris2.7): Removed.
14308 (sparc-sun-solaris2*): Update Solaris 7 example.
14309 (sparc64-*-solaris2*): Likewise.
14310
14311 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14312
14313 * config.build (alpha*-dec-osf4*): Remove.
14314 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
14315 of obsolete configurations.
14316 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
14317 support.
14318 * config/alpha/t-osf4: Renamed to ...
14319 * config/alpha/t-osf5: ... this.
14320 * config/alpha/osf.h: Renamed to ...
14321 * config/alpha/osf5.h: ... this.
14322 Merged old osf5.h contents.
14323 Update comments.
14324 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
14325 (EXTRA_SPECS): Removed.
14326 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
14327 reflect removal of Tru64 UNIX V4.0/V5.0 support.
14328 Document that.
14329
14330 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14331
14332 * doc/contrib.texi (Contributors, Rainer Orth): Update.
14333
14334 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
14335
14336 PR/43702
14337 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
14338 __thiscall convention.
14339
14340 2010-04-12 Steve Ellcey <sje@cup.hp.com>
14341
14342 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
14343 orig_base.
14344 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
14345
14346 2010-04-12 Steve Ellcey <sje@cup.hp.com>
14347
14348 * function.c (assign_parms_initialize_all): Add unused attribute
14349 to fntype.
14350
14351 2010-04-12 Richard Guenther <rguenther@suse.de>
14352
14353 * gsstruct.def (GSS_CALL): New.
14354 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
14355 * gimple.h: Include tree-ssa-alias.h.
14356 (struct gimple_statement_call): New.
14357 (union gimple_statement_struct_d): Add gimple_call member.
14358 (gimple_call_reset_alias_info): Declare.
14359 (gimple_call_use_set): New function.
14360 (gimple_call_clobber_set): Likewise.
14361 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
14362 * gimple.c (gimple_call_reset_alias_info): New function.
14363 (gimple_build_call_1): Call it.
14364 * lto-streamer-in.c (input_gimple_stmt): Likewise.
14365 * tree-inline.c (remap_gimple_stmt): Likewise.
14366 (expand_call_inline): Remove callused handling.
14367 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
14368 * tree-dfa.c (dump_variable): Likewise.
14369 * tree-parloops.c (parallelize_loops): Likewise.
14370 * tree-ssa.c (init_tree_ssa): Likewise.
14371 (delete_tree_ssa): Likewise.
14372 * tree-flow-inline.h (is_call_used): Remove.
14373 * tree-flow.h (struct gimple_df): Remove callused member.
14374 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
14375 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
14376 (ref_maybe_used_by_call_p_1): Simplify.
14377 (call_may_clobber_ref_p_1): Likewise.
14378 * tree-ssa-structalias.c (compute_points_to_sets): Set
14379 the call stmt used and clobbered sets.
14380 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
14381 (find_tail_calls): Verify the tail call.
14382
14383 2010-04-12 Richard Guenther <rguenther@suse.de>
14384
14385 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
14386 single-iteration always-inline inlining.
14387 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
14388 (cgraph_decide_inlining): Do not handle always-inline specially.
14389 (try_inline): Remove always-inline cycle detection special case.
14390 Do not recurse on always-inlines.
14391 (cgraph_early_inlining): Do not iterate if not optimizing.
14392 (cgraph_gate_early_inlining): remove.
14393 (pass_early_inline): Run unconditionally.
14394 (gate_cgraph_decide_inlining): New function.
14395 (pass_ipa_inline): Use it. Do not run the IPA inliner if
14396 not inlining or optimizing.
14397 (cgraph_decide_inlining_of_small_functions): Also consider
14398 always-inline functions.
14399 (cgraph_default_inline_p): Return true for nodes which should
14400 disregard inline limits.
14401 (estimate_function_body_sizes): Assume zero size and time for
14402 nodes which are marked as disregarding inline limits.
14403 (cgraph_decide_recursive_inlining): Do not perform recursive
14404 inlining on always-inline nodes.
14405
14406 2010-04-12 Jakub Jelinek <jakub@redhat.com>
14407
14408 PR bootstrap/43699
14409 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
14410 for exprs satisfying handled_component_p.
14411
14412 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
14413
14414 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
14415 non-constant aggregate elements.
14416
14417 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
14418 is a real initialization.
14419
14420 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
14421
14422 PR c/36774
14423 * c-decl.c (start_function): Move forward check for nested function.
14424
14425 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
14426
14427 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
14428 * config/sh/sh.c: Include reload.h.
14429 (sh_legitimize_reload_address): New.
14430 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
14431 sh_legitimize_reload_address.
14432
14433 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14434
14435 * config/sh/sh.md (*movqi_pop): New insn pattern.
14436 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
14437
14438 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
14439
14440 * config/i386/i386.md (any_shiftrt): New code iterator.
14441 (shiftrt_insn): New code attribute.
14442 (shiftrt): Ditto.
14443 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
14444 using any_shiftrt code iterator.
14445 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
14446 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
14447 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
14448 pattern from corresponding peephole2 patterns.
14449 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
14450 using any_shiftrt code iterator.
14451 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
14452 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
14453 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
14454 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
14455 *{ashr,lshr}<mode>3_cmp_zext.
14456 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
14457
14458 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
14459
14460 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
14461 scratch register.
14462 (*lshr<mode>3_cconly): Ditto.
14463
14464 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
14465
14466 * config/i386/i386.md (lshr<mode>3): Macroize expander from
14467 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
14468 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
14469 pattern from *lshr{di,ti}3_1 and corresponding splitters using
14470 DWI mode iterator.
14471 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
14472 from corresponding peephole2 patterns.
14473 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
14474 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
14475 and *lshrdi3_1_rex64 using SWI mode iterator.
14476 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
14477 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
14478 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
14479 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
14480 and *lshrdi3_cmp_rex64 using SWI mode iterator.
14481 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
14482 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
14483 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
14484 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
14485 SWI mode iterator.
14486
14487 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
14488
14489 * config/i386/i386.md (ashr<mode>3): Macroize expander from
14490 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
14491 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
14492 pattern from *ashr{di,ti}3_1 and corresponding splitters using
14493 DWI mode iterator.
14494 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
14495 from corresponding peephole2 patterns.
14496 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
14497 (ashrsi3_cvt): Rename from ashrsi3_31.
14498 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
14499 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
14500 and x86_64_shift_adj_3 using SWI48 mode iterator.
14501 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
14502 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
14503 and *ashrdi3_1_rex64 using SWI mode iterator.
14504 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
14505 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
14506 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
14507 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
14508 and *ashrdi3_cmp_rex64 using SWI mode iterator.
14509 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
14510 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
14511 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
14512 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
14513 SWI mode iterator.
14514 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
14515 * config/i386/i386.c (ix86_split_ashr): Update for renamed
14516 x86_shift<mode>_adj_3 expanders.
14517
14518 2010-04-10 Wei Guozhi <carrot@google.com>
14519
14520 PR target/42601
14521 * config/arm/arm.c (arm_pic_static_addr): New function.
14522 (legitimize_pic_address): Call arm_pic_static_addr when it detects
14523 a static symbol.
14524 (arm_output_addr_const_extra): Output expression for new pattern.
14525 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
14526
14527 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
14528
14529 * ira-costs.c (record_reg_classes): Ignore alternatives that are
14530 not enabled.
14531
14532 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
14533 * web.c: Include "insn-config.h" and "recog.h".
14534 (union_match_dups): New function.
14535 (web_main): Call it.
14536 (union_defs): Don't try to recognize match_dups.
14537
14538 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
14539 if doing so would replace the entire pattern.
14540
14541 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
14542
14543 PR target/43707
14544 PR target/43709
14545 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
14546 and splitter pattern. Change splitter operand 1 predicate to
14547 nonmemory_operand.
14548
14549 2010-04-09 Martin Jambor <mjambor@suse.cz>
14550
14551 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
14552 lattices are addresses of CONST_DECLs with the same initial value.
14553 (ipcp_print_all_lattices): Print values of CONST_DECLs.
14554 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
14555
14556 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
14557 Bernd Schmidt <bernds@codesourcery.com>
14558
14559 * loop-invariant.c (replace_uses): New static function.
14560 (move_invariant_reg): Use it to ensure we can replace the uses.
14561
14562 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
14563
14564 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
14565 function template.
14566 (picochip_override_options): Enable section anchors only above -O1.
14567 (picochip_reorg): Fixed a couple of build warnings.
14568
14569 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14570
14571 * configure.ac (plugin -rdynamic test): Log result.
14572 * configure: Regenerate.
14573 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
14574 (RDYNAMIC_SPEC): Define.
14575 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
14576
14577 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14578
14579 * configure.ac: Determine Sun ld version numbers.
14580 (comdat_group): Restrict GNU ld version checks to gld.
14581 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
14582 (enable_comdat): Support --enable-comdat.
14583 * configure: Regenerate.
14584 * doc/install.texi (Configuration): Document --enable-comdat.
14585
14586 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14587
14588 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
14589 * config/sol2-gld.h: ... here.
14590 * config.gcc (sparc*-*-solaris2*): Reflect this.
14591 (i[34567]86-*-solaris2*): Use it.
14592
14593 2010-04-09 Steve Ellcey <sje@cup.hp.com>
14594
14595 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
14596 setup_clocks_p.
14597 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
14598
14599 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
14600
14601 PR 42965
14602 * diagnostic.c (diagnostic_initialize): Initialize
14603 some_warnings_are_errors.
14604 (diagnostic_finish): New.
14605 (diagnostic_action_after_output): Call it before exiting.
14606 (diagnostic_report_diagnostic): Do not print message here. Set
14607 some_warnings_are_errors.
14608 * diagnostic.h (diagnostic_context): Delete
14609 issue_warnings_are_errors_message. Add some_warnings_are_errors.
14610 (diagnostic_finish): Declare.
14611 * toplev.c (toplev_main): Call it before exit.
14612
14613 2010-04-09 Jason Merrill <jason@redhat.com>
14614
14615 PR c++/42623
14616 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
14617 for incomplete type.
14618
14619 PR c++/41788
14620 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
14621 based on a warning flag.
14622
14623 2010-04-09 Richard Guenther <rguenther@suse.de>
14624
14625 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
14626
14627 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
14628
14629 PR bootstrap/43684
14630 * varasm.c (default_assemble_visibility): Wrap vars that are
14631 set, but unused, by targets without GAS.
14632 * config/rs6000/rs6000.c (paired_emit_vector_compare):
14633 Remove set, but unused, vars.
14634 (rs6000_legitimize_tls_address): Likewise.
14635 (altivec_expand_dst_builtin): Likewise.
14636 * config/darwin.c (machopic_classify_symbol): Likewise.
14637 (machopic_indirection_name): Likewise.
14638
14639 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
14640
14641 * config/i386/i386.md (DWI): New mode iterator.
14642 (S): New mode attribute.
14643 (shift_operand): Ditto.
14644 (shift_immediate_operand): Ditto.
14645 (ashl_input_operand): Ditto.
14646 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
14647 using SDWIM mode iterator.
14648 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
14649 pattern from *ashl{di,ti}3_1 and corresponding splitters using
14650 DWI mode iterator.
14651 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
14652 from corresponding peephole2 patterns.
14653 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
14654 and x86_64_shift_adj_1 using SWI48 mode iterator.
14655 (x86_shift<mode>_adj_2): Ditto.
14656 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
14657 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
14658 using SWI48 mode iterator.
14659 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
14660 *ashldi3_cmp_rex64 using SWI mode iterator.
14661 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
14662 *ashldi3_cconly_rex64 using SWI mode iterator.
14663 * config/i386/i386.c (ix86_split_ashl): Update for renamed
14664 x86_shift<mode>_adj_{1,2}.
14665 (ix86_split_ashr): Ditto.
14666 (ix86_split_lshr): Ditto.
14667
14668 2010-04-09 Richard Guenther <rguenther@suse.de>
14669
14670 * target.h (builtin_conversion): Pass in input and output types.
14671 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
14672 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
14673 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
14674 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
14675
14676 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
14677 Handle AVX modes.
14678 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
14679
14680 2010-04-09 Richard Guenther <rguenther@suse.de>
14681
14682 PR target/43152
14683 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
14684
14685 2010-04-09 Richard Guenther <rguenther@suse.de>
14686
14687 * tree-vectorizer.h (struct _stmt_vec_info): Document
14688 that vectype is the type of the LHS.
14689 (supportable_widening_operation, supportable_narrowing_operation):
14690 Get both input and output vector types as arguments.
14691 (vect_is_simple_use_1): Declare.
14692 (get_same_sized_vectype): Likewise.
14693 * tree-vect-loop.c (vect_determine_vectorization_factor):
14694 Set STMT_VINFO_VECTYPE to the vector type of the def.
14695 (vectorizable_reduction): Adjust.
14696 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
14697 Adjust. Specify the output vector type.
14698 (vect_pattern_recog_1): Adjust.
14699 * tree-vect-stmts.c (get_same_sized_vectype): New function.
14700 (vectorizable_call): Adjust.
14701 (vectorizable_conversion): Likewise.
14702 (vectorizable_operation): Likewise.
14703 (vectorizable_type_demotion): Likewise.
14704 (vectorizable_type_promotion): Likewise.
14705 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
14706 the def.
14707 (vect_is_simple_use_1): New function.
14708 (supportable_widening_operation): Get both input and output
14709 vector types.
14710 (supportable_narrowing_operation): Likewise.
14711 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
14712
14713 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
14714
14715 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
14716 __thiscall and _thiscall as predefined macros.
14717 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
14718 thiscall attribute handling.
14719 (ix86_comp_type_attributes): Likewise.
14720 (ix86_function_regparm): Likewise.
14721 (ix86_return_pops_args): Likewise.
14722 (init_cumulative_args): Likewise.
14723 (find_drap_reg): Likewise.
14724 (ix86_static_chain): Likewise.
14725 (x86_this_parameter): Likewise.
14726 (x86_output_mi_thunk): Likewise.
14727 (ix86_attribute_table): Add description for thiscall attribute.
14728 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
14729 * doc/extend.texi: Add documentation for thiscall.
14730
14731 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
14732
14733 PR c++/28584
14734 * c.opt (Wint-to-pointer-cast): Available in C++.
14735 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
14736
14737 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
14738
14739 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
14740 * calls.c (expand_call): Pass the function type to aggregate_value_p.
14741 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
14742 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
14743 function type instead. Reorder and simplify checks.
14744
14745 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
14746
14747 2010-04-08 Jing Yu <jingyu@google.com>
14748 Zdenek Dvorak <ook@ucw.cz>
14749
14750 PR tree-optimization/42720
14751 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
14752 loop unswitch conditions here from ...
14753 (tree_unswitch_single_loop): ... here.
14754
14755 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
14756
14757 * tree-if-conv.c: Fix comments and simplify logic.
14758
14759 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
14760
14761 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
14762 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
14763 (main_tree_if_conversion): Update call to tree_if_conversion.
14764
14765 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
14766
14767 PR 42485
14768 * doc/invoke.texi (-b,-V): Delete.
14769 * doc/tm.texi: Do not mention -b.
14770 * gcc.c (display_help): Delete -b and -V.
14771 (process_command): Delete -b and -V.
14772 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
14773
14774 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
14775 Wolfgang Gellerich <gellerich@de.ibm.com>
14776
14777 Implement target hook for loop unrolling
14778 * target.h (loop_unroll_adjust): Add a new target hook function.
14779 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
14780 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
14781 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
14782 (s390_loop_unroll_adjust): Implement the new target hook for s390.
14783 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
14784 target hook.
14785 (decide_unroll_stupid): Likewise.
14786
14787 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14788
14789 PR target/43643
14790 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
14791
14792 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14793
14794 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
14795 (Specific, *-*-solaris2*): Likewise.
14796 Don't prefer Sun as over GNU as.
14797
14798 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
14799
14800 * config/s390/s390.c (override_options): Adjust the z10 defaults
14801 for max-unroll-times, max-completely-peeled-insns
14802 and max-completely-peel-times.
14803
14804 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14805
14806 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
14807 instructions for z10.
14808 (s390_expand_setmem): Likewise.
14809 (s390_expand_cmpmem): Likewise.
14810
14811 2010-04-08 Richard Guenther <rguenther@suse.de>
14812
14813 PR tree-optimization/43679
14814 * tree-ssa-pre.c (eliminate): Only propagate copies.
14815
14816 2010-04-08 Jakub Jelinek <jakub@redhat.com>
14817
14818 PR bootstrap/43681
14819 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
14820 set but not used variable warning.
14821
14822 2010-04-08 Wei Guozhi <carrot@google.com>
14823
14824 PR target/41653
14825 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
14826 (arm_size_rtx_costs): Call the new function when optimized for size.
14827
14828 2010-04-08 Jakub Jelinek <jakub@redhat.com>
14829
14830 PR debug/43670
14831 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
14832 op0 is not a MEM, just return NULL instead of assertion
14833 failure.
14834 (discover_nonconstant_array_refs): Don't walk debug stmts.
14835
14836 2010-04-08 Doug Kwan <dougkwan@google.com>
14837
14838 * configure.ac: Recognize gold and do not use its version number
14839 to test ld features.
14840 * configure: Regenerate.
14841
14842 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
14843
14844 PR middle-end/40815
14845 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
14846 (negate_value): Move code to push elements to broken_up_substracts ...
14847 (eliminate_plus_minus_pair): ... here. Push operands that have no
14848 negative pair to plus_negates.
14849 (repropagate_negates, init_reassoc, fini_reassoc): Update.
14850
14851 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14852
14853 * doc/install.texi (Configuration): Move description of
14854 --enable-lto, --with-libelf*, --enable-gold from Java section to
14855 general section.
14856
14857 * doc/generic.texi (Working with declarations)
14858 (Function Properties, C and C++ Trees): Fix typos.
14859 * doc/sourcebuild.texi (Top Level): Likewise.
14860
14861 2010-04-07 Jakub Jelinek <jakub@redhat.com>
14862
14863 PR c/18624
14864 * tree.h (DECL_READ_P): Define.
14865 (struct tree_decl_common): Add decl_read_flag.
14866 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
14867 a set but not used warning.
14868 (merge_decls): Merge DECL_READ_P flag.
14869 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
14870 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
14871 * c-common.c (handle_used_attribute, handle_unused_attribute):
14872 Likewise.
14873 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
14874 New prototypes.
14875 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
14876 New functions.
14877 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
14878 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
14879 c_parser_binary_expression, c_parser_cast_expression,
14880 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
14881 Call default_function_array_read_conversion instead of
14882 default_function_array_conversion where needed.
14883 (c_parser_unary_expression, c_parser_conditional_expression,
14884 c_parser_postfix_expression_after_primary, c_parser_initelt):
14885 Likewise. Call mark_exp_read where needed.
14886 (c_parser_statement_after_labels, c_parser_asm_operands,
14887 c_parser_typeof_specifier, c_parser_sizeof_expression,
14888 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
14889 where needed.
14890 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
14891 New.
14892 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
14893 (warn_unused_but_set_parameter): Default to warn_unused
14894 && extra_warnings.
14895 * doc/invoke.texi: Document -Wunused-but-set-variable and
14896 -Wunused-but-set-parameter.
14897
14898 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
14899 used count variable.
14900 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
14901 when operandN variables aren't used in the body of the expander
14902 or splitter.
14903 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
14904 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
14905 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
14906 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
14907 FOR_EACH_IMM_USE_ON_STMT): Likewise.
14908 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
14909 * tree.c (PROCESS_ARG): Likewise.
14910
14911 2010-04-07 Simon Baldwin <simonb@google.com>
14912
14913 * diagnostic.h (diagnostic_override_option_index): New macro to
14914 set a diagnostic's option_index.
14915 * c-tree.h (c_cpp_error): Add warning reason argument.
14916 * opts.c (_warning_as_error_callback): New.
14917 (register_warning_as_error_callback): Store callback for
14918 warnings enabled via enable_warning_as_error.
14919 (enable_warning_as_error): Call callback, minor code tidy.
14920 * opts.h (register_warning_as_error_callback): Declare.
14921 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
14922 response to -Werror=.
14923 (c_common_init_options): Register warning_as_error_callback in opts.c.
14924 * common.opt: Add -Wno-cpp option.
14925 * c-common.c (struct reason_option_codes_t): Map cpp warning
14926 reason codes to gcc option indexes.
14927 * (c_option_controlling_cpp_error): New function, lookup the gcc
14928 option index for a cpp warning reason code.
14929 * (c_cpp_error): Add warning reason argument, call
14930 c_option_controlling_cpp_error for diagnostic_override_option_index.
14931 * doc/invoke.texi: Document -Wno-cpp.
14932
14933 2010-04-07 Richard Guenther <rguenther@suse.de>
14934
14935 * ipa-reference.c (mark_load): Use get_base_address.
14936 (mark_store): Likewise.
14937
14938 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
14939 inserting GIMPLE_NOPs into the IL.
14940 * tree-ssa-structalias.c (get_constraint_for_component_ref):
14941 Explicitly strip handled components and indirect references.
14942
14943 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
14944 folding address expressions.
14945 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
14946 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
14947 operand_equal_p to compare decls.
14948 (ptr_deref_may_alias_decl_p): Likewise.
14949 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
14950 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
14951 Handle reversed comparison ops.
14952 * tree-sra.c (asm_visit_addr): Use get_base_address.
14953 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
14954 * ipa-reference.c (mark_address): Use get_base_address.
14955
14956 2010-04-07 Richard Guenther <rguenther@suse.de>
14957
14958 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
14959 Propagate constants everywhere.
14960
14961 2010-04-07 Jakub Jelinek <jakub@redhat.com>
14962
14963 PR debug/43516
14964 * tree.c (MAX_INT_CACHED_PREC): Define.
14965 (nonstandard_integer_type_cache): New array.
14966 (build_nonstandard_integer_type): Cache results for precision
14967 <= MAX_INT_CACHED_PREC.
14968
14969 2010-04-07 Richard Guenther <rguenther@suse.de>
14970
14971 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
14972 -fargument-noalias-global, -fargument-noalias-anything): Remove.
14973 * common.opt: Likewise.
14974 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
14975 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
14976 (nonoverlapping_memrefs_p): Likewise.
14977 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14978 * opts.c (common_handle_option): Handle OPT_fargument_alias,
14979 OPT_fargument_noalias, OPT_fargument_noalias_anything and
14980 OPT_fargument_noalias_global for backward compatibility.
14981
14982 2010-04-07 Richard Guenther <rguenther@suse.de>
14983
14984 PR tree-optimization/43270
14985 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
14986 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
14987 * tree-ssa-pre.c (phi_translate_1): Adjust.
14988 (fully_constant_expression): Split out vn_reference handling to ...
14989 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
14990 Fold reads from constant strings.
14991 (vn_reference_lookup): Handle fully constant references.
14992 (vn_reference_lookup_pieces): Likewise.
14993 * Makefile.in (expmed.o-warn): Add -Wno-error.
14994
14995 2010-04-07 Martin Jambor <mjambor@suse.cz>
14996
14997 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
14998
14999 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
15000
15001 PR driver/41594
15002 * gcc.c: Add -static-libstdc++ to list of recognized options.
15003
15004 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15005
15006 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
15007
15008 2010-04-07 Richard Guenther <rguenther@suse.de>
15009
15010 PR middle-end/42617
15011 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
15012 bases build simple mem attributes to retain points-to information.
15013
15014 2010-04-07 Richard Guenther <rguenther@suse.de>
15015
15016 PR middle-end/42617
15017 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
15018 preserve points-to related information.
15019
15020 2010-04-07 Richard Guenther <rguenther@suse.de>
15021
15022 PR middle-end/42617
15023 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
15024 discard plain indirect references.
15025 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
15026 * tree.c (tree_nop_conversion): Likewise.
15027
15028 2010-04-07 Dodji Seketeli <dodji@redhat.com>
15029
15030 PR debug/43628
15031 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
15032
15033 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
15034
15035 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
15036 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
15037
15038 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
15039
15040 * tree-if-conv.c: Fix indentation and comments.
15041
15042 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
15043
15044 * tree-if-conv.c: Sort static functions in topological order.
15045
15046 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
15047
15048 * tree-if-conv.c: Fix indentation and comments.
15049
15050 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
15051
15052 PR middle-end/43519
15053 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
15054 lang_hooks.types.type_for_size instead of
15055 build_nonstandard_integer_type.
15056 When converting an unsigned type to signed, double its precision.
15057 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
15058 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
15059 (graphite_create_new_loop_guard): When ub + 1 wraps around,
15060 use lb <= ub.
15061
15062 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
15063
15064 PR middle-end/43519
15065 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
15066 POINTER_PLUS_EXPR for pointer types.
15067
15068 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
15069
15070 PR middle-end/43519
15071 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
15072 * graphite-clast-to-gimple.c: Include langhooks.h.
15073 (max_signed_precision_type): New.
15074 (max_precision_type): Takes two types as arguments.
15075 (precision_for_value): New.
15076 (precision_for_interval): New.
15077 (gcc_type_for_interval): New.
15078 (gcc_type_for_value): New.
15079 (gcc_type_for_clast_term): New.
15080 (gcc_type_for_clast_red): New.
15081 (gcc_type_for_clast_bin): New.
15082 (gcc_type_for_clast_expr): Split up into several functions.
15083 (gcc_type_for_clast_eq): Rewritten.
15084 (compute_bounds_for_level): New.
15085 (compute_type_for_level_1): New.
15086 (compute_type_for_level): New.
15087 (gcc_type_for_cloog_iv): Removed.
15088 (gcc_type_for_iv_of_clast_loop): Rewritten.
15089 (graphite_create_new_loop): Compute the lower and upper bound types
15090 with gcc_type_for_clast_expr.
15091 (graphite_create_new_loop_guard): Same.
15092 (find_cloog_iv_in_expr): Removed.
15093 (compute_cloog_iv_types_1): Removed.
15094 (compute_cloog_iv_types): Removed.
15095 (gloog): Do not call compute_cloog_iv_types.
15096 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
15097 GBB_CLOOG_IV_TYPES.
15098 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
15099 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
15100 (GBB_CLOOG_IV_TYPES): Removed.
15101
15102 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
15103
15104 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
15105 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
15106 (detect_commutative_reduction): Same.
15107
15108 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
15109
15110 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
15111 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
15112 argument.
15113 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
15114 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
15115 (rewrite_commutative_reductions_out_of_ssa): Same.
15116 * passes.c (execute_function_todo): Call verify_ssa for every pass
15117 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
15118 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
15119 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
15120 with an extra argument.
15121 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
15122 verify_ssa only when the extra argument is true.
15123 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
15124 with an extra argument.
15125 (tree_transform_and_unroll_loop): Same.
15126
15127 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
15128
15129 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
15130 for all the passes of the LNO having LOOP_CLOSED_SSA.
15131 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
15132 * tree-loop-distribution.c (pass_loop_distribution): Same.
15133 * tree-pass.h (TODO_verify_loops): Removed.
15134 * tree-ssa-loop.c (pass_tree_loop_init): Same.
15135 (pass_lim): Same.
15136 (pass_tree_unswitch): Same.
15137 (pass_predcom): Same.
15138 (pass_vectorize): Same.
15139 (pass_linear_transform): Same.
15140 (pass_graphite_transforms): Same.
15141 (pass_iv_canon): Same.
15142 (pass_complete_unroll): Same.
15143 (pass_complete_unrolli): Same.
15144 (pass_parallelize_loops): Same.
15145 (pass_loop_prefetch): Same.
15146 (pass_iv_optimize): Same.
15147
15148 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
15149
15150 PR middle-end/32824
15151 * passes.c (init_optimization_passes): Move pass_lim before
15152 pass_copy_prop and pass_dce_loop.
15153
15154 2010-04-06 Jakub Jelinek <jakub@redhat.com>
15155
15156 PR target/43667
15157 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
15158 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
15159 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
15160 MULTI_* defines for 4 argument vpermil2p* builtins.
15161
15162 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
15163
15164 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
15165 * config/i386/i386.c (x86_maybe_negate_const_int): New.
15166 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
15167 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
15168 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
15169 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
15170 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
15171 Use x86_maybe_negate_const_int to output insn mnemonic.
15172 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
15173 check from instruction predicate. Update comments.
15174 * config/i386/sync.md (sync_add<mode>): Use
15175 x86_maybe_negate_const_int to output insn mnemonic.
15176
15177 2010-04-06 Jan Hubicka <jh@suse.cz>
15178
15179 PR tree-optimization/42906
15180 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
15181 IGNORE_SELF argument. Set visited_control_parents for fully
15182 processed BBs.
15183 (find_obviously_necessary_stmts): Update call of
15184 mark_control_dependent_edges_necessary.
15185 (propagate_necessity): Likewise. Handle PHI edges more curefully.
15186
15187 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
15188
15189 * config/i386/i386.md: Remove comment about 'e' and 'E'
15190 operand modifier.
15191
15192 2010-04-06 Richard Guenther <rguenther@suse.de>
15193
15194 PR tree-optimization/43627
15195 * tree-vrp.c (extract_range_from_unary_expr): Widenings
15196 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
15197 not varying.
15198
15199 2010-04-06 Jakub Jelinek <jakub@redhat.com>
15200
15201 * BASE-VER: Change to 4.6.0.
15202
15203 PR target/43638
15204 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
15205 handling.
15206
15207 2010-04-06 Richard Guenther <rguenther@suse.de>
15208
15209 PR middle-end/43661
15210 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
15211
15212 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15213
15214 * doc/invoke.texi (Optimize Options): Document that LTO
15215 won't remove object access purely due to incompatible
15216 declarations.
15217
15218 2010-04-04 Matthias Klose <doko@ubuntu.com>
15219
15220 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
15221 Initialize variable.
15222
15223 2010-04-03 Richard Guenther <rguenther@suse.de>
15224
15225 PR middle-end/42509
15226 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
15227 require a non-NULL MEM_OFFSET.
15228
15229 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
15230
15231 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
15232 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
15233 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
15234 config/alpha/predicates.md, config/arm/arm.md,
15235 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
15236 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
15237 config/darwin9.h, config/darwin.c, config/darwin.h,
15238 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
15239 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
15240 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
15241 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
15242 config/mips/mips.md, config/mn10300/mn10300.c,
15243 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
15244 config/rs6000/aix.h, config/rs6000/dfp.md,
15245 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
15246 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
15247 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
15248 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
15249 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
15250 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
15251 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
15252 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
15253 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
15254 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
15255 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
15256 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
15257 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
15258 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
15259 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
15260 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
15261 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
15262 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
15263 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
15264 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
15265 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
15266 opt-functions.awk, opth-gen.awk, params.def, passes.c,
15267 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
15268 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
15269 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
15270 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
15271 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
15272 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
15273 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
15274 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
15275 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
15276 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
15277 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
15278 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
15279 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
15280 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
15281
15282 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15283
15284 PR other/43620
15285 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
15286 * aclocal.m4: Regenerate.
15287
15288 2010-04-02 Richard Guenther <rguenther@suse.de>
15289
15290 PR tree-optimization/43629
15291 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
15292 if we have seen a constant value.
15293
15294 2010-04-02 Joseph Myers <joseph@codesourcery.com>
15295
15296 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
15297
15298 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
15299
15300 PR target/43469
15301 * arm.c (legitimize_tls_address): Adjust call to
15302 gen_tls_load_dot_plus_four.
15303 (arm_note_pic_base): New function.
15304 (arm_cannot_copy_insn_p): Use it.
15305 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
15306 constraint.
15307
15308 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15309
15310 PR bootstrap/43531
15311
15312 Revert:
15313 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15314
15315 * Makefile.in ($(out_object_file)): Depend on
15316 gt-$(basename $(notdir $(out_file))).h.
15317
15318 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
15319
15320 * config.gcc (lm32-*-rtems*): Add t-lm32.
15321
15322 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
15323
15324 * config.gcc: Add lm32-*-rtems*.
15325 * config/lm32/rtems.h: New file.
15326
15327 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
15328
15329 PR target/42609
15330 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
15331
15332 2010-04-01 Jakub Jelinek <jakub@redhat.com>
15333
15334 * dwarf2out.c (output_compilation_unit_header): For
15335 -gdwarf-4 use version 4 instead of version 3.
15336 (output_line_info): For version 4 and above emit additional
15337 maximum ops per insn header field.
15338 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
15339
15340 * dwarf2out.c (is_c_family, is_java): Remove.
15341 (lower_bound_default): New function.
15342 (add_bound_info, gen_descr_array_type_die): Use it.
15343
15344 2010-04-01 Dodji Seketeli <dodji@redhat.com>
15345
15346 PR debug/43325
15347 * dwarf2out.c (gen_variable_die): Allow debug info for variable
15348 re-declaration when it happens in a function.
15349
15350 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
15351
15352 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
15353 (cgraph_remove_function_insertion_hook): Same.
15354 (cgraph_call_function_insertion_hooks): Same.
15355
15356 2010-04-01 Richard Guenther <rguenther@suse.de>
15357
15358 PR middle-end/43614
15359 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
15360 and TREE_THIS_VOLATILE.
15361 (copy_ref_info): Likewise.
15362 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
15363 * tree.c (build6_stat): Ignore side-effects of all but arg5
15364 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
15365 TARGET_MEM_REF.
15366
15367 2010-04-01 Richard Guenther <rguenther@suse.de>
15368
15369 PR tree-optimization/43607
15370 * ipa-type-escape.c (check_call): Do not access non-existing
15371 arguments.
15372
15373 2010-04-01 Richard Guenther <rguenther@suse.de>
15374
15375 PR middle-end/43602
15376 Revert
15377 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
15378 Jack Howarth <howarth@bromo.med.uc.edu>
15379
15380 * tree-profile.c (tree_init_ic_make_global_vars): Make static
15381 variables TLS.
15382
15383 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15384
15385 * doc/install.texi (Prerequisites): Document libelf usability on
15386 IRIX 5/6 and Solaris 2.
15387 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
15388 Update GNU as, GNU ld requirements.
15389 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
15390 Document Sun Studio compiler download.
15391 Update and simplify as, ld recommendations.
15392 (Specific, *-*-solaris2.7): Note obsoletion, removal.
15393
15394 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15395
15396 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
15397 with_tune_32 to pentium4.
15398
15399 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
15400
15401 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
15402
15403 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15404
15405 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
15406 obsoletion, removal.
15407 Update IDO URL.
15408 Document GNU as requirement.
15409 Update configure requirements.
15410 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
15411 Recomment IRIX 6.5.18+.
15412 Document IDF/IDL requirement.
15413 Document GNU as requirement.
15414 Document GNU ld bootstrap failure.
15415 Remove freeware.sgi.com reference.
15416
15417 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15418
15419 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
15420 UNIX V4.0, V5.0 obsoletion, removal.
15421 Remove --with-gc=simple reference.
15422 Update VM requirements during bootstrap.
15423 Remove -oldas bootstrap description.
15424 Update binutils reference.
15425 Remove comparison failure note.
15426
15427 2010-03-31 Richard Guenther <rguenther@suse.de>
15428 Zdenek Dvorak <ook@ucw.cz>
15429 Sebastian Pop <sebastian.pop@amd.com>
15430
15431 PR middle-end/43464
15432 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
15433 with multiple arguments.
15434 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
15435
15436 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
15437
15438 * graphite-dependences.c (print_pddr): Call print_pdr with an
15439 extra argument.
15440 * graphite-poly.c (debug_pdr): Add an extra argument for the
15441 verbosity level.
15442 (print_pdr): Same.
15443 (print_pbb_domain): Same.
15444 (print_pbb): Same.
15445 (print_scop_context): Same.
15446 (print_scop): Same.
15447 (print_cloog): Same.
15448 (debug_pbb_domain): Same.
15449 (debug_pbb): Same.
15450 (print_pdrs): Same.
15451 (debug_pdrs): Same.
15452 (debug_scop_context): Same.
15453 (debug_scop): Same.
15454 (debug_cloog): Same.
15455 (print_scop_params): Same.
15456 (debug_scop_params): Same.
15457 (print_iteration_domain): Same.
15458 (print_iteration_domains): Same.
15459 (debug_iteration_domain): Same.
15460 (debug_iteration_domains): Same.
15461 (print_scattering_function): Same.
15462 (print_scattering_functions): Same.
15463 (debug_scattering_function): Same.
15464 (debug_scattering_functions): Same.
15465 * graphite-poly.h (debug_pdr): Update declaration.
15466 (print_pdr): Same.
15467 (print_pbb_domain): Same.
15468 (print_pbb): Same.
15469 (print_scop_context): Same.
15470 (print_scop): Same.
15471 (print_cloog): Same.
15472 (debug_pbb_domain): Same.
15473 (debug_pbb): Same.
15474 (print_pdrs): Same.
15475 (debug_pdrs): Same.
15476 (debug_scop_context): Same.
15477 (debug_scop): Same.
15478 (debug_cloog): Same.
15479 (print_scop_params): Same.
15480 (debug_scop_params): Same.
15481 (print_iteration_domain): Same.
15482 (print_iteration_domains): Same.
15483 (debug_iteration_domain): Same.
15484 (debug_iteration_domains): Same.
15485 (print_scattering_function): Same.
15486 (print_scattering_functions): Same.
15487 (debug_scattering_function): Same.
15488 (debug_scattering_functions): Same.
15489
15490 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
15491
15492 * graphite-poly.c (print_scattering_function_1): New.
15493 (print_scattering_function): Call it.
15494 (print_scop_params): Remove spaces at the end of lines.
15495 (print_cloog): New.
15496 (debug_cloog): New.
15497 * graphite-poly.h (print_cloog): Declared.
15498 (debug_cloog): Declared.
15499
15500 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
15501
15502 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
15503 in loop->header.
15504 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
15505 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
15506 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
15507 to switch between adding the IV bump in loop->latch or in loop->header.
15508
15509 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
15510
15511 * graphite-poly.c (print_scattering_function): Pretty print following
15512 the scoplib format.
15513 (print_pdr): Same.
15514 (print_pbb_domain): Same.
15515 (dump_gbb_cases): Same.
15516 (dump_gbb_conditions): Same.
15517 (print_pdrs): Same.
15518 (print_pbb): Same.
15519 (print_scop_params): Same.
15520 (print_scop_context): Same.
15521 (print_scop): Same.
15522 (print_pbb_body): New.
15523 (lst_indent_to): New.
15524 (print_lst): Start new lines with a #.
15525 * graphite-poly.h (pbb_bb): New.
15526 (pbb_index): Use pbb_bb.
15527 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
15528 disjuncts.
15529 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
15530
15531 2010-03-31 Jakub Jelinek <jakub@redhat.com>
15532
15533 * dwarf2out.c (size_of_die): For -gdwarf-4 use
15534 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
15535 and 0 instead of 1 for dw_val_class_flag.
15536 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
15537 dw_val_class_range_list, dw_val_class_loc_list,
15538 dw_val_class_lineptr and dw_val_class_macptr, use
15539 DW_FORM_flag_present for dw_val_class_flag and
15540 DW_FORM_exprloc for dw_val_class_loc.
15541 (output_die): For -gdwarf-4 print dw_val_class_loc
15542 size as uleb128 instead of 1 or 2 bytes and don't print
15543 anything for dw_val_class_flag.
15544
15545 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
15546 instead of cselib_lookup following by tweaking locs->setting_insn.
15547
15548 PR bootstrap/43596
15549 * cselib.c (cselib_process_insn): Clear cselib_current_insn
15550 even before returning from label, setjmp call or volatile asm
15551 handling.
15552
15553 2010-03-31 Richard Guenther <rguenther@suse.de>
15554
15555 PR middle-end/43600
15556 * cgraphunit.c (cgraph_output_in_order): Do not allocate
15557 temporary data on stack.
15558
15559 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15560
15561 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
15562 (PUSHSECTION_ASM_OP): Remove.
15563 (POPSECTION_ASM_OP): Remove.
15564 (PUSHSECTION_FORMAT): Remove.
15565 * config/sol2.h (PUSHSECTION_FORMAT): Define.
15566 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
15567 * config/sol2.c (solaris_output_init_fini): Use it.
15568
15569 2010-03-31 Jie Zhang <jie@codesourcery.com>
15570
15571 PR 43574
15572 * opt-functions.awk (var_type_struct): Use signed char type
15573 for simple variables.
15574
15575 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15576
15577 * config/sol2.c: Include output.h.
15578 (solaris_assemble_visibility): New function.
15579 * config/t-sol2 (sol2.o): Add output.h dependency.
15580 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
15581 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
15582 Redefine.
15583
15584 2010-03-31 Jakub Jelinek <jakub@redhat.com>
15585
15586 PR target/43580
15587 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
15588 V2SImode or XFmode on PRE_DEC.
15589
15590 PR debug/43557
15591 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
15592 BLKmode.
15593
15594 2010-03-31 Jie Zhang <jie@codesourcery.com>
15595
15596 PR 43562
15597 * reload.h (caller_save_initialized_p): Declare.
15598 * toplev.c (backend_init_target): Don't call
15599 init_caller_save but set caller_save_initialized_p to false.
15600 * caller-save.c (caller_save_initialized_p): Define.
15601 (init_caller_save): Check caller_save_initialized_p.
15602 * ira.c (ira): Call init_caller_save if flag_caller_saves.
15603
15604 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15605
15606 PR target/39048
15607 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
15608 and soft-fp/t-softfp to tmake_file.
15609 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
15610 (LIBGCC2_TF_CEXT): Define.
15611 (TF_SIZE): Define.
15612
15613 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
15614
15615 PR debug/42977
15616 * cselib.c (n_useless_values): Document handling of debug locs.
15617 (n_useless_debug_values, n_debug_values): New variables.
15618 (new_elt_loc_list): Don't add to debug values, keep count.
15619 (promote_debug_loc): New.
15620 (cselib_reset_table): Zero new variables.
15621 (entry_and_rtx_equal_p): Promote debug locs.
15622 (discard_useless_locs): Increment n_useless_debug_values for
15623 debug values.
15624 (remove_useless_values): Adjust n_useless_values and n_debug_values
15625 with n_useless_debug_values.
15626 (add_mem_for_addr): Promote debug locs.
15627 (cselib_lookup_mem): Likewise.
15628 (cselib_lookup_addr): Renamed to...
15629 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
15630 (cselib_log_lookup): ... this. Turn into...
15631 (cselib_lookup_addr): ... new wrapper.
15632 (cselib_lookup_from_insn): New.
15633 (cselib_invalidate_regno): Increment n_useless_debug_values for
15634 debug values.
15635 (cselib_invalidate_mem): Likewise.
15636 (cselib_process_insn): Take n_deleted and n_debug_values into
15637 account to guard remove_useless_value call.
15638 (cselib_finish): Zero n_useless_debug_values.
15639 * cselib.h (cselib_lookup_from_insn): Declare.
15640 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
15641 (sched_analyze_2): Likewise.
15642
15643 2010-03-30 Jakub Jelinek <jakub@redhat.com>
15644
15645 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
15646 functions.
15647 (adjust_mems): Replace narrowing SUBREG of expression containing
15648 just PLUS, MINUS, MULT and ASHIFT of registers and constants
15649 with operations in the narrower mode.
15650
15651 PR debug/43593
15652 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
15653 regs_invalidated_by_call instead all call_used_reg_set registers.
15654
15655 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
15656
15657 PR middle-end/43430
15658 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
15659 pointer comparisons with types_compatible_p.
15660 * tree-vect-stmts.c (vectorizable_call): Same.
15661 (vectorizable_condition): Same.
15662
15663 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15664
15665 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
15666 stack check if the mask would be zero.
15667
15668 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
15669 Jack Howarth <howarth@bromo.med.uc.edu>
15670
15671 * tree-profile.c (tree_init_ic_make_global_vars): Make static
15672 variables TLS.
15673
15674 2010-03-30 Joseph Myers <joseph@codesourcery.com>
15675
15676 PR other/25232
15677 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
15678 and __unordtf2.
15679 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
15680 Include ___unordxf2 and ___unordtf2.
15681 * config/i386/libgcc-glibc.ver: Do not define inheritance from
15682 GCC_4.4.0 here.
15683
15684 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
15685
15686 * config/lm32/t-lm32: New file.
15687 * config.gcc: Use the above file when targetting lm32.
15688
15689 2010-03-28 Duncan Sands <baldrick@free.fr>
15690
15691 * Makefile.in (PLUGIN_HEADERS): Add except.h.
15692
15693 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
15694
15695 PR middle-end/43431
15696 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
15697 Improve vectorization cost model diagnostic.
15698
15699 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
15700
15701 PR middle-end/43436
15702 * tree-vect-data-refs.c (vect_analyze_data_refs): When
15703 compute_data_dependences_for_loop returns false, early exit
15704 and output an extra diagnostic for the failed data reference
15705 analysis.
15706
15707 2010-03-29 Richard Guenther <rguenther@suse.de>
15708
15709 PR tree-optimization/43560
15710 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
15711 (can_sm_ref_p): Treat stores to readonly locations as trapping.
15712
15713 2010-03-29 Jie Zhang <jie@codesourcery.com>
15714
15715 PR 43564
15716 * toplev.c (process_options): Set optimization_default_node
15717 and optimization_current_node.
15718 * opts.c (decode_options): Don't set optimization_default_node
15719 and optimization_current_node.
15720
15721 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
15722
15723 * config/rtems.h: Abandon -qrtems_debug.
15724
15725 2010-03-28 Jan Hubicka <jh@suse.cz>
15726
15727 PR tree-optimization/43505
15728 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
15729 map should not be copied.
15730
15731 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15732
15733 PR middle-end/41674
15734 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
15735 cdtors, set DECL_PRESERVE_P.
15736 * ipa.c (cgraph_externally_visible_p): Return true if declaration
15737 should be preseved.
15738
15739 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
15740
15741 PR tree-optimization/43528
15742 * stor-layout.c (place_field): Check that constant fits into
15743 unsigned HWI when skipping calculation of MS bitfield layout.
15744
15745 2010-03-27 Jan Hubicka <jh@suse.cz>
15746
15747 PR middle-end/43391
15748 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
15749 notice_global_symbol work.
15750
15751 2010-03-27 Jakub Jelinek <jakub@redhat.com>
15752
15753 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
15754 instead of dwarf2out_decl.
15755 (struct var_loc_node): Remove section_label field.
15756 (dwarf2out_function_decl): New function.
15757 (dwarf2out_var_location): Don't set section_label field.
15758 (dwarf2out_begin_function): Don't empty decl_loc_table here.
15759
15760 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
15761
15762 PR tree-optimization/43544
15763 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
15764 First argument for builtin vectorized function hook is now a
15765 tree to be able to distinguish between machine specific and
15766 standard builtins.
15767 * targhooks.c (default_builtin_vectorized_function): Ditto.
15768 * targhooks.h (default_builtin_vectorized_function): Ditto.
15769 * target.h (struct gcc_target): Ditto.
15770 * tree-vect-stmts.c (vectorizable_function): Ditto.
15771 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
15772 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
15773 Ditto.
15774
15775 2010-03-26 Joseph Myers <joseph@codesourcery.com>
15776
15777 PR c/43381
15778 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
15779 nested binding iff it is a FUNCTION_DECL.
15780 (store_parm_decls_newstyle): Pass nested=true to bind for
15781 FUNCTION_DECLs amongst parameters.
15782
15783 2010-03-26 Jakub Jelinek <jakub@redhat.com>
15784
15785 * var-tracking.c (vt_expand_loc_callback): Don't run
15786 cselib_expand_value_rtx_cb in dummy mode if
15787 cselib_dummy_expand_value_rtx_cb returned false.
15788
15789 * var-tracking.c (emit_note_insn_var_location): For one part
15790 notes with offset 0, don't add EXPR_LIST around the location.
15791 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
15792 add_location_or_const_value_attribute): Adjust for that change.
15793
15794 PR debug/43540
15795 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
15796 into first operand and location into second.
15797 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
15798 dw_cfi_oprnd_loc for DW_CFA_expression.
15799 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
15800 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
15801 assume first argument is regnum and second argument is location.
15802
15803 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
15804
15805 PR target/42113
15806 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
15807 of scratch register to DImode. Split to DImode comparison operator.
15808 Use SImode subreg of scratch register in the multiplication.
15809 (*cmp_sadd_sidi): Ditto.
15810 (*cmp_ssub_si): Ditto.
15811 (*cmp_ssub_sidi): Ditto.
15812
15813 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
15814
15815 PR target/43524
15816 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
15817 Remove invalid assert and wrong comment.
15818
15819 2010-03-26 Jakub Jelinek <jakub@redhat.com>
15820
15821 PR debug/43516
15822 * flags.h (final_insns_dump_p): New extern.
15823 * final.c (final_insns_dump_p): New variable.
15824 (rest_of_clean_state): Set it before -fdump-final-insns=
15825 dumping, clear afterwards.
15826 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
15827 MEM_ALIAS_SET on MEMs.
15828
15829 2010-03-26 David S. Miller <davem@davemloft.net>
15830
15831 * configure.ac: Fix sparc GOTDATA_OP bug check.
15832 * configure: Rebuild.
15833
15834 2010-03-26 Alan Modra <amodra@gmail.com>
15835
15836 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
15837
15838 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15839
15840 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
15841 TLS_SECTION_ASM_FLAG.
15842
15843 2010-03-25 Jakub Jelinek <jakub@redhat.com>
15844
15845 PR bootstrap/43511
15846 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
15847 Clear first_function_block_is_cold.
15848
15849 PR c/43385
15850 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
15851 argument if the argument is truth_value_p.
15852
15853 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
15854
15855 * config/rs6000/constraints.md: Update copyright year for my changes.
15856
15857 PR target/43484
15858 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
15859 used in reg+reg addressing, swap registers.
15860
15861 2010-03-24 Jakub Jelinek <jakub@redhat.com>
15862
15863 PR debug/43293
15864 * target.h (struct gcc_target): Add code_end hook.
15865 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
15866 if not yet defined.
15867 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
15868 * toplev.c (compile_file): Call targetm.asm_out.code_end
15869 hook before unwind info/debug info output.
15870 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
15871 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
15872 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
15873 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
15874 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
15875 * config/i386/i386.c (ix86_file_end): Renamed to...
15876 (ix86_code_end): ... this. Make static. Don't call
15877 file_end_indicate_exec_stack. Emit unwind info using
15878 final_start_function/final_end_function.
15879 (darwin_x86_file_end): Remove.
15880 (TARGET_ASM_CODE_END): Define.
15881 * config/i386/i386.h (TARGET_ASM_FILE_END,
15882 NEED_INDICATE_EXEC_STACK): Don't define.
15883 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
15884 (TARGET_ASM_FILE_END): Define to darwin_file_end.
15885 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
15886 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
15887
15888 PR target/43498
15889 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
15890 at the beginning and final_end_function at the end.
15891 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
15892
15893 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15894
15895 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
15896 and Sun as TLS syntax.
15897 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
15898 * configure: Regenerate.
15899 * config.in: Regenerate.
15900 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
15901 (default_elf_asm_named_section): Use it.
15902 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
15903 (i386_output_dwarf_dtprel): Likewise.
15904 (output_addr_const_extra): Likewise.
15905 (output_pic_addr_const): Lowercase @GOTTPOFF.
15906 (output_addr_const_extra): Likewise.
15907 (output_pic_addr_const): Lowercase @GOTNTPOFF.
15908 (output_addr_const_extra): Likewise.
15909 (output_pic_addr_const): Lowercase @INDNTPOFF.
15910 (output_addr_const_extra): Likewise.
15911 (output_pic_addr_const): Lowercase @NTPOFF.
15912 (output_addr_const_extra): Likewise.
15913 (output_pic_addr_const): Lowercase @TPOFF.
15914 (output_addr_const_extra): Likewise.
15915 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
15916 (*tls_global_dynamic_64): Likewise.
15917 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
15918 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
15919
15920 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
15921 (ASM_OUTPUT_TLS_COMMON): Use it.
15922 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
15923
15924 PR target/38118
15925 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
15926 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
15927 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
15928 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
15929 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
15930 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
15931
15932 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15933
15934 * config/i386/i386.c (override_options): Don't accept
15935 -mtls-dialect=sun any longer.
15936 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
15937 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
15938 (*tls_local_dynamic_base_32_sun): Likewise.
15939 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
15940
15941 2010-03-24 Jakub Jelinek <jakub@redhat.com>
15942
15943 PR debug/43508
15944 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
15945 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
15946
15947 PR debug/43479
15948 * ira.c (adjust_cleared_regs): New function.
15949 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
15950
15951 PR debug/19192
15952 PR debug/43479
15953 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
15954 from gimple_block.
15955 * expr.c (expand_expr_real): Restore previous
15956 curr_insn_source_location and curr_insn_block after
15957 expand_expr_real_1 call.
15958 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
15959 instead of expand_expr_real_1.
15960
15961 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
15962
15963 PR rtl-optimization/43413
15964 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
15965 hard regs too.
15966
15967 2010-03-22 James E. Wilson <wilson@codesourcery.com>
15968
15969 PR target/43348
15970 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
15971 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
15972
15973 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
15974
15975 * config/i386/i386.c (ix86_target_string): Add -mfma.
15976 Fix a typo in comment.
15977
15978 2010-03-22 Mike Stump <mikestump@comcast.net>
15979
15980 PR target/23071
15981 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
15982 Don't overly align based upon packed packed fields.
15983
15984 2010-03-22 Jason Merrill <jason@redhat.com>
15985
15986 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
15987 Use () rather than [], and move before the element type.
15988
15989 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15990
15991 * doc/configfiles.texi (Configuration Files): Removed
15992 fixinc/Makefile*, intl/Makefile.*.
15993 * doc/makefile.texi: Fixed markup. Abstract from version
15994 control system used.
15995 (Makefile): Removed obsolete gcc/java/parse.y example.
15996 * doc/sourcebuild.texi: Likewise.
15997 (Top Level): Added config, gnattools, libdecnumber, libgcc,
15998 libgomp, libssp. Removed fastjar.
15999 (Miscellaneous Docs): Clarify location.
16000 Added COPYING3, COPYING3.LIB.
16001 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
16002
16003 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16004
16005 PR target/38085
16006 * config/i386/i386.c (x86_function_profiler)
16007 [!NO_PROFILE_COUNTERS]: Fix typo.
16008 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
16009 instead of callq.
16010
16011 2010-03-22 Janis Johnson <janis187@us.ibm.com>
16012 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16013
16014 * doc/sourcebuild.texi (Test Directives): Split into six
16015 subsections, with most of the current text in new subsections
16016 Directives, Selectors, and Final Actions.
16017 (Directives): Split list of test directives into multiple
16018 subsubsections.
16019 (Selectors): Describe use and syntax of selectors.
16020 (Effective-Target Keywords): Describe all existing keywords.
16021 (Add Options): Describe features for dg-add-options.
16022 (Require Support): Describe variants of dg-require-support.
16023 (Final Actions): Describe commands to use in dg-final.
16024
16025 2010-03-22 Michael Matz <matz@suse.de>
16026
16027 PR middle-end/43475
16028 * recog.c (validate_replace_rtx_group): Replace also in
16029 REG_EQUAL and REG_EQUIV notes.
16030
16031 2010-03-22 Richard Guenther <rguenther@suse.de>
16032
16033 PR tree-optimization/43390
16034 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
16035 sure vector extracts are type correct.
16036
16037 2010-03-22 Richard Guenther <rguenther@suse.de>
16038
16039 PR middle-end/40106
16040 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
16041 x * sqrt (x) even when optimizing for size if the target
16042 has native support for sqrt.
16043
16044 2010-03-22 Jakub Jelinek <jakub@redhat.com>
16045
16046 * varasm.c (make_decl_rtl_for_debug): Also clear
16047 flag_mudflap for the duration of make_decl_rtl call.
16048
16049 PR debug/43443
16050 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
16051 locs from preserved VALUEs.
16052
16053 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16054
16055 PR middle-end/42718
16056 * pa.md (movmemsi): Set align to one if zero.
16057 (movmemdi): Likewise.
16058
16059 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
16060
16061 PR target/42321
16062 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
16063 with their corresponding prologue pushes.
16064
16065 2010-03-20 Andrew Pinski <pinskia@gmail.com>
16066
16067 PR target/43156
16068 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
16069 at the begining or end.
16070 (spu_expand_epilogue): Likewise.
16071
16072 2010-03-20 Richard Guenther <rguenther@suse.de>
16073
16074 PR rtl-optimization/43438
16075 * combine.c (make_extraction): Properly zero-/sign-extend an
16076 extraction of the low part of a CONST_INT. Also handle
16077 CONST_DOUBLE.
16078
16079 2010-03-19 Mike Stump <mikestump@comcast.net>
16080
16081 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
16082 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
16083 (override_options): Use SUBTARGET32_DEFAULT_CPU.
16084
16085 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
16086
16087 PR c/43211
16088 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
16089 an error.
16090
16091 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
16092
16093 PR rtl-optimization/42258
16094 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
16095 use that may match DEF.
16096
16097 PR target/40697
16098 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
16099 the cost of loading the constant rather than assuming
16100 COSTS_N_INSNS (1).
16101 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
16102 outer code is AND, do the same tests as the andsi3 expander and
16103 return COSTS_N_INSNS (1) if and is cheap.
16104
16105 * optabs.c (avoid_expensive_constant): Fix formatting.
16106
16107 2010-03-19 Michael Matz <matz@suse.de>
16108
16109 PR c++/43116
16110 * attribs.c (decl_attributes): When rebuilding a function pointer
16111 type use the same qualifiers as the original pointer type.
16112
16113 2010-03-19 Martin Jambor <mjambor@suse.cz>
16114
16115 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
16116 and is_gimple_ip_invariant_address.
16117
16118 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16119
16120 Revert
16121 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16122
16123 * config/arm/arm.c (arm_override_options): Turn off
16124 flag_dwarf2_cfi_asm for AAPCS variants.
16125
16126 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16127
16128 PR target/43399
16129 * config/arm/arm.c (emit_multi_reg_push): Update comments.
16130 Use PRE_MODIFY instead of PRE_DEC.
16131 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
16132 (vfp_emit_fstmd): Likewise.
16133
16134 2010-03-19 Michael Matz <matz@suse.de>
16135
16136 PR target/43305
16137 * builtins.c (expand_builtin_interclass_mathfn,
16138 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
16139 if that fails.
16140
16141 2010-03-19 Richard Guenther <rguenther@suse.de>
16142
16143 PR tree-optimization/43415
16144 * tree-ssa-pre.c (phi_translate): Split out worker to ...
16145 (phi_translate_1): ... this.
16146 (phi_translate): Move all caching here. Cache all NARY
16147 and REFERENCE translations.
16148
16149 2010-03-19 David S. Miller <davem@davemloft.net>
16150
16151 With help from Eric Botcazou.
16152 * config/sparc/sparc.c: Include dwarf2out.h.
16153 (emit_pic_helper): Delete.
16154 (pic_helper_symbol_name): Delete.
16155 (pic_helper_emitted_p): Delete.
16156 (pic_helper_needed): New.
16157 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
16158 (get_pc_thunk_name): New.
16159 (load_pic_register): Remove 'delay_pic_helper' arg. Use
16160 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
16161 Set pic_helper_needed to true. Don't call emit_pic_helper.
16162 (sparc_expand_prologue): Update load_pic_register call.
16163 (sparc_output_mi_thunk): Likewise.
16164 (sparc_file_end): Emit a hidden comdat symbol for the PIC
16165 thunk if possible. Output CFI information as needed.
16166
16167 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
16168 Jack Howarth <howarth@bromo.med.uc.edu>
16169
16170 PR target/36399
16171 * config/i386/i386.h: Fix ABI on darwin x86-32.
16172
16173 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
16174
16175 * tree.h: Declare make_decl_rtl_for_debug.
16176 * varasm.c (make_decl_rtl_for_debug): New.
16177 * dwarf2out.c (rtl_for_decl_location): Call it.
16178 * cfgexpand.c (expand_debug_expr): Call it.
16179
16180 2010-03-18 Jakub Jelinek <jakub@redhat.com>
16181
16182 PR bootstrap/43399
16183 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
16184 mem_mode.
16185
16186 PR bootstrap/43403
16187 * var-tracking.c (vt_init_cfa_base): Do nothing if
16188 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
16189
16190 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
16191
16192 PR debug/42873
16193 * var-tracking.c (canonicalize_vars_star): New.
16194 (dataflow_post_merge_adjust): Use it.
16195
16196 2010-03-18 Jakub Jelinek <jakub@redhat.com>
16197
16198 PR debug/43058
16199 * var-tracking.c (non_suitable_const): New function.
16200 (add_uses): For DEBUG_INSNs with constants, don't record any
16201 value, instead just the constant value itself.
16202 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
16203 is not VAR_LOC_UNKNOWN_P, set var to the constant.
16204 (emit_notes_in_bb): Likewise.
16205 (emit_note_insn_var_location): For onepart variables if
16206 cur_loc is a VOIDmode constant, use DECL_MODE.
16207
16208 2010-03-18 Martin Jambor <mjambor@suse.cz>
16209
16210 PR middle-end/42450
16211 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
16212 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
16213 all non-clones. Moved call redirection...
16214 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
16215 (cgraph_materialize_all_clones): Dispose of all
16216 combined_args_to_skip bitmaps.
16217 (verify_cgraph_node): Do not check for edges pointing to wrong
16218 nodes in inline clones.
16219 * tree-inline.c (copy_bb): Call
16220 cgraph_redirect_edge_call_stmt_to_callee.
16221 * ipa.c (cgraph_remove_unreachable_nodes): Call
16222 cgraph_node_remove_callees even when there are used clones.
16223
16224 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
16225
16226 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
16227
16228 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
16229
16230 PR target/43383
16231 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
16232 for 32bit.
16233
16234 2010-03-18 Michael Matz <matz@suse.de>
16235
16236 PR middle-end/43419
16237 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
16238 into sqrt(x) if we need to preserve signed zeros.
16239
16240 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
16241 Eric Botcazou <ebotcazou@adacore.com>
16242
16243 PR rtl-optimization/43360
16244 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
16245 note if we don't know its invariant status.
16246
16247 2010-03-18 Michael Matz <matz@suse.de>
16248
16249 PR tree-optimization/43402
16250 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
16251 PHI chains of ssa names registered for update.
16252
16253 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
16254
16255 PR target/42427
16256 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
16257 non-offsettable and pre_modify update addressing.
16258 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
16259 and "2" alternatives "#".
16260 (*movdd_softfloat32): Make all alternatives "#";
16261 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
16262 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
16263 (*movdf_softfloat32): Make all alternatives "#";
16264 (movdi): Use the new DIFD mode iterator to create a common splitter
16265 for movdi, movdf and movdd patterns.
16266
16267 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
16268
16269 * common.opt (dumpdir): Remove redundant tab.
16270
16271 2010-03-17 Martin Jambor <mjambor@suse.cz>
16272
16273 PR tree-optimization/43347
16274 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
16275 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
16276
16277 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
16278
16279 PR rtl-optimization/42216
16280 * regrename.c (create_new_chain): New function, broken out from...
16281 (scan_rtx_reg): ... here. Call it. Handle the case where we are
16282 appending a use to an empty chain.
16283 (build_def_use): Remove previous changes that convert OP_INOUT to
16284 OP_OUT operands; instead detect the case where an OP_INOUT operand
16285 uses a previously untracked register and create an empty chain for it.
16286
16287 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16288
16289 * doc/extend.texi (Function Attributes): Rewrite unfinished
16290 sentence in ms_abi documentation.
16291
16292 2010-03-17 Alan Modra <amodra@gmail.com>
16293
16294 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
16295 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
16296 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
16297 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
16298
16299 2010-03-16 Richard Henderson <rth@redhat.com>
16300
16301 PR middle-end/43365
16302 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
16303 (lower_try_finally): Save and restore eh_seq around the expansion
16304 of the try-finally.
16305
16306 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
16307
16308 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
16309 statements before splitting block.
16310
16311 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16312
16313 * doc/sourcebuild.texi (Testsuites): Fix markup.
16314 Use pathnames relative to gcc/testsuite.
16315 (Test Directives): Move description of how timeout is determined.
16316 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
16317 (C Tests): Correct gcc.misc-tests directory.
16318 Framework tests now live in gcc.test-framework.
16319
16320 2010-03-16 Richard Guenther <rguenther@suse.de>
16321
16322 PR middle-end/43379
16323 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
16324 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
16325
16326 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
16327 Alexandre Oliva <aoliva@redhat.com>
16328
16329 PR tree-optimization/42917
16330 * lambda-code.c (remove_iv): Skip debug statements.
16331 (lambda_loopnest_to_gcc_loopnest): Likewise.
16332 (not_interesting_stmt): Debug statements are not interesting.
16333
16334 2010-03-16 Jakub Jelinek <jakub@redhat.com>
16335
16336 PR debug/43051
16337 PR debug/43092
16338 * cselib.c (cselib_preserve_constants,
16339 cfa_base_preserved_val): New static variables.
16340 (preserve_only_constants): New function.
16341 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
16342 clear its REG_VALUES. If cselib_preserve_constants, don't
16343 empty the whole hash table, but preserve there VALUEs with constants,
16344 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
16345 (cselib_preserve_cfa_base_value): New function.
16346 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
16347 (cselib_init): Change argument to int bitfield. Set
16348 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
16349 is in it.
16350 (cselib_finish): Clear cselib_preserve_constants and
16351 cfa_base_preserved_val.
16352 * cselib.h (enum cselib_record_what): New enum.
16353 (cselib_init): Change argument to int.
16354 (cselib_preserve_cfa_base_value): New prototype.
16355 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
16356 * dse.c (dse_step1): Likewise.
16357 * cfgcleanup.c (thread_jump): Likewise.
16358 * sched-deps.c (sched_analyze): Likewise.
16359 * gcse.c (local_cprop_pass): Likewise.
16360 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
16361 If FN is non-NULL, call the callback always and whenever it returns
16362 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
16363 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
16364 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
16365 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
16366 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
16367 * var-tracking.c: Include recog.h.
16368 (bb_stack_adjust_offset): Remove.
16369 (vt_stack_adjustments): Don't call it, instead just gather the
16370 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
16371 (adjust_stack_reference): Remove.
16372 (compute_cfa_pointer): New function.
16373 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
16374 (struct adjust_mem_data): New type.
16375 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
16376 functions.
16377 (get_address_mode): New function.
16378 (replace_expr_with_values): Use it.
16379 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
16380 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
16381 (adjust_sets): Remove.
16382 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
16383 Use get_address_mode.
16384 (get_adjusted_src): Remove.
16385 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
16386 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
16387 (add_with_sets): Don't call adjust_sets.
16388 (fp_setter, vt_init_cfa_base): New functions.
16389 (vt_initialize): Change return type to bool. Move most of pool etc.
16390 initialization to the beginning of the function from end. Pass
16391 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
16392 If !frame_pointer_needed, call vt_stack_adjustment before mos
16393 vector is filled, call vt_init_cfa_base if argp/framep has been
16394 eliminated to sp. If frame_pointer_needed and argp/framep has
16395 been eliminated to hard frame pointer, set
16396 hard_frame_pointer_adjustment and call vt_init_cfa_base after
16397 encountering fp setter in the prologue. For MO_ADJUST, call
16398 log_op_type before pusing the op into mos vector, not afterwards.
16399 Call adjust_insn before cselib_process_insn/add_with_sets,
16400 call cancel_changes (0) afterwards.
16401 (variable_tracking_main_1): Adjust for vt_initialize calling
16402 vt_stack_adjustments and returning whether it succeeded or not.
16403
16404 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
16405
16406 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
16407 debug statements.
16408
16409 2010-03-15 Jakub Jelinek <jakub@redhat.com>
16410
16411 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
16412 has been set.
16413 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
16414 drap_reg has not been set.
16415
16416 2010-03-15 Michael Matz <matz@suse.de>
16417
16418 PR middle-end/43300
16419 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
16420 use it to expand block copies.
16421 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
16422 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
16423 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
16424
16425 2010-03-15 Richard Guenther <rguenther@suse.de>
16426
16427 PR tree-optimization/43367
16428 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
16429 elimination check.
16430
16431 2010-03-15 Richard Guenther <rguenther@suse.de>
16432
16433 PR tree-optimization/43317
16434 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
16435
16436 2010-03-15 Martin Jambor <mjambor@suse.cz>
16437
16438 PR tree-optimization/43141
16439 * tree-sra.c (create_abstract_origin): New function.
16440 (modify_function): Call create_abstract_origin.
16441
16442 2010-03-15 Chris Demetriou <cgd@google.com>
16443
16444 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
16445 wasn't copied.
16446
16447 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16448
16449 PR middle-end/43354
16450 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
16451 call insert_out_of_ssa_copy for default definitions.
16452
16453 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16454
16455 * graphite-clast-to-gimple.c (my_long_long): Defined.
16456 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
16457 * graphite-sese-to-poly.c (my_long_long): Defined.
16458 (scop_ivs_can_be_represented): Use it.
16459
16460 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16461
16462 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
16463 graphite-max-bbs-per-function, and loop-block-tile-size.
16464 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
16465 with "maximum".
16466 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
16467
16468 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16469
16470 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
16471 forward declaration.
16472 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
16473 (add_upper_bounds_from_estimated_nit): New.
16474 (build_loop_iteration_domains): Use it.
16475
16476 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16477
16478 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
16479
16480 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16481
16482 PR middle-end/43306
16483 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
16484 should be an INTEGER_CST. Also handle CASE_CONVERT.
16485
16486 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16487
16488 * graphite.c (graphite_initialize): To bound the number of bbs per
16489 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
16490 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
16491 * doc/invoke.texi: Document it.
16492
16493 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16494
16495 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
16496 * graphite-sese-to-poly.h (build_poly_scop): Same.
16497
16498 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
16499
16500 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
16501 the number of parameters in the scop. Use as an upper bound
16502 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
16503 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
16504 * doc/invoke.texi: Document it.
16505
16506 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
16507
16508 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
16509 * doc/c-tree.texi: Remove.
16510 * doc/generic.texi: Merge c-tree.texi here.
16511 * doc/gccint.texi (Trees): Remove menu entry.
16512 (c-tree.texi): Remove @include.
16513 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
16514 * doc/languages.texi (Reading RTL): Ditto.
16515
16516 2010-03-12 Steve Ellcey <sje@cup.hp.com>
16517
16518 PR target/42869
16519 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
16520
16521 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
16522
16523 PR middle-end/42431
16524 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
16525 code added to work around reload clobbering CONST insns.
16526
16527 2010-03-12 Jakub Jelinek <jakub@redhat.com>
16528
16529 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
16530 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
16531 (cselib_preserve_only_values): Remove retain argument, don't
16532 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
16533 * cselib.h (cselib_preserve_only_values): Remove retain argument.
16534 * var-tracking.c (micro_operation): Move insn field before union.
16535 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
16536 (struct variable_tracking_info_def): Remove n_mos field, change
16537 mos into a vector of micro_operations.
16538 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
16539 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
16540 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
16541 changing into a vector.
16542 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
16543 come before all other uops generated by add_stores.
16544 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
16545 argument removal.
16546 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
16547 a vector. Run just one pass over the bbs instead of separate counting
16548 and computation phase.
16549 (vt_finalize): Free VTI (bb)->mos vector instead of array.
16550
16551 PR debug/43329
16552 * tree-inline.c (remap_decls): Put old_var rather than origin_var
16553 into *nonlocalized_list vector.
16554 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
16555 even if origin is non-NULL.
16556 (gen_variable_die): Likewise.
16557 (process_scope_var): Don't change origin.
16558 (gen_decl_die): Likewise.
16559 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
16560 before adding new edges instead of after it, fix moving over
16561 debug stmts.
16562
16563 2010-03-11 David S. Miller <davem@davemloft.net>
16564
16565 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
16566 of four.
16567 * configure: Rebuild.
16568
16569 2010-03-11 Martin Jambor <mjambor@suse.cz>
16570
16571 PR tree-optimization/43257
16572 * tree.c (assign_assembler_name_if_neeeded): New function.
16573 (free_lang_data_in_cgraph): Assembler name assignment moved to the
16574 above new function.
16575 * tree.h (assign_assembler_name_if_neeeded): Declare.
16576 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
16577 the function if needed.
16578
16579 2010-03-11 Chris Demetriou <cgd@google.com>
16580
16581 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
16582 include/stdint-gcc.h, and include/stdint.h world-readable.
16583
16584 2010-03-11 Richard Guenther <rguenther@suse.de>
16585
16586 PR tree-optimization/43255
16587 * tree-vrp.c (process_assert_insertions_for): Do not insert
16588 asserts for trivial conditions.
16589
16590 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16591
16592 PR tree-optimization/43280
16593 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
16594 generation. Move calculation of size out of the if branch.
16595 (find_bswap): Modify compare number generation.
16596
16597 2010-03-11 Richard Guenther <rguenther@suse.de>
16598
16599 PR lto/43200
16600 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
16601 (input_gimple_stmt): Fixup handled component types during
16602 operand read. Also fix up decls in ADDR_EXPRs.
16603
16604 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
16605
16606 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
16607 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
16608
16609 2010-03-10 Jan Hubicka <jh@suse.cz>
16610
16611 PR c/43288
16612 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
16613 * varasm.c (get_variable_section): Don't do that here...
16614 (make_decl_rtl): ... and here.
16615 (do_assemble_alias): Produce decl RTL.
16616 (assemble_alias): Likewise.
16617
16618 2010-03-10 Jakub Jelinek <jakub@redhat.com>
16619
16620 PR debug/43290
16621 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
16622 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
16623 of fde->vdrap_reg.
16624 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
16625 (based_loc_descr): Only express drap or vdrap regno based expressions
16626 using DW_OP_fbreg when not optimizing.
16627 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
16628 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
16629 REG_CFA_SET_VDRAP note.
16630
16631 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
16632
16633 PR tree-optimization/43236
16634 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
16635 error in calculation of base address in reverse iteration case.
16636 (generate_builtin): Take number of latch executions if the statement
16637 is in the latch.
16638
16639 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
16640
16641 PR middle-end/42859
16642 * tree-eh.c: Include pointer-set.h.
16643 (lower_eh_dispatch): Filter out duplicate case labels and
16644 remove the unneeded edge when the label is unused. Return
16645 true when some edges are removed.
16646 (execute_lower_eh_dispatch): When any lowering resulted in
16647 removing an edge, also delete unreachable blocks.
16648
16649 2010-03-10 Jakub Jelinek <jakub@redhat.com>
16650
16651 PR bootstrap/43287
16652 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
16653 UNSPEC_MACHOPIC_OFFSET.
16654
16655 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
16656
16657 PR target/43294
16658 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
16659 (m68k_delegitimize_address): New function.
16660
16661 2010-03-09 Jakub Jelinek <jakub@redhat.com>
16662
16663 PR debug/43299
16664 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
16665
16666 PR debug/43299
16667 * var-tracking.c (adjust_sets): New function.
16668 (count_with_sets, add_with_sets): Use it.
16669 (get_adjusted_src): New inline function.
16670 (add_stores): Use it.
16671
16672 PR debug/43304
16673 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
16674 call cselib_dummy_expand_value_rtx_cb instead of
16675 cselib_expand_value_rtx_cb.
16676
16677 PR debug/43293
16678 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
16679 * config/i386/i386.c: Include debug.h and dwarf2out.h.
16680 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
16681 and .cfi_endproc around the pic thunks.
16682 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
16683 all queued unwind info register saves are saved before the call.
16684 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
16685 considered as sp-=4 for unwind info and the pop as sp+=4 which
16686 also clobbers dest, but doesn't actually restore it.
16687
16688 PR debug/43290
16689 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
16690 RTX_FRAME_RELATED_P.
16691
16692 2010-03-09 Jie Zhang <jie@codesourcery.com>
16693
16694 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
16695 whitespaces in output template.
16696
16697 2010-03-09 Jie Zhang <jie@codesourcery.com>
16698
16699 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
16700 out array boundary.
16701
16702 2010-03-08 Jakub Jelinek <jakub@redhat.com>
16703
16704 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
16705 builtins.exp in a separate job.
16706
16707 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16708
16709 * graphite-sese-to-poly.c (add_param_constraints): Use
16710 lower_bound_in_type and upper_bound_in_type.
16711
16712 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16713
16714 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
16715 instead of unsigned_type_node.
16716
16717 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16718 Reza Yazdani <reza.yazdani@amd.com>
16719
16720 PR middle-end/43065
16721 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
16722 on pointer type parameters.
16723
16724 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
16725
16726 PR middle-end/42644
16727 PR middle-end/42130
16728 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
16729 handle conversions from pointer to integers.
16730 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
16731 induction variable, to be able to work with code generated by CLooG.
16732 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
16733 (build_poly_scop): Bail out if we cannot codegen a loop.
16734
16735 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
16736
16737 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
16738 code generation with gloog_error.
16739
16740 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16741
16742 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
16743 Call fold_convert on all the returned values.
16744 (expand_scalar_variables_expr): Pass to
16745 expand_scalar_variables_ssa_name the type of the resulting expression.
16746
16747 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16748
16749 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
16750 ppl_min_for_le_pointset.
16751 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
16752 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
16753
16754 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16755
16756 * graphite-dependences.c (map_into_dep_poly): Removed.
16757 (dependence_polyhedron_1): Use combine_context_id_scat.
16758
16759 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16760
16761 * graphite-poly.h (struct poly_scattering): Add layout documentation.
16762 (struct poly_bb): Same.
16763 (combine_context_id_scat): New.
16764
16765 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16766
16767 PR middle-end/42326
16768 * sese.c (name_defined_in_loop_p): Return false for default
16769 definitions.
16770
16771 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16772
16773 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
16774 and clean up the logic.
16775
16776 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
16777
16778 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
16779 early return.
16780
16781 2010-03-08 Jakub Jelinek <jakub@redhat.com>
16782
16783 * var-tracking.c (remove_cselib_value_chains): Define only for
16784 ENABLE_CHECKING.
16785 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
16786 delete_slot_part, emit_notes_for_differences_1): Don't call
16787 remove_cselib_value_chains here.
16788 (set_slot_part, emit_notes_for_differences_2): Don't call
16789 add_cselib_value_chains here.
16790 (preserved_values): New vector.
16791 (preserve_value): New function.
16792 (add_uses, add_stores, vt_add_function_parameters): Use it
16793 instead of cselib_preserve_value.
16794 (changed_values_stack): New vector.
16795 (check_changed_vars_0): New function.
16796 (check_changed_vars_1, check_changed_vars_2): Use it.
16797 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
16798 changed_values_stack VALUEs.
16799 (vt_emit_notes): For all preserved_values call
16800 add_cselib_value_chains. If ENABLE_CHECKING call
16801 remove_cselib_value_chains before verifying value_chains is empty.
16802 Initialize and free changed_values_stack.
16803 (vt_initialize): Initialize preserved_values.
16804 (vt_finalize): Free preserved_values.
16805
16806 2010-03-08 Richard Guenther <rguenther@suse.de>
16807
16808 PR tree-optimization/43269
16809 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
16810 region detection.
16811
16812 2010-03-08 Martin Jambor <mjambor@suse.cz>
16813
16814 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
16815 (ipa_is_param_called): Removed.
16816 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
16817 (ipa_print_node_params): Do not print the called flag.
16818 (ipa_write_node_info): Do not stream the called flag.
16819 (ipa_read_node_info): Likewise.
16820
16821 2010-03-07 Jakub Jelinek <jakub@redhat.com>
16822
16823 PR debug/43176
16824 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
16825 * cselib.c (struct expand_value_data): Add dummy field.
16826 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
16827 dummy to false.
16828 (cselib_dummy_expand_value_rtx_cb): New function.
16829 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
16830 any rtl.
16831 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
16832 * var-tracking.c: Include pointer-set.h.
16833 (variable): Change n_var_parts to char from int. Add
16834 cur_loc_changed and in_changed_variables fields.
16835 (variable_canonicalize): Remove.
16836 (shared_var_p): New inline function.
16837 (unshare_variable): Maintain cur_loc_changed and
16838 in_changed_variables fields. If var was in changed_variables,
16839 replace it there with new_var. Just copy cur_loc instead of
16840 resetting it to something else.
16841 (variable_union): Don't recompute cur_loc. Use shared_var_p.
16842 (dataflow_set_union): Don't call variable_canonicalize.
16843 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
16844 of their DEBUG_EXPR_TREE_DECLs.
16845 (canonicalize_loc_order_check): Verify that cur_loc is NULL
16846 and in_changed_variables and cur_loc_changed is false.
16847 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
16848 and cur_loc_changed. Don't update cur_loc here.
16849 (variable_merge_over_src): Don't call variable_canonicalize.
16850 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
16851 removing loc that is equal to cur_loc, clear cur_loc,
16852 set cur_loc_changed and ensure variable_was_changed is called.
16853 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
16854 compare pointers in cur_loc check, if it is equal to loc,
16855 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
16856 (variable_different_p): Remove compare_current_location argument,
16857 don't compare cur_loc.
16858 (dataflow_set_different_1): Adjust variable_different_p caller.
16859 (variable_was_changed): If dv had some var in changed_variables
16860 already, reset in_changed_variables flag for it and propagate
16861 cur_loc_changed over to the new variable. On empty var
16862 always set cur_loc_changed. Set in_changed_variables on whatever
16863 var is added to changed_variables.
16864 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
16865 Use shared_var_p. When removing loc that is equal to cur_loc,
16866 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
16867 end, don't set it to something else, just call variable_was_changed.
16868 (delete_slot_part): Use shared_var_p. When cur_loc equals to
16869 loc being removed, clear cur_loc and set cur_loc_changed.
16870 Set cur_loc_changed if all locations have been removed.
16871 (struct expand_loc_callback_data): New type.
16872 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
16873 allocated. Always create SUBREGs if simplify_subreg failed.
16874 Prefer to use cur_loc, when that fails and still in
16875 changed_variables (and seen first time) recompute it. Set
16876 cur_loc_changed of variables which had to change cur_loc and
16877 compute elcd->cur_loc_changed if any of the subexpressions used
16878 had to change cur_loc.
16879 (vt_expand_loc): Adjust to pass arguments in
16880 expand_loc_callback_data structure.
16881 (vt_expand_loc_dummy): New function.
16882 (emitted_notes): New variable.
16883 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
16884 that weren't used for any other decl in current
16885 emit_notes_for_changes call call vt_expand_loc_dummy to update
16886 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
16887 first loc_chain location if NULL before. Always use just
16888 cur_loc instead of first loc_chain location. When cur_loc_changed
16889 is false, when not --enable-checking=rtl just don't emit any note.
16890 When rtl checking, compute the note and assert it is the same
16891 as previous note. Clear cur_loc_changed and in_changed_variables
16892 at the end before removing from changed_variables.
16893 (check_changed_vars_3): New function.
16894 (emit_notes_for_changes): Traverse changed_vars to call
16895 check_changed_vars_3 on each changed var.
16896 (emit_notes_for_differences_1): Clear cur_loc_changed and
16897 in_changed_variables. Recompute cur_loc of new_var.
16898 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
16899 (vt_emit_notes): Initialize and destroy emitted_notes.
16900
16901 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
16902
16903 PR rtl-optimization/42220
16904 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
16905 Use verify_reg_tracked to determine if we should use OP_OUT rather
16906 than OP_INOUT.
16907 (build_def_use): If we see an in-out operand for a register that we
16908 know nothing about, treat is an output if possible, fail the block if
16909 not.
16910
16911 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
16912
16913 PR debug/42897
16914 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
16915 permanently.
16916
16917 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
16918
16919 PR debug/42897
16920 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
16921 uses of relevant DEFs that are dead outside the loop too.
16922
16923 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
16924
16925 * var-tracking.c (dataflow_set_merge): Swap src and src2.
16926 Reverted:
16927 2010-01-13 Jakub Jelinek <jakub@redhat.com>
16928 PR debug/41371
16929 * var-tracking.c (values_to_unmark): New variable.
16930 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
16931 values_to_unmark vector. Moved body to...
16932 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
16933 instead queue it into values_to_unmark vector.
16934 (vt_find_locations): Free values_to_unmark vector.
16935
16936 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
16937
16938 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
16939 (site.exp): Export them when plugins are enabled.
16940
16941 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
16942
16943 PR middle-end/42326
16944 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
16945 that contain scevs.
16946 (chrec_fold_multiply): Same.
16947
16948 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
16949
16950 PR c/43248
16951 * c-decl.c (build_compound_literal): Return early if init is
16952 an error_mark_node.
16953
16954 2010-03-04 Martin Jambor <mjambor@suse.cz>
16955
16956 PR tree-optimization/43164
16957 PR tree-optimization/43191
16958 * tree-sra.c (type_consists_of_records_p): Reject records with
16959 zero-size bit-fields at the end.
16960
16961 2010-03-04 Mike Stump <mikestump@comcast.net>
16962
16963 * Makefile.in (TAGS): Remove *.y.
16964
16965 2010-03-04 Richard Guenther <rguenther@suse.de>
16966
16967 PR tree-optimization/40761
16968 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
16969 in reverse order.
16970 (my_rev_post_order_compute): New function.
16971 (init_pre): Call it.
16972
16973 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
16974
16975 PR middle-end/43209
16976 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
16977 decrease the cost of an IV candidate when the cost is infinite.
16978
16979 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16980
16981 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
16982 Use '3DNow!' for the extension of that name, ensure normal space
16983 after the string.
16984 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
16985
16986 2010-03-03 Jeff Law <law@redhat.com>
16987
16988 * PR middle-end/32693
16989 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
16990 than gen_rtx_SUBREG.
16991 (extract_bit_field_1): Likewise.
16992
16993 2010-03-03 Janis Johnson <janis187@us.ibm.com>
16994
16995 * doc/sourcebuild.texi (Test directives): Document that arguments
16996 include-opts and exclude-opts are now optional for dg-skip-if,
16997 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
16998
16999 2010-03-03 Jason Merrill <jason@redhat.com>
17000
17001 PR c++/12909
17002 * cgraph.h (varpool_node): Add extra_name field.
17003 * varpool.c (varpool_extra_name_alias): New.
17004 (varpool_assemble_decl): Emit extra name aliases.
17005 (varpool_mark_needed_node): Look past an extra name alias.
17006 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
17007 * lto-streamer-in.c (lto_input_tree): Read it.
17008 * lto-streamer-out.c (output_unreferenced_globals): Write it.
17009
17010 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
17011
17012 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
17013 (sparc*-*-solaris2*): ...this.
17014
17015 2010-03-03 Jakub Jelinek <jakub@redhat.com>
17016
17017 PR debug/43229
17018 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
17019 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
17020 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
17021 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
17022
17023 PR debug/43237
17024 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
17025 fallthrough to default handling, just with want_address 0 instead of 2.
17026 For single element lists, add_AT_loc directly, otherwise create an
17027 artificial variable DIE and stick location list to it.
17028
17029 PR debug/43177
17030 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
17031 (VAL_EXPR_HAS_REVERSE): Define.
17032 (reverse_op): New function.
17033 (add_stores): For reversible operations add an extra MO_VAL_USE.
17034
17035 2010-03-02 Jason Merrill <jason@redhat.com>
17036
17037 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
17038
17039 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
17040
17041 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
17042 (sparc64-*-linux*): Likewise.
17043 (sparc64-*-solaris2*): Include assembler files before linker ones.
17044 (sparc-*-solaris2*): Simplify and reorder to match previous case.
17045 * config/sparc/gas.h: Delete.
17046 * config/sparc/sol2-64.h: Add copyright notice.
17047 * config/sparc/sol2-gas-bi.h: Likewise.
17048 * config/sparc/sol2-gld.h: Likewise.
17049 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
17050 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
17051 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
17052 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
17053 (sparc_elf_asm_named_section): Rename into...
17054 (sparc_solaris_elf_asm_named_section): ...this. Always define.
17055
17056 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
17057
17058 * config/alpha/alpha.c (override_options): Fix -mtune error message.
17059
17060 2010-03-02 Jeff Law <law@redhat.com>
17061
17062 PR middle-end/42431
17063 * reload1.c (rtx_p, substitute_stack): Declare.
17064 (substitute): Record addresses of changed rtxs.
17065 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
17066 Restore the original rtx when complete.
17067 (reload): Free subsitute_stack when complete.
17068
17069 2010-03-02 Janis Johnson <janis187@us.ibm.com>
17070
17071 * doc/gccint.texi (menu): Add Testsuites as a chapter.
17072 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
17073 new chapter.
17074 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
17075 LTO Testing, gcov Testing, profopt Testing, compat Testing,
17076 Torture Tests): Change from subsection to section.
17077
17078 2010-03-02 Jakub Jelinek <jakub@redhat.com>
17079 Steven Bosscher <steven@gcc.gnu.org>
17080
17081 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
17082 instead of bb.
17083
17084 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
17085
17086 PR middle-end/42640
17087 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
17088 the assignment from the new induction variable to the assignment
17089 of the value from the original loop PHI function.
17090
17091 2010-03-01 Janis Johnson <janis187@us.ibm.com>
17092 Daniel Jacobowitz <dan@codesourcery.com>
17093
17094 * doc/sourcebuild.texi (Test directives): Clarify options to
17095 dg-skip-if.
17096
17097 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17098
17099 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
17100 Disable cfi directives unless GCC and gas agree on using read-only
17101 .eh_frame sections for 64-bit.
17102 * configure: Regenerate.
17103
17104 2010-03-01 Richard Guenther <rguenther@suse.de>
17105
17106 PR tree-optimization/43220
17107 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
17108 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
17109
17110 2010-03-01 Richard Guenther <rguenther@suse.de>
17111 Martin Jambor <mjambor@suse.cz>
17112
17113 PR middle-end/41250
17114 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
17115 gimplified parameters.
17116
17117 2010-03-01 Christian Bruel <christian.bruel@st.com>
17118
17119 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
17120
17121 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
17122
17123 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
17124
17125 2010-03-01 Richard Guenther <rguenther@suse.de>
17126
17127 PR middle-end/43213
17128 * expr.c (expand_assignment): Use the alias-oracle to tell
17129 if the rhs aliases the result decl.
17130
17131 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17132
17133 PR pch/14940
17134 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
17135 to sol_gt_pch_get_address.
17136 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
17137 64-bit, SPARC and x86.
17138 (sol_gt_pch_get_address): New function.
17139
17140 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
17141
17142 * toplev.h (inform_n, error_n): Declare.
17143 * diagnostic.c (inform_n, error_n): New function.
17144
17145 2010-03-01 Jakub Jelinek <jakub@redhat.com>
17146
17147 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
17148 has no rtl yet when processing local_decls, queue it and recheck
17149 if deferred stack allocation hasn't assigned it rtl.
17150
17151 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
17152
17153 * config/sh/sh.c (unspec_bbr_uid): New.
17154 (gen_block_redirect): Use it instead of INSN_UID.
17155 (gen_far_branch): Likewise.
17156
17157 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
17158
17159 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
17160 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
17161
17162 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17163
17164 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
17165 (Warning Options): -Wno-conversion-null is valid for
17166 Objective-C++ as well.
17167 * doc/tm.texi (Named Address Spaces): Likewise.
17168 * doc/plugins.texi (Plugins): Replace TABs with spaces.
17169 * doc/tree-ssa.texi (Tree SSA): Likewise.
17170
17171 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
17172
17173 PR bootstrap/43202
17174 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
17175 by default. Don't set the default arch for
17176 i[34567]86-*-darwin*|x86_64-*-darwin*.
17177
17178 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
17179
17180 PR bootstrap/43202
17181 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
17182 default. Set the default 32bit/64bit archs with $with_arch
17183 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
17184
17185 2010-02-27 Richard Guenther <rguenther@suse.de>
17186
17187 PR tree-optimization/43186
17188 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
17189 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
17190 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
17191 unroller iterations.
17192
17193 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
17194
17195 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
17196 required and i[34567]86-*-* targets don't support 64bit ISA.
17197
17198 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
17199
17200 PR ada/43096
17201 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
17202 the same alias set.
17203
17204 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
17205
17206 * config.gcc: Set the default arch at least to Prescott for
17207 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
17208 if SSE math is enabled.
17209
17210 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
17211
17212 * diagnostic.c (diagnostic_initialize): Update.
17213 (diagnostic_report_diagnostic): Test inhibit_notes_p for
17214 informative notes.
17215 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
17216 (diagnostic_inhibit_notes): New.
17217 * toplev.c (process_options): inhibit notes with -fcompare-debug.
17218
17219 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
17220
17221 PR c/20631
17222 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
17223 * doc/standards.texi: Likewise.
17224 * doc/extend.texi: Likewise.
17225 * doc/trouble.texi: Likewise.
17226 * doc/cppopts.texi: Likewise.
17227 * doc/install.texi: Likewise.
17228 * c.opt (std=c90,std=gnu90): New options.
17229 * c-opts.c (c_common_handle_option): Handle them.
17230
17231 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
17232
17233 PR c/24577
17234 * c-decl.c (undeclared_variable): Use an informative note.
17235
17236 2010-02-26 Richard Guenther <rguenther@suse.de>
17237
17238 PR tree-optimization/43186
17239 * gimple.h (gimple_fold): Remove.
17240 * gimple.c (gimple_fold): Remove. Inline into single user ...
17241 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
17242 Try harder for conditions.
17243
17244 2010-02-26 Jakub Jelinek <jakub@redhat.com>
17245
17246 PR debug/43190
17247 * function.c (used_types_insert): Don't skip through named pointer
17248 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
17249 and it is different from the main variant's type.
17250
17251 2010-02-26 Nick Clifton <nickc@redhat.com>
17252
17253 * config/rx/rx.md (sminsi3): Remove bogus alternative.
17254
17255 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
17256
17257 * config.gcc: Support --with-fpmath=sse for x86.
17258
17259 * config/i386/ssemath.h: New.
17260
17261 * doc/install.texi (--with-fpmath=sse): Documented.
17262
17263 2010-02-26 Richard Guenther <rguenther@suse.de>
17264
17265 PR tree-optimization/43188
17266 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
17267 vector types of over-aligned element type.
17268
17269 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
17270
17271 PR target/43175
17272 * config/i386/i386.c (expand_vec_perm_blend): Use correct
17273 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
17274
17275 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
17276
17277 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
17278
17279 2010-02-26 Jakub Jelinek <jakub@redhat.com>
17280
17281 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
17282 * var-tracking.c: Include diagnostic.h.
17283 (debug_dv): New function.
17284 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
17285
17286 PR debug/43160
17287 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
17288 (add_value_chain, add_value_chains, remove_value_chain,
17289 remove_value_chains): Handle DEBUG_EXPRs.
17290 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
17291
17292 PR debug/43161
17293 * regcprop.c (struct queued_debug_insn_change): New type.
17294 (struct value_data_entry): Add debug_insn_changes field.
17295 (struct value_data): Add n_debug_insn_changes field.
17296 (debug_insn_changes_pool): New variable.
17297 (free_debug_insn_changes, apply_debug_insn_changes,
17298 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
17299 (kill_value_one_regno): Call free_debug_insn_changes if needed.
17300 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
17301 fields.
17302 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
17303 changes for them.
17304 (copyprop_hardreg_forward_1): Don't call apply_change_group for
17305 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
17306 changes, call cprop_find_used_regs via note_stores.
17307 (copyprop_hardreg_forward): When copying vd from predecessor
17308 which has any queued DEBUG_INSN changes, make sure the pointers are
17309 cleared. At the end call df_analyze and then if there are any
17310 DEBUG_INSN changes queued at the end of some basic block for still
17311 live registers, apply them.
17312 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
17313
17314 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
17315
17316 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
17317 (arm*-*-*): Ditto.
17318
17319 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
17320
17321 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
17322 targets. Set the default with_cpu/with_arch from arch/cpu.
17323 Allow x86-64 and native for with_cpu/with_arch.
17324
17325 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
17326
17327 * ebitmap.c: Change calls to verify_popcount with calls to
17328 sbitmap_verify_popcount.
17329 (ebitmap_clear_bit): Fixed map->cacheindex test and
17330 map>cache update when bit clearing results in an empty
17331 element.
17332
17333 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
17334
17335 PR target/43154
17336 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
17337 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
17338 and support both V2DF and V2DI modes.
17339 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
17340 support both V2DF and V2DI modes.
17341 (general): Delete trailing whitespace from a few patterns.
17342
17343 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17344 V2DF/V2DI interleave high/low builtins.
17345
17346 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
17347 new VSX builtins.
17348
17349 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
17350 interleave high/low functions.
17351
17352 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
17353
17354 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
17355 #pragma extern_prefix.
17356
17357 2010-02-25 Jakub Jelinek <jakub@redhat.com>
17358
17359 PR debug/43166
17360 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
17361 BLKmode, assert op0 is a MEM and just adjust its mode.
17362
17363 PR debug/43165
17364 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
17365 if bitpos isn't multiple of mode's bitsize.
17366
17367 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
17368
17369 * c.opt (-ftemplate-depth=): New.
17370 (-ftemplate-depth-): Deprecate.
17371 * optc-gen.awk: Handle -ftemplate-depth=.
17372 * opth-gen.awk: Likewise.
17373 * c-opts.c (c_common_handle_option): Likewise.
17374 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
17375
17376 2010-02-24 Jason Merrill <jason@redhat.com>
17377
17378 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
17379
17380 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17381
17382 * cfg.c (alloc_aux_for_block): Remove inline.
17383 (alloc_aux_for_edge): Likewise.
17384
17385 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17386
17387 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
17388
17389 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17390
17391 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
17392 * config/i386/sol2-gas.h: New file.
17393 * config.gcc (i[34567]86-*-solaris2*): Use it.
17394
17395 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
17396
17397 PR c/43128
17398 * c-typeck.c (ep_convert_and_check): New.
17399 (build_conditional_expr): Use it.
17400 (build_binary_op): Likewise.
17401
17402 2010-02-24 Jakub Jelinek <jakub@redhat.com>
17403
17404 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
17405
17406 PR debug/43150
17407 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
17408 bounds even for -O+.
17409 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
17410 expr needs to have DECL_NAME set.
17411
17412 2010-02-24 Nick Clifton <nickc@redhat.com>
17413
17414 * config/mep/mep.c: Include gimple.h.
17415 (mep_function_uses_sp): Delete unused function.
17416 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
17417 parameters. Use unsigned integers to count args. Return a
17418 NULL_RTX instead of an error_mark_node. Toidy up formatting.
17419
17420 2010-02-23 Jakub Jelinek <jakub@redhat.com>
17421
17422 PR target/43107
17423 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
17424 greater or equal to nelt instead of 2 * nelt.
17425 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
17426 with nelt - 1.
17427
17428 2010-02-23 Jason Merrill <jason@redhat.com>
17429
17430 PR debug/42800
17431 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
17432 in cfun->local_decls even if they have register types.
17433
17434 PR c++/42837
17435 * stor-layout.c (place_field): Don't warn about unnecessary
17436 DECL_PACKED if the type is packed.
17437
17438 2010-02-23 Jakub Jelinek <jakub@redhat.com>
17439
17440 PR target/43139
17441 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
17442 GOTOFF relocs, even when the base reg isn't pic pointer.
17443
17444 2010-02-23 Michael Matz <matz@suse.de>
17445
17446 PR debug/43077
17447 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
17448 (expand_gimple_basic_block): Generate and use debug temps if there
17449 are debug uses left after the last real use of TERed ssa names.
17450 Unlink debug immediate uses when they are expanded.
17451
17452 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
17453
17454 PR 43123
17455 * config/i386/i386.c (override_options): Reorganise to provide
17456 better error messages.
17457
17458 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
17459
17460 PR middle-end/43083
17461 * graphite-scop-detection.c (create_single_exit_edge): Move
17462 the call to find_single_exit_edge to....
17463 (create_sese_edges): ...here. Don't handle multiple edges
17464 exiting the function.
17465 (build_graphite_scops): Don't handle multiple edges
17466 exiting the function.
17467
17468 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
17469
17470 PR middle-end/43097
17471 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
17472 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
17473
17474 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
17475
17476 PR middle-end/43026
17477 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
17478
17479 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
17480
17481 PR c++/43126
17482 * c-typeck.c (convert_arguments): Print declaration location.
17483 * c-common.c (validate_nargs): Rename as
17484 builtin_function_validate_nargs.
17485 (check_builtin_function_arguments): Update.
17486
17487 2010-02-22 Richard Guenther <rguenther@suse.de>
17488
17489 PR lto/43045
17490 * tree-inline.c (declare_return_variable): Use the type of
17491 the call stmt lhs if available.
17492
17493 2010-02-22 Duncan Sands <baldrick@free.fr>
17494
17495 * passes.c (register_pass): Always consider all pass lists when
17496 ref_pass_instance_number is zero.
17497
17498 2010-02-22 Richard Guenther <rguenther@suse.de>
17499
17500 PR tree-optimization/42749
17501 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
17502 parameter. Do arithmetic in the original type.
17503 (update_accumulator_with_ops): Likewise.
17504 (adjust_accumulator_values): Adjust.
17505
17506 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17507
17508 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
17509 (QI to BLKmode splitter): New splitter.
17510
17511 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
17512
17513 * config/i386/i386.c (initial_ix86_tune_features): Turn on
17514 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
17515
17516 2010-02-22 Richard Guenther <rguenther@suse.de>
17517
17518 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
17519
17520 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
17521
17522 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
17523 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
17524 ($(T)crti.o, $(T)crtn.o): Remove rules.
17525
17526 2010-02-21 Tobias Burnus <burnus@net-b.de>
17527
17528 PR fortran/35259
17529 * doc/invoke.texi (-fassociative-math): Document that this
17530 option is automatically enabled for Fortran.
17531
17532 2010-02-20 David S. Miller <davem@davemloft.net>
17533
17534 * configure.ac: Test if linker and assembler properly support
17535 GOTDATA_OP relocations.
17536 * configure: Rebuild.
17537 * config.in: Likewise.
17538 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
17539 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
17540 (movsi_high_pic): Likewise.
17541 (movdi_lo_sum_pic): Likewise.
17542 (movdi_high_pic): Likewise.
17543 (movsi_pic_gotdata_op): New pattern.
17544 (movdi_pic_gotdata_op): Likewise.
17545 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
17546 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
17547
17548 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
17549
17550 PR target/43067
17551 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
17552 attribute to ssemul.
17553 (xop_mulv2div2di3_high): Ditto.
17554
17555 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
17556
17557 PR c++/35669
17558 * c.opt (Wconversion-null): New option.
17559 * doc/invoke.texi (Wconversion-null): Document.
17560
17561 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
17562
17563 * common.opt (Wlarger-than-): Add Undocumented.
17564
17565 2010-02-19 Mike Stump <mikestump@comcast.net>
17566
17567 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
17568
17569 2010-02-19 Jason Merrill <jason@redhat.com>
17570
17571 PR target/40332
17572 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
17573 * configure: Likewise.
17574
17575 2010-02-20 Alan Modra <amodra@gmail.com>
17576
17577 PR middle-end/42344
17578 * cgraph.h (cgraph_make_decl_local): Declare.
17579 * cgraph.c (cgraph_make_decl_local): New function.
17580 (cgraph_make_node_local): Use it.
17581 * cgraphunit.c (cgraph_function_versioning): Likewise.
17582 * ipa.c (function_and_variable_visibility): Likewise.
17583
17584 2010-02-19 Jakub Jelinek <jakub@redhat.com>
17585
17586 PR bootstrap/43121
17587 * except.c (sjlj_emit_function_enter): Don't call
17588 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
17589 directly.
17590 * rtl.h (add_reg_br_prob_note): Remove prototype.
17591
17592 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
17593
17594 PR 41779
17595 * c-common.c (conversion_warning): Remove widening conversions
17596 before checking the conversion of integers to reals.
17597
17598 2010-02-19 Mike Stump <mikestump@comcast.net>
17599
17600 PR middle-end/43125
17601 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
17602
17603 PR objc/43061
17604 * cgraphunit.c (process_function_and_variable_attributes): Check
17605 DECL_PRESERVE_P instead of looking up attribute "used".
17606 * ipa-pure-const.c (check_decl): Likewise.
17607 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
17608 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
17609 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
17610 instead of attribute "used".
17611 * config/sol2-c.c (solaris_pragma_init): Likewise.
17612 (solaris_pragma_fini): Likewise.
17613
17614 2010-02-19 Jakub Jelinek <jakub@redhat.com>
17615
17616 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
17617 Use XCNEW instead of xcalloc.
17618 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
17619 XNEW instead of xmalloc.
17620 (get_fields): Use XNEWVEC instead of xmalloc.
17621
17622 PR debug/43084
17623 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
17624 populate vars array.
17625 (create_new_general_access): For debug stmts just reset value.
17626 (get_stmt_accesses): For accesses within debug stmts just record them
17627 using add_access_to_acc_sites instead of preventing the peeling or
17628 counting them as accesses.
17629
17630 PR middle-end/42233
17631 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
17632
17633 2010-02-19 Richard Guenther <rguenther@suse.de>
17634
17635 PR tree-optimization/42916
17636 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
17637 instructions.
17638
17639 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
17640
17641 * configure.ac: Replace all uses of changequote in macro arguments
17642 with proper quoting.
17643
17644 2010-02-19 Jakub Jelinek <jakub@redhat.com>
17645
17646 PR middle-end/42233
17647 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
17648
17649 2010-02-19 Richard Guenther <rguenther@suse.de>
17650
17651 PR tree-optimization/42944
17652 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
17653 test for aliasing with errno.
17654
17655 2010-02-19 Jakub Jelinek <jakub@redhat.com>
17656
17657 PR middle-end/42233
17658 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
17659 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
17660 * dojump.c: Include output.h.
17661 (inv): New inline function.
17662 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
17663 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
17664 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
17665 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
17666 argument, pass it down to other calls.
17667 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
17668 add REG_BR_PROB note to the conditional jump.
17669 * cfgexpand.c (add_reg_br_prob_note): Removed.
17670 (expand_gimple_cond): Don't call it, add the probability
17671 as last argument to jumpif_1/jumpifnot_1.
17672 * Makefile.in (dojump.o): Depend on output.h.
17673 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
17674 callers.
17675 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
17676 * stmt.c (do_jump_if_equal): Likewise.
17677 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
17678 * loop-unswitch.c (compare_and_jump_seq): Likewise.
17679 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
17680 Likewise.
17681 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
17682 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
17683 jumpifnot_1 callers.
17684 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
17685 callers.
17686 (store_expr): Adjust jumpifnot caller.
17687 (store_constructor): Adjust jumpif caller.
17688
17689 PR middle-end/42233
17690 * gimplify.c (gimple_boolify): For __builtin_expect call
17691 gimple_boolify also on its first argument.
17692
17693 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
17694
17695 * configure.ac (gnu-unique-object): Wrap regexps using [] in
17696 changequote block.
17697 (__stack_chk_fail): Ditto. Remove quadrigraphs.
17698 * configure: Regenerated.
17699
17700 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17701
17702 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
17703 lang_hooks.types_compatible_p instead of comptypes.
17704
17705 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
17706
17707 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
17708 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
17709 if __prefer_thumb__ is defined.
17710
17711 2010-02-18 Martin Jambor <mjambor@suse.cz>
17712
17713 PR tree-optimization/43066
17714 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
17715 array with zero-sized element type.
17716
17717 2010-02-18 Jakub Jelinek <jakub@redhat.com>
17718
17719 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
17720 rtx, allocate struct var_loc_node here and return it to the
17721 caller, and only if it is actually needed.
17722 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
17723 move it earlier and return immediately if it returns NULL.
17724
17725 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
17726
17727 * config/sparc/gas.h: New file. Restore
17728 TARGET_ASM_NAMED_SECTION to its ELF default.
17729 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
17730 check !HAVE_GNU_AS.
17731 * config/sparc/sparc.c (sparc_elf_asm_named_section):
17732 Likewise. Add ATTRIBUTE_UNUSED to prototype.
17733 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
17734 after sparc/sysv4.h.
17735
17736 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
17737
17738 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
17739
17740 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
17741
17742 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
17743 patterns from predicated pattern.
17744
17745 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
17746
17747 PR target/43103
17748 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
17749 for insn mnemonic suffix.
17750
17751 2010-02-17 Richard Guenther <rguenther@suse.de>
17752
17753 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
17754 to loop PHI nodes.
17755
17756 2010-02-17 Jakub Jelinek <jakub@redhat.com>
17757
17758 PR debug/42918
17759 * caller-save.c (save_call_clobbered_regs): If BB ends with
17760 a DEBUG_INSN, move any notes in between last real insn and the last
17761 DEBUG_INSN after the last DEBUG_INSN.
17762
17763 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
17764
17765 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
17766 Fix return type. Fix argument type. Explain meaning of return value.
17767
17768 2010-02-16 Richard Guenther <rguenther@suse.de>
17769
17770 PR tree-optimization/41043
17771 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
17772 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
17773 statements ...
17774 (vrp_visit_phi_node): ... but only for loop PHI nodes.
17775
17776 2010-02-16 Ira Rosen <irar@il.ibm.com>
17777
17778 PR tree-optimization/43074
17779 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
17780 * tree-vect-loop.c (vect_analyze_loop_operations): Add
17781 vectorizable cycles in hybrid SLP check.
17782 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
17783
17784 2010-02-16 Richard Guenther <rguenther@suse.de>
17785
17786 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
17787 (true_dependence): If memrefs_conflict_p computes must-alias
17788 trust it. Move TBAA check after offset-based disambiguation.
17789 (canon_true_dependence): Likewise.
17790
17791 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
17792
17793 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
17794 * doc/invoke.texi: Document it.
17795 * var-tracking.c: Include toplev.h and params.h.
17796 (vt_find_locations): Return bool indicating success. Compute
17797 hash sizes unconditionally. Check new parameter, report.
17798 (variable_tracking_main_1): Check vt_find_locations results and
17799 retry. Renamed from...
17800 (variable_tracking_main): ... this. New wrapper to preserve
17801 flag_var_tracking_assignments.
17802 * Makefile.in (var-tracking.o): Adjust dependencies.
17803
17804 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
17805 Jakub Jelinek <jakub@redhat.com>
17806
17807 PR target/42854
17808 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
17809 if weak_import attribute is present.
17810 * config/darwin.c (machopic_select_section): Likewise.
17811
17812 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
17813
17814 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
17815 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
17816 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
17817 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
17818
17819 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
17820 types.
17821
17822 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
17823 Fix argument types.
17824
17825 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
17826 Rewrite text to refer to the names.
17827
17828 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
17829
17830 * config/i386/i386-builtin-types.def
17831 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
17832 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
17833 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
17834 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
17835 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
17836 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
17837 IX86_BUILTIN_VPERMIL2PS256.
17838 (MULTI_ARG_4_DF2_DI_I): Defined.
17839 (MULTI_ARG_4_DF2_DI_I1): Defined.
17840 (MULTI_ARG_4_SF2_SI_I): Defined.
17841 (MULTI_ARG_4_SF2_SI_I1): Defined.
17842 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
17843 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
17844 __builtin_ia32_vpermil2ps256.
17845 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
17846 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
17847 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
17848 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
17849 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
17850 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
17851 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
17852 CODE_FOR_xop_vpermil2v8sf3.
17853 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
17854 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
17855 * config/i386/xopintrin.h (_mm_permute2_pd): New.
17856 (_mm256_permute2_pd): New.
17857 (_mm_permute2_ps): New.
17858 (_mm256_permute2_ps): New.
17859
17860 2010-02-15 Nick Clifton <nickc@redhat.com>
17861
17862 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
17863 boolean parameters. Use emit_jump_insn when emitting a pop
17864 instruction containing a return insn.
17865 (push): Use 'true' rather than '1' as second parameter to F.
17866 (h8300_expand_prologue): Likewise.
17867 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
17868 (h8300_expand_epilogue): Likewise.
17869
17870 2010-02-15 Richard Guenther <rguenther@suse.de>
17871
17872 PR middle-end/43068
17873 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
17874 if that is zero.
17875
17876 2010-02-15 Nick Clifton <nickc@redhat.com>
17877
17878 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
17879 delta.
17880
17881 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
17882
17883 * intl.c (fake_ngettext): New function.
17884 * intl.h (fake_ngettext): Declare.
17885 (ngettext): Define macro.
17886 * collect2.c (notice_translated): New function.
17887 (main): Use notice_translated and ngettext.
17888 * collect2.h (notice_translated): Declare.
17889
17890 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
17891
17892 * reorg.c (delete_computation): Comment fixes.
17893 * caller-save.c (setup_save_areas): Idem.
17894 * sel-sched-dump.c (dump_lv_set): Idem.
17895 * rtl.def: Idem.
17896
17897 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17898
17899 * config/s390/s390.c (s390_sched_init): New function.
17900 (TARGET_SCHED_INIT): Target hook defined.
17901
17902 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
17903 Jack Howarth <howarth@bromo.med.uc.edu>
17904 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
17905
17906 PR target/42982
17907 Partial revert of unintended change in fix for PR41605.
17908 * config/darwin.h: Fix typo.
17909 * config/darwin9.h: Same.
17910
17911 2010-02-11 Jakub Jelinek <jakub@redhat.com>
17912
17913 * c-pch.c (pch_init): Clear v.
17914
17915 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
17916
17917 PR middle-end/42930
17918 * graphite-scop-detection.c (graphite_can_represent_scev): Call
17919 graphite_can_represent_init for MULT_EXPR.
17920
17921 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
17922
17923 PR middle-end/42914
17924 PR middle-end/42530
17925 * graphite-sese-to-poly.c (remove_phi): New.
17926 (translate_scalar_reduction_to_array): Call remove_phi.
17927
17928 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
17929
17930 PR middle-end/42771
17931 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
17932 * graphite-clast-to-gimple.h (gloog): Update declaration.
17933 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
17934 * graphite-poly.h (struct poly_bb): Add missing comments.
17935 (struct scop): Add poly_scop_p field.
17936 (POLY_SCOP_P): New.
17937 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
17938 * graphite.c (graphite_transform_loops): Build the polyhedral
17939 representation for each scop before code generation.
17940 * sese.c (rename_variables_in_operand): Removed.
17941 (rename_variables_in_expr): Return the renamed expression.
17942 (rename_sese_parameters): New.
17943 * sese.h (rename_sese_parameters): Declared.
17944
17945 2010-02-11 Richard Guenther <rguenther@suse.de>
17946
17947 PR tree-optimization/42998
17948 * tree-ssa-pre.c (create_expression_by_pieces): Treat
17949 POINTER_PLUS_EXPR properly.
17950
17951 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
17952 Changpeng Fang <changpeng.fang@amd.com>
17953
17954 PR middle-end/40886
17955 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
17956 the cost of an IV candidate when the IV is used in a test against zero.
17957
17958 * gcc.dg/tree-ssa/ivopts-3.c: New.
17959
17960 2010-02-11 Richard Guenther <rguenther@suse.de>
17961
17962 PR lto/41664
17963 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
17964 pointer-vs-decl case by swapping refs. Handle some cases
17965 of pointer-vs-decl disambiguations more conservatively.
17966 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
17967 to false after expanding.
17968
17969 2010-02-11 Richard Guenther <rguenther@suse.de>
17970
17971 PR driver/43021
17972 * gcc.c (process_command): Handle LTO file@offset case more
17973 appropriately.
17974
17975 2010-02-11 Jakub Jelinek <jakub@redhat.com>
17976
17977 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
17978 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
17979 of DEBUG_INSNs.
17980 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
17981
17982 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
17983 if MEM's mode size isn't DWARF2_ADDR_SIZE.
17984 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
17985 Optimize eq/ne comparisons when both arguments are known to be
17986 zero-extended.
17987 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
17988 Don't mask operands unnecessarily if they are known to be already
17989 zero-extended.
17990
17991 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
17992
17993 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
17994 instead of loop.
17995
17996 2010-02-10 Richard Guenther <rguenther@suse.de>
17997
17998 PR tree-optimization/43017
17999 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
18000 for wrapping signed arithmetic.
18001
18002 2010-02-10 Jakub Jelinek <jakub@redhat.com>
18003
18004 PR debug/43010
18005 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
18006 if no debug info should be emitted for it.
18007
18008 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
18009
18010 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
18011 note when flag_exceptions is set.
18012
18013 2010-02-10 Duncan Sands <baldrick@free.fr>
18014
18015 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
18016
18017 2010-02-10 Richard Guenther <rguenther@suse.de>
18018
18019 PR c/43007
18020 * tree.c (get_unwidened): Handle constants.
18021 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
18022
18023 2010-02-10 Martin Jambor <mjambor@suse.cz>
18024
18025 PR lto/42985
18026 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
18027 check for variable argument counts independently.
18028
18029 2010-02-10 Christian Bruel <christian.bruel@st.com>
18030
18031 PR target/42841
18032 * config/sh/sh.c (find_barrier): Increase length for non delayed
18033 conditional branches.
18034
18035 2010-02-10 Christian Bruel <christian.bruel@st.com>
18036
18037 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
18038
18039 2010-02-10 Jakub Jelinek <jakub@redhat.com>
18040
18041 * builtins.c (set_builtin_user_assembler_name): Also handle
18042 ffs if int is smaller than word.
18043
18044 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
18045
18046 PR middle-end/42973
18047 * ira-conflicts.c (get_dup): Remove.
18048 (process_reg_shuffles): Add new parameter. Use it as an
18049 additional guard for copy generation.
18050 (add_insn_allocno_copies): Rewrite.
18051
18052 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
18053
18054 * common.opt (fsched2-use-traces): Preserved for backward
18055 compatibility.
18056 * doc/invoke.texi: Remove the documentation about option
18057 -fsched2-use-traces.
18058 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
18059 flag_sched2_use_traces.
18060 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
18061 the backward compatibility flag section.
18062
18063 2010-02-09 Richard Guenther <rguenther@suse.de>
18064
18065 PR tree-optimization/43008
18066 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
18067 make HEAP variables initialized from global memory if they
18068 are not known builtin functions.
18069 (find_func_aliases): Adjust.
18070
18071 2010-02-09 Richard Guenther <rguenther@suse.de>
18072
18073 PR tree-optimization/43000
18074 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
18075 arithmetic manually.
18076
18077 2010-02-08 Jakub Jelinek <jakub@redhat.com>
18078
18079 PR tree-optimization/42931
18080 * tree-loop-linear.c (try_interchange_loops): Don't call
18081 double_int_mul if estimated_loop_iterations failed.
18082
18083 2010-02-08 Martin Jambor <mjambor@suse.cz>
18084
18085 PR middle-end/42898
18086 * tree-sra.c (build_accesses_from_assign): Do not mark in
18087 should_scalarize_away_bitmap if stmt has volatile ops.
18088 (sra_modify_assign): Do not process assigns piecemeal if if stmt
18089 has volatile ops.
18090
18091 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
18092
18093 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
18094
18095 2010-02-07 Adam Nemet <adambnmet@gmail.com>
18096
18097 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
18098 before the pattern.
18099
18100 2010-02-07 Andrew Pinski <pinskia@gmail.com>
18101
18102 PR middle-end/42946
18103 * df-core.c (df_finish_pass): Change type of saved_flags to int.
18104
18105 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
18106
18107 PR middle-end/42988
18108 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
18109 to unknown_dependence.
18110 (graphite_legal_transform_dr): Handle the unknown_dependence.
18111 (graphite_carried_dependence_level_k): Same.
18112
18113 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
18114
18115 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
18116
18117 2010-02-07 Richard Guenther <rguenther@suse.de>
18118
18119 PR middle-end/42991
18120 * expr.c (get_inner_reference): Always initialize *pbitsize.
18121
18122 2010-02-07 Richard Guenther <rguenther@suse.de>
18123
18124 PR middle-end/42956
18125 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
18126 new ARRAY_REFs on variable size element or minimal index arrays.
18127 Complete.
18128 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
18129 gimple_fold_indirect_ref.
18130
18131 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
18132
18133 PR target/42957
18134 * arm.c (arm_override_options): Just return if the user has specified
18135 an invalid fpu name.
18136
18137 2010-02-03 Jason Merrill <jason@redhat.com>
18138
18139 PR c++/42870
18140 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
18141 i386_pe_maybe_record_exported_symbol.
18142
18143 2010-02-05 Steve Ellcey <sje@cup.hp.com>
18144
18145 PR target/42924
18146 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
18147 (pa_delegitimize_address): New function.
18148
18149 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
18150
18151 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
18152 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
18153
18154 2010-02-05 Richard Guenther <rguenther@suse.de>
18155
18156 PR lto/42762
18157 * lto-streamer-in.c (get_resolution): Deal with references
18158 to undefined functions.
18159
18160 2010-02-05 Richard Guenther <rguenther@suse.de>
18161
18162 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
18163 (fold_const_aggregate_ref): Likewise.
18164 (ccp_fold_stmt): Substitute loads.
18165 (maybe_fold_reference): Verify types before substituting.
18166 Unshare properly.
18167 (fold_gimple_assign): Unshare properly.
18168 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
18169
18170 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
18171
18172 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
18173 for rs6000_gen_cell_microcode.
18174
18175 2010-02-04 Richard Guenther <rguenther@suse.de>
18176
18177 PR rtl-optimization/42952
18178 * dse.c (const_or_frame_p): Remove MEM handling.
18179
18180 2010-02-04 Nick Clifton <nickc@redhat.com>
18181
18182 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
18183 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
18184 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
18185 (mn10300_asm_output_mi_thunk): New function.
18186 (mn10300_can_output_mu_thunk): New function.
18187 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
18188 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
18189 (FUNCTION_ARG): Delete incorrect comment.
18190
18191 2010-02-03 Jason Merrill <jason@redhat.com>
18192
18193 PR c++/40138
18194 * fold-const.c (operand_equal_p): Handle erroneous types.
18195
18196 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
18197
18198 * config/h8300/h8300.md (can_delay): Fix attibute condition.
18199
18200 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
18201
18202 PR rtl-optimization/42941
18203 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
18204 of xmalloc.
18205
18206 2010-02-03 Jason Merrill <jason@redhat.com>
18207
18208 PR c++/35652
18209 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
18210
18211 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
18212
18213 PR debug/42896
18214 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
18215 (cselib_reset_table): Renamed from...
18216 (cselib_reset_table_with_next_value): ... this.
18217 (cselib_get_next_uid): Renamed from...
18218 (cselib_get_next_unknown_value): ... this.
18219 * cselib.c (next_uid): Renamed from...
18220 (next_unknown_value): ... this.
18221 (cselib_clear_table): Adjust.
18222 (cselib_reset_table): Adjust. Renamed from...
18223 (cselib_reset_table_with_next_value): ... this.
18224 (cselib_get_next_uid): Adjust. Renamed from...
18225 (cselib_get_next_unknown_value): ... this.
18226 (get_value_hash): Use hash.
18227 (cselib_hash_rtx): Likewise.
18228 (new_cselib_val): Adjust. Set and dump uid.
18229 (cselib_lookup_mem): Pass next_uid as hash.
18230 (cselib_subst_to_values): Likewise.
18231 (cselib_log_lookup): Dump uid.
18232 (cselib_lookup): Pass next_uid as hash. Adjust.
18233 (cselib_process_insn): Adjust.
18234 (cselib_init): Initialize next_uid.
18235 (cselib_finish): Adjust.
18236 (dump_cselib_table): Likewise.
18237 * dse.c (canon_address): Dump value uid.
18238 * print-rtl.c (print_rtx): Print value uid.
18239 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
18240 (dvuid): New type.
18241 (dv_uid): New function, sort of renamed from...
18242 (dv_htab_hash): ... this, reimplemented in terms of it and...
18243 (dv_uid2hash): ... this. New.
18244 (variable_htab_eq): Drop excess assertions.
18245 (tie_break_pointers): Removed.
18246 (canon_value_cmp): Compare uids.
18247 (variable_post_merge_New_vals): Print uids.
18248 (vt_add_function_parameters): Adjust.
18249 (vt_initialize): Reset table. Adjust.
18250
18251 2010-02-03 Richard Guenther <rguenther@suse.de>
18252
18253 PR tree-optimization/42944
18254 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
18255 (call_may_clobber_ref_p_1): Likewise. Properly handle
18256 malloc and calloc clobbering errno.
18257
18258 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
18259
18260 * doc/invoke.texi: Fix name of sched1 dump.
18261
18262 * opts.c (decode_options): Set flag_tree_switch_conversion
18263 only conditionally on optimize >= 2.
18264
18265 * gcse.c: Assorted comment fixes in pass description.
18266
18267 2010-02-03 Anthony Green <green@moxielogic.com>
18268
18269 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
18270 nop padding in order to maintain alignment of storage location of
18271 target function address.
18272 (moxie_trampoline_init): Store target function address at newly
18273 aligned location.
18274 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
18275 to 32.
18276 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
18277
18278 2010-02-03 Richard Guenther <rguenther@suse.de>
18279
18280 PR middle-end/42927
18281 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
18282
18283 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18284
18285 * config.gcc: Reenable check for obsolete targets.
18286 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
18287 mips-sgi-irix6.[0-4]*.
18288
18289 2010-02-02 Nick Clifton <nickc@redhat.com>
18290
18291 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
18292 constant size of 4 as being the same as 0.
18293 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
18294 can take values in the range 0..4.
18295
18296 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
18297
18298 PR java/41991
18299 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
18300 as _darwin10_Unwind_FindEnclosingFunction().
18301 * libgcc-libsystem.ver: New.
18302
18303 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
18304
18305 PR target/41399
18306 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
18307 implicitly set registers.
18308
18309 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
18310
18311 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
18312 (arm_override_options): Allow automatic selection of the thread
18313 pointer register if thumb2.
18314 (legitimize_pic_address): Improve code sequences for Thumb2.
18315 (arm_call_tls_get_addr): Likewise.
18316 (legitimize_tls_address): Likewise.
18317 * arm.md (pic_load_addr_arm): Delete. Replace with ...
18318 (pic_load_addr_32bit): ... this. New named pattern.
18319 * thumb2.md (pic_load_addr_thumb2): Delete.
18320 (pic_load_dot_plus_four): Delete.
18321 (tls_load_dot_plus_four): New named pattern.
18322
18323 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18324
18325 PR libgomp/29986
18326 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
18327 Document fix for TLS bug.
18328
18329 2010-01-31 Richard Guenther <rguenther@suse.de>
18330
18331 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
18332 conservatively correct.
18333
18334 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18335
18336 PR target/42850
18337 Revert:
18338 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18339
18340 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
18341
18342 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18343
18344 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
18345
18346 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
18347
18348 * config.gcc: Adjust order of makefile fragments for mingw targets.
18349
18350 2010-01-31 Richard Guenther <rguenther@suse.de>
18351
18352 PR middle-end/42898
18353 * gimplify.c (gimplify_init_constructor): For volatile LHS
18354 initialize a temporary.
18355
18356 2010-01-31 Matthias Klose <doko@ubuntu.com>
18357
18358 * configure.ac: Fix __stack_chk_fail check for cross builds configured
18359 --with-headers
18360 * configure: Regenerate.
18361
18362 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
18363
18364 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
18365 the same alias set and their sizes different constantness.
18366 (aliasing_component_refs_p): Revert 2009-10-24 change.
18367
18368 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18369
18370 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
18371 unused.
18372
18373 2010-01-29 Richard Guenther <rguenther@suse.de>
18374
18375 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
18376 Assert we successfully updated the call.
18377
18378 2010-01-29 Jakub Jelinek <jakub@redhat.com>
18379
18380 PR rtl-optimization/42889
18381 * df.h (df_set_bb_dirty_nonlr): New prototype.
18382 * df-core.c (df_set_bb_dirty_nonlr): New function.
18383 * df-scan.c (df_insn_rescan): Call it instead of
18384 df_set_bb_dirty for DEBUG_INSNs.
18385
18386 2010-01-29 Richard Guenther <rguenther@suse.de>
18387
18388 PR middle-end/37448
18389 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
18390 quadratic behavior in most cases.
18391
18392 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
18393
18394 PR target/42891
18395 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
18396 in the call to gen_x86_movsicc_0_m1.
18397
18398 2010-01-28 Richard Guenther <rguenther@suse.de>
18399
18400 PR tree-optimization/42871
18401 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
18402
18403 2010-01-28 Richard Guenther <rguenther@suse.de>
18404
18405 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
18406 into call arguments.
18407
18408 2010-01-28 Richard Guenther <rguenther@suse.de>
18409
18410 PR middle-end/42883
18411 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
18412 the forwarder if the destination is an EH landing pad.
18413
18414 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
18415
18416 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
18417 block list passed to gimple_duplicate_sese_tail.
18418 (parallelize_loops): Avoid parallelization when the function
18419 has_nonlocal_label.
18420 Avoid parallelization when the preheader is IRREDUCIBLE.
18421 Try to optimize when estimated_loop_iterations_int is unresolved.
18422 Add the loop's location to the dump file.
18423 * tree-cfg.c (add_phi_args_after_redirect): Remove.
18424 (gimple_duplicate_sese_tail): Remove the check for the latch.
18425 Redirect nexits to the exit block.
18426 Remove handling of the incoming edges to the latch.
18427 Redirect the backedge from the copied latch to the exit bb.
18428
18429 2010-01-28 Michael Matz <matz@suse.de>
18430
18431 PR target/42881
18432 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
18433 Wrap force_reg into a sequence, emit it before user.
18434
18435 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
18436
18437 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
18438 (arm_rev): New.
18439 (arm_legacy_rev): Likewise.
18440 (thumb_legacy_rev): Likewise.
18441
18442 2010-01-27 Jakub Jelinek <jakub@redhat.com>
18443
18444 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
18445 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
18446 on MEM's address failed, try avoid_constant_pool_reference and
18447 recurse if it returned something different.
18448 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
18449 address, try avoid_constant_pool_reference and recurse if it
18450 returned something different.
18451 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
18452 address and avoid_constant_pool_reference returned something
18453 different, don't set have_address.
18454
18455 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
18456
18457 PR debug/42861
18458 * var-tracking.c (val_store): Add modified argument, obey it.
18459 Adjust callers.
18460 (count_uses): Move down logging of main.
18461 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
18462 don't need resolution.
18463 (emit_notes_in_bb): Likewise.
18464
18465 2010-01-27 Richard Guenther <rguenther@suse.de>
18466
18467 PR middle-end/42878
18468 * tree-inline.c (remap_decl): Delay remapping of SSA name
18469 default definitions until we need them.
18470
18471 2010-01-27 Jakub Jelinek <jakub@redhat.com>
18472
18473 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
18474 (rs6000_delegitimize_address): New function.
18475
18476 * config/s390/s390.c (s390_delegitimize_address): Call
18477 delegitimize_mem_from_attrs.
18478
18479 PR middle-end/42874
18480 * tree-inline.c (cannot_copy_type_1): Removed.
18481 (copy_forbidden): Don't forbid copying of functions containing
18482 records/unions with variable length fields.
18483
18484 2010-01-27 Christian Bruel <christian.bruel@st.com>
18485
18486 Revert:
18487 PR target/42841
18488 * config/sh/sh.c (find_barrier): Increase length for non delayed
18489 conditional branches.
18490
18491 2010-01-27 Matthias Klose <doko@ubuntu.com>
18492
18493 * configure.ac (gnu-unique-object): Fix ldd version check.
18494 * configure: Regenerate.
18495
18496 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18497
18498 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
18499 HAVE_GNU_AS value.
18500 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
18501 Test for HAVE_GNU_AS value.
18502
18503 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18504
18505 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
18506 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
18507 INT64_TYPE): Define.
18508 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
18509 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
18510 INT_LEAST64_TYPE): Define.
18511 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
18512 UINT_LEAST64_TYPE): Define.
18513 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
18514 INT_FAST64_TYPE): Define.
18515 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
18516 UINT_FAST64_TYPE): Define.
18517 (INTMAX_TYPE, UINTMAX_TYPE): Define.
18518 (INTPTR_TYPE, UINTPTR_TYPE): Define.
18519 (SIG_ATOMIC_TYPE): Define.
18520
18521 2010-01-26 Richard Guenther <rguenther@suse.de>
18522
18523 * df-scan.c (df_scan_set_bb_info): Remove assert.
18524 (df_insn_rescan_debug_internal): Merge asserts.
18525 (df_install_ref): Likewise.
18526 (df_mark_reg): Use bitmap_set_range.
18527 (df_hard_reg_used_p): Remove assert.
18528 (df_hard_reg_used_count): Likewise.
18529
18530 2010-01-26 Richard Guenther <rguenther@suse.de>
18531
18532 PR rtl-optimization/42685
18533 * web.c (web_main): Ignore DEBUG_INSNs.
18534
18535 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
18536
18537 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
18538
18539 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
18540 Fix types of fndecl and arglist parameters.
18541
18542 2010-01-26 Richard Guenther <rguenther@suse.de>
18543
18544 PR middle-end/42806
18545 * tree-eh.c (unsplit_eh): Skip debug insns.
18546
18547 2010-01-26 Richard Guenther <rguenther@suse.de>
18548
18549 PR tree-optimization/42250
18550 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
18551
18552 2010-01-26 Jakub Jelinek <jakub@redhat.com>
18553
18554 PR fortran/42866
18555 * omp-low.c (expand_omp_sections): Only use single_pred if
18556 l2_bb is single_pred_p.
18557
18558 2010-01-25 Christian Bruel <christian.bruel@st.com>
18559
18560 PR target/42841
18561 * config/sh/sh.c (find_barrier): Increase length for non delayed
18562 conditional branches.
18563 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
18564
18565 2010-01-24 David S. Miller <davem@davemloft.net>
18566
18567 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
18568 define if not using GAS.
18569 * config/sparc/sparc.c (sparc_elf_asm_named_section):
18570 Likewise. Delete SECTION_MERGE code, which is only applicable
18571 when using GAS.
18572
18573 2010-01-24 Mark Mitchell <mark@codesourcery.com>
18574
18575 PR c++/42748
18576 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
18577 mangling of va_list in system headers.
18578
18579 2010-01-23 Toon Moene <toon@moene.org>
18580
18581 * tree-predcom.c (combine_chains): Return NULL, not false.
18582
18583 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
18584
18585 * tree-loop-distribution.c (distribute_loop): Fix declaration and
18586 initialization of variable res to agree with return type.
18587
18588 2010-01-22 Steve Ellcey <sje@cup.hp.com>
18589
18590 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
18591 * tree-sra.c: Add include of expr.h.
18592
18593 2010-01-22 Jakub Jelinek <jakub@redhat.com>
18594
18595 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
18596 insert the debug stmt on the single non-EH edge from the stmt.
18597
18598 2010-01-22 Richard Henderson <rth@redhat.com>
18599
18600 PR tree-opt/42833
18601 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
18602 the RHS until after generate_subtree_copies has insertted its
18603 code before the current statement.
18604
18605 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
18606
18607 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
18608
18609 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
18610
18611 2010-01-21 Martin Jambor <mjambor@suse.cz>
18612
18613 PR tree-optimization/42585
18614 * tree-sra.c (struct access): New field grp_total_scalarization.
18615 (dump_access): Dump the new field.
18616 (should_scalarize_away_bitmap): New variable.
18617 (cannot_scalarize_away_bitmap): Likewise.
18618 (sra_initialize): Allocate new bitmaps.
18619 (sra_deinitialize): Free new bitmaps.
18620 (create_access_1): New function.
18621 (create_access): Parts moved to create_access_1.
18622 (type_consists_of_records_p): New function.
18623 (completely_scalarize_record): Likewise.
18624 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
18625 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
18626 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
18627 access.
18628 (analyze_all_variable_accesses): Completely scalarize small eligible
18629 records.
18630
18631 2010-01-21 Martin Jambor <mjambor@suse.cz>
18632
18633 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
18634
18635 2010-01-21 Andrew Haley <aph@redhat.com>
18636
18637 * gcc.c (process_command): Move lang_specific_driver before
18638 setting cc_libexec_prefix.
18639
18640 2010-01-21 Richard Guenther <rguenther@suse.de>
18641
18642 PR middle-end/19988
18643 * fold-const.c (negate_expr_p): Pretend only negative
18644 real constants are easily negatable.
18645
18646 2010-01-20 Janis Johnson <janis187@us.ibm.com>
18647 Jason Merrill <jason@redhat.com>
18648
18649 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
18650 (TYPE_TRANSPARENT_AGGR): this, for union and record.
18651 * calls.c (initialize argument_information): Handle it.
18652 * c-common.c (handle_transparent_union_attribute): Use new name.
18653 * c-decl.c (finish_struct): Ditto.
18654 * c-typeck.c (type_lists_compatible_p): Ditto.
18655 (convert_for_assignment): Use new name and also handle record.
18656 * function.c (aggregate_value_p): Handle it.
18657 (pass_by_reference): Ditto.
18658 (assign_parm_data_types): Ditto.
18659 * print-tree.c (print_node): Ditto.
18660 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
18661 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
18662 * tree.c (first_field): New fn.
18663
18664 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
18665
18666 PR target/42818
18667 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
18668 even when linking statically, for now.
18669
18670 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
18671
18672 PR debug/42715
18673 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
18674 without a cselib val.
18675 (count_uses): Accept MO_VAL_SET with no val on stores.
18676 (add_stores): Likewise.
18677
18678 2010-01-20 Jakub Jelinek <jakub@redhat.com>
18679
18680 * var-tracking.c (check_value_val): Add a compile time assertion.
18681 (dv_is_decl_p): Simplify.
18682 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
18683 gcc_assert if ENABLE_CHECKING.
18684
18685 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
18686
18687 PR debug/42782
18688 * var-tracking.c: Include tree-flow.h.
18689 (mem_dies_at_call): New.
18690 (dataflow_set_preserve_mem_locs): Use it.
18691 (dataflow_set_remove_mem_locs): Likewise.
18692 (dump_var): Renamed from dump_variable. Adjust all callers.
18693 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
18694 * Makefile.in (var-tracking.o): Adjust deps.
18695
18696 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
18697
18698 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
18699
18700 2010-01-20 Richard Guenther <rguenther@suse.de>
18701
18702 PR tree-optimization/42717
18703 * tree-ssa-dce.c (get_live_post_dom): Remove.
18704 (forward_edge_to_pdom): Take an arbitrary edge to copy
18705 degenerate PHI args from.
18706 (remove_dead_stmt): Use the first post-dominator even if it
18707 does not contain live statements as redirection destination.
18708
18709 2010-01-20 Richard Guenther <rguenther@suse.de>
18710
18711 * tree-inline.c (estimate_num_insns): Handle EH builtins.
18712
18713 2010-01-20 Jakub Jelinek <jakub@redhat.com>
18714
18715 * sel-sched.c (create_speculation_check): Remove set but not used
18716 variable twin.
18717 (try_transformation_cache): Remove set but not used variable ds.
18718 (calculate_privileged_insns): Remove set but not used variables
18719 cur_insn and min_spec_insn.
18720 (find_best_expr): Remove set but not used variable avail_n.
18721 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
18722 variable e.
18723 * cgraphunit.c (assemble_thunk): Remove set but not used variable
18724 false_label.
18725 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
18726 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
18727 new_scop_exit_edge.
18728
18729 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
18730
18731 PR bootstrap/42786
18732 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
18733 cpu types. Add support for *-sse3 cpu types.
18734 (x86_64-*-*): Ditto.
18735
18736 2010-01-20 Jakub Jelinek <jakub@redhat.com>
18737
18738 PR middle-end/42803
18739 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
18740 argument, call initializer_constant_valid_p_1 instead of
18741 initializer_constant_valid_p, pass CACHE to it, return NULL
18742 immediately if first call returns NULL.
18743 (initializer_constant_valid_p_1): New function.
18744 (initializer_constant_valid_p): Use it.
18745
18746 2010-01-20 Thomas Quinot <quinot@adacore.com>
18747
18748 * tree.def (PLACEHOLDER_EXPR): Fix comment.
18749
18750 2010-01-20 Jakub Jelinek <jakub@redhat.com>
18751
18752 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
18753 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
18754 (loc_list_from_tree): Don't handle unsigned division. Handle
18755 signed modulo using DW_OP_{over,over,div,mul,minus}.
18756 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
18757 modulo instead of signed.
18758
18759 2010-01-20 DJ Delorie <dj@redhat.com>
18760
18761 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
18762 (Fpa): Pass it
18763 (h8300_emit_stack_adjustment): Propogate it.
18764 (push): Pass it.
18765 (h8300_expand_prologue): Likewise.
18766 (h8300_expand_epilogue): Likewise.
18767
18768 2010-01-19 Michael Matz <matz@suse.de>
18769
18770 PR tree-optimization/41783
18771 * tree-data-ref.c (toplevel): Include flags.h.
18772 (dump_data_dependence_relation): Also dump the inputs if the
18773 result will be unknown.
18774 (split_constant_offset_1): Look through some conversions.
18775 * tree-predcom.c (determine_roots_comp): Restart a new chain if
18776 the offset from last element is too large.
18777 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
18778 (reassociate_to_the_same_stmt): Handle vector registers.
18779 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
18780 (e.g. conversions).
18781 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
18782 wide_prolog_niters argument, emit widening instructions.
18783 (vect_do_peeling_for_alignment): Adjust caller, use widened
18784 variant of the iteration cound.
18785 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
18786
18787 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18788
18789 PR target/38697
18790 * config/arm/neon-testgen.m (emit_automatics): New parameter
18791 features. Adjust for Fixed_return_reg feature.
18792 (test_intrinsic): Call emit_automatics with new feature.
18793 * config/arm/neon.ml: Update copyright years.
18794 (features): New Fixed_return_reg feature.
18795 (ops): Update feature for Vget_low.
18796
18797 2010-01-19 Jakub Jelinek <jakub@redhat.com>
18798
18799 PR tree-optimization/42719
18800 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
18801 stmt uses.
18802
18803 PR debug/42728
18804 * fwprop.c (all_uses_available_at): Return false if def_set dest
18805 is a REG that is used in def_insn.
18806
18807 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
18808
18809 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
18810
18811 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
18812 Add argument names.
18813
18814 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
18815
18816 * target.h (struct gcc_target) <secondary_reload>: Change type
18817 of last argument to secondary_reload_info *.
18818
18819 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
18820
18821 PR target/42774
18822 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
18823 memory references with unaligned offsets. Remove CQImode handling.
18824 (unaligned_memory_operand): Return 1 for memory references with
18825 unaligned offsets. Remove CQImode handling.
18826
18827 2010-01-18 Richard Guenther <rguenther@suse.de>
18828
18829 PR middle-end/39954
18830 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
18831 builtin calls.
18832
18833 2010-01-18 Richard Guenther <rguenther@suse.de>
18834
18835 PR tree-optimization/42781
18836 * tree-ssa-structalias.c (find_what_var_points_to): Skip
18837 restrict processing only if the original variable was artificial.
18838
18839 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
18840
18841 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
18842 find number of popped argument bytes.
18843
18844 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
18845 Fix the text that describes the return value for invalid insns.
18846
18847 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
18848
18849 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
18850 Clarify what 'cost of the -dependence' is. Fix quoting.
18851
18852 * toplev.c (default_get_pch_validity): Rename argument to "sz".
18853 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
18854
18855 2010-01-17 Jakub Jelinek <jakub@redhat.com>
18856
18857 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
18858 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
18859
18860 2010-01-17 Richard Guenther <rguenther@suse.de>
18861
18862 PR middle-end/42248
18863 * function.c (split_complex_args): Take a VEC to modify.
18864 (assign_parms_augmented_arg_list): Build a VEC instead of
18865 a chain of PARM_DECLs.
18866 (assign_parms_unsplit_complex): Take a VEC of arguments.
18867 Do not fixup unmodified parms.
18868 (assign_parms): Deal with the VEC.
18869 (gimplify_parameters): Likewise.
18870
18871 2010-01-17 Richard Guenther <rguenther@suse.de>
18872
18873 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
18874 node existence check.
18875 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
18876 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
18877 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
18878 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
18879 (gimple_execute_on_growing_pred): Likewise.
18880
18881 2010-01-17 Richard Guenther <rguenther@suse.de>
18882
18883 PR tree-optimization/42773
18884 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
18885 (compute_antic_aux): Likewise.
18886 (compute_partial_antic_aux): Likewise.
18887
18888 2010-01-17 Jie Zhang <jie.zhang@analog.com>
18889
18890 PR debug/42767
18891 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
18892 and US_TRUNCATE.
18893
18894 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
18895
18896 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
18897 appearance.
18898
18899 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
18900 Fix markup for strict argument.
18901
18902 (TARGET_SCHED_REORDER2): Fix argument types.
18903
18904 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
18905 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
18906
18907 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
18908 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
18909
18910 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
18911 Add argument name.
18912
18913 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
18914 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
18915 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
18916 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
18917 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
18918
18919 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
18920
18921 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
18922
18923 (TARGET_ASM_RELOC_RW_MASK): Add return type.
18924 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
18925
18926 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
18927
18928 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
18929 Use prototype.
18930
18931 (TARGET_ASM_NAMED_SECTION): Fix argument list.
18932
18933 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
18934 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
18935
18936 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
18937
18938 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
18939
18940 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
18941 referring to it. Fix language.
18942
18943 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
18944
18945 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
18946
18947 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
18948
18949 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
18950
18951 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
18952 '@var{stream}. Remove stray 'and'.
18953
18954 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
18955
18956 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
18957
18958 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
18959
18960 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
18961 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
18962
18963 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
18964 Fix description of return value.
18965 Rename argument "sz" to "len."
18966
18967 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
18968 Clarify meaning of 'true' return value.
18969
18970 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
18971
18972 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
18973 rep_mode versus mode_rep.
18974
18975 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
18976
18977 (TARGET_BUILTIN_DECL): Fix name.
18978
18979 (TARGET_COMMUTATIVE_P): Fix type of first argument.
18980
18981 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
18982
18983 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
18984
18985 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
18986
18987 (TARGET_RELAXED_ORDERING): Use @deftypevr.
18988
18989 (TARGET_GET_DRAP_RTX): Note that this is a hook.
18990 Clarify language.
18991
18992 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
18993 Rename argument tm_fn to md_fn.
18994
18995 (TARGET_OPTION_PRINT): Fix argument list.
18996
18997 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
18998
18999 PR target/42664
19000 * config/i386/i386.c (ix86_fixup_binary_operands):
19001 Revert FMA4 fixup of operands.
19002
19003 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19004
19005 PR gcc/42525
19006 * Makefile.in (write_entries_to_file, install-plugin):
19007 Use \012 instead of \n with tr.
19008
19009 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
19010
19011 * configure.ac (HAVE_AS_REF): New C macro.
19012 * configure: Regenerate.
19013 * config.in: Likewise.
19014 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
19015 if HAVE_AS_REF.
19016 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
19017 if HAVE_AS_REF.
19018
19019 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
19020
19021 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
19022
19023 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
19024
19025 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
19026
19027 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
19028
19029 (TARGET_IN_SMALL_DATA_P): Fix argument type.
19030
19031 (TARGET_BINDS_LOCAL_P): Fix argument type.
19032
19033 (TARGET_ASM_FILE_END): Use prototype.
19034
19035 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
19036
19037 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
19038
19039 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
19040
19041 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
19042
19043 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
19044 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
19045
19046 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
19047 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
19048
19049 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
19050 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
19051 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
19052 (TARGET_ADDR_SPACE_CONVERT): Likewise.
19053
19054 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
19055
19056 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
19057
19058 (TARGET_INIT_BUILTINS): Use prototype.
19059
19060 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
19061 Put 'const char *' in braces. Fix parameter types.
19062 (TARGET_INVALID_CONVERSION): Fix parameter types.
19063 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
19064 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
19065
19066 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
19067 Fix argument type.
19068
19069 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
19070
19071 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
19072
19073 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
19074
19075 * doc/tm.texi (TARGET_HELP): Fix return type.
19076
19077 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
19078 in braces. Fix argument types.
19079
19080 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
19081
19082 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
19083
19084 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
19085
19086 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
19087 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
19088
19089 (TARGET_MANGLE_TYPE): Fix argument types.
19090
19091 (TARGET_IRA_COVER_CLASSES): Use prototype.
19092
19093 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
19094
19095 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
19096
19097 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
19098
19099 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
19100
19101 (TARGET_CALLEE_COPIES): Fix argument types.
19102
19103 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
19104
19105 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
19106
19107 (TARGET_FUNCTION_VALUE): Fix argument types.
19108
19109 (TARGET_RETURN_IN_MSB): Fix argument type.
19110
19111 (TARGET_RETURN_IN_MEMORY): Fix argument types.
19112
19113 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
19114
19115 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
19116
19117 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
19118 agree with return type.
19119
19120 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
19121
19122 2010-01-15 Jing Yu <jingyu@google.com>
19123
19124 PR rtl-optimization/42691
19125 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
19126 a pseudo to a constant and are merged, and adjust comments.
19127
19128 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
19129
19130 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
19131
19132 2010-01-15 Richard Guenther <rguenther@suse.de>
19133
19134 PR middle-end/42739
19135 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
19136 labels of computed or non-local gotos to the destination.
19137 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
19138 landing pad label is the first label.
19139
19140 2010-01-15 Richard Guenther <rguenther@suse.de>
19141
19142 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
19143
19144 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19145
19146 PR target/42747
19147 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
19148 to allow generation of the xssqrtdp instruction on power7.
19149 (sqrtdf2_fpr): Ditto.
19150
19151 2010-01-14 Jakub Jelinek <jakub@redhat.com>
19152
19153 PR middle-end/42674
19154 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
19155 functions with noreturn attribute.
19156
19157 PR c++/42608
19158 * varasm.c (declare_weak): Add weak attribute to decl if it
19159 doesn't have one already.
19160 (assemble_external): Only add decls to weak_decls if they also
19161 have weak attribute.
19162
19163 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
19164
19165 * var-tracking.c (var_reg_delete): Don't delete the association
19166 between REGs and values or one-part variables if the register
19167 isn't clobbered.
19168
19169 2010-01-14 Jakub Jelinek <jakub@redhat.com>
19170
19171 PR debug/42657
19172 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
19173 because its first operand is a non-localized variable.
19174
19175 2010-01-14 Martin Jambor <mjambor@suse.cz>
19176
19177 PR tree-optimization/42706
19178 * tree-sra.c (encountered_recursive_call): New variable.
19179 (encountered_unchangable_recursive_call): Likewise.
19180 (sra_initialize): Initialize both new variables.
19181 (callsite_has_enough_arguments_p): New function.
19182 (scan_function): Call decl and flags check only for IPA-SRA, check
19183 whether there is a recursive call and whether it has enough arguments.
19184 (all_callers_have_enough_arguments_p): New function.
19185 (convert_callers): Look for recursive calls only when
19186 encountered_recursive_call is set.
19187 (ipa_early_sra): Bail out either if
19188 !all_callers_have_enough_arguments_p or
19189 encountered_unchangable_recursive_call.
19190
19191 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19192
19193 * sel-sched.c: Add 2010 to copyright years.
19194 * sel-sched-ir.c: Likewise.
19195 * sel-sched-ir.h: Likewise.
19196
19197 2010-01-14 Martin Jambor <mjambor@suse.cz>
19198
19199 PR tree-optimization/42714
19200 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
19201 constructors specially.
19202
19203 2010-01-14 Andi Kleen <ak@linux.intel.com>
19204
19205 * config/i386/drivers-i386.c (detect_caches_intel):
19206 Add l2sizekb parameter and fill in.
19207 (host_detect_local_cpu): Add l2sizekb, fill in.
19208 Add Atom small cache heuristic.
19209
19210 2010-01-14 Andi Kleen <ak@linux.intel.com>
19211
19212 * config/i386/drivers-i386.c (detect_caches_cpuid4):
19213 Add level3 parameter and fill in.
19214 (detect_caches_intel): Handle level3 cache.
19215
19216 2010-01-14 Andi Kleen <ak@linux.intel.com>
19217
19218 * config/i386/drivers-i386.c (host_detect_local_cpu):
19219 Fix core duo detection.
19220
19221 2010-01-14 Andi Kleen <ak@linux.intel.com>
19222
19223 * config/i386/drivers-i386.c (host_detect_local_cpu):
19224 Fix Atom detection.
19225
19226 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19227
19228 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
19229 (rs6000_variable_issue_1): this. Use...
19230 (rs6000_variable_issue): here. Reimplement. Print debug info.
19231
19232 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19233
19234 * sel-sched-ir.c (sel_restore_other_notes): Rename to
19235 sel_restore_notes. Update all callers. Call reemit_notes
19236 for all insns.
19237
19238 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
19239
19240 PR rtl-optimization/42246
19241 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
19242 loops.
19243
19244 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
19245
19246 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
19247 all successors is the same as number of successors in current region.
19248
19249 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19250
19251 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
19252 to rename is not separable. Otherwise check that its LHS is not NULL.
19253
19254 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19255
19256 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
19257
19258 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19259
19260 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
19261 available registers when failed to discover LHS register class.
19262 Fix indentation. Update comment.
19263
19264 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
19265 Alexander Monakov <amonakov@ispras.ru>
19266
19267 PR rtl-optimization/42389
19268 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
19269 to can_issue_more.
19270 (advance_state_on_fence): Likewise.
19271 (sel_target_adjust_priority): Print debug output only when
19272 sched_verbose >= 4, not 2.
19273 (get_expr_cost): Do not issue all unique insns on the next cycle.
19274 (fill_insns): Initialize can_issue_more from the value saved
19275 with the fence.
19276 * sel-sched-ir.c (flist_add): New parameter issue_more.
19277 Init FENCE_ISSUE_MORE with it.
19278 (merge_fences): Likewise.
19279 (init_fences): Update call to flist_add.
19280 (add_to_fences, add_clean_fence_to_fences)
19281 (add_dirty_fence_to_fences): Likewise.
19282 (move_fence_to_fences): Update call to merge_fences.
19283 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
19284 sched groups.
19285 * sel-sched-ir.h (struct _fence): New field issue_more.
19286 (FENCE_ISSUE_MORE): New accessor macro.
19287
19288 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
19289
19290 PR rtl-optimization/42388
19291 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
19292 that have no predecessors nor successors. Do not call move_bb_info
19293 for empty blocks outside of current region.
19294
19295 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19296
19297 PR rtl-optimization/42294
19298 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
19299 * sel-sched.c (move_exprs_to_boundary): Transitively add all
19300 originators' originators.
19301
19302 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
19303
19304 PR rtl-optimization/39453
19305 PR rtl-optimization/42246
19306 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
19307 for pipelining_p.
19308 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
19309
19310 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
19311 Alexander Monakov <amonakov@ispras.ru>
19312
19313 PR middle-end/42245
19314 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
19315 (maybe_tidy_empty_bb): ... here. Make static. Add new
19316 argument. Update all callers.
19317 (tidy_control_flow): ... and here. Recompute topological order
19318 of basic blocks in region if necessary.
19319 (sel_redirect_edge_and_branch): Change return type. Return true
19320 if topological order might have been invalidated.
19321 (purge_empty_blocks): Export and move from...
19322 * sel-sched.c (purge_empty_blocks): ... here.
19323 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
19324 (maybe_tidy_empty_bb): Delete prototype.
19325 (purge_empty_blocks): Declare.
19326
19327 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
19328
19329 PR rtl-optimization/42249
19330 * sel-sched.c (try_replace_dest_reg): When chosen register
19331 and original register is the same, do not bail out early, but
19332 still check all original insns for validity of replacing destination
19333 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
19334 in this case.
19335
19336 2010-01-14 Jakub Jelinek <jakub@redhat.com>
19337
19338 PR c/42721
19339 Port from no-undefined-overflow branch:
19340 2009-03-09 Richard Guenther <rguenther@suse.de>
19341
19342 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
19343
19344 2010-01-14 Richard Guenther <rguenther@suse.de>
19345
19346 PR lto/42665
19347 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
19348
19349 2010-01-14 Ira Rosen <irar@il.ibm.com>
19350
19351 PR tree-optimization/42709
19352 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
19353 as scalar type in creation of constant vector operand.
19354
19355 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19356
19357 PR testsuite/42414
19358 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
19359 (check-parallel-%): Match `testsuite' directory component only
19360 at the end.
19361
19362 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
19363
19364 PR translation/39521
19365 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
19366 strings with _().
19367
19368 2010-01-13 Richard Guenther <rguenther@suse.de>
19369
19370 PR tree-optimization/42730
19371 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
19372 offset zero.
19373
19374 2010-01-13 Steve Ellcey <sje@cup.hp.com>
19375
19376 PR target/pr42542
19377 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
19378 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
19379 them signed.
19380
19381 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
19382
19383 * config/bfin/libgcc-bfin.ver: Regenerate based on current
19384 libgcc-std.ver. Add entries for ___smulsi3_highpart and
19385 ___umulsi3_highpart.
19386
19387 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
19388 rather than schedule_insns if the pass is enabled.
19389
19390 2010-01-13 Martin Jambor <mjambor@suse.cz>
19391
19392 PR tree-optimization/42704
19393 * tree-sra.c (sra_modify_assign): Do not delete assignments to
19394 SSA_NAMEs.
19395
19396 2010-01-13 Martin Jambor <mjambor@suse.cz>
19397
19398 PR tree-optimization/42703
19399 * tree-sra.c (analyze_access_subtree): Check that we can build a
19400 reference to the original data within the aggregate.
19401
19402 2010-01-13 Richard Guenther <rguenther@suse.de>
19403
19404 PR tree-optimization/42705
19405 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
19406
19407 2010-01-13 Richard Guenther <rguenther@suse.de>
19408
19409 PR middle-end/42716
19410 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
19411
19412 2010-01-13 Jakub Jelinek <jakub@redhat.com>
19413
19414 PR debug/41371
19415 * var-tracking.c (values_to_unmark): New variable.
19416 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
19417 values_to_unmark vector. Moved body to...
19418 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
19419 instead queue it into values_to_unmark vector.
19420 (vt_find_locations): Free values_to_unmark vector.
19421
19422 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
19423
19424 * config/s390/s390.c (override_options): Set
19425 default of max-pending-list-length to 256
19426
19427 2010-01-13 Richard Guenther <rguenther@suse.de>
19428
19429 PR lto/42678
19430 * tree-pass.h (PROP_gimple_lcx): New.
19431 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
19432 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
19433 before the final cleanup_eh.
19434 (dump_properties): Dump PROP_gimple_lcx.
19435 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
19436 (tree_lower_complex_O0): Remove.
19437 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
19438 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
19439 tree_lower_complex, schedule TODO_update_ssa.
19440 * lto-streamer-out.c (output_function): Stream the functions
19441 properties.
19442 * lto-streamer-in.c (input_function): Likewise.
19443 (lto_read_body): Do not override them here.
19444
19445 2010-01-12 Joseph Myers <joseph@codesourcery.com>
19446
19447 PR c/42708
19448 * c-typeck.c (build_c_cast): Fold value cast to union type before
19449 wrapping it in a CONSTRUCTOR.
19450
19451 2010-01-12 Jakub Jelinek <jakub@redhat.com>
19452
19453 PR rtl-optimization/42699
19454 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
19455 involved.
19456
19457 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19458
19459 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
19460 SUBTARGET_WARN_UNUSED_SPEC): Move ...
19461 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
19462 SUBTARGET_WARN_UNUSED_SPEC): ... here
19463 * config/mips/iris5.h (LIBGCC_SPEC): Define.
19464
19465 2010-01-12 Julian Brown <julian@codesourcery.com>
19466
19467 * config/arm/neon-schedgen.ml (Utils): Don't try to
19468 open missing module.
19469 (find_with_result): New.
19470
19471 2010-01-12 Jakub Jelinek <jakub@redhat.com>
19472
19473 PR debug/42662
19474 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
19475 sharing when canonicalizing ({lt,ge}u (plus a b) b).
19476
19477 PR tree-optimization/42645
19478 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
19479 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
19480 decl_map, set processing_debug_stmt to -1 and return name without
19481 any remapping.
19482
19483 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
19484
19485 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
19486 binutils version, and reword target configuration description.
19487
19488 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
19489
19490 * config/avr/avr.h (LINKER_NAME): Remove.
19491
19492 2010-01-11 Janis Johnson <janis187@us.ibm.com>
19493
19494 PR target/42416
19495 * config/rs6000/rs6000.c (rs6000_override_options): On targets
19496 that support VSX, warn for -mno-altivec if vsx is not disabled,
19497 and disable vsx.
19498
19499 2010-01-11 Joseph Myers <joseph@codesourcery.com>
19500 Shujing Zhao <pearly.zhao@oracle.com>
19501
19502 PR translation/42469
19503 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
19504 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
19505 character between option name and help text.
19506 * c.opt (imultilib): Likewise.
19507
19508 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
19509
19510 * lto-streamer-out.c (output_unreferenced_globals): Output static
19511 variables.
19512
19513 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
19514
19515 PR rtl-optimization/42621
19516 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
19517 optimizing for size.
19518 (duplicate_computed_gotos): Remove now-redundant check.
19519
19520 2010-01-10 Steve Ellcey <sje@cup.hp.com>
19521
19522 PR target/37454
19523 * configure.ac: Save and restore LDFLAGS and LIBS
19524 * configure: Regenerate.
19525
19526 2010-01-10 Richard Guenther <rguenther@suse.de>
19527
19528 PR middle-end/42667
19529 * builtins.c (fold_builtin_strlen): Add type argument and
19530 convert the resulting length to it.
19531 (fold_builtin_1): Adjust.
19532
19533 2010-01-09 Jakub Jelinek <jakub@redhat.com>
19534
19535 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
19536 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
19537 1 insn.
19538 (num_insns_constant_wide): Adjust for that change.
19539
19540 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19541
19542 PR debug/42631
19543 * web.c (union_defs): Add used argument, to combine uses of
19544 uninitialized regs.
19545 (entry_register): Adjust type and tests of used argument.
19546 (web_main): Widen used for new use. Pass it to union_defs.
19547 * df.h (union_defs): Adjust prototype.
19548
19549 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19550
19551 PR debug/42630
19552 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
19553 uses in new incoming argument. Free body.
19554 (reset_debug_uses_in_loop): New.
19555 (analyze_insn_to_expand_var): Call the latter if the former found
19556 anything. Fix whitespace. Reject invalid dest overlaps before
19557 going through all insns in the loop.
19558
19559 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19560
19561 PR debug/42629
19562 * haifa-sched.c (dying_use_p): Debug insns don't count.
19563
19564 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19565
19566 PR middle-end/42363
19567 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
19568 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
19569 (verify_gimple_call): Reject LHS in noreturn calls.
19570
19571 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19572
19573 PR debug/42604
19574 PR debug/42395
19575 * tree-vect-loop-manip.c (adjust_info): New type.
19576 (adjust_vec): New pointer to vector.
19577 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
19578 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
19579 (slpeel_update_phis_for_duplicate_loop): Use them.
19580 (slpeel_update_phi_nodes_for_guard1): Likewise.
19581 (slpeel_update_phi_nodes_for_guard2): Likewise.
19582 (slpeel_tree_peel_loop_to_edge): Likewise.
19583 (vect_update_ivs_after_vectorizer): Likewise.
19584
19585 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19586
19587 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
19588 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
19589
19590 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
19591
19592 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
19593 bogus uninitialized warning.
19594
19595 2010-01-09 Richard Guenther <rguenther@suse.de>
19596
19597 PR middle-end/42512
19598 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
19599 the evolution is compatible with the initial condition.
19600
19601 2010-01-09 Jakub Jelinek <jakub@redhat.com>
19602
19603 * gcc.c (process_command): Update copyright notice dates.
19604 * gcov.c (print_version): Likewise.
19605 * gcov-dump.c (print_version): Likewise.
19606 * mips-tfile.c (main): Likewise.
19607 * mips-tdump.c (main): Likewise.
19608
19609 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
19610
19611 PR target/41885
19612 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
19613 (rotlhi3): Delete.
19614 (rotlhi3_8): Delete.
19615 (rotlsi3): Delete.
19616 (rotlsi3_8): Delete.
19617 (rotlsi3_16): Delete.
19618 (rotlsi3_24): Delete.
19619 (rotl<mode>3): New.
19620 (*rotw<mode>3): New.
19621 (*rotb<mode>3): New.
19622 * config/avr/avr.c (avr_rotate_bytes): New function.
19623 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
19624
19625 2010-01-08 Steve Ellcey <sje@cup.hp.com>
19626
19627 PR target/37454
19628 * configure.ac: Modify -rdynamic check.
19629 * configure: Regenerate.
19630
19631 2010-01-08 DJ Delorie <dj@redhat.com>
19632
19633 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
19634 register popping order.
19635
19636 2010-01-08 Richard Guenther <rguenther@suse.de>
19637
19638 PR lto/42528
19639 * c.opt (fsigned-char): Also let LTO handle this option.
19640 (funsigned-char): Likewise.
19641
19642 2010-01-07 Richard Guenther <rguenther@suse.de>
19643
19644 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
19645 (gimple_op): Likewise.
19646 (gimple_op_ptr): Likewise.
19647 (gimple_assign_set_lhs): Remove gcc_assert.
19648 (gimple_assign_set_rhs1): Likewise.
19649 (gimple_assign_set_rhs2): Likewise.
19650 (gimple_call_set_lhs): Likewise.
19651 (gimple_call_set_fn): Likewise.
19652 (gimple_call_set_fndecl): Likewise.
19653 (gimple_call_fndecl): Likewise.
19654 (gimple_call_return_type): Likewise.
19655 (gimple_call_set_chain): Likewise.
19656 (gimple_call_num_args): Likewise.
19657 (gimple_call_set_arg): Likewise.
19658 (gimple_cond_set_code): Likewise.
19659 (gimple_cond_set_lhs): Likewise.
19660 (gimple_cond_set_rhs): Likewise.
19661 (gimple_cond_set_true_label): Likewise.
19662 (gimple_cond_set_false_label): Likewise.
19663 (gimple_label_set_label): Likewise.
19664 (gimple_goto_set_dest): Likewise.
19665 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
19666 (gimple_debug_bind_get_value): Likewise.
19667 (gimple_debug_bind_get_value_ptr): Likewise.
19668 (gimple_debug_bind_set_var): Likewise.
19669 (gimple_debug_bind_set_value): Likewise.
19670 (gimple_debug_bind_reset_value): Likewise.
19671 (gimple_debug_bind_has_value_p): Likewise.
19672 (gimple_return_retval_ptr): Remove gcc_assert.
19673 (gimple_return_retval): Likewise.
19674 (gimple_return_set_retval): Likewise.
19675 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
19676 (safe_referenced_var_iterator): Remove.
19677 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
19678 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
19679 (fill_referenced_var_vec): Remove.
19680 (first_readonly_imm_use): Remove redundant gcc_assert.
19681 (phi_arg_index_from_use): Combine gcc_asserts.
19682 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
19683 (first_imm_use_stmt): Remove redundant gcc_assert.
19684 * tree-cfg.c (verify_gimple_call): Verify function and chain
19685 operands. Verify arguments.
19686 (verify_types_in_gimple_stmt): Verify condition code and labels.
19687
19688 2010-01-07 Richard Guenther <rguenther@suse.de>
19689
19690 PR tree-optimization/42641
19691 * sese.c (rename_map_elt_info): Use the SSA name version, do
19692 not hash pointers.
19693
19694 2010-01-07 Jakub Jelinek <jakub@redhat.com>
19695
19696 PR tree-optimization/42625
19697 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
19698 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
19699
19700 2010-01-07 Duncan Sands <baldrick@free.fr>
19701
19702 * Makefile.in (PLUGIN_HEADERS): Add version.h.
19703
19704 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
19705
19706 PR target/42511
19707 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
19708 note itself is not function_invariant_p.
19709
19710 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
19711
19712 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
19713 Do not add the DF_NOTE problem.
19714 * store-motion.c (execute_rtl_store_motion): Likewise.
19715
19716 2010-01-07 Martin Jambor <mjambor@suse.cz>
19717
19718 PR tree-optimization/42157
19719 * tree-sra.c (compare_access_positions): Stabilize sort if both
19720 accesses have integer types, return zero immediately if they are the
19721 same.
19722
19723 2010-01-06 Richard Henderson <rth@redhat.com>
19724
19725 PR middle-end/41883
19726 * haifa-sched.c (add_to_note_list): Merge into ...
19727 (concat_note_lists): ... here, and ...
19728 (unlink_other_notes, rm_other_notes): Merge into...
19729 (remove_notes): ... here. Create REG_SAVE_NOTEs for
19730 NOTE_INSN_EPILOGUE_BEG.
19731
19732 2010-01-06 Richard Guenther <rguenther@suse.de>
19733
19734 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
19735 not inline regular functions into always-inline functions.
19736
19737 2010-01-06 Nick Clifton <nickc@redhat.com>
19738
19739 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
19740 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
19741 used together.
19742 (OVERRIDE_OPTIONS): Delete.
19743 (OPTIMIZATION_OPTIONS): Define.
19744 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
19745 * config/rx/rx.c (rx_handle_option): Issue an error message if
19746 -mcpu=rx200 and -fpu are used together.
19747 (rx_set_optimization_options): New function. Issue an error
19748 message if an optimization attribute attempts to reset the FPU/
19749 math optimization pairing.
19750 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
19751 * config/rx/rx.opt: Set the default to 32-bit doubles.
19752 * config/rx/t-rx: Add multilibs for -nofpu option.
19753 * doc/invoke.texi: Update documentation of RX options.
19754
19755 2010-01-06 Richard Guenther <rguenther@suse.de>
19756
19757 * tree-ssa-pre.c (name_to_id): New global.
19758 (alloc_expression_id): Simplify SSA name handling.
19759 (lookup_expression_id): Likewise.
19760 (init_pre): Zero name_to_id.
19761 (fini_pre): Free it.
19762
19763 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
19764
19765 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
19766
19767 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
19768
19769 PR target/42542
19770 * config/i386/sse.md (smaxv2di3): New.
19771 (umaxv2di3): Likewise.
19772 (sminv2di3): Likewise.
19773 (uminv2di3): Likewise.
19774
19775 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
19776
19777 PR target/42564
19778 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
19779 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
19780 (legitimize_tls_address): Likewise.
19781 (sparc_tls_referenced_p): Likewise.
19782 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
19783 and adjust calls to legitimize_pic_address.
19784 (legitimate_constant_p) Use sparc_tls_referenced_p.
19785 (legitimate_pic_operand_p): Likewise.
19786 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
19787 (sparc_tls_symbol_ref_1): Delete.
19788 (sparc_tls_referenced_p): Make static, recognize specific patterns.
19789 (legitimize_tls_address): Make static, handle CONST patterns.
19790 (legitimize_pic_address): Make static, remove unused parameter and
19791 adjust recursive calls.
19792 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
19793 and adjust call to legitimize_pic_address.
19794 (sparc_output_mi_thunk): Likewise.
19795
19796 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
19797 H.J. Lu <hongjiu.lu@intel.com>
19798
19799 PR target/42542
19800 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
19801 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
19802 operands to make them signed.
19803
19804 Revert:
19805 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
19806
19807 PR target/42542
19808 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
19809 GTU to GT for V4SI and V2DI.
19810
19811 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
19812 (umin<mode>3): Removed.
19813 (uminv8hi3): New.
19814 (uminv4si3): Likewise.
19815
19816 2010-01-05 Martin Jambor <mjambor@suse.cz>
19817
19818 PR tree-optimization/42462
19819 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
19820 current_function_decl to helper functions and macros.
19821
19822 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19823
19824 PR bootstrap/41771
19825 * flags.h: Don't include real.h.
19826 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
19827 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
19828 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
19829 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
19830 * dominance.c: Update copyright.
19831 * gimple.c (walk_gimple_op): Remove inline.
19832 * tree-ssa-reassoc.c: Include real.h.
19833 * Makefile.in (FLAGS_H): Remove $(REAL_H).
19834 (tree-ssa-reassoc.o): Depend on $(REAL_H).
19835
19836 2010-01-05 Nick Clifton <nickc@redhat.com>
19837
19838 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
19839 register to push into the stack frame when the accumulator has to
19840 be saved during interrupts.
19841
19842 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
19843
19844 * doc/invoke.texi: Remove the documentation about option
19845 -Wunreachable-code.
19846 * common.opt (Wunreachable-code): Preserved for backward
19847 compatibility.
19848 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
19849 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
19850 the backward compatibility flag section.
19851
19852 2010-01-05 Richard Guenther <rguenther@suse.de>
19853
19854 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
19855
19856 2010-01-05 Jakub Jelinek <jakub@redhat.com>
19857
19858 PR other/42611
19859 * cfgexpand.c (expand_one_var): Diagnose too large variables.
19860
19861 PR tree-optimization/42508
19862 * tree-sra.c (convert_callers): Check for recursive call
19863 by comparing cgraph nodes instead of decls.
19864 (modify_function): Call ipa_modify_formal_parameters also
19865 on all same_body aliases.
19866
19867 * cgraphunit.c (cgraph_materialize_all_clones): Compare
19868 cgraph nodes when checking for same_body aliases.
19869
19870 2010-01-05 Richard Guenther <rguenther@suse.de>
19871
19872 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
19873 allocation and lookup.
19874 (get_or_alloc_expr_for_constant): Likewise.
19875 (phi_translate): Sink allocation.
19876
19877 2010-01-04 Richard Guenther <rguenther@suse.de>
19878
19879 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
19880 a new entry only if needed.
19881 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
19882 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
19883 hashtable lookup.
19884 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
19885 the result array.
19886 (phi_translate): Handle CONSTANTs early.
19887
19888 2010-01-04 Martin Jambor <mjambor@suse.cz>
19889
19890 PR tree-optimization/42398
19891 * tree-sra.c (struct access): Removed flag grp_different_types.
19892 (dump_access): Do not dump the removed flag.
19893 (sort_and_splice_var_accesses): Do not set the removed flag.
19894 (sra_modify_expr): Check for type compatibility directly.
19895
19896 2010-01-04 Martin Jambor <mjambor@suse.cz>
19897
19898 PR tree-optimization/42366
19899 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
19900 edges with variable number of parameters.
19901 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
19902 flag instead of asserting it.
19903 (ipa_read_node_info): Read uses_analysis_done flag.
19904
19905 2010-01-04 Richard Guenther <rguenther@suse.de>
19906
19907 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
19908 iterative_hash_* as intended.
19909 (vn_reference_compute_hash): Likewise. Simplify hashing
19910 SSA names.
19911 (vn_reference_lookup_2): Likewise.
19912 (vn_nary_op_compute_hash): Likewise.
19913 (vn_phi_compute_hash): Likewise.
19914 (expressions_equal_p): Remove strange code.
19915 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
19916 (pre_expr_hash): Likewise. Simplify hashing SSA names.
19917 (bitmap_insert_into_set_1): Take value-id as parameter.
19918 (add_to_value): Pass it.
19919 (bitmap_insert_into_set): Likewise.
19920 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
19921
19922 2010-01-04 Jakub Jelinek <jakub@redhat.com>
19923
19924 PR driver/42442
19925 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
19926 (do_self_spec): For switches with SWITCH_IGNORE set set also
19927 SWITCH_IGNORE_PERMANENTLY.
19928 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
19929 of SWITCH_IGNORE.
19930
19931 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
19932
19933 * lto-streamer-out.c (output_unreferenced_globals): Output the full
19934 tree of an unreferenced global var.
19935
19936 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
19937
19938 PR target/42542
19939 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
19940 GTU to GT for V4SI and V2DI.
19941
19942 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
19943 (umin<mode>3): Removed.
19944 (uminv8hi3): New.
19945 (uminv4si3): Likewise.
19946
19947 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
19948
19949 PR lto/42581
19950 * collect2.c (main): Turn on trace in collect2 if -v is passed
19951 to gcc with LTO.
19952
19953 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
19954
19955 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
19956 description of expression operand.
19957
19958 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
19959
19960 * configure.ac: Add install-html to target_list for Make-hooks.
19961 * configure: Regenerate.
19962 * fortran/Make-lang.in (F95_HTMLFILES): New.
19963 (fortran.html): Use it.
19964 (fortran.install-html): New.
19965 * Makefile.in (install-html): Add lang.install-html.
19966 * java/Make-lang.in (JAVA_HTMLFILES): New.
19967 (java.html): Use it.
19968 (java.install-html): New.
19969 * objc/Make-lang.in (objc.install-html): New.
19970 * objcp/Make-lang.in (obj-c++.install-html): New.
19971 * cp/Make-lang.in (c++.install-html): New.
19972 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
19973 * lto/Make-lang.in (lto.install-html): New.
19974
19975 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
19976
19977 PR lto/42520
19978 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
19979
19980 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
19981
19982 PR rtl-optimization/41862
19983 * store-motion.c (store_killed_in_insn, compute_store_table,
19984 remove_reachable_equiv_notes, replace_store_insn,
19985 build_store_vectors): Ignore all DEBUG_INSNs.
19986
19987 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
19988
19989 PR lto/41564
19990 * common.opt: Add dumpdir.
19991
19992 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
19993 isn't specified.
19994 (option_map): Add --dumpdir.
19995
19996 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
19997
19998 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
19999
20000 * opts.c (decode_options): Try dump_dir_name first if
20001 dump_base_name isn't an absolute path.
20002 (common_handle_option): Handle OPT_dumpdir.
20003
20004 * toplev.c (dump_dir_name): New.
20005 (print_switch_values): Also ignore -dumpdir.
20006
20007 * toplev.h (dump_dir_name): New.
20008
20009 2010-01-03 Richard Guenther <rguenther@suse.de>
20010
20011 PR tree-optimization/42589
20012 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
20013 double-word expansion of bswap32.
20014
20015 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
20016
20017 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
20018 with BLOCK_FOR_INSN.
20019 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
20020 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
20021 noce_process_if_block): Likewise.
20022 * gcse.c (compute_local_properties, insert_expr_in_table,
20023 insert_set_in_table, canon_list_insert, find_avail_set,
20024 pre_insert_copy_insn): Likewise.
20025
20026 * basic-block.h (BLOCK_NUM): Move from here...
20027 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
20028
20029 2010-01-03 Richard Guenther <rguenther@suse.de>
20030
20031 PR tree-optimization/42438
20032 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
20033 contains_may_not_return_call flag.
20034 (BB_MAY_NOTRETURN): New.
20035 (valid_in_sets): Trapping nary operations are not valid
20036 in blocks that may not return.
20037 (insert_into_preds_of_block): Remove check for trapping expressions.
20038 (compute_avail): Compute also BB_MAY_NOTRETURN.
20039
20040 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
20041
20042 * doc/invoke.texi: Add 2010 to copyright years.
20043
20044 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
20045
20046 * config/sparc/sparc.c: Fix formatting nits.
20047
20048 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
20049 Alexander Monakov <amonakov@ispras.ru>
20050
20051 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
20052
20053 2010-01-02 Richard Guenther <rguenther@suse.de>
20054
20055 PR middle-end/42577
20056 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
20057 (simplify_switch_using_ranges): Mark to be removed edges
20058 as non-executable.
20059
20060 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20061
20062 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
20063
20064 * collect2.c (scan_libraries): Add missing argument in call to
20065 scan_prog_file.
20066
20067 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
20068
20069 PR target/42448
20070 * config/alpha/predicates.md (aligned_memory_operand): Return false
20071 for CQImode.
20072 (unaligned_memory_operand): Return true for CQImode.
20073 * config/alpha/alpha.c (get_aligned_mem): Assert that location
20074 doesn not cross aligned SImode word boundary.
20075
20076 2010-01-02 Anatoly Sokolov <aesok@post.ru>
20077
20078 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
20079 Remove.
20080 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
20081 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
20082
20083 2010-01-02 Richard Guenther <rguenther@suse.de>
20084
20085 PR lto/41597
20086 * toplev.c (compile_file): Emit LTO marker properly. Change
20087 it to __gnu_lto_v1.
20088 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
20089
20090 2010-01-01 Richard Guenther <rguenther@suse.de>
20091
20092 PR debug/42455
20093 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
20094
20095 2010-01-01 Richard Guenther <rguenther@suse.de>
20096
20097 PR c/42570
20098 * c-decl.c (grokdeclarator): For zero-size arrays force
20099 structural equality checks as layout_type does.
20100
20101 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
20102
20103 * builtins.c: Update copyright to 2010.
20104
20105 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
20106
20107 PR lto/42531
20108 * lto-streamer-out.c (produce_asm): Revert the last change.
20109 (copy_function): Likewise.
20110
20111 * lto-streamer.c (lto_get_section_name): Skip any leading
20112 asterisk in name.
20113
20114 2010-01-01 Richard Guenther <rguenther@suse.de>
20115
20116 PR middle-end/42559
20117 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
20118 for LABEL_DECLs.
20119
20120 \f
20121 Copyright (C) 2010 Free Software Foundation, Inc.
20122
20123 Copying and distribution of this file, with or without modification,
20124 are permitted in any medium without royalty provided the copyright
20125 notice and this notice are preserved.