picochip.c (picochip_option_override): Disable exception flags for picochip.
[gcc.git] / gcc / ChangeLog
1 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
2
3 * config/picochip/picochip.c (picochip_option_override): Disable
4 exception flags for picochip.
5
6 2010-10-05 Joseph Myers <joseph@codesourcery.com>
7
8 * opts-common.c (handle_option, handle_generated_option,
9 read_cmdline_option, set_option): Add diagnostic_context
10 parameter. Update calls among these functions.
11 (set_option): Don't use global_dc.
12 * opts.c (read_cmdline_options): Pass global_dc to
13 read_cmdline_option.
14 (decode_options): Pass global_dc to enable_warning_as_error.
15 (common_handle_option): Pass global_dc to enable_warning_as_error.
16 (enable_warning_as_error): Add diagnostic_context parameter.
17 Document parameters. Don't use global_dc. Pass
18 diagnostic_context parameter to handle_generated_option.
19 * opts.h (set_option, handle_option, handle_generated_option,
20 read_cmdline_option, enable_warning_as_error): Add
21 diagnostic_context parameter.
22 * Makefile.in (lto-opts.o): Update dependencies.
23 * coretypes.h (struct diagnostic_context, diagnostic_context):
24 Declare here.
25 * diagnostic.h (diagnostic_context): Don't declare typedef here.
26 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
27 * langhooks-def.h (struct diagnostic_context): Don't declare here.
28 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
29 using diagnostic_context typedef.
30 * langhooks.c (lhd_initialize_diagnostics): Declare using
31 diagnostic_context typedef.
32 * langhooks.h (struct diagnostic_context): Don't declare here.
33 (initialize_diagnostics, print_error_function): Declare using
34 diagnostic_context typedef.
35 * lto-opts.c: Include diagnostic.h.
36 (lto_reissue_options): Pass global_dc to set_option. Pass
37 DK_UNSPECIFIED not 0.
38 * plugin.c (plugins_internal_error_function): Declare using
39 diagnostic_context typedef.
40 * plugin.h (struct diagnostic_context): Don't declare here.
41 (plugins_internal_error_function): Declare using
42 diagnostic_context typedef.
43
44 2010-10-05 Olivier Hainque <hainque@adacore.com>
45 Nicolas Roche <roche@adacore.com>
46
47 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
48 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
49
50 2010-10-05 Ira Rosen <irar@il.ibm.com>
51
52 PR tree-optimization/45752
53 * tree-vect-slp.c (vect_get_mask_element): Remove static
54 variables, make them function arguments.
55 (vect_transform_slp_perm_load): Pass new arguments to
56 vect_get_mask_element.
57
58 2010-10-05 Richard Guenther <rguenther@suse.de>
59
60 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
61 (gimple_mod_pow2): Likewise.
62 (gimple_mod_subtract): Likewise.
63 (gimple_ic): Likewise.
64 (gimple_stringop_fixed_value): Likewise.
65 * tree-profile.c (tree_init_edge_profiler): Mark profile
66 functions nothrow and leaf.
67 (add_abnormal_goto_call_edges): Remove.
68 (tree_gen_edge_profiler): Work on SSA form.
69 (tree_gen_ic_profiler): Likewise. Simplify.
70 (do_tree_profiling): Update SSA form.
71 (pass_tree_profile): Remove.
72 (do_tree_profiling): Likewise.
73 (gate_tree_profile_ipa): New function.
74 (pass_ipa_tree_profile): New.
75 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
76 state of instrumented functions.
77 * passes.c (init_optimization_passes): Remove early non-SSA
78 inlining. Move profiling after early optimizations.
79 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
80 (pass_ipa_early_inline): Likewise.
81 * tree-pass.h (pass_ipa_early_inline): Remove.
82 (pass_tree_profile): Likewise.
83 (pass_ipa_tree_profile): Declare.
84
85 2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
86 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
87
88 * gcc/config/s390/s390.c (z196_cost): New.
89 (s390_handle_arch_option): Add -march=z196.
90 (s390_option_override): Use the new cost function and use the z10
91 defaults also for z196.
92 (legitimate_reload_constant_p): Adjust comment.
93 (legitimate_reload_fp_constant_p): New function.
94 (s390_preferred_reload_class): Distingiush between FP and Int constants.
95 (preferred_la_operand_p): Avoid la with index on z196.
96 (s390_adjust_priority): Trigger also for z196.
97 (s390_issue_rate): Issue rate for z196 is 3.
98 (s390_z10_fix_long_loop_prediction): Rename to ...
99 (s390_fix_long_loop_prediction): ... this.
100 (s390_reorg): Apply the z10 adjustments also for z196.
101 (s390_loop_unroll_adjust): Do this also for z196.
102 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
103 (enum processor_flags): Add PF_Z196.
104 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
105 (TARGET_CPU_Z196, TARGET_Z196): New macros.
106 * gcc/config.gcc: Enable z196 for --with-arch.
107 * gcc/config/s390/2817.md: New file.
108 * gcc/config/s390/2084.md: New type for multiply and add.
109 * gcc/config/s390/2097.md: Likewise.
110 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
111 (UNSPECV_ATOMIC_OP): New constants.
112 (fmadddf, fmaddsf): New values for type attribute.
113 (z196prop): New insn attribute.
114 (cpu, cpu_facility): Add z196.
115 (ATOMIC_Z196): New code iterator.
116 (noxa): New code attribute.
117 (gk): New mode attribute.
118 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
119 Support load zero for fp constants.
120 (fixuns_truncdddi2, fixuns_trunctddi2)
121 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
122 for z196.
123 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
124 (popcounthi2, popcountqi2): New expander.
125 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
126 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
127 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
128 insn definition.
129 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
130 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
131 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc, *sub<mode>3)
132 (*sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly, *sub<mode>3_cc)
133 (*sub<mode>3_cc2, *sub<mode>3_cconly, *sub<mode>3_cconly2)
134 (*anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc, *andsi3_cconly)
135 (*andsi3_zarch, *andsi3_esa, *andhi3_zarch, *andqi3_zarch, *iordi3_cc)
136 (*iordi3_cconly, *iordi3, *iorsi3_cc, *iorsi3_cconly, *iorsi3_zarch)
137 (*iorhi3_zarch, *iorqi3_zarch, *xordi3_cc, *xordi3_cconly, *xordi3)
138 (*xorsi3_cc, *xorsi3_cconly, *xorsi3, *xorhi3, *xorqi3, *<shift><mode>3)
139 (*<shift><mode>3_and, *ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
140 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
141 Support new z196 instructions.
142
143 2010-10-05 Richard Guenther <rguenther@suse.de>
144
145 PR middle-end/45877
146 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
147 case where gimplification optimizes away the stmt.
148
149 2010-10-04 Jakub Jelinek <jakub@redhat.com>
150
151 PR debug/45849
152 * var-tracking.c (strip_pointer_flags): New function.
153 (emit_note_insn_var_location): If rtx_equal_p check failed,
154 retry on locations simplified with simplify_replace_fn_rtx
155 and strip_pointer_flags as its callback.
156
157 2010-10-04 Jan Hubicka <jh@suse.cz>
158
159 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
160 (can_refer_decl_in_current_unit_p): ... this one; reverse return
161 value; handle comdats too.
162 (canonicalize_constructor_val): Use it; handle function_decls
163 correctly.
164 (gimple_fold_obj_type_ref_known_binfo): Likewise.
165 * gimple.c (get_base_address): Accept all kinds of decls.
166
167 2010-10-04 Joseph Myers <joseph@codesourcery.com>
168
169 * flags.h (g_switch_value, g_switch_set): Remove.
170 * opts.c (g_switch_value, g_switch_set): Remove.
171 * config/g.opt (G): Add Var(g_switch_value).
172 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G
173 here.
174 (alpha_option_override): Check global_options_set.x_g_switch_value
175 instead of g_switch_set.
176 (alpha_in_small_data_p): Remove cast in comparison with
177 g_switch_value.
178 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
179 g_switch_value to unsigned HOST_WIDE_INT.
180 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
181 with g_switch_value.
182 (frv_handle_option): Don't handle -G here.
183 (frv_option_override): Check global_options_set.x_g_switch_value
184 instead of g_switch_set. Don't modify g_switch_set.
185 (frv_in_small_data_p): Remove cast in comparison with
186 g_switch_value.
187 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
188 g_switch_value to unsigned HOST_WIDE_INT.
189 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
190 (ia64_option_override): Check global_options_set.x_g_switch_value
191 instead of g_switch_set.
192 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
193 Remove.
194 (lm32_in_small_data_p): Remove cast in comparison with
195 g_switch_value.
196 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
197 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
198 HOST_WIDE_INT.
199 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
200 (m32r_init): Check global_options_set.x_g_switch_value instead of
201 g_switch_set.
202 (m32r_in_small_data_p): Remove cast in comparison with
203 g_switch_value.
204 (m32r_file_start): Format g_switch_value with %d.
205 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
206 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned
207 HOST_WIDE_INT.
208 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
209 handle -G here.
210 (microblaze_option_override): Check
211 global_options_set.x_g_switch_value instead of g_switch_set.
212 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
213 (mips_option_override): Check global_options_set.x_g_switch_value
214 instead of g_switch_set.
215 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G
216 here.
217 (rs6000_file_start): Format g_switch_value with %d.
218 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
219 comparisons with g_switch_value.
220 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
221 global_options_set.x_g_switch_value instead of g_switch_set.
222 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
223 global_options_set.x_g_switch_value instead of g_switch_set.
224 * config/score/score.c (score_handle_option): Don't handle -G
225 here.
226 * config/score/score3.c (score3_option_override): Check
227 global_options_set.x_g_switch_value instead of g_switch_set.
228 * config/score/score7.c (score7_option_override): Check
229 global_options_set.x_g_switch_value instead of g_switch_set.
230
231 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
232
233 * common.opt (fira-coalesce): Remove.
234
235 * doc/invoke.texi (flag_ira_coalesce): Remove.
236
237 * ira-color.c (allocno_coalesced_p): Move before
238 copy_freq_compare_func.
239 processed_coalesced_allocno_bitmap): Ditto.
240 (update_conflict_hard_regno_costs): Don't use
241 ALLOCNO_FIRST_COALESCED_ALLOCNO.
242 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
243 (assign_hard_reg): Assume no coalesced allocnos.
244 (get_coalesced_allocnos_attributes): Remove.
245 (bucket_allocno_compare_func): Assume no coalesced allocnos.
246 (push_allocno_to_stack): Ditto.
247 (remove_allocno_from_bucket_and_push): Use
248 ira_print_expanded_allocno instead of print_coalesced_allocno.
249 (push_allocnos_to_stack): Assume uncoalesced allocnos.
250 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
251 all_conflicting_hard_regs.
252 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
253 (setup_allocno_left_conflicts_size): Ditto.
254 (put_allocno_into_bucket): Ditto.
255 (copy_freq_compare_func): Remove.
256 (copy_freq_compare_func, merge_allocnos): Move before
257 coalesced_pseudo_reg_freq_compare.
258 coalesced_allocno_conflict_p): Ditto.
259 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
260 parameter. Assume it true.
261 (color_allocnos): Assume uncoalesced allocnos. Use
262 ira_print_expanded_allocno instead of print_coalesced_allocno.
263 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
264 parameter.
265
266 * ira.c: Remove comment about coalescing.
267
268 2010-10-04 Joseph Myers <joseph@codesourcery.com>
269
270 * config/mips/mips.h (target_flags_explicit): Declare for
271 GENERATOR_FILE.
272
273 2010-10-04 Andi Kleen <ak@linux.intel.com>
274
275 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
276 gcov-dump, cc1-dummy, genprog, build/gcov-iov):
277 Add + to build rule.
278
279 2010-10-04 Matthias Klose <doko@ubuntu.com>
280
281 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
282 multilib osdirname if it exists.
283 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
284
285 2010-10-04 Jakub Jelinek <jakub@redhat.com>
286
287 PR middle-end/45876
288 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
289 arg0's type or its unsigned counterpart as utype. Convert
290 arg1 to utype unconditionally.
291
292 2010-10-04 Julian Brown <julian@codesourcery.com>
293
294 * expr.c (expand_assignment): Add assertion to prevent emitting
295 null rtx for movmisalign pattern.
296 (expand_expr_real_1): Likewise.
297 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
298 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
299 (arm_vector_alignment_reachable): New.
300 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
301 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
302 (arm_print_operand): Include alignment qualifier in %A.
303 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
304 (movmisalign<mode>): New expander.
305 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
306 insn patterns.
307
308 2010-10-04 Joseph Myers <joseph@codesourcery.com>
309
310 * optc-gen.awk: Define global_options_set. Don't define
311 target_flags_explicit.
312 * opth-gen.awk: Declare global_options_set. Define
313 target_flags_explicit as macro.
314 * opts-common.c (handle_option): Take opts_set and generated_p
315 parameters.
316 (handle_generated_option, read_cmdline_option, set_option): Take
317 opts_set parameter.
318 (set_option): Use opts_set instead of hardcoding target_flags and
319 target_flags_explicit.
320 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
321 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
322 flag_value_profile_transformations_set, flag_peel_loops_set,
323 flag_branch_probabilities_set, flag_inline_functions_set,
324 flag_ipa_cp_set, flag_ipa_cp_clone_set,
325 flag_predictive_commoning_set, flag_unswitch_loops_set,
326 flag_gcse_after_reload_set): Remove.
327 (common_handle_option, lang_handle_option, target_handle_option):
328 Take opts_set parameter. Assert that it is &global_options_set.
329 (common_handle_option): Don't set _set variables. Check opts_set
330 instead of such variables.
331 (enable_warning_as_error): Pass &global_options_set to
332 handle_generated_option.
333 * opts.h (cl_option_handler_func.handler, set_option,
334 handle_option, handle_generated_option, read_cmdline_option): Add
335 opts_set parameters.
336 (handle_option): Add generated_p parameter.
337 * config/i386/i386.c (ix86_function_specific_save,
338 ix86_function_specific_restore): Updat for renaming of
339 target_flags_explicit field.
340 * config/i386/i386.opt (target_flags_explicit): Rename to
341 ix86_target_flags_explicit.
342 * config/ia64/ia64.c (ia64_override_options_after_change): Check
343 global_options_set.x_flag_selective_scheduling and
344 global_options_set.x_flag_selective_scheduling2, not
345 sel_sched_switch_set.
346 * flags.h (sel_sched_switch_set,
347 flag_speculative_prefetching_set): Remove.
348 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
349 that it is &global_options_set.
350 (process_command): Pass &global_options_set to
351 read_cmdline_option.
352 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
353 set_option.
354 * toplev.c (target_flags_explicit): Remove.
355
356 2010-10-04 Jan Hubicka <jh@suse.cz>
357
358 PR middle-end/45871
359 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
360 use get_ref_base_and_offset to handle references.
361 (fold_const_aggregate_ref): Update.
362
363 2010-10-04 Martin Jambor <mjambor@suse.cz>
364
365 PR tree-optimization/45572
366 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
367 ipa_check_create_node_params.
368 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
369
370 2010-10-04 Yao Qi <yao@codesourcery.com>
371
372 * doc/passes.texi: Clean up.
373
374 2010-10-03 Ian Lance Taylor <iant@google.com>
375
376 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
377 referring to a field using a typedef name.
378 (find_anonymous_field_with_type): New static function.
379 (convert_to_anonymous_field): New static function.
380 (convert_for_assignment): If -fplan9-extensions, permit converting
381 pointer to struct to pointer to anonymous field.
382 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous
383 fields.
384 (is_duplicate_field): New static function.
385 (detect_field_duplicates_hash): If -fplan9-extensions, check for
386 typedef names duplicating field names.
387 (detect_field_duplicates): Likewise.
388 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
389 (C Dialect Options): Document -fplan9-extensions.
390 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
391
392 2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
393
394 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
395 revision 164914.
396 (vect_create_data_ref_ptr): Likewise.
397 * tree-vect-stmts.c (vectorizable_store): Likewise.
398 (perm_mask_for_reverse): Likewise.
399 (reverse_vec_elements): Likewise.
400 (vectorizable_load): Likewise.
401
402 2010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
403
404 * cppbuiltin.c: New file.
405 * cppbuiltin.h: New file.
406 * Makefile.in: Take into account cppbuiltin.{h,c}.
407
408 2010-10-03 Andi Kleen <ak@linux.intel.com>
409
410 * lto-cgraph.c (input_cgraph): Check for missing sections.
411
412 2010-10-03 Uros Bizjak <ubizjak@gmail.com>
413
414 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 preticate
415 to nonimmediate_operand. Force operand 2 to register when allowed.
416 (*<shiftrt_insn><mode>3_mask): Ditto.
417 (*<rotate_insn><mode>3_mask): Ditto.
418
419 2010-10-02 H.J. Lu <hongjiu.lu@intel.com>
420
421 PR tree-optimization/45720
422 PR tree-optimization/45764
423 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
424 Don't accept backwards consecutive accesses.
425 (vect_create_data_ref_ptr): Disallow negative steps.
426
427 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
428 (perm_mask_for_reverse): Removed.
429 (reverse_vec_elements): Likewise.
430 (vectorizable_load): Don't handle negative steps.
431
432 2010-10-02 Jan Hubicka <jh@suse.cz>
433
434 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
435 call destination is known.
436
437 2010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
438
439 PR target/45820
440 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
441 earlier.
442
443 2010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
444
445 * doc/install.texi (Configuration): Document build_configargs,
446 host_configargs, target_configargs.
447
448 2010-10-01 Uros Bizjak <ubizjak@gmail.com>
449
450 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
451 (*<shiftrt_insn><mode>3_mask): Ditto.
452 (*<rotate_insn><mode>3_mask): Ditto.
453
454 2010-10-01 Steve Ellcey <sje@cup.hp.com>
455
456 PR tree-optimization/44716
457 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
458 (HOT_TEXT_SECTION_NAME): Define.
459
460 2010-10-01 Nick Clifton <nickc@redhat.com>
461
462 * common.opt: Add -fcombine-stack-adjustments.
463 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
464 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
465 flag_combine_stack_adjustments.
466 * doc/invoke.texi: Document the new option.
467
468 2010-10-01 Richard Guenther <rguenther@suse.de>
469
470 PR tree-optimization/45854
471 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
472
473 2010-10-01 Anthony Green <green@moxielogic.com>
474
475 * config.gcc: Fix moxie-*-rtems* configuration.
476
477 2010-10-01 Richard Guenther <rguenther@suse.de>
478
479 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
480 (gen_decl_die): Likewise.
481
482 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
483
484 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
485 to the function code for SPU MD builtins.
486 (spu_expand_builtin): Update.
487 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
488
489 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
490
491 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
492 sjlj_except_unwind_info.
493
494 2010-10-01 Tristan Gingold <gingold@adacore.com>
495
496 * configure.ac: Define the nop insn for avr*-*-*
497 * configure: Regenerate.
498
499 2010-10-01 Alan Modra <amodra@gmail.com>
500
501 PR target/45807
502 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
503 extend toc_restore_insn.
504
505 2010-09-30 Richard Guenther <rguenther@suse.de>
506
507 PR tree-optimization/43959
508 * function.c (gimplify_parameters): Use create_tmp_reg instead of
509 create_tmp_var.
510
511 2010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
512
513 * config/sh/sh.c (sh_expand_prologue): Set
514 current_function_static_stack_size.
515
516 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
517
518 * configure.ac: Check for Solaris 8 ld with .hidden support.
519 * configure: Regenerate.
520
521 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
522
523 PR middle-end/45758
524 * graphite.c (graphite_initialize): Call scev_reset.
525
526 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
527
528 * sese.h (scev_analyzable_p): Return false for real or floating
529 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
530
531 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
532
533 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
534 and ps.
535 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
536 domain.
537 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
538 Do not allocate ub_expr, it is passed in initialized.
539
540 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
541
542 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
543 (build_cloog_prog): Dump CLooG input file when
544 flag_graphite_dump_cloog is set. This is disabled on trunk.
545 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
546
547 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
548
549 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
550 verify_dominators for CDI_POST_DOMINATORS.
551 * sese.h: Remove comment about CDI_POST_DOMINATORS.
552 (recompute_all_dominators): Remove call to free_dominance_info
553 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
554 for CDI_POST_DOMINATORS.
555
556 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
557
558 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
559 over pbb_dim_iter_domain.
560
561 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
562
563 * graphite-flattening.c: Fix comments.
564
565 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
566
567 * Makefile.in (OBJS-common): Add graphite-flattening.o.
568 (graphite-flattening.o): New rule.
569 * common.opt (floop-flatten): New flag.
570 * doc/invoke.texi (-floop-flatten): Documented.
571 * graphite-flattening.c: New.
572 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
573 * graphite-poly.h (flatten_all_loops): Declared.
574 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
575 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
576 is set, also set flag_graphite.
577
578 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
579
580 * graphite-poly.c (cloog_checksum): New.
581 * graphite-poly.h (cloog_checksum): Declared.
582
583 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
584
585 * graphite-poly.c (pbb_number_of_iterations): Removed.
586 (pbb_number_of_iterations_at_time): Correctly compute the number
587 of iterations in the transformed loop.
588 * graphite-poly.h (pbb_number_of_iterations): Removed.
589
590 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
591
592 * graphite-poly.h (lst_update_scattering_seq): Removed.
593 (lst_update_scattering): Correctly handle outermost loop dewey
594 renumbering.
595
596 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
597
598 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
599 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
600 * graphite-poly.h (lst_niter_for_loop): New.
601
602 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
603
604 * graphite-poly.c (apply_poly_transforms): Do not abort when the
605 transform read from disk is not legal. Call fatal_error instead.
606
607 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
608
609 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
610 (print_scop_header): Removed. Inlined in the only call place...
611 (print_scop): ... here.
612
613 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
614
615 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
616
617 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
618
619 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
620
621 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
622
623 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
624 (dot_deps_stmt): Same.
625 * graphite-poly.c (dot_lst): Same.
626
627 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
628
629 * graphite-blocking.c (scop_do_strip_mine): Do not call
630 graphite_legal_transform.
631 (scop_do_block): Same.
632
633 2010-09-30 Vladimir Kargov <kargov@gmail.com>
634
635 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
636 description.
637
638 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
639
640 * tree-scalar-evolution.c (instantiate_array_ref): New.
641 (instantiate_scev_r): Also handle ARRAY_REFs.
642
643 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
644
645 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
646 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
647 RESULT_DECL, and FIELD_DECL. Return false for an
648 SSA_NAME_IS_DEFAULT_DEF.
649 (compute_scalar_evolution_in_loop): Do not further analyze the
650 scalar evolution when no_evolution_in_loop_p returns true.
651
652 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
653
654 * tree-chrec.h (evolution_function_is_affine_p): Do not check
655 whether CHREC_LEFT is invariant. A function is affine when
656 CHREC_RIGHT is invariant.
657
658 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
659
660 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
661 is_gimple_reg.
662 (rewrite_degenerate_phi): Same.
663 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
664
665 2010-09-30 Vladimir Kargov <kargov@gmail.com>
666
667 * graphite-scop-detection.c (graphite_can_represent_scev,
668 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
669 graphite_can_represent_loop): Remove outermost_loop.
670
671 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
672
673 PR middle-end/45229
674 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
675 handle GIMPLE_CALLs with no LHS.
676
677 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
678
679 * graphite-poly.c (init_graphite_out_file): New.
680 (init_graphite_in_file): New.
681 (apply_poly_transforms): Updated to enable reading and writing of
682 multiple scop files.
683
684 2010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
685
686 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
687 redundant checks.
688
689 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
690
691 * graphite-clast-to-gimple.c (precision_for_value): Adjust
692 computation of precision by 1.
693
694 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
695
696 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
697 (openscop_read_polyhedron_matrix): New.
698 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
699 (openscop_read_N_int): Same.
700 * graphite-poly.c (openscop_read_N_int): New.
701 (openscop_read_one_int): New.
702 (openscop_read_N_string): New.
703 (openscop_read_one_string): New.
704 (openscop_read_powerset_matrix): New.
705 (graphite_read_transforms): Remove.
706 (graphite_read_scatt): New.
707 (graphite_read_scop_file): New.
708 (apply_poly_transforms): Updated to call graphite_read_scop_file.
709
710 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
711
712 * graphite-poly.c: Change include order.
713
714 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
715
716 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
717 (cloog_matrix_nrows): New.
718
719 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
720
721 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
722 from matrix lines.
723 * graphite-poly.c (openscop_print_scattering_function_1): Same.
724 (print_scattering_function_1): Same.
725 (openscop_print_pbb_domain): Same.
726 (openscop_print_scop_context): Same.
727 (print_scop_context): Same.
728
729 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
730
731 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
732 (openscop_print_pdr_polyhedron): Print pph.
733
734 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
735
736 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
737 priority signed types.
738
739 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
740
741 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
742 the call to lang_hooks.types.type_for_size. Call
743 build_nonstandard_integer_type.
744
745 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
746
747 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
748 (openscop_print_polyhedron_matrix): New.
749 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
750 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
751 (openscop_print_pdr_powerset): New.
752 (openscop_print_powerset_matrix): New.
753 (openscop_print_scattering_function_1): New.
754 (print_scattering_function): Add support for scattering names and
755 OpenScop format.
756 (graphite_write_transforms): Remove.
757 (print_pdr_access_layout): Updated to support OpenScop format.
758 (print_pdr): Same.
759 (openscop_print_pbb_domain): New.
760 (print_pbb_body): Added a parameter to allow indicating that pbb_body
761 is not provided.
762 (print_pbb): Updated to call the new print_pbb_body.
763 (openscop_print_scop_context): New.
764 (print_scop_header): New.
765 (print_scop): Updated to call print_scop_header.
766 * graphite-poly.h: Document OpenScop format.
767
768 2010-09-30 Anatoly Sokolov <aesok@post.ru>
769
770 * config/cris/m32c.c (cris_memory_move_cost): New.
771 (cris_register_move_cost): Make static. Change arguments type from
772 enum reg_class to reg_class_t.
773 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
774 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
775 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
776
777 2010-09-30 Jakub Jelinek <jakub@redhat.com>
778
779 PR target/45843
780 * config/i386/i386.c (ix86_gimplify_va_arg): Use
781 INTVAL (XEXP (slot, 1)) as prev_size.
782
783 2010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
784
785 PR target/45837
786 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
787 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
788 defined.
789 * config/rs6000/option-defaults.h (toplevel): Change #if
790 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
791 global option changes.
792
793 2010-09-30 Jakub Jelinek <jakub@redhat.com>
794
795 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
796
797 PR tree-optimization/31261
798 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
799 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
800
801 2010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
802
803 PR bootstrap/45796
804 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
805 special-casing for generators and turn into ...
806 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
807 rule, for better error messages in case of toplevel dependency errors.
808 (genprog): Add hooks, rename to ...
809 (genprogerr): ... this, and let genprog also contain check,
810 checksum, condmd.
811 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
812 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
813 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
814
815 2010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
816 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
817
818 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
819 for GMP, MPFR and MPC.
820
821 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
822
823 * config/sparc/sparc.opt (mimpure-text): Move ...
824 * config/sol2.opt: ... here. Correct description.
825 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
826 * doc/invoke.texi (Option Summary, SPARC Options): Move
827 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
828 (Option Summary, Solaris 2 Options): ... here.
829 (Submodel Options, Solaris 2 Options): New menu entry.
830 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
831 (Solaris 2 Options): ... here.
832
833 2010-09-30 Michael Eager <eager@eagercon.com>
834
835 * extend.texi (interrupt_handler): Add MicroBlaze to list.
836 (save_volatiles): Describe option for MicroBlaze.
837 * invoke.texi: Add MicroBlaze Options.
838 * contrib.texi: Add acknowledgment.
839 * md.texi: Add MicroBlaze d and z constraints.
840 * install.texi: Add microblaze-*-elf.
841 * configure.ac: Add microblaze-*-* to target list.
842 * configure: Regenerate.
843 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
844 * config/microblaze/microblaze-protos.h: New.
845 * config/microblaze/crti.s: New.
846 * config/microblaze/predicates.md: New.
847 * config/microblaze/linux.h: New.
848 * config/microblaze/microblaze.md: New.
849 * config/microblaze/constraints.md: New.
850 * config/microblaze/crtn.s: New.
851 * config/microblaze/microblaze.opt: New.
852 * config/microblaze/microblaze-c.c: New.
853 * config/microblaze/t-microblaze: New.
854 * config/microblaze/microblaze.c: New.
855 * config/microblaze/microblaze.h: New.
856
857 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
858
859 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
860 parse @optional/@required and set the flags as appropriate.
861
862 2010-09-30 Nathan Froyd <froydnj@codesourcery.com>
863
864 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
865
866 2010-09-30 Joseph Myers <joseph@codesourcery.com>
867
868 * opt-functions.awk (static_var): Update comment.
869 (var_ref): Return offsetof expression or -1, not variable address.
870 * optc-gen.awk: Generate structure field initializers instead of
871 static variables. Expect -1 for missing variables instead of null
872 pointer. Add gcc_options parameters to generated functions.
873 * opth-gen.awk: Generate structure fields for static variables.
874 Add gcc_options parameters to generated functions.
875 * common.opt (optimize, optimize_size): Add variables.
876 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
877 &global_options to cl_target_option_restore.
878 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
879 &global_options to cl_optimization_restore, cl_target_option_save
880 and cl_target_option_restore.
881 (ix86_set_current_function): Pass &global_options to
882 cl_target_option_restore.
883 * config/pdp11/pdp11.h (optimize): Remove.
884 * config/rs6000/rs6000.h (optimize): Remove.
885 * config/sh/sh.h (optimize): Remove.
886 * config/xtensa/xtensa.h (optimize): Remove.
887 * coretypes.h (struct gcc_options): Declare.
888 * diagnostic.c (diagnostic_initialize): Initialize
889 context->option_state.
890 (diagnostic_report_diagnostic): Pass option_state to
891 option_enabled hook.
892 * diagnostic.h (diagnostic_context.option_enabled): Add void *
893 parameter.
894 (diagnostic_context.option_state): New field.
895 * final.c (final_start_function, final, final_scan_insn): Rename
896 optimize parameter to optimize_p.
897 * flags.h (optimize, optimize_size): Remove.
898 * function.c (invoke_set_current_function_hook): Pass
899 &global_options to cl_optimization_restore.
900 * gcc.c (driver_handle_option): Take gcc_options parameter.
901 Assert that it is &global_options.
902 (process_command): Pass &global_options to read_cmdline_option.
903 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
904 option_enabled.
905 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
906 &global_options to set_option.
907 * opts-common.c (handle_option, handle_generated_option,
908 read_cmdline_option, set_option): Take explicit gcc_options
909 parameters. Use option_flag_var.
910 (option_flag_var): New.
911 * opts.c (common_handle_option, lang_handle_option,
912 target_handle_option): Take gcc_options parameter. Assert that it
913 is &global_options.
914 (read_cmdline_options): Pass &global_options to read_cmdline_option.
915 (print_filtered_help): Use option_flag_var. Pass &global_options
916 to option_enabled.
917 (common_handle_option): Use option_flag_var.
918 (option_enabled): Take opts parameter. Use option_flag_var.
919 (get_option_state): Take gcc_options parameter. Use
920 option_flag_var. Pass gcc_options parameter to option_enabled.
921 (enable_warning_as_error): Pass &global_options to
922 handle_generated_option.
923 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
924 (cl_option_handler_func.handler): Take gcc_options parameter.
925 (option_enabled, get_option_state, set_option, handle_option,
926 handle_generated_option, read_cmdline_option): Take gcc_options
927 parameters.
928 * toplev.c (optimize, optimize_size): Remove.
929 (print_switch_values): Pass &global_options to option_enabled.
930 (option_affects_pch_p): Use option_flag_var. Pass &global_options
931 to get_option_state.
932 (general_init): Initialize global_dc->option_state.
933 * tree.c (build_optimization_node): Pass &global_options to
934 cl_optimization_save.
935 (build_target_option_node): Pass &global_options to
936 cl_target_option_save.
937
938 2010-09-30 Martin Jambor <mjambor@suse.cz>
939
940 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
941 zero sized bit-fields.
942
943 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
944
945 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
946 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
947 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
948 (c_parser_objc_class_declaration): Same change.
949 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
950 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
951 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
952 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
953 and RID_AT_PUBLIC instead of RID_PUBLIC.
954 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
955 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
956
957 2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
958
959 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
960 Add links to current providers of packages for Solaris and IRIX.
961
962 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
963
964 Merge from 'apple/trunk' branch on FSF servers.
965 * c-parser.c: Applied change originally in c-parse.in.
966
967 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
968
969 Radar 4281748
970 * c-decl.c (start_decl): Check for redeclaration of class name.
971 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
972
973 2010-09-29 Steve Ellcey <sje@cup.hp.com>
974
975 * config/ia64/ia64.c (ia64_builtin_decl): New.
976 (TARGET_BUILTIN_DECL): Define.
977 (ia64_builtins): New.
978 (ia64_init_builtins): Save decls in ia64_builtins.
979
980 2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
981
982 PR target/40457
983 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
984 (move2add_use_add3_insn): Likewise.
985 (reload_cse_move2add): Likewise.
986 * rtlanal.c (get_full_rtx_cost): New function.
987 * rtl.h (struct full_rtx_costs): New.
988 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
989 costs_add_n_insns): New inline functions.
990 (get_full_rtx_cost): Declare.
991
992 PR c/45054
993 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
994 invariants. Check for reg_equiv_invariant.
995 (reload): Assert that spilled_pseudos is empty when returning.
996
997 2010-09-29 Kai Tietz <kai.tietz@onevision.com>
998
999 * config/i386/mingw32.h (TARGET_64BIT): replaced by
1000 TARGET_64BIT_DEFAULT in #if check.
1001
1002 2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
1003
1004 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
1005
1006 2010-09-29 Mike Stump <mikestump@comcast.net>
1007
1008 * config/darwin.h (flag_mkernel): Remove.
1009 (flag_apple_kext): Likewise.
1010
1011 2010-09-29 Joseph Myers <joseph@codesourcery.com>
1012 Jack Howarth <howarth@bromo.med.uc.edu>
1013
1014 * config/darwin.opt (undefined): Add.
1015
1016 2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
1017
1018 PR testsuite/45664
1019 * configure.ac: Add --enable-indirect-function option.
1020 * config.gcc: Add default_gnu_indirect_function.
1021 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
1022 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
1023 * varasm.c (do_assemble_alias): Adjust for macro name change.
1024 * configure: Rebuilt.
1025 * doc/install.texi: Document --enable-indirect-function.
1026
1027 2010-09-29 Joseph Myers <joseph@codesourcery.com>
1028
1029 * doc/options.texi (Variable, Var, Init): Update documentation
1030 without reference to VarExists.
1031 (VarExists): Remove.
1032 * common.opt, config/i386/i386.opt, config/linux.opt,
1033 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
1034 Don't use VarExists.
1035
1036 2010-09-29 Joseph Myers <joseph@codesourcery.com>
1037
1038 * optc-gen.awk: Generate global_options initializer instead of
1039 individual variables. Add x_ prefix to names of structure members.
1040 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
1041 names of structure members.
1042 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1043 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
1044 * doc/tm.texi: Regenerate.
1045 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1046 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
1047 * c-parser.c (disable_extension_diagnostics,
1048 restore_extension_diagnostics): Update names of cpp_options members.
1049 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1050 * common.opt (fcompare-debug-second): Don't use Var.
1051 * config/alpha/alpha.h (target_flags): Remove.
1052 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1053 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
1054 * config/bfin/bfin.h (target_flags): Remove.
1055 * config/cris/cris.h (target_flags): Remove.
1056 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
1057 cl_target_option members.
1058 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
1059 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
1060 ix86_can_inline_p): Update names of cl_target_option members.
1061 * config/i386/i386.h (ix86_isa_flags): Remove.
1062 * config/lm32/lm32.h (target_flags): Remove.
1063 * config/mcore/mcore.h (mcore_stack_increment): Remove.
1064 * config/mcore/mcore.md (addsi3): Remove extern declaration of
1065 flag_omit_frame_pointer.
1066 * config/mep/mep.h (target_flags): Remove.
1067 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1068 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
1069 * config/mmix/mmix.h (target_flags): Remove.
1070 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
1071 flag_expensive_optimizations): Remove.
1072 * config/s390/s390.h (flag_pic): Remove.
1073 * config/score/score-conv.h (target_flags): Remove.
1074 * config/sh/sh.h (sh_fixed_range_str): Remove.
1075 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
1076 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
1077 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1078 * diagnostic.c (diagnostic_initialize): Update names of
1079 diagnostic_context members.
1080 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
1081 warn_system_headers.
1082 (diagnostic_report_warnings_p): Update for new names.
1083 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
1084 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
1085 HARD_FRAME_POINTER_IS_ARG_POINTER.
1086 * flags.h (flag_compare_debug): Declare.
1087 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1088 * opts.c (flag_compare_debug): Define.
1089 (common_handle_option): Update names of diagnostic_context
1090 members. Handle -fcompare-debug-second.
1091 (fast_math_flags_struct_set_p): Update names of cl_optimization
1092 members.
1093 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1094 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1095 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1096 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1097 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1098 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1099 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
1100 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1101 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
1102
1103 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
1104
1105 * config/picochip/picochip.c (picochip_output_internal_label):
1106 This function can now be called for debug CFI labels, which can come
1107 in the middle of a vliw instruction. Postpone until end of vliw.
1108
1109 2010-09-29 Richard Guenther <rguenther@suse.de>
1110
1111 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
1112 (DECL_FILE_SCOPE_P): Use it.
1113 (TYPE_FILE_SCOPE_P): New macro.
1114
1115 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
1116
1117 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
1118 a CPP_NAME which is a reserved word, clearly separate cases for
1119 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
1120
1121 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
1122
1123 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
1124 token->value with the canonical spelling. Do exactly like C and
1125 C++ and leave it as it is.
1126
1127 2010-09-28 Richard Henderson <rth@redhat.com>
1128
1129 * config/alpha/alpha.c (alpha_builtins): New.
1130 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
1131 (alpha_builtin_function): New.
1132 (alpha_add_builtins, alpha_init_builtins): Use it.
1133
1134 2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
1135
1136 * doc/standards.texi (Standards): Expanded the section on
1137 Objective-C and Objective-C++.
1138
1139 2010-09-28 DJ Delorie <dj@redhat.com>
1140
1141 PR target/45800
1142 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
1143 volatile MEMs.
1144
1145 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
1146
1147 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
1148 attributes on methods.
1149 (c_parser_objc_method_definition): Handle attributes.
1150 (c_parser_objc_methodproto): Likewise.
1151 (c_parser_objc_maybe_method_attributes): New.
1152 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
1153 missing definition, similar to that in ObjC++.
1154
1155 2010-09-28 Richard Henderson <rth@redhat.com>
1156
1157 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
1158 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1159 (CONFIG_SJLJ_EXCEPTIONS): Remove.
1160 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
1161 (STACK_CHECK_PROTECT): Likewise.
1162 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
1163 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
1164 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
1165 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
1166 (dwarf2out_assembly_start): Likewise.
1167 * except.c (init_eh): Use targetm.except_unwind_info.
1168 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
1169 (output_one_function_exception_table): Likewise.
1170 * final.c: Unconditionally include dwarf2out.h.
1171 (final_start_function): Unconditionally call dwarf2out routines.
1172 (final_end_function, final_scan_insn): Likewise.
1173 * function.c (expand_function_end): Use targetm.except_unwind_info.
1174 * opts.c (decode_options): Use targetm.except_unwind_info.
1175 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
1176 * target.def (debug_unwind_info, except_unwind_info): New.
1177 * target.h (enum unwind_info_type): New.
1178 * targhooks.c (default_debug_unwind_info): New.
1179 (default_except_unwind_info): New.
1180 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
1181 * targhooks.h: Declare them.
1182 * tree-tailcall.c: Include "target.h"
1183 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
1184 * Makefile.in (tree-tailcall.o): Update.
1185 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
1186 (lhd_gcc_personality): Likewise.
1187
1188 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
1189 (TARGET_EXCEPT_UNWIND_INFO): New.
1190 (DWARF2_UNWIND_INFO): Update.
1191 (TARGET_DEBUG_UNWIND_INFO): New.
1192 * doc/tm.texi: Rebuild.
1193
1194 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
1195 targetm.except_unwind_info.
1196
1197 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
1198 (arm_except_unwind_info): New.
1199 (arm_compute_func_type): Use it.
1200 (arm_expand_prologue, thumb_pushpop): Likewise.
1201 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
1202 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
1203 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
1204 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
1205 (DWARF2_UNWIND_INFO): Remove.
1206 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1207 (ARM_EABI_UNWIND_TABLES): Remove.
1208
1209 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
1210 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
1211 (ia64_except_unwind_info): New.
1212 (ia64_output_function_prologue): Use it.
1213 (ia64_add_bundle_selector_before): Likewise.
1214 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
1215 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
1216 (TARGET_UNWIND_INFO): Remove.
1217
1218 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
1219
1220 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
1221
1222 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
1223 (c_parser_objc_protocol_definition): Likewise.
1224 (c_parser_external_declaration): Provide dummy attribute arguments.
1225 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
1226 (c_parser_objc_class_definition): Handle attributes.
1227 (c_parser_objc_protocol_definition): Likewise.
1228
1229 2010-09-28 Tobias Burnus <burnus@net-b.de>
1230
1231 PR fortran/40569
1232 PR fortran/40568
1233 * toplev.h (save_decoded_options, save_decoded_options_count):
1234 New global variables.
1235 * toplev.c (save_decoded_options, save_decoded_options_count):
1236 Export variables.
1237
1238 2010-09-28 Ian Lance Taylor <iant@google.com>
1239
1240 * config/i386/i386.c (ix86_supports_split_stack): Test
1241 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
1242
1243 2010-09-28 Ian Lance Taylor <iant@google.com>
1244
1245 PR target/45815
1246 * opts.c (decode_options): Don't test whether the target supports
1247 split stack if flag_split_stack == 0.
1248
1249 2010-09-28 Jan Hubicka <jh@suse.cz>
1250
1251 * builtin-attrs.def (ATTR_LEAF): New attribute.
1252 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
1253 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
1254 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
1255 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
1256 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
1257 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
1258 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
1259 * sync-builtins.def: Annotate all builtins by leaf.
1260 * omp-builtins.def: Annotate all builtins by leaf.
1261 * builtins.def: Annotate relevant builtins with leaf attribute.
1262 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
1263 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
1264 leaf.
1265
1266 2010-09-28 Jan Hubicka <jh@suse.cz>
1267
1268 * tree-ssa-ccp.c (fold_ctor_reference): New function.
1269 (fold_const_aggregate_ref): Use it.
1270 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
1271 into external static.
1272
1273 2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1274
1275 PR target/44452
1276 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
1277 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
1278 (ix86_solaris_return_in_memory): Remove.
1279 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
1280 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1281 (TARGET_SUBTARGET_DEFAULT): Redefine.
1282 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
1283 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1284 (TARGET_SUBTARGET_DEFAULT): Redefine.
1285 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
1286 -mvect8-ret-in-mem.
1287 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
1288
1289 2010-09-29 Alan Modra <amodra@gmail.com>
1290
1291 PR target/45807
1292 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
1293 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
1294 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
1295 Delete.
1296 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
1297 (rs6000_emit_prologue): Don't just create frame save info for r2,
1298 actually save r2.
1299
1300 2010-09-28 Richard Henderson <rth@redhat.com>
1301
1302 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
1303 when 8 bytes are requested.
1304
1305 2010-09-28 Tristan Gingold <gingold@adacore.com>
1306
1307 * config/avr/avr.c (expand_prologue): Set
1308 current_function_static_stack_size.
1309
1310 2010-09-28 Tristan Gingold <gingold@adacore.com>
1311
1312 * config/alpha/alpha.md: Change the initial condition of the
1313 probing loop.
1314
1315 2010-09-28 Uros Bizjak <ubizjak@gmail.com>
1316
1317 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
1318 Split from *avx_<maxmin:code><mode>3.
1319 (*avx_<smaxmin:code><mode>3): Ditto.
1320 * config/i386/i386.md (maxmin): Remove code iterator.
1321
1322 2010-09-27 Ian Lance Taylor <iant@google.com>
1323
1324 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
1325 requires assembler support for CFI directives.
1326
1327 2010-09-27 Richard Henderson <rth@redhat.com>
1328
1329 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
1330
1331 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
1332
1333 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
1334 that AFTER is not in the range FROM..TO, inclusive.
1335
1336 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
1337 Bernd Schmidt <bernds@codesourcery.com>
1338
1339 PR rtl-optimization/45792
1340 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
1341 If not all insns are to be merged, for each edge, stash the
1342 next candidate after the to-be-merged insns before doing the
1343 merge, and use them for the retry at the new insertion point.
1344 Handle CC0 targets when retrying.
1345
1346 2010-09-27 Ian Lance Taylor <iant@google.com>
1347
1348 * common.opt (fsplit-stack): New option.
1349 * opts.c (decode_options): Set flag_split_stack to final value.
1350 * target.def (supports_split_stack): New hook.
1351 * gcc.c (STACK_SPLIT_SPEC): Define.
1352 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
1353 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
1354 (Code Gen Options): Document -fsplit-stack.
1355 * doc/extend.texi (Function Attributes): Mention no_split_stack.
1356 (Function Attributes): Document no_split_stack.
1357 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
1358 TARGET_SUPPORTS_SPLIT_STACK.
1359 * doc/tm.texi: Rebuild.
1360 * function.c (thread_prologue_and_epilogue_insns): If
1361 flag_split_stack, add split stack prologue.
1362 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
1363 * varasm.c (saw_no_split_stack): New static variable.
1364 (assemble_start_function): Set saw_no_split_stack if the function
1365 has the no_split_stack attribute.
1366 (file_end_indicate_split_stack): New function.
1367 * output.h (file_end_indicate_split_stack): Declare.
1368 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
1369 and function.
1370 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
1371 routines.
1372 * config/i386/i386.c (ix86_option_override_internal): Don't set
1373 expand_builtin_va_start to NULL if -fsplit-stack.
1374 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
1375 -fsplit-stack.
1376 (ix86_va_start): If -fsplit-stack, get overflow pointer from
1377 scratch register set by prologue.
1378 (ix86_code_end): If -fsplit-stack, call
1379 file_end_indicate_split_stack.
1380 (ix86_supports_split_stack): New static function.
1381 (SPLIT_STACK_AVAILABLE): Define.
1382 (split_stack_prologue_scratch_regno): New static function.
1383 (split_stack_fn): New static variable.
1384 (ix86_expand_split_stack_prologue): New function.
1385 (ix86_live_on_entry): New static function.
1386 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
1387 (output_pic_addr_const): Likewise.
1388 (i386_asm_output_addr_const_extra): Likewise.
1389 (ix86_expand_call): Change return type to rtx. Return the new
1390 call instruction.
1391 (TARGET_SUPPORTS_SPLIT_STACK): Define.
1392 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1393 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
1394 (split_stack_prologue, split_stack_return): New insns.
1395 (split_stack_space_check): New insn.
1396 * config/i386/i386.h (struct machine_function): Add
1397 split_stack_varargs_pointer field.
1398 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
1399 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1400 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
1401 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1402 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
1403 Declare.
1404 (ix86_expand_call): Update declaration.
1405
1406 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
1407
1408 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
1409 code. Added byref, which was missing in the list of codes.
1410 Explain that enumeration values are encoded as the integer type
1411 that the compiler uses to store them. Explain and make examples
1412 of how 'const' interacts with pointers, and the complication of
1413 the encoding of 'const char *'.
1414 (Legacy type encoding): New subsection, explaining that GCC emits
1415 incorrect type encodings for the NeXT runtime for compatibility
1416 reasons.
1417 (@@encode): New subsection, explaining @encode and particularly
1418 that protocol qualifiers are not recognized inside an @encode()
1419 expression.
1420 (Method signatures): New subsection, explaining how method
1421 signatures are encoded.
1422
1423 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
1424
1425 Merge from 'apple/trunk' branch on FSF servers. Removed small
1426 change in build_conditional_expr that had been added when fixing
1427 PR objc/27377 and which did the same check in a less complete way.
1428
1429 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
1430
1431 Radar 4229905
1432 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
1433 looking for objective-c common pointer types.
1434
1435 2005-06-22 Ziemowit Laski <zlaski@apple.com>
1436
1437 Radar 4154928
1438 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
1439 use their ObjC common type.
1440
1441 2010-09-27 Richard Guenther <rguenther@suse.de>
1442
1443 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
1444
1445 2010-09-27 Jie Zhang <jie@codesourcery.com>
1446
1447 * print-tree.c (print_node): Print in-constant-pool.
1448
1449 2010-09-27 Uros Bizjak <ubizjak@gmail.com>
1450
1451 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
1452 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
1453 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
1454 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
1455
1456 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
1457
1458 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
1459 from pro_epilogue_adjust_stack_<mode>_{1,2}.
1460 (pro_epilogue_adjust_stack_<mode>_add): Rename from
1461 pro_epilogue_adjust_stack_<mode>_3.
1462 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
1463 renamed pro_epilogue_adjust_stack_{si,di}_add.
1464 (ix86_expand_prologue): Use indirect functions. Update for renamed
1465 pro_epilogue_adjust_stack_{si,di}_sub.
1466
1467 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
1468
1469 * config/i386/i386.md (movmsk_df): New insn.
1470 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
1471 sequence for TARGET_SSE_MATH.
1472
1473 2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
1474
1475 * config/mips/mips.c (mips_builtin_decls): Declare.
1476 (mips_init_builtins): Store function declarations in
1477 mips_builtin_decls.
1478 (mips_builtin_decl): New function.
1479 (TARGET_BUILTIN_DECL): Define.
1480
1481 2010-09-25 Kai Tietz <kai.tietz@onevision.com>
1482 Richard Henderson <rth@redhat.com>
1483
1484 * config/i386/cygwin.asm: Include auto-host.h.
1485 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
1486 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
1487 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
1488 alignment code from the 64-bit path. Use gas local labels.
1489 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
1490 from _di_2. Remove the useless constant integer argument.
1491 (pro_epilogue_adjust_stack_<mode>_3): New.
1492 (allocate_stack_worker_probe_<mode>): Macroize from
1493 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
1494 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
1495 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
1496 (__chkstk_ms): New function.
1497 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
1498 * gcc/config/i386/t-interix: Likewise.
1499 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
1500 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1501 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
1502 * configure, config.in: Rebuild.
1503
1504 2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
1505
1506 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
1507 statements because of the return slot optimization.
1508
1509 2010-09-25 Anatoly Sokolov <aesok@post.ru>
1510
1511 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
1512 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
1513 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1514 (class_likely_spilled_p): Rename to...
1515 (avr_class_likely_spilled_p): ...this. Make static. Change argument
1516 type to reg_class_t.
1517
1518 2010-09-24 Jan Hubicka <jh@suse.cz>
1519
1520 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
1521 (lto_symtab_resolve_symbols): Set it.
1522 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
1523 store resolution field in cgraph/varpool.
1524 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
1525 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
1526 (cgraph_dump_node): Drop used_from_object_file.
1527 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
1528 (cgraph_function_body_availability): Use decl_replaceable_p.
1529 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
1530 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
1531 cgraph_used_from_object_file_p.
1532 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
1533 cgraph_used_from_object_file_p.
1534 (resolution_used_from_other_file_p): New functoin.
1535 (cgraph_used_from_object_file_p): New predicate.
1536 * cgraph.h: Include plugin-api.h
1537 (struct cgraph_local_info): Remove used_from_object_file.
1538 (struct cgraph_node): Add resolution field.
1539 (struct varpool_node): Likewise; remove used_from_object_file;
1540 reove const_value_known.
1541 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
1542 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
1543 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1544 varpool_used_from_object_file_p): Declare.
1545 (varpool_get_node, varpool_extra_name_alias): Update prototype.
1546 * tree.h (DECL_REPLACEABLE_P): Remove.
1547 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
1548 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
1549 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1550 input_overwrite_node, input_node, input_varpool_node): Stream
1551 resolution.
1552 * expr.c (expand_expr_real_1): Use const_value_known_p
1553 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
1554 const_value_known.
1555 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
1556 (function_and_variable_visibility): Set resolution for local vars
1557 and functions; use varpool_used_from_object_file_p.
1558 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
1559 static functions.
1560 (default_binds_local_p_1): Use resolutoin info.
1561 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
1562 * varpool.c (varpool_get_node): Constify.
1563 (const_value_known_p): Do not use vnode->const_value_known;
1564 use decl_replaceable_p.
1565 (varpool_finalize_decl): Do not set const_value_known.
1566 (cgraph_variable_initializer_availability): Use decl_replaceable_p
1567 (varpool_extra_name_alias): Return new node.
1568 (varpool_used_from_object_file_p): New function.
1569
1570 2010-09-24 Richard Henderson <rth@redhat.com>
1571
1572 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
1573 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
1574 (do_spill): Use REG_CFA_OFFSET.
1575 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
1576 as appropriate.
1577 (ia64_expand_epilogue): Likewise.
1578 (process_set): Split into ...
1579 (process_cfa_adjust_cfa): this,
1580 (process_cfa_register): this,
1581 (process_cfa_offset): and this new function.
1582 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
1583 instead of REG_FRAME_RELATED_EXPR.
1584
1585 2010-09-24 Olivier Hainque <hainque@adacore.com>
1586
1587 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
1588
1589 2010-09-24 Jan Hubicka <jh@suse.cz>
1590
1591 * doc/extend.texi: (attribute leaf): Document.
1592 * tree.c (local_define_builtin): Handle ECF_LEAF.
1593 (build_common_builtin_nodes): Set ECF_LEAF where needed.
1594 * tree.h (ECF_LEAF): New.
1595 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
1596 overwrittable and unavailable functions.
1597 (ipa_init): Put all_module_statics into optimization_summary_obstack.
1598 (copy_global_bitmap): Do not copy all_module_statics.
1599 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
1600 (propagate): Handle overwritable and unavailable leaf functions;
1601 initialize global info for overwritable and unavailable leaf functions;
1602 do not free all module statics.
1603 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
1604 local statics.
1605 * calls.c (flags_from_decl_or_type): Handle leaf.
1606 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
1607 abnormal gotos.
1608
1609 2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
1610
1611 * gengtype.c: Reindented.
1612 * gengtype.h: Reindented.
1613 * gengtype-parse.c: Reindented.
1614
1615 2010-09-24 Jan Hubicka <jh@suse.cz>
1616
1617 PR tree-optimization/45738
1618 PR tree-optimization/45741
1619 * expr.c (string_constant): Allow CONST_DECL too;
1620 check that DECL_INITIAL is set.
1621 * varpool.c (const_value_known_p): Only look into VAR_DECL
1622 and CONST_DECL.
1623
1624 2010-09-24 Joseph Myers <joseph@codesourcery.com>
1625
1626 * common.opt (undef): New.
1627
1628 2010-09-24 Jakub Jelinek <jakub@redhat.com>
1629
1630 PR middle-end/45234
1631 * rtl.h (enum global_rtl_index): Add
1632 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
1633 (LAST_VIRTUAL_POINTER_REGISTER): Define.
1634 (virtual_preferred_stack_boundary_rtx,
1635 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
1636 (LAST_VIRTUAL_REGISTER): Increase by one.
1637 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
1638 instead of LAST_VIRTUAL_REGISTER.
1639 * function.c (instantiate_new_reg): Handle
1640 virtual_preferred_stack_boundary_rtx.
1641 * emit-rtl.c (init_virtual_regs): Handle
1642 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1643 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
1644 * explow.c (round_push): If crtl->preferred_stack_boundary
1645 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
1646 virtual_preferred_stack_boundary_rtx alignment instead of
1647 crtl->preferred_stack_boundary alignment.
1648 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
1649 macros. Never decrease crtl->preferred_stack_boundary,
1650 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
1651 instead of PREFERRED_STACK_BOUNDARY. Don't modify
1652 stack_pointer_delta in dynamic allocation, even when size
1653 is constant.
1654 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
1655 macro.
1656 * print-rtl.c (print_rtx): Handle
1657 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1658 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
1659 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
1660 * config/frv/frv.c (frv_emit_movsi): Likewise.
1661 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
1662 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
1663 Likewise.
1664
1665 Revert:
1666 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1667
1668 PR middle-end/45234
1669 * calls.c (expand_call): Make sure that all variable sized
1670 adjustments are multiple of preferred stack boundary after
1671 stack alignment.
1672
1673 2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
1674 Dominique Dhumieres <dominiq@lps.ens.fr>
1675
1676 PR bootstrap/45751
1677 * gcc/config/darwin-driver.c (darwin_default_min_version):
1678 Adjust size passed to memcpy in two places.
1679
1680 2010-09-24 Richard Guenther <rguenther@suse.de>
1681
1682 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
1683 Make sure to not call set_type_context with error_mark_node.
1684 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
1685
1686 2010-09-24 Richard Guenther <rguenther@suse.de>
1687
1688 * Makefile.in (OBJS-onestep): Remove.
1689 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
1690 (libbackend.a): Remove onestep support.
1691 (libbackend.o): Remove.
1692 * configure.ac (--enable-intermodule): Remove.
1693 * configure: Regenerate.
1694
1695 2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
1696
1697 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
1698 reaching the end of a block if it occurs at a DEBUG_INSN.
1699
1700 2010-09-09 Tristan Gingold <gingold@adacore.com>
1701
1702 PR target/44242
1703 * config/vms/vms-crt0-64.c: Removed.
1704 * config/vms/vms-crt0.c: Removed.
1705 * config/vms/vms-psxcrt0-64.c: Removed.
1706 * config/vms/vms-psxcrt0.c: Removed.
1707 * config/vms/vms-ucrt0.c: New file.
1708 * config/vms/t-vms64: Removed.
1709 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
1710 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
1711 * config.gcc (alpha-dec-vms): Use t-vms.
1712
1713 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
1714
1715 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
1716 underfull hbox in DVI output.
1717 (-fobjc-class-cxx-cdtors): Same change.
1718 (-fobjc-exceptions): Tidied up documentation. Explain what the
1719 option does, but moved the (lenghty) description of the exception
1720 syntax into objc.texi.
1721 (-fobjc-gc): Explain that the option is not useful with the GNU
1722 runtime.
1723 (-fzero-link): Explain that the GNU runtime always works in
1724 "zero-link" mode.
1725 * doc/objc.texi: All sections: simplified @node declarations
1726 removing specification of next, previous, up node.
1727 (Objective-C): Updated introduction.
1728 (Garbage Collection): Updated. The bohem-gc library is now
1729 included in gcc itself. Mention that this section only applies to
1730 the GNU Objective-C runtime.
1731 (compatibility_alias): Small tidy up.
1732 (Exceptions): New section mostly containing text previously in the
1733 description of the -fobjc-exception command-line option.
1734 (Synchronization): Same.
1735
1736 2010-09-24 Uros Bizjak <ubizjak@gmail.com>
1737
1738 * config/i386/i386.md (ix86_code_end): Move the initialization of
1739 xops array near the consumer. Use AX_REG and SP_REG instead of
1740 numerical constants.
1741
1742 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
1743
1744 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
1745 method [methodname]' for an Objective-C method instead of the less
1746 satisfactory 'too many arguments to function' (with no method name).
1747
1748 2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
1749
1750 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
1751 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
1752 (execute_update_addresses_taken): Remove parameter. Execute the
1753 optimization unconditionally.
1754 * passes.c (execute_function_todo): Call execute_update_addresses_taken
1755 unconditionally if TODO_rebuild_alias is set, else only when optimizing
1756 if TODO_update_address_taken is set.
1757
1758 >>>>>>> .r164755
1759 2010-09-23 Anatoly Sokolov <aesok@post.ru>
1760
1761 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1762 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
1763 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1764 (arm_output_addr_const_extra): Make static.
1765
1766 2010-09-23 Uros Bizjak <ubizjak@gmail.com>
1767
1768 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
1769 define as unspec_volatile.
1770 ("nops"): Define as unspec_volatile. Use fputs to write to
1771 asm_out_file directly. Output NOPs on separate lines using while loop.
1772 * config/i386/i386.c (ix86_code_end): Use fputs to write to
1773 asm_out_file directly. Output NOPs on separate lines using while loop.
1774
1775 2010-09-23 Richard Guenther <rguenther@suse.de>
1776
1777 PR tree-optimization/45565
1778 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1779 Make sure to adjust the fndecl before replacing the stmt.
1780
1781 2010-09-23 Richard Guenther <rguenther@suse.de>
1782
1783 PR middle-end/45750
1784 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
1785 gimplifying MEM_REF.
1786
1787 2010-09-23 Alan Modra <amodra@gmail.com>
1788
1789 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
1790 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
1791
1792 2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
1793
1794 PR rtl-optimization/44374
1795 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1796 * df-core.c (df_set_bb_dirty): Set it.
1797 * ifcvt.c (find_memory): Remove function.
1798 (dead_or_predicable): Use can_move_insns_across.
1799 * df.h (can_move_insns_across): Declare function.
1800 * cfgcleanup.c (block_was_dirty): New static variable.
1801 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1802 than df_get_bb_dirty.
1803 (try_head_merge_bb): New static function.
1804 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
1805 is set.
1806 * df-problems.c: Include "target.h"
1807 (df_simulate_find_uses): New static function.
1808 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1809 (find_memory, find_memory_store): New static functions.
1810 (can_move_insns_across): New function.
1811 * Makefile.in (df-problems.o): Update dependencies.
1812
1813 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
1814
1815 PR java/44095
1816 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
1817 is specified and the suffix of the file isn't ".c".
1818 * config/sparc/linux64.h (ASM_SPEC): Likewise.
1819
1820 2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1821
1822 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
1823 * doc/cppopts.texi: Fix markup of index entry.
1824 * doc/extend.texi (Constructing Calls): Fix markup of
1825 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
1826 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
1827 (Vague Linkage, C++ Attributes): Fix markup of index entries and
1828 keywords.
1829 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
1830 avoid long lines.
1831 (C Dialect Options, C++ Dialect Options, Warning Options)
1832 (Debugging Options, Spec Files, Darwin Options)
1833 (i386 and x86-64 Options, MIPS Options)
1834 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
1835 index entries, avoid abbreviations, allow URLs to wrap, avoid
1836 long lines, avoid overlong pages from long @itemx lists.
1837 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
1838 * doc/standards.texi (Standards): Likewise.
1839 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
1840
1841 2010-09-22 Joseph Myers <joseph@codesourcery.com>
1842
1843 * opts-common.c (prune_options): Make static. Work with decoded
1844 options.
1845 (decode_cmdline_options_to_array): Call prune_options. Don't
1846 resize option array here.
1847 * opts.h (prune_options): Remove prototype.
1848 * gcc.c (process_command): Take decoded options; don't call
1849 decode_cmdline_options_to_array here. Use decoded options for argv[0].
1850 (main): Call decode_cmdline_options_to_array here instead of
1851 prune_options. Update call to process_command.
1852 * config/darwin-driver.c: Include opts.h.
1853 (darwin_default_min_version): Work with decoded options. Don't
1854 handle -b or -V here.
1855 * config/darwin.h (darwin_default_min_version): Update prototype.
1856 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
1857 darwin_default_min_version.
1858 * config/i386/cygwin.h (mingw_scan): Update prototype.
1859 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1860 * config/i386/cygwin1.c: Include opts.h.
1861 (mingw_scan): Work with decoded options.
1862 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1863 * config/t-darwin (darwin-driver.o): Update dependencies.
1864
1865 2010-09-22 Joseph Myers <joseph@codesourcery.com>
1866
1867 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1868 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1869 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1870 -force-link, -force-link=, -language, -language=,
1871 -library-directory, -library-directory=, -no-canonical-prefixes,
1872 -no-standard-libraries, -no-warnings, -optimize, -output,
1873 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1874 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1875 -print-file-name=, -print-libgcc-file-name,
1876 -print-multi-directory, -print-multi-lib,
1877 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1878 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1879 -profile, -save-temps, -shared, -specs, -specs=, -static,
1880 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1881 symbolic): New.
1882 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1883 * gcc.c (A Short Introduction to Adding a Command-Line Option):
1884 Remove comment.
1885 (cc1_options): Correct specs for passing down --help,
1886 --target-help and --help=*. Add spec for passing down --version.
1887 (struct option_map, option_map, target_option_translations,
1888 translate_options): Remove.
1889 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1890 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1891 OPT_fhelp_ and OPT_ftarget_help.
1892 (process_command): Don't call translate_options. Call
1893 decode_cmdline_options_to_array before checking for
1894 -no-canonical-prefixes using decoded options.
1895 * opts-common.c (tm.h): Update comment on #include.
1896 (find_opt): Allow abbreviations of long options.
1897 (struct option_map, option_map): New.
1898 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1899 and -mno handling.
1900 (target_option_translations): New.
1901 (decode_cmdline_options_to_array): Handle
1902 TARGET_OPTION_TRANSLATE_TABLE in driver.
1903 * opts.c (common_handle_option): Don't handle OPT_fhelp,
1904 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1905
1906 2010-09-22 Richard Guenther <rguenther@suse.de>
1907
1908 * tree-inline.c (optimize_inline_calls): Schedule cleanups
1909 only if we inlined something. Block compaction and conditional
1910 folding are done by cfg cleanup. Schedule update-address-taken.
1911 (tree_function_versioning): Remove redundant call to number_blocks.
1912 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1913 folding is done by cfg cleanup.
1914 * passes.c (init_optimization_passes): Remove update-address-taken
1915 pass after IPA inlining.
1916
1917 2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
1918
1919 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1920 to update conditions. Fix reg_mode[] check.
1921
1922 2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
1923
1924 * config/picochip/picochip.md (movhicc): Use expand to check whether
1925 movhicc is available and split it after reload.
1926
1927 2010-09-22 Richard Guenther <rguenther@suse.de>
1928
1929 * tree-ssanames.c (release_dead_ssa_names): Do not remove
1930 callee edges here.
1931 * passes.c (init_optimization_passes): Remove early CFG cleanup.
1932 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1933 (pass_cleanup_cfg): Likewise.
1934 (execute_fixup_cfg): Cleanup.
1935 * tree-pass.h (pass_cleanup_cfg): Remove.
1936
1937 2010-09-22 Martin Jambor <mjambor@suse.cz>
1938
1939 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1940 builtins if it is true.
1941 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1942 parameter.
1943
1944 2010-09-22 Martin Jambor <mjambor@suse.cz>
1945
1946 * tree-sra.c (struct access): New field grp_no_warning.
1947 (create_access_replacement): Set TREE_NO_WARNING according to
1948 grp_no_warning.
1949 (create_artificial_child_access): Use build_ref_for_model and set
1950 grp_no_warning if build_user_friendly_ref_for_offset fails.
1951 (propagate_subaccesses_across_link): Likewise.
1952
1953 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
1954
1955 PR target/35664
1956 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1957 ('f'): Likewise.
1958
1959 2010-09-22 Tristan Gingold <gingold@adacore.com>
1960
1961 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1962
1963 2010-09-22 Uros Bizjak <ubizjak@gmail.com>
1964
1965 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1966 * config/i386/i386.c (decide_alg): Update for rename.
1967
1968 2010-09-22 Jakub Jelinek <jakub@redhat.com>
1969
1970 PR rtl-optimization/45739
1971 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1972 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1973
1974 2010-09-21 Anatoly Sokolov <aesok@post.ru>
1975
1976 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1977 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1978 Remove.
1979 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
1980 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1981
1982 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1983
1984 PR objc/23710
1985 * c-parser.c (c_parser_objc_method_definition): Check the return
1986 value of objc_start_method_definition and if false is returned,
1987 parse the method definition but emit no code.
1988
1989 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1990
1991 PR objc/25965
1992 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1993 call objc_get_interface_ivars ().
1994
1995 2010-09-21 Kai Tietz <kai.tietz@onevision.com>
1996
1997 PR target/45694
1998 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1999 static chain-register is used for 64-bit.
2000
2001 2010-09-21 Richard Guenther <rguenther@suse.de>
2002
2003 * dwarf2out.c (is_cu_die): New function.
2004 (add_pubtype): Use it.
2005 (gen_subprogram_die): Likewise.
2006 (gen_struct_or_union_type_die): Likewise.
2007 (dwarf2out_finish): Likewise.
2008 (comp_unit_die): Rename to ...
2009 (single_comp_unit_die): ... this.
2010 (comp_unit_die): New function lazily constructing and
2011 returning single_comp_unit_die.
2012 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
2013 base_type_die, subrange_type_die, modified_type_die,
2014 lower_bound_default, add_bound_info, add_prototyped_attribute,
2015 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
2016 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
2017 force_decl_die, gen_namespace_die, dwarf2out_decl,
2018 dwarf2out_start_source_file, dwarf2out_end_source_file,
2019 prune_unused_types, dwarf2out_finish): Use it.
2020 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
2021 the global list of translation-unit decls.
2022 (dwarf2out_init): Do not create single_comp_unit_die here.
2023 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
2024
2025 2010-09-21 Richard Guenther <rguenther@suse.de>
2026
2027 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
2028 for bool for C++.
2029
2030 2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
2031
2032 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
2033 (qhs_extenddi_cstr): Likewise.
2034 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
2035 them for the source operand.
2036
2037 2010-09-21 Uros Bizjak <ubizjak@gmail.com>
2038
2039 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
2040 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
2041 (ix86_split_ashr): Ditto.
2042 (ix86_split_lshr): Ditto.
2043
2044 2010-09-21 Richard Guenther <rguenther@suse.de>
2045
2046 PR tree-optimization/45580
2047 * tree-ssa-propagate.c (substitute_and_fold): Always replace
2048 regular uses.
2049 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
2050 virtuals fold the call into a regular indirect one.
2051
2052 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
2053
2054 PR rtl-optimization/42775
2055 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
2056 scheduling is enabled.
2057
2058 2010-09-20 Jakub Jelinek <jakub@redhat.com>
2059
2060 PR rtl-optimization/45728
2061 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
2062 gen_lowpart_common first and if that fails, force_reg first
2063 before calling gen_lowpart.
2064
2065 PR middle-end/45678
2066 * cfgexpand.c (expand_one_stack_var_at): Use
2067 crtl->max_used_stack_slot_alignment as max_align, instead
2068 of maximum of that and PREFERRED_STACK_BOUNDARY.
2069 Don't call update_stack_alignment.
2070
2071 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
2072
2073 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
2074 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
2075 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
2076 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
2077 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
2078 (build_nonstandard_integer_type): Likewise.
2079 (build_range_type_1): New function, built from...
2080 (build_range_type): ...this. Call build_range_type_1.
2081 (build_nonshared_range_type): New function.
2082 (build_array_type_1): New function, built from...
2083 (build_array_type: ...this. Call build_array_type_1.
2084 (build_nonshared_array_type): New function.
2085 * tree.h (build_nonshared_range_type): Declare.
2086 (build_nonshared_array_type): Likewise.
2087
2088 2010-09-20 Anatoly Sokolov <aesok@post.ru>
2089
2090 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
2091 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2092 (arm_class_likely_spilled_p): New function.
2093
2094 2010-09-20 Uros Bizjak <ubizjak@gmail.com>
2095
2096 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
2097 indirect functions.
2098 (ix86_split_ashl): Ditto.
2099 (ix86_split_ashr): Ditto.
2100 (ix86_split_lshr): Ditto.
2101 (ix86_adjust_counter): Ditto.
2102
2103 2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
2104
2105 * c-family/c-common.h (constant_string_class): Documented with
2106 comment identical to the one already in c-common.c.
2107
2108 2010-09-20 Jakub Jelinek <jakub@redhat.com>
2109
2110 * dwarf2out.c (any_cfis_emitted): New static variable.
2111 (add_fde_cfi): Set it.
2112 (dwarf2out_frame_debug): Clear it before processing,
2113 if it is set afterwards, flush any queued reg saves.
2114
2115 PR debug/45124
2116 * dwarf2out.c (add_accessibility_attribute): Assume
2117 DW_ACCESS_private as the default for dwarf_version > 2
2118 and DW_TAG_class_type parent.
2119 (gen_inheritance_die): Assume DW_ACCESS_public as the default
2120 for dwarf_version > 2 and parent other than DW_TAG_class_type.
2121
2122 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
2123
2124 PR target/45726
2125 * arm.md (arm_movt): Only enable on machines with MOVT.
2126
2127 2010-09-20 Jie Zhang <jie@codesourcery.com>
2128
2129 * config/arm/arm.c (arm_address_offset_is_imm): New.
2130 (arm_early_store_addr_dep): New.
2131 (arm_early_load_addr_dep): New.
2132 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
2133 (arm_early_load_addr_dep): Declare.
2134 (arm_address_offset_is_imm): Declare.
2135 * config/arm/cortex-m4.md: New file.
2136 * config/arm/cortex-m4-fpu.md: New file.
2137 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
2138 (attr generic_sched): Exclude cortexm4.
2139 (attr generic_vfp): Exclude cortexm4.
2140
2141 2010-09-20 Richard Guenther <rguenther@suse.de>
2142
2143 PR middle-end/45704
2144 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
2145
2146 2010-09-20 Jan Hubicka <jh@suse.cz>
2147
2148 PR tree-optimize/45605
2149 * cgraph.h (const_value_known_p): Declare.
2150 (varpool_decide_const_value_known): Remove.
2151 * tree-ssa-ccp.c (get_base_constructor): Use it.
2152 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
2153 * expr.c (string_constant): Likewise.
2154 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
2155 * ipa.c (ipa_discover_readonly_nonaddressable_var,
2156 function_and_variable_visibility): Likewise.
2157 * gimplify.c (gimplify_call_expr): Likewise.
2158 * gimple-fold.c (get_symbol_constant_value): Likewise.
2159 * varpool.c (varpool_decide_const_value_known): Replace by...
2160 (const_value_known_p): ... this one; handle other kinds of DECLs
2161 too and work for automatic vars.
2162 (varpool_finalize_decl): Use const_value_known_p.
2163
2164 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
2165
2166 PR target/45726
2167 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
2168
2169 2010-09-20 Richard Guenther <rguenther@suse.de>
2170
2171 PR tree-optimization/45705
2172 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
2173
2174 2010-09-20 Jakub Jelinek <jakub@redhat.com>
2175
2176 PR rtl-optimization/45695
2177 * combine.c (try_combine): When splitting a two set pattern,
2178 make sure the pattern which will be put into i2 doesn't use REGs
2179 or MEMs set by insns in between i2 and i3.
2180
2181 2010-09-19 Jan Hubicka <jh@suse.cz>
2182
2183 PR lto/44246
2184 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
2185 processing same node twice.
2186
2187 2010-09-19 Anatoly Sokolov <aesok@post.ru>
2188
2189 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
2190 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2191 (bfin_class_likely_spilled_p): New function
2192
2193 2010-09-19 Ira Rosen <irar@il.ibm.com>
2194
2195 PR tree-optimization/45714
2196 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
2197 created in vectorizable_call instead of the original statement in
2198 def stmt updates.
2199
2200 2010-09-19 Uros Bizjak <ubizjak@gmail.com>
2201
2202 * config/i386/i386-protos.h (split_double_mode): New prototype.
2203 (split_di, split_ti): Remove prototypes.
2204 * config/i386/i386.c (split_double_mode): New function.
2205 (split_di, split_ti): Remove.
2206 (ix86_expand_branch): Use split_double_mode.
2207 (ix86_split_to_parts): Ditto.
2208 (ix86_split_ashl): Ditto.
2209 (ix86_split_ashr): Ditto.
2210 (ix86_split_lshr): Ditto.
2211 (ix86_force_to_memory): Ditto.
2212 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
2213
2214 2010-09-18 Jan Hubicka <jh@suse.cz>
2215
2216 PR tree-optimization/45453
2217 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
2218 virtual functions are reachable.
2219 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
2220 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2221 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
2222 when modifying function.
2223
2224 2010-09-18 Jan Hubicka <jh@suse.cz>
2225
2226 PR tree-optimization/45605
2227 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
2228 * gimple-fold.c (static_object_in_other_unit_p): New function.
2229 (canonicalize_constructor_val): Use it.
2230 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
2231 returning NULL.
2232 (gimple_fold_obj_type_ref_known_binfo): Use
2233 static_object_in_other_unit_p.
2234
2235 2010-09-18 Richard Guenther <rguenther@suse.de>
2236
2237 PR tree-optimization/45709
2238 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
2239 insertions until after all PHI nodes of the block are processed.
2240
2241 2010-09-18 Tijl Coosemans <tijl@coosemans.org>
2242
2243 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
2244
2245 2010-09-18 Kai Tietz <kai.tietz@onevision.com>
2246
2247 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
2248
2249 2010-09-18 Richard Guenther <rguenther@suse.de>
2250
2251 PR tree-optimization/45709
2252 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
2253
2254 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
2255
2256 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
2257 (dot_deps_stmt): Same.
2258 * graphite-poly.c (dot_lst): Same.
2259 * graphite-scop-detection.c (dot_all_scops): Same.
2260 (dot_scop): Same.
2261
2262 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
2263
2264 Revert:
2265 2009-12-16 Ben Elliston <bje@au.ibm.com>
2266
2267 * tree-data-ref.c (dot_rdg_1): Added back.
2268 (dot_rdg): Same. Added "#if 0" around system call.
2269
2270 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
2271 Richard Henderson <rth@redhat.com>
2272
2273 * config/i386/i386.c (initial_ix86_tune_features): Add
2274 X86_TUNE_PAD_SHORT_FUNCTION.
2275 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
2276 (ix86_count_insn): New.
2277 (ix86_pad_short_function): Likewise.
2278 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
2279
2280 * config/i386/i386.h (ix86_tune_indices): Add
2281 X86_TUNE_PAD_SHORT_FUNCTION.
2282 (TARGET_PAD_SHORT_FUNCTION): New.
2283
2284 * config/i386/i386.md (UNSPEC_NOPS): New.
2285 (nops): Likewise.
2286
2287 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
2288
2289 PR middle-end/45234
2290 * calls.c (expand_call): Make sure that all variable sized
2291 adjustments are multiple of preferred stack boundary after
2292 stack alignment.
2293
2294 2010-09-17 DJ Delorie <dj@redhat.com>
2295
2296 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
2297 passed an invalid value, print an error instead of ICEing.
2298 (valid_psw_flag): New.
2299 (rx_expand_builtin): Call it for setpsw/clrpsw.
2300 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
2301
2302 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
2303 (bitclr_in_memory): Likewise.
2304 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
2305
2306 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
2307
2308 PR middle-end/45678
2309 * cfgexpand.c (update_stack_alignment): New.
2310 (get_decl_align_unit): Use it.
2311 (expand_one_stack_var_at): Call update_stack_alignment.
2312
2313 2010-09-17 Richard Guenther <rguenther@suse.de>
2314
2315 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
2316 Properly copy the read string.
2317
2318 2010-09-17 Joseph Myers <joseph@codesourcery.com>
2319
2320 * doc/options.texi (Variable): Document.
2321 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
2322 generate target_flags declarations explicitly. Don't define
2323 VarExists variables for the driver.
2324 * common.opt (target_flags): New Variable record.
2325 (flag_dump_unnumbered, flag_dump_unnumbered_links,
2326 flag_var_tracking, flag_var_tracking_assignments,
2327 flag_var_tracking_assignments_toggle): Don't mark variables with
2328 VarExists.
2329 * config/i386/i386.c (ix86_isa_flags): Don't define here.
2330 * config/i386/i386.opt (ix86_isa_flags): Define here.
2331 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
2332 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
2333 VarExists.
2334 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
2335 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
2336 Only define for generator programs.
2337 * rtlanal.c (target_flags): Remove.
2338 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
2339 flag_var_tracking_assignments_toggle): Remove.
2340
2341 2010-09-17 Michael Matz <matz@suse.de>
2342
2343 PR tree-optimization/43432
2344 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2345 Accept backwards consecutive accesses.
2346 (vect_create_data_ref_ptr): If step is negative generate
2347 decreasing IVs.
2348 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
2349 (perm_mask_for_reverse, reverse_vec_elements): New functions.
2350 (vectorizable_load): Handle loads with negative steps when easily
2351 possible.
2352
2353 2010-09-03 Jan Hubicka <jh@suse.cz>
2354
2355 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
2356
2357 2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
2358
2359 * config/v850/v850.c (v850_function_value_regno_p): Make static.
2360 Adjust comments. Declare.
2361 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2362 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
2363
2364 2010-09-17 Richard Guenther <rguenther@suse.de>
2365
2366 * common.opt (combine): Remove.
2367 * gcc.c (default_compilers): Remove specs testing combine.
2368 The C compilers no longer can combine.
2369 (option_map): Remove -combine.
2370 (display_help): Remove -combine.
2371 (driver_handle_option): Remove OPT_combine handling.
2372 (compile_input_file_p): Remove.
2373 (do_spec): Remove code concerning combine.
2374 (main): Likewise.
2375 * doc/invoke.texi: Remove traces of -combine.
2376 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
2377
2378 2010-09-17 Richard Guenther <rguenther@suse.de>
2379
2380 PR middle-end/45678
2381 * builtins.c (fold_builtin_memory_op): Always properly adjust
2382 alignment of memory accesses.
2383
2384 2010-09-16 Jan Hubicka <jh@suse.cz>
2385
2386 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
2387 processing clone.
2388
2389 2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
2390
2391 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
2392
2393 * config/i386/i386.c (predict_jump): Add prototype.
2394 (flag_opts): Add -m8bit-idiv.
2395 (ix86_split_idivmod): New.
2396
2397 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
2398 Add 2 splitters for SI/DI mode divide.
2399 (divmod<mode>4_1): New pattern.
2400 (udivmod<mode>4_1): Likewise.
2401 (testdi_ccno_1): Likewise.
2402
2403 * config/i386/i386.opt (m8bit-idiv): New.
2404
2405 * doc/invoke.texi: Document -m8bit-idiv.
2406
2407 2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
2408
2409 PR bootstrap/45680
2410 * config/i386/i386.c (min_insn_size): Moved out of the
2411 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
2412
2413 2010-09-16 Jan Hubicka <jh@suse.cz>
2414
2415 * lto-cgraph.c (lto_output_node): Fix handling of clones.
2416 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
2417 unreachable clones with reachable clones.
2418 * tree-inline.c (copy_bb): Fix sanity checking when producing
2419 unreachable clone.
2420
2421 2010-09-16 Anatoly Sokolov <aesok@post.ru>
2422
2423 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
2424 (TARGET_MEMORY_MOVE_COST): Define.
2425 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
2426
2427 2010-09-16 Alexander Monakov <amonakov@ispras.ru>
2428
2429 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
2430 maybe_tidy_empty_bb.
2431
2432 Revert:
2433 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
2434 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2435
2436 2010-09-16 Joseph Myers <joseph@codesourcery.com>
2437
2438 * target.def (target_option.optimization): New hook.
2439 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
2440 TARGET_OPTION_OPTIMIZATION hook.
2441 * doc/tm.texi: Regenerate.
2442 * hooks.c (hook_void_int_int): New.
2443 * hooks.h (hook_void_int_int): Declare.
2444 * opts.c: Don't include tm_p.h.
2445 (decode_options): Use targetm.target_option.optimization instead
2446 of OPTIMIZATION_OPTIONS.
2447 * system.h (OPTIMIZATION_OPTIONS): Poison.
2448 * config/arm/arm-protos.h (arm_optimization_options): Remove.
2449 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
2450 (arm_optimization_options): Rename to arm_option_optimization.
2451 Make static.
2452 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
2453 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
2454 (cris_option_optimization): New.
2455 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
2456 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
2457 (crx_option_optimization): New.
2458 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
2459 * config/frv/frv-protos.h (frv_optimization_options): Remove.
2460 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
2461 (frv_optimization_options): Rename to frv_option_optimization.
2462 Make static.
2463 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
2464 * config/h8300/h8300.c (h8300_option_optimization): New.
2465 (TARGET_OPTION_OPTIMIZATION): Define.
2466 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
2467 * config/i386/i386-protos.h (optimization_options): Remove.
2468 * config/i386/i386.c (optimization_options): Rename to
2469 ix86_option_optimization. Make static.
2470 (TARGET_OPTION_OPTIMIZATION): Define.
2471 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
2472 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
2473 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
2474 (ia64_optimization_options): Rename to ia64_option_optimization.
2475 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
2476 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
2477 commented-out definition.
2478 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
2479 instead of OPTIMIZATION_OPTIONS.
2480 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
2481 (m32r_option_optimization): New.
2482 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
2483 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
2484 Remove.
2485 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
2486 (mcore_option_optimization): New.
2487 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
2488 * config/mep/mep-protos.h (mep_optimization_options): Remove.
2489 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
2490 (mep_optimization_options): Rename to mep_option_optimization.
2491 Make static. Take unused level and size parameters.
2492 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
2493 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
2494 (mmix_option_optimization): New.
2495 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
2496 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
2497 (pdp11_option_optimization): New.
2498 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
2499 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
2500 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
2501 (optimization_options): Rename to rs6000_option_optimization.
2502 Make static.
2503 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
2504 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
2505 * config/rx/rx.c (rx_set_optimization_options): Rename to
2506 rx_option_optimization. Make static. Take unused level and size
2507 parameters.
2508 (TARGET_OPTION_OPTIMIZATION): Define.
2509 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
2510 * config/s390/s390-protos.h (optimization_options): Remove.
2511 * config/s390/s390.c (optimization_options): Rename to
2512 s390_option_optimization. Make static. Don't mark size parameter
2513 unused.
2514 (TARGET_OPTION_OPTIMIZATION): Define.
2515 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
2516 * config/sh/sh-protos.h (sh_optimization_options): Remove.
2517 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
2518 (sh_optimization_options): Rename to sh_option_optimization. Make
2519 static. Don't mark parameters unused.
2520 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
2521 * config/spu/spu-protos.h (spu_optimization_options): Remove.
2522 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
2523 (spu_optimization_options): Rename to spu_option_optimization.
2524 Make static.
2525 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
2526 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
2527 (v850_option_optimization): New.
2528 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
2529 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
2530 (xtensa_option_optimization): New.
2531 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
2532
2533 2010-09-16 Joseph Myers <joseph@codesourcery.com>
2534
2535 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
2536 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
2537 * doc/tm.texi: Regenerate.
2538 * system.h (OVERRIDE_OPTIONS): Poison.
2539 * target.def (override): Default to hook_void_void.
2540 * targhooks.c (default_target_option_override): Remove.
2541 * genmodes.c, machmode.def: Update comments mentioning
2542 OVERRIDE_OPTIONS.
2543 * config/alpha/alpha-modes.def: Update comment mentioning
2544 alpha_override_options.
2545 * config/alpha/alpha-protos.h (override_options): Remove.
2546 * config/alpha/alpha.c (override_options): Rename to
2547 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
2548 (TARGET_OPTION_OVERRIDE): Define.
2549 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
2550 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
2551 of OVERRIDE_OPTIONS.
2552 * config/arc/arc-protos.h (arc_init): Remove.
2553 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
2554 (arc_init): Rename to arc_option_override. Make static.
2555 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
2556 (OVERRIDE_OPTIONS): Remove.
2557 * config/arm/arm-protos.h (arm_override_options): Remove.
2558 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
2559 (arm_override_options): Rename to arm_option_override. Make
2560 static. Call SUBTARGET_OVERRIDE_OPTIONS.
2561 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
2562 * config/arm/arm.md: Update comment referring to arm_override_options.
2563 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2564 instead of OVERRIDE_OPTIONS.
2565 * config/avr/avr-protos.h (avr_override_options): Remove.
2566 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
2567 (avr_override_options): Rename to avr_option_override. Make static.
2568 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
2569 * config/bfin/bfin-protos.h (override_options): Remove (twice).
2570 * config/bfin/bfin.c (override_options): Rename to
2571 bfin_option_override. Make static.
2572 (TARGET_OPTION_OVERRIDE): Define.
2573 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
2574 * config/cris/cris-protos.h (cris_override_options): Remove.
2575 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
2576 (cris_override_options): Rename to cris_option_override. Make static.
2577 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
2578 * config/frv/frv-protos.h (frv_override_options): Remove.
2579 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
2580 (frv_override_options): Rename to frv_option_override. Make static.
2581 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
2582 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
2583 * config/h8300/h8300.c (h8300_init_once): Rename to
2584 h8300_option_override. Make static.
2585 (TARGET_OPTION_OVERRIDE): Define.
2586 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
2587 * config/i386/i386-protos.h (override_options): Remove.
2588 * config/i386/i386.c (override_options): Rename to
2589 ix86_option_override_internal. Make static. Comments referring
2590 to this function and callers changed.
2591 (ix86_option_override): New.
2592 (TARGET_OPTION_OVERRIDE): Define.
2593 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
2594 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
2595 * config/ia64/ia64.c (ia64_file_start): Update comment referring
2596 to ia64_override_options.
2597 * config/iq2000/iq2000-protos.h (override_options): Remove.
2598 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
2599 (override_options): Rename to iq2000_option_override. Make static.
2600 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
2601 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
2602 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
2603 (lm32_override_options): Rename to lm32_option_override. Make static.
2604 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
2605 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
2606 (m32r_option_override): New.
2607 (m32r_init): Update comment.
2608 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
2609 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
2610 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
2611 (m68hc11_override_options): Rename to m68hc11_option_override.
2612 Make static. Return void.
2613 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
2614 * config/m68k/m68k-protos.h (override_options): Remove.
2615 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
2616 (override_options): Rename to m68k_option_override. Make static.
2617 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
2618 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
2619 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
2620 (mcore_override_options): Rename to mcore_option_override. Make
2621 static.
2622 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
2623 * config/mep/mep-protos.h (mep_override_options): Remove.
2624 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
2625 (mep_override_options): Rename to mep_option_override. Make static.
2626 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
2627 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
2628 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
2629 (mmix_override_options): Rename to mmix_option_override. Make static.
2630 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
2631 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
2632 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
2633 (mn10300_override_options): Rename to mn10300_option_override.
2634 Make static.
2635 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
2636 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
2637 * config/moxie/moxie.c (moxie_override_options): Rename to
2638 moxie_option_override. Make static.
2639 (TARGET_OPTION_OVERRIDE): Define.
2640 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
2641 * config/picochip/picochip-protos.h (picochip_override_options):
2642 Remove. Update comment referring to picochip_override_options.
2643 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
2644 (picochip_override_options): Rename to picochip_option_override.
2645 Make static. Update comment and definition of
2646 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
2647 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
2648 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2649 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2650 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2651 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2652 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2653 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
2654 instead of OVERRIDE_OPTIONS.
2655 * config/rs6000/rs6000-modes.def: Update comment referring to
2656 rs6000_override_options.
2657 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
2658 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
2659 (rs6000_override_options): Rename to
2660 rs6000_option_override_internal. Make static. Commented
2661 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
2662 (rs6000_option_override): New.
2663 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
2664 instead of OVERRIDE_OPTIONS.
2665 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2666 * config/s390/s390-protos.h (override_options): Remove.
2667 * config/s390/s390.c (override_options): Rename to
2668 s390_option_override. Make static.
2669 (TARGET_OPTION_OVERRIDE): Define.
2670 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
2671 * config/score/score-protos.h (score_override_options): Remove.
2672 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
2673 (score_override_options): Rename to score_option_override. Make
2674 static.
2675 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
2676 Update comment referring to override_options.
2677 * config/score/score3.c (score3_override_options): Rename to
2678 score3_option_override.
2679 * config/score/score3.h (score3_override_options): Rename to
2680 score3_option_override.
2681 * config/score/score7.c (score7_override_options): Rename to
2682 score7_option_override.
2683 * config/score/score7.h (score7_override_options): Rename to
2684 score7_option_override.
2685 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
2686 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
2687 (sparc_override_options): Rename to sparc_option_override. Make
2688 static. Call SUBTARGET_OVERRIDE_OPTIONS.
2689 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
2690 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2691 instead of OVERRIDE_OPTIONS.
2692 * config/spu/spu-protos.h (spu_override_options): Remove.
2693 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
2694 (spu_override_options): Rename to spu_option_override. Make
2695 static.
2696 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
2697 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
2698 OVERRIDE_OPTIONS.
2699 * config/vax/vax-protos.h (override_options): Remove.
2700 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
2701 (override_options): Rename to vax_option_override. Make static.
2702 Call SUBTARGET_OVERRIDE_OPTIONS.
2703 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
2704 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
2705 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
2706 * config/xtensa/xtensa-protos.h (override_options): Remove.
2707 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
2708 (override_options): Rename to xtensa_option_override. Make static.
2709 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
2710
2711 2010-09-16 Richard Guenther <rguenther@suse.de>
2712
2713 PR tree-optimization/45623
2714 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
2715 (get_constraint_for_component_ref): If computing a constraint
2716 for the rhs handle type punning through unions.
2717 (get_constraint_for_address_of): Adjust.
2718 (get_constraint_for_1): Likewise.
2719 (get_constraint_for): Likewise.
2720 (get_constraint_for_rhs): New function.
2721 (do_structure_copy): Adjust.
2722 (make_constraint_to): Likewise.
2723 (handle_const_call): Likewise.
2724 (find_func_aliases): Likewise.
2725 (process_ipa_clobber): Likewise.
2726 (create_variable_info_for): Likewise.
2727
2728 2010-09-16 Ira Rosen <irar@il.ibm.com>
2729
2730 * tree-vectorizer.c: Fix documentation.
2731 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
2732 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
2733 is_pattern_stmt_p, is_loop_header_bb_p,
2734 stmt_vinfo_set_inside_of_loop_cost,
2735 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
2736 known_alignment_for_access_p): Likewise.
2737 * tree-vect-loop.c: Fix documentation.
2738 (vect_get_cost): Start function name from new line.
2739 * tree-vect-data-refs.c: Fix documentation.
2740 * tree-vect_stmts.c: Likewise.
2741 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
2742 (vectorizable_store): Free vec_oprnds if allocated.
2743 (vectorizable_condition): Initialize several variables to avoid
2744 warnings.
2745 * tree-vect-slp.c: Fix documentation.
2746
2747 2010-09-16 Richard Guenther <rguenther@suse.de>
2748
2749 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
2750 is TS_TRANSLATION_UNIT_DECL.
2751 (initialize_tree_contains_struct): Adjust.
2752 (all_translation_units): New global vector.
2753 (build_translation_unit_decl): New function.
2754 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
2755 (struct tree_translation_unit_decl): New.
2756 (all_translation_units): Declare.
2757 (union tree_node): Add translation_unit_decl member.
2758 (build_translation_unit_decl): Declare.
2759 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
2760 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
2761 New function.
2762 (pack_value_fields): Call it.
2763 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
2764 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
2765 (lto_output_tree_pointers): Call it.
2766 * lto-streamer-in.c (lto_input_tree_ref): Handle references
2767 to TRANSLATION_UNIT_DECL.
2768 (unpack_ts_translation_unit_decl_value_fields): New function.
2769 (unpack_value_fields): Call it.
2770 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
2771 (lto_input_tree_pointers): Call it.
2772 * lto-streamer.c (check_handled_ts_structures): Adjust.
2773 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
2774 * c-decl.c (all_translation_units): Remove.
2775 (pop_scope): Use build_translation_unit_decl.
2776 (collect_all_refs): Adjust.
2777 (for_each_global_decl): Likewise.
2778 (c_write_global_declarations): Likewise.
2779
2780 2010-09-16 Jakub Jelinek <jakub@redhat.com>
2781
2782 PR bootstrap/45686
2783 * fold-const.c (fold_checksum_tree): Change slot from const void **
2784 to void **, use CONST_CAST_TREE to store into *slot.
2785
2786 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
2787
2788 * config/i386/i386.md: Remove unneeded empty conditions and
2789 preparation statements from expanders.
2790 * config/i386/mmx.md: Ditto.
2791 * config/i386/sse.md: Ditto.
2792
2793 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
2794
2795 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2796
2797 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
2798
2799 PR rtl-optimization/45593
2800 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
2801 insns that were in delay slots as stand-alone insns.
2802
2803 2010-09-15 Ian Lance Taylor <iant@google.com>
2804
2805 * incpath.c (remove_duplicates): If name is not a directory, issue
2806 a warning rather than an error.
2807
2808 2010-09-15 Martin Jambor <mjambor@suse.cz>
2809
2810 PR middle-end/45644
2811 * tree-sra.c (create_access): Check for bit-fields directly.
2812
2813 2010-09-15 Jakub Jelinek <jakub@redhat.com>
2814
2815 PR tree-optimization/45633
2816 * tree-cfg.c (verify_gimple_assign_binary): Allow
2817 MINUS_EXPR with lhs and rhs1 pointer vector and
2818 rhs2 sizetype vector.
2819 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
2820 or vector pointer use TER to optimize pointer subtraction.
2821
2822 2010-09-15 Jie Zhang <jie@codesourcery.com>
2823
2824 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
2825 fcmpd to fcmps.
2826
2827 2010-09-15 Ian Lance Taylor <iant@google.com>
2828
2829 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
2830
2831 2010-09-15 Ian Lance Taylor <iant@google.com>
2832
2833 * function.c (get_arg_pointer_save_area): Set
2834 arg_pointer_save_area_init to true.
2835
2836 2010-09-15 Martin Jambor <mjambor@suse.cz>
2837
2838 * tree-sra.c (generate_subtree_copies): Updated comment.
2839 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
2840 obtained from the statement iterator instead.
2841 (load_assign_lhs_subreplacements): Removed parameters lhs and
2842 right_offset, which is obtained from top_racc instead. Parameter lacc
2843 is now expected to be the root of the processed tree rather than root's
2844 first child. Updated all callers.
2845
2846 2010-09-15 Joseph Myers <joseph@codesourcery.com>
2847
2848 * config/pdp11/pdp11.c (register_move_cost): Rename to
2849 pdp11_register_move_cost.
2850 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
2851 pdp11_register_move_cost.
2852 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
2853 pdp11_register_move_cost instead of register_move_cost.
2854
2855 2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
2856
2857 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
2858 pattern for vmovn. Expansion in case of non
2859 -mvectorize-with-neon-quad.
2860 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2861 non- -mvectorize-with-neon-quad case.
2862 (move_lo_quad_<mode>): New expansion to vmov into low part.
2863 (move_hi_quad_<mode>): New expansion to vmov into high part.
2864 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2865 (move_lo_quad_v4sf): Likewise.
2866 (move_lo_quad_v8hi): Likewise.
2867 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2868 low part.
2869 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2870 high part.
2871 * config/arm/iterators.md (ANY128): New mode iterator.
2872 (V_narrow_pack): New mode attribute.
2873 (V_HALF): Add attribute.
2874 (V_DOUBLE): Add attribute.
2875 (V_mode_nunits): Add attribute.
2876
2877 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
2878
2879 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2880 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2881
2882 2010-09-15 Olivier Hainque <hainque@adacore.com>
2883 Jose Ruiz <ruiz@adacore.com>
2884
2885 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2886 * config/alpha/osf5-unwind.h: New file.
2887
2888 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2889
2890 PR bootstrap/45672
2891 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2892 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2893 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2894
2895 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2896
2897 * c-lang.h (struct lang_type): Add variable_size GTY option.
2898
2899 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2900
2901 PR bootstrap/45672
2902 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2903
2904 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2905
2906 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2907 result isn't used in memory address.
2908
2909 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2910
2911 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2912 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2913 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2914 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2915 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2916 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2917
2918 * target.def: Add units_per_simd_word to vectorize.
2919
2920 * targhooks.c (default_units_per_simd_word): New.
2921 * targhooks.h (default_units_per_simd_word): Likewise.
2922 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2923 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2924 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2925 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2926 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2927 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2928 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2929 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2930
2931 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2932 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2933
2934 * tree-vect-stmts.c: Don't include "tm_p.h".
2935 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2936 with targetm.vectorize.units_per_simd_word.
2937
2938 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2939
2940 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2941
2942 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
2943 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2944
2945 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
2946 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2947
2948 * doc/tm.texi: Regenerated.
2949
2950 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2951
2952 * tree-vect-stmts.c: Include "tm_p.h".
2953
2954 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2955 out of RTX_CODE.
2956
2957 2010-09-14 Martin Jambor <mjambor@suse.cz>
2958
2959 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
2960 location of generated statement. Changed all callers.
2961 (build_ref_for_model): New parameter loc which used to set location of
2962 all generated expressions. Changed all callers.
2963 (generate_subtree_copies): Likewise.
2964 (init_subtree_with_zero): Likewise.
2965 (sra_modify_expr): Set locations of all generated statements and
2966 expressions to the location the original statement.
2967 (handle_unscalarized_data_in_subtree): Likewise.
2968 (load_assign_lhs_subreplacements): Likewise.
2969 (sra_modify_constructor_assign): Likewise.
2970 (sra_modify_assign): Likewise.
2971
2972 2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
2973
2974 PR target/45277
2975 PR target/45363
2976 PR target/45407
2977 * doc/install.texi (sparc*-*-*): New section.
2978 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2979
2980 2010-09-14 Jakub Jelinek <jakub@redhat.com>
2981
2982 PR middle-end/45567
2983 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2984 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2985 (expand_builtin): Adjust caller.
2986 (expand_builtin_unop): Only use subtarget if it has the right mode.
2987
2988 2010-09-14 Tristan Gingold <gingold@adacore.com>
2989
2990 * configure.ac (plugins): Fix typos.
2991 * configure: Regenerate.
2992
2993 2010-09-14 Jakub Jelinek <jakub@redhat.com>
2994
2995 PR debug/45660
2996 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2997 gen_type_die for function/method return type.
2998
2999 2010-09-14 Ira Rosen <irar@il.ibm.com>
3000
3001 PR tree-optimization/45470
3002 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
3003 can throw an exception.
3004 * tree-vect-stmts.c (vectorizable_call): Likewise.
3005
3006 2010-09-14 DJ Delorie <dj@redhat.com>
3007
3008 PR target/44749
3009 * config/mep/mep-protos.h (mep_save_register_info,
3010 mep_reinit_regs, mep_init_regs): Declare.
3011
3012 * config/mep/mep.c: Move all target definitions to the end of the
3013 file to avoid the need for duplicate declarations.
3014 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
3015 (mep_reorg_erepeat): Remove unused variables.
3016 (mep_expand_builtin): Likewise.
3017
3018 * config/mep/mep-pragma.c: Don't include rtl.h.
3019 (INVALID_REGNUM): New.
3020 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
3021 functions.
3022 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
3023 Avoid enum/integer math.
3024
3025 2010-09-13 Joseph Myers <joseph@codesourcery.com>
3026
3027 PR target/44749
3028 * config/mep/t-mep (GTM_H): Add insn-constants.h.
3029 * config/mep/mep.c (mep_conditional_register_usage): Take no
3030 parameters.
3031 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
3032 prototype.
3033 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
3034 call to mep_conditional_register_usage.
3035
3036 2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
3037
3038 PR debug/43937
3039 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
3040 the DECL as well.
3041
3042 2010-09-13 Jakub Jelinek <jakub@redhat.com>
3043
3044 PR rtl-optimization/45617
3045 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
3046 even if low N bits of X aren't known to be zero.
3047
3048 2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
3049
3050 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
3051
3052 * config/i386/i386.c (initial_ix86_tune_features): Add
3053 X86_TUNE_VECTORIZE_DOUBLE.
3054 (ix86_units_per_simd_word): New.
3055
3056 * config/i386/i386.h (ix86_tune_indices): Add
3057 X86_TUNE_VECTORIZE_DOUBLE.
3058 (TARGET_VECTORIZE_DOUBLE): New.
3059 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
3060
3061 2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
3062
3063 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
3064 (new_temp_expr_table): Allocate call_cnt vector.
3065 (free_temp_expr_table): Free it.
3066 (process_replaceable): Add call_cnt parm and set in vector.
3067 (find_replaceable_in_bb): Skip replacement if def/use span a call.
3068 (debug_ter): Dump call_cnt value, remove stderr uses.
3069
3070 2010-09-13 Jan Hubicka <jh@suse.cz>
3071
3072 * tree.c (build_zero_cst): New.
3073 * tree.h (build_zero_cst): Declare.
3074 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
3075 (get_base_constructor): Break out from ...
3076 (fold_const_aggregate_ref): Here; handle empty constructors.
3077
3078 2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
3079
3080 * config/arm/arm.md: (define_attr "conds"): Update comment.
3081 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
3082 conds attribute to clob.
3083 (arm_sync_compare_and_swapsi): Likewise.
3084 (arm_sync_compare_and_swap<mode>): Likewise.
3085 (arm_sync_lock_test_and_setsi): Likewise.
3086 (arm_sync_lock_test_and_set<mode>): Likewise.
3087 (arm_sync_new_<sync_optab>si): Likewise.
3088 (arm_sync_new_nandsi): Likewise.
3089 (arm_sync_new_<sync_optab><mode>): Likewise.
3090 (arm_sync_new_nand<mode>): Likewise.
3091 (arm_sync_old_<sync_optab>si): Likewise.
3092 (arm_sync_old_nandsi): Likewise.
3093 (arm_sync_old_<sync_optab><mode>): Likewise.
3094 (arm_sync_old_nand<mode>): Likewise.
3095
3096 2010-09-13 Olivier Hainque <hainque@adacore.com>
3097
3098 * fwprop.c (forward_propagate_and_simplify): Only attach a
3099 REG_EQUAL note to an insn if the destination is a register.
3100 * gcse.c (try_replace_reg): Likewise.
3101
3102 2010-09-13 Richard Guenther <rguenther@suse.de>
3103
3104 PR tree-optimization/45611
3105 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
3106 (copy_ref_info): Likewise.
3107
3108 2010-09-13 Alexandre Oliva <aoliva@redhat.com>
3109
3110 PR debug/45604
3111 PR debug/45419
3112 PR debug/45408
3113 * tree-pretty-print.c (dump_generic_node): Disregard top-level
3114 types of MEM_REF pointer types to the same type.
3115
3116 2010-09-13 Hans-Peter Nilsson <hp@axis.com>
3117
3118 PR rtl-optimization/41087
3119 * ifcvt.c (noce_get_condition): Don't allow conditions with
3120 side-effects.
3121
3122 2010-09-12 Anatoly Sokolov <aesok@post.ru>
3123
3124 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3125 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
3126 * config/frv/frv.c (frv_register_move_cost): Make static. Change
3127 arguments type to reg_class_t. Add mode argument.
3128 (frv_memory_move_cost): New.
3129 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
3130
3131 2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
3132
3133 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
3134 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
3135
3136 2010-09-10 Jan Hubicka <jh@suse.cz>
3137
3138 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
3139
3140 2010-09-10 Richard Guenther <rguenther@suse.de>
3141
3142 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
3143 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
3144 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
3145 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
3146 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
3147
3148 2010-09-10 Richard Guenther <rguenther@suse.de>
3149
3150 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
3151 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
3152 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
3153 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
3154
3155 2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
3156
3157 PR middle-end/45634
3158 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
3159 of string folding is of integral type.
3160
3161 2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
3162
3163 * doc/invoke.texi (-x): Fix typo.
3164
3165 2010-09-10 Richard Guenther <rguenther@suse.de>
3166
3167 PR debug/44115
3168 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
3169 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3170 Output DECL_DEBUG_EXPR.
3171 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
3172 Input DECL_DEBUG_EXPR.
3173
3174 2010-09-10 Richard Guenther <rguenther@suse.de>
3175
3176 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
3177 (build_index_type): Implement in terms of build_range_type.
3178 (build_range_type): Do not allow NULL_TREE type, improve
3179 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
3180 if we didn't hash.
3181 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
3182 create a distinct copy of the type.
3183
3184 2010-09-10 Kai Tietz <kai.tietz@onevision.com>
3185
3186 * configure: Regenerated.
3187 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
3188
3189 2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3190
3191 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
3192 * config/arm/cortex-a9-neon.md: New and partially generated.
3193 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
3194
3195 2010-09-10 Richard Guenther <rguenther@suse.de>
3196
3197 * tree.h (build_index_2_type): Remove.
3198 * tree.c (build_index_2_type): Remove.
3199
3200 2010-09-10 Jakub Jelinek <jakub@redhat.com>
3201
3202 PR bootstrap/45630
3203 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
3204 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
3205 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
3206
3207 2010-09-10 Martin Jambor <mjambor@suse.cz>
3208
3209 PR tree-optimization/44972
3210 * tree-sra.c: Include toplev.h.
3211 (build_ref_for_offset): Entirely reimplemented.
3212 (build_ref_for_model): New function.
3213 (build_user_friendly_ref_for_offset): New function.
3214 (analyze_access_subtree): Removed build_ref_for_offset check.
3215 (propagate_subaccesses_across_link): Likewise.
3216 (create_artificial_child_access): Use
3217 build_user_friendly_ref_for_offset.
3218 (propagate_subaccesses_across_link): Likewise.
3219 (ref_expr_for_all_replacements_p): Removed.
3220 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
3221 (sra_modify_expr): Use build_ref_for_model.
3222 (load_assign_lhs_subreplacements): Likewise.
3223 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
3224 checks for return values of build_ref_for_offset.
3225 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
3226 build_ref_for_offset.
3227 * ipa-prop.h: Include gimple.h
3228 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
3229 (ipa_analyze_indirect_call_uses): Update comment.
3230 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
3231 (IPA_PROP_H): Likewise.
3232
3233 2010-09-10 Martin Jambor <mjambor@suse.cz>
3234
3235 PR tree-optimization/44972
3236 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
3237 calling build_ref_for_offset.
3238
3239 2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3240
3241 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
3242 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
3243 * config/arm/arm-tune.md: Regenerate.
3244 * doc/invoke.texi (ARM Options): Document it.
3245
3246 2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
3247
3248 * config/i386/i386.c: Include sched-int.h.
3249 (TARGET_SCHED_DISPATCH): Defined.
3250 (TARGET_SCHED_DISPATCH_DO): Defined.
3251 (DISPATCH_WINDOW_SIZE): Defined.
3252 (MAX_DISPATCH_WINDOWS): Defined.
3253 (MAX_INSN): Defined.
3254 (MAX_IMM): Defined.
3255 (MAX_IMM_SIZE): Defined.
3256 (MAX_IMM_32): Defined.
3257 (MAX_IMM_64): Defined.
3258 (MAX_LOAD): Defined.
3259 (MAX_STORE): Defined.
3260 (BIG): Defined.
3261 (dispatch_group): New.
3262 (num_allowable_groups): New.
3263 (group_name): New.
3264 (sched_insn_info_s): New.
3265 (dispatch_windows_s): New.
3266 (imm_info_s): New.
3267 (dispatch_window_list): New.
3268 (dispatch_window_list1): New.
3269 (get_mem_group): New.
3270 (is_cmp): New.
3271 (dispatch_violation): New.
3272 (is_branch): New.
3273 (is_prefetch): New.
3274 (init_window): New.
3275 (allocate_window): New.
3276 (init_dispatch_sched): New.
3277 (is_end_basic_block): New.
3278 (process_end_window): New.
3279 (allocate_next_window): New.
3280 (find_constant_1): New.
3281 (find_constant): New.
3282 (get_num_immediates): New.
3283 (has_immediate): New.
3284 (get_insn_path): New.
3285 (get_insn_group): New.
3286 (count_num_restricted): New.
3287 (fits_dispatch_window): New.
3288 (add_insn_window): New.
3289 (add_to_dispatch_window): New.
3290 (debug_dispatch_window_file): New.
3291 (debug_dispatch_window): New.
3292 (debug_insn_dispatch_info_file): New.
3293 (debug_ready_dispatch): New.
3294 (do_dispatch): New.
3295 (has_dispatch): New.
3296 * config/i386/i386.h (debug_ready_dispatch): Declared.
3297 (debug_dispatch_window): Declared.
3298 * config/i386/i386.opt (mdispatch-scheduler): New flag.
3299 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
3300 (TARGET_SCHED_DISPATCH_DO): New.
3301 * doc/tm.texi: Regererated.
3302 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
3303 ready_remove_first_dispatch
3304 (schedule_block): Call targetm.sched.dispatch and
3305 targetm.sched.dispatch_do.
3306 (sched_init): Call targetm.sched.dispatch and
3307 targetm.sched.dispatch_do.
3308 (ready_remove_first_dispatch): New.
3309 (number_in_ready): New.
3310 (get_ready_element): New.
3311 * hooks.c (hook_bool_rtx_int_false): New.
3312 (hook_void_rtx_int): New.
3313 * hooks.h (hook_bool_rtx_int_false): Declared.
3314 (hook_void_rtx_int): Declared.
3315 * sched-int.h (IS_DISPATCH_ON): Defined.
3316 (IS_CMP): Defined.
3317 (DISPATCH_VIOLATION): Defined.
3318 (FITS_DISPATCH_WINDOW): Defined.
3319 (DISPATCH_INIT): Defined.
3320 (ADD_TO_DISPATCH_WINDOW): Defined.
3321 (get_ready_element): Declared.
3322 (number_in_ready): Declared.
3323 * target.def (dispatch): Defined.
3324 (dispatch_do): Defined.
3325
3326 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
3327
3328 PR middle-end/45312
3329 * reload1.c (merge_assigned_reloads): Remove.
3330 (reload_as_needed): Don't call it.
3331
3332 2010-09-09 Anatoly Sokolov <aesok@post.ru>
3333
3334 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
3335 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3336 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3337
3338 2010-09-09 Matthias Klose <doko@ubuntu.com>
3339
3340 PR bootstrap/43847
3341 * configure.ac (--enable-plugin): Enhance for cross builds.
3342 * configure: Regenerate.
3343
3344 2010-09-09 Jan Hubicka <jh@suse.cz>
3345
3346 PR tree-optimization/45598
3347 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
3348 string folding is of integral type.
3349
3350 2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
3351
3352 * configure.ac (gnu_indirect_function): New test.
3353 * configure: Rebuilt.
3354 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
3355 * defaults.h (IFUNC_ASM_TYPE): Provide default.
3356
3357 * doc/extend.texi (Function Attributes): Document ifunc.
3358 * varasm.c (do_assemble_alias): Deal with ifuncs too.
3359
3360 2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
3361
3362 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
3363 epilogue instruction move.
3364
3365 2010-09-09 Jan Hubicka <jh@suse.cz>
3366
3367 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
3368 command line to allow more partitions than input files.
3369
3370 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
3371
3372 PR middle-end/44554
3373 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
3374
3375 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
3376
3377 PR middle-end/40386
3378 * ira.c (pseudo_for_reload_consideration_p): Don't use
3379 flag_ira_share_spill_slots.
3380
3381 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3382
3383 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
3384 point zero operands that fit into a single GPR.
3385 (s390_preferred_reload_class): Ensure we only return general-purpose
3386 register classes.
3387 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
3388 floating-point zero operands into GPRs.
3389 ("*mov<mode>_64"): Likewise.
3390 ("mov<mode>"): Likewise using lhi.
3391
3392 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3393
3394 * config/s390/s390.c (s390_symref_operand_p): Return false for
3395 literal pool references.
3396 (s390_check_qrst_address): Update caller.
3397
3398 2010-09-09 Uros Bizjak <ubizjak@gmail.com>
3399
3400 * config/i386/predicates.md (ext_register_operand): Check that
3401 SUBREG_REG is really a register before looking for REGNO.
3402 (reg_not_xmm0_operand): Handle SUBREGs correctly.
3403 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
3404
3405 2010-09-09 Jakub Jelinek <jakub@redhat.com>
3406
3407 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
3408 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
3409 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
3410 * print-rtl.c (print_rtx): Likewise.
3411 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
3412 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
3413 for ADDR_EXPR with non-addressable object.
3414 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
3415 (struct dw_val_struct): Add v.val_decl_ref.
3416 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
3417 Handle DW_OP_GNU_implicit_pointer.
3418 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
3419 (get_ref_die_offset_label): New function.
3420 (implicit_ptr_descriptor): New function.
3421 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
3422 (loc_descriptor): Likewise.
3423 (gen_variable_die): Put even definitions into decl_die_table.
3424 (resolve_addr_in_expr): Resolve still unresolved
3425 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
3426 return false.
3427 (dwarf2out_finish): Call output_location_lists after outputting
3428 .debug_info and .debug_abbrev instead of before.
3429
3430 2010-09-09 Roland McGrath <roland@redhat.com>
3431
3432 * dwarf2out.c (DWARF_REF_SIZE): Define.
3433 (size_of_loc_descr): Use it for DW_OP_call_ref.
3434
3435 2010-09-09 Alan Modra <amodra@gmail.com>
3436
3437 * doc/invoke.text: Reinstate mcmodel=medium.
3438 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3439 CMODEL_MEDIUM as default.
3440 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
3441 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
3442 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
3443 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
3444
3445 2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3446
3447 PR target/45250
3448 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
3449 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
3450 (builtin_longjmp): Likewise.
3451 (allocate_stack): Use hard_frame_pointer_rtx instead of
3452 frame_pointer_rtx.
3453 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
3454 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
3455 (pa_can_eliminate): Likewise.
3456 (TARGET_INTERNAL_ARG_POINTER): Define.
3457 (TARGET_CAN_ELIMINATE): Define.
3458 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
3459 pointer.
3460 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
3461 (pa_internal_arg_pointer, pa_can_eliminate,
3462 pa_initial_elimination_offset): New.
3463 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
3464 (HARD_FRAME_POINTER_REGNUM): Set to register three.
3465 (INITIAL_FRAME_POINTER_OFFSET): Delete.
3466 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
3467 Define.
3468 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
3469 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
3470 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
3471 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
3472 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
3473 new soft frame pointer.
3474 * config/pa/pa64-regs.h: Likewise.
3475
3476 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
3477
3478 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
3479 numerical constant.
3480 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
3481
3482 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
3483
3484 PR debug/45531
3485 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
3486
3487 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
3488
3489 PR debug/45419
3490 PR debug/45408
3491 * tree-pretty-print.c (dump_generic_node): Disregard top-level
3492 qualifiers in otherwise equal MEM_REF pointer types.
3493 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
3494 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
3495
3496 2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3497
3498 PR target/44392
3499 * config/arm/arm.md (bswapsi2): Handle condition correctly
3500 for armv6 and optimize_size.
3501
3502 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3503
3504 PR other/18555
3505 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
3506
3507 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
3508
3509 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
3510 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
3511 ix86_expand_strlen, legitimate_pic_address_disp_p,
3512 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
3513 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
3514 ix86_check_movabs, ix86_secondary_memory_needed): Change function
3515 prototype to bool.
3516 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
3517 return_in_memory_ms_64, ix86_check_movabs,
3518 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
3519 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
3520 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
3521 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
3522 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
3523 ix86_secondary_memory_needed): Change to bool. Return
3524 "true" and "false" values.
3525 * config/i386/i386.md: Return "true" and "false" values.
3526
3527 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3528
3529 * doc/sourcebuild.texi (Effective-Target Keywords): Document
3530 run_expensive_tests.
3531
3532 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3533
3534 * toplev.c (output_stack_usage): Use lbasename instead of basename.
3535
3536 2010-09-08 Martin Jambor <mjambor@suse.cz>
3537
3538 PR other/45443
3539 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
3540 at -O3.
3541
3542 2010-09-08 Richard Guenther <rguenther@suse.de>
3543
3544 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
3545 (visit): Adjust.
3546 (iterative_hash_gimple_type): Likewise.
3547 (gimple_type_hash): Likewise.
3548 (gimple_register_type): Likewise.
3549 (print_gimple_types_stats): Likewise.
3550 (free_gimple_type_tables): Likewise.
3551
3552 2010-09-08 Michael Matz <matz@suse.de>
3553
3554 PR tree-optimization/43430
3555 * tree-vect-stmts.c (vectorizable_condition): Support multiple
3556 copies for conditional statements if it's not part of a reduction.
3557
3558 2010-09-08 Michael Matz <matz@suse.de>
3559
3560 PR tree-optimization/33244
3561 * tree-ssa-sink.c (statement_sink_location): Don't sink into
3562 empty loop latches.
3563
3564 2010-09-08 Richard Guenther <rguenther@suse.de>
3565
3566 PR tree-optimization/45578
3567 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
3568 Be more careful when transfering alignment information to
3569 the new induction variable.
3570 (copy_ref_info): Likewise.
3571
3572 2010-09-08 Richard Guenther <rguenther@suse.de>
3573
3574 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
3575 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
3576
3577 2010-09-08 Arnaud Charlet <charlet@adacore.com>
3578
3579 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
3580 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
3581
3582 2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
3583
3584 PR doc/45587
3585 * doc/md.texi: Fixed modes on several standard pattern names.
3586
3587 2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
3588
3589 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
3590 (ashl<mode>3): ...this.
3591 (loongson_psra<V_suffix>): Rename to...
3592 (ashr<mode>3): ...this.
3593 (loongson_psrl<V_suffix>): Rename to...
3594 (lshr<mode>3): ...this.
3595 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
3596 (CODE_FOR_loongson_psllw): Define.
3597 (CODE_FOR_loongson_psrlh): Define.
3598 (CODE_FOR_loongson_psrlw): Define.
3599 (CODE_FOR_loongson_psrah): Define.
3600 (CODE_FOR_loongson_psraw): Define.
3601
3602 2010-09-07 Richard Henderson <rth@redhat.com>
3603
3604 * tree-vect-data-refs.c: Include tm_p.h.
3605 * Makefile.in (tree-vect-data-refs.o): Update deps.
3606 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
3607 Move delarations outside #ifdef RTX_CODE.
3608
3609 2010-09-07 Richard Henderson <rth@redhat.com>
3610
3611 * final.c (rest_of_handle_final): Unconditionally do
3612 output_function_exception_table before assemble_end_function.
3613
3614 2010-09-07 Jan Hubicka <jh@suse.cz>
3615
3616 * tree-inline.c (tree_inlinable_function_p): Do not test
3617 DECL_REPLACEABLE_P.
3618 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
3619 update_callee_keys, cgraph_decide_inlining): Test function availability.
3620 * cif-code.def (OVERWRITABLE): New code.
3621
3622 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
3623 Jack Howarth <howarth@bromo.med.uc.edu>
3624
3625 PR target/36502
3626 PR target/42313
3627 PR target/44651
3628 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
3629 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
3630 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
3631 MAX macro.
3632
3633 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
3634
3635 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
3636 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
3637
3638 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
3639
3640 * config.gcc: Don't append t-android for Android targets.
3641
3642 * config/t-android: Removed.
3643
3644 2010-09-07 Richard Henderson <rth@redhat.com>
3645
3646 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
3647 * doc/tm.texi.in: Add doc marker.
3648 * doc/tm.texi: Rebuild.
3649 * except.c (switch_to_exception_section): Always build.
3650 (output_one_function_exception_table): Move section switch,
3651 personality output, and label output ...
3652 (output_function_exception_table): ... here. Use the new
3653 personality hook.
3654
3655 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
3656 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
3657 TARGET_ASM_INIT_SECTIONS): New.
3658 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
3659 make static.
3660 (TARGET_ASM_UNWIND_EMIT): Update to match.
3661 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
3662
3663 * config/arm/arm.c (arm_asm_emit_except_personality): New.
3664 (arm_asm_init_sections): New.
3665 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
3666
3667 2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3668
3669 * config/arm/arm.md: Remove unused variable.
3670
3671 2010-09-07 Anatoly Sokolov <aesok@post.ru>
3672
3673 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3674 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
3675 (m32r_memory_move_cost): New function.
3676
3677 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
3678
3679 * config.gcc: Append t-android for Android targets.
3680
3681 * config/t-android: New.
3682
3683 2010-09-07 Richard Henderson <rth@redhat.com>
3684
3685 * target.def (unwind_emit_before_insn): New hook.
3686 * doc/tm.texi.in: Add @hook marker for it.
3687 * doc/tm.texi: Rebuild.
3688 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
3689
3690 2010-09-07 Martin Jambor <mjambor@suse.cz>
3691
3692 PR fortran/43665
3693 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
3694 are any type attributes.
3695
3696 2010-09-07 Jan Hubicka <jh@suse.cz>
3697
3698 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
3699 array_ref_low_bound in string access folding.
3700
3701 2010-09-07 Uros Bizjak <ubizjak@gmail.com>
3702
3703 PR target/45206
3704 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
3705 eh_return fixup sequence.
3706
3707 2010-09-07 Jan Hubicka <jh@suse.cz>
3708
3709 * gimple-fold.c (maybe_fold_reference): Verify that operand is
3710 gimple_min_invariant.
3711
3712 2010-09-07 Richard Guenther <rguenther@suse.de>
3713
3714 PR middle-end/45569
3715 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
3716 nor CONSTRUCTOR can trap.
3717 * tree-complex.c (update_complex_assignment): Update EH info.
3718
3719 2010-09-07 Richard Guenther <rguenther@suse.de>
3720
3721 PR middle-end/45569
3722 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
3723 * passes.c (execute_function_todo): Do not verify anything if
3724 we saw errors.
3725
3726 2010-09-07 Richard Guenther <rguenther@suse.de>
3727
3728 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
3729
3730 2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
3731
3732 PR target/43137
3733 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
3734 New define_mode_attrs.
3735 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
3736 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
3737 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
3738 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
3739 Remove pool_range attribute.
3740 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
3741 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
3742 pool_range and neg_pool_range attributes.
3743 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
3744 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
3745 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
3746
3747 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
3748
3749 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
3750 check glibc.
3751
3752 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
3753
3754 PR target/22152
3755 * config/i386/mmx.md (*mov<mode>_internal_rex64,
3756 *mov<mode>_internal_avx, *mov<mode>_internal,
3757 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
3758 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
3759
3760 2010-09-06 Mark Mitchell <mark@codesourcery.com>
3761
3762 * c-typeck.c (do_warn_double_promotion): Remove.
3763 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
3764 Objective-C++ too.
3765
3766 2010-09-06 Anatoly Sokolov <aesok@post.ru>
3767
3768 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
3769 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
3770 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
3771 argument type to reg_class_t. Change result type to bool.
3772 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3773
3774 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
3775
3776 PR libobjc/19850
3777 * gthr-posix.h (__gthread_objc_thread_detach): Use
3778 _objc_thread_attribs when detaching a thread.
3779 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
3780
3781 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
3782
3783 PR target/45524
3784 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
3785 * configure: Regenerated.
3786
3787 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3788
3789 * combine.c (try_combine): Set subst_low_luid to i0.
3790
3791 2010-09-06 Richard Guenther <rguenther@suse.de>
3792
3793 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
3794 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
3795 (build_aligned_type): Declare.
3796 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
3797 (check_aligned_type): New function.
3798 (build_aligned_type): Likewise.
3799 * expr.c (expand_assignment): Handle misaligned stores via
3800 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
3801 (expand_expr_real_1): Likewise.
3802 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
3803 * tree-vect-stmts.c (vectorizable_store): Do not build
3804 MISALIGNED_INDIRECT_REF but initialize alignment information.
3805 (vectorizable_load): Likewise.
3806 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
3807 handling.
3808 * cfgexpand.c (expand_debug_expr): Likewise.
3809 * dwarf2out.c (loc_list_from_tree): Likewise.
3810 * fold-const.c (maybe_lvalue_p): Likewise.
3811 (operand_equal_p): Likewise.
3812 (build_fold_addr_expr_with_type_loc): Likewise.
3813 * gimplify.c (gimplify_addr_expr): Likewise.
3814 (gimplify_expr): Likewise.
3815 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
3816 (verify_gimple_assign_single): Likewise.
3817 * tree-dump.c (dequeue_and_dump): Likewise.
3818 (tree_could_trap_p): Likewise.
3819 * tree-predcom.c (ref_at_iteration): Likewise.
3820 * tree-pretty-print.c (dump_generic_node): Likewise.
3821 (op_code_prio): Likewise.
3822 (op_symbol_code): Likewise.
3823 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3824 * tree-ssa-loop-im.c (for_each_index): Likewise.
3825 (gen_lsm_tmp_name): Likewise.
3826 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
3827 (find_interesting_uses_address): Likewise.
3828 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3829 * tree-ssa-operands.c (get_expr_operands): Likewise.
3830 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3831 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3832 (ao_ref_init_from_vn_reference): Likewise.
3833 * tree.c (staticp): Likewise.
3834 (build1_stat): Likewise.
3835 (reference_alias_ptr_type): Likewise.
3836 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3837 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
3838 MISALIGNED_INDIRECT_REF handling.
3839
3840 2010-09-06 Richard Guenther <rguenther@suse.de>
3841
3842 PR tree-optimization/45534
3843 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
3844 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
3845 on the target.
3846 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
3847 valid on the target.
3848
3849 2010-09-06 Andreas Schwab <schwab@redhat.com>
3850
3851 * configure.ac: Quote argument of AC_MSG_WARN.
3852 * configure: Regenerate.
3853
3854 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
3855
3856 * sel-sched.c (move_cond_jump): Correct arguments to
3857 maybe_tidy_empty_bb.
3858 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3859
3860 2010-09-06 Andrey Belevantsev <abel@ispras.ru>
3861
3862 PR rtl-optimization/44919
3863 * sel-sched.c (move_cond_jump): Remove assert, check that
3864 the several blocks case can only happen with mutually exclusive
3865 insns instead. Rewrite the movement code to support moving through
3866 several basic blocks.
3867
3868 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
3869
3870 * config/i386/i386.md (iptrsize): New mode attribute.
3871 (tp_seg): Ditto.
3872 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3873 mode iterator.
3874 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3875 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3876 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3877 (stack_tls_protect_set_<mode>): Ditto from
3878 stack_tls_protect_set_{si,di}. Use %@ to output segment register
3879 of thread base pointer load.
3880 (stack_tls_protect_test_<mode>): Ditto from
3881 stack_tls_protect_test_{si,di}. Use %@ to output segment register
3882 of thread base pointer load.
3883 (stack_protect_set): Rewrite using indirect functions.
3884 (stack_protect_test): Ditto.
3885 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3886 (ix86_print_operand): Handle '@'.
3887
3888 2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
3889
3890 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3891 MINUS_EXPR.
3892
3893 2010-09-05 Mark Mitchell <mark@codesourcery.com>
3894
3895 * doc/invoke.texi: Document -Wdouble-promotion.
3896 * c-typeck.c (convert_arguments): Check for implicit conversions
3897 from float to double.
3898 (do_warn_double_promotion): New function.
3899 (build_conditional_expr): Use it.
3900 (build_binary_op): Likewise.
3901
3902 2010-09-05 Richard Guenther <rguenther@suse.de>
3903
3904 PR tree-optimization/45535
3905 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3906 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
3907 dereferencing it.
3908 (indirect_refs_may_alias_p): Likewise.
3909
3910 2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
3911
3912 * config/sh/sh.c (sh_option_override): Make static.
3913 Adjust comments. Declare.
3914 (sh_function_value_regno_p): Likewise.
3915 (sh_register_move_cost): Modify the arguments, make static.
3916 Adjust comments. Declare.
3917 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3918 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3919 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3920 REGISTER_MOVE_COST): Delete.
3921 * config/sh/sh-protos.h (sh_override_options): Delete.
3922 (sh_register_move_cost): Delete.
3923 (sh_function_value_regno_p): Delete.
3924
3925 2010-09-04 Anatoly Sokolov <aesok@post.ru>
3926
3927 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3928 m32r_function_value_regno_p): New functions.
3929 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3930 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3931 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3932 FUNCTION_VALUE_REGNO_P): Remove.
3933
3934 2010-09-04 Jan Hubicka <jh@suse.cz>
3935
3936 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3937 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3938 fold_read_from_constant_string.
3939
3940 * gimple.h (canonicalize_constructor_val): Declare.
3941 * gimple-fold.c (canonicalize_constructor_val): New function.
3942 (get_symbol_constant_value):Use it.
3943 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3944
3945 2010-09-04 Jan Hubicka <jh@suse.cz>
3946
3947 * tree-switch-conversion.c (build_one_array): Set constructor to be
3948 static.
3949 * varpool.c (varpool_finalize_decl): Compute const_value_known.
3950
3951 2010-09-04 Richard Guenther <rguenther@suse.de>
3952
3953 PR bootstrap/45519
3954 * tree-flow.h (force_gimple_operand_1): Declare.
3955 (force_gimple_operand_gsi_1): Likewise.
3956 * gimplify.c (force_gimple_operand_1): New worker taking a
3957 gimple predicate for ...
3958 (force_gimple_operand): ... which now wraps it.
3959 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3960 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3961 last change.
3962 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3963 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3964 (create_mem_ref): Likewise.
3965
3966 2010-09-04 Uros Bizjak <ubizjak@gmail.com>
3967
3968 * config/i386/predicates.md (sse_reg_operand): New predicate.
3969 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3970 predicate for operand 1.
3971 (XFmode push splitter): Use fp_register_operand predicate
3972 for operand 1.
3973 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3974 (SF-DF float_extend push splitter): Add reload_completed insn
3975 predicate.
3976 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3977 MODEF mode macro. Add reload_completed insn predicate.
3978
3979 2010-09-04 Paolo Bonzini <bonzini@gnu.org>
3980
3981 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3982 (struct df_extract_ref): Remove.
3983 (union df_ref_d): Remove extract_ref member.
3984 (df_ref_create): Remove last three arguments.
3985 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3986 * df-scan.c (df_ref_record): Remove last three arguments, do not
3987 pass them to df_ref_create_structure.
3988 (df_uses_record): Remove first and last three arguments. Replace
3989 first argument with DF_REF_REGULAR, adjust calls to remove the
3990 width, offset and mode. Always call recursively on the second
3991 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3992 (df_ref_create_structure): Remove first argument.
3993 (struct df_scan_problem_data): Remove ref_extract_pool.
3994 (df_scan_free_internal): Do not free it.
3995 (df_scan_alloc): Do not allocate it.
3996 (df_ref_create): Remove last three arguments, do not pass them to
3997 df_ref_create_structure.
3998 (df_free_ref): Remove DF_REF_EXTRACT case.
3999 (df_notes_rescan): Adjust call to df_uses_record.
4000 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
4001 Remove DF_REF_EXTRACT case.
4002 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
4003 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
4004 and SUBREG definitions.
4005 (df_get_conditional_uses): Remove references to width/offset/mode,
4006 adjust call to df_ref_create_structure.
4007 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
4008 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
4009 calls to df_uses_record and df_ref_record.
4010 * fwprop.c (update_df): Remove references to width/offset/mode,
4011 adjust call to df_ref_create.
4012
4013 2010-09-03 Jan Hubicka <jh@suse.cz>
4014
4015 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
4016 (build_cdtor_fns): Update use of build_cdtor.
4017
4018 2010-09-03 Joseph Myers <joseph@codesourcery.com>
4019
4020 * doc/options.texi (SeparateAlias): Document.
4021 * opt-functions.awk (switch_flags): Handle SeparateAlias.
4022 * opth-gen.awk: Generate enumeration names for options marked
4023 SeparateAlias, but not for those marked Ignore.
4024 * opts-common.c (generate_canonical_option): Don't output separate
4025 argument for options marked CL_SEPARATE_ALIAS.
4026 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
4027 * opts.h (CL_SEPARATE_ALIAS): New.
4028 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4029 CL_COMMON): Adjust definitions.
4030 * config/i386/darwin.opt, config/mips/sde.opt: New.
4031 * common.opt (fdump-final-insns): New.
4032 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4033 i386/darwin.opt.
4034 (mips*-sde-elf*): Add mips/sde.opt.
4035 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
4036 -mno-data-in-code and -mcode-xonly here.
4037 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
4038 * gcc.c (option_map): Add "j" to --dump entry.
4039 (translate_options): Don't translate -d to -foutput-class-dir= here.
4040
4041 2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
4042
4043 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
4044 DR_IS_WRITE.
4045 (compute_all_dependences): Same.
4046 (create_rdg_edge_for_ddr): Same.
4047 * tree-data-ref.h (DR_IS_WRITE): New.
4048 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
4049 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
4050 (write_memrefs_written_at_least_once): Same.
4051 * tree-predcom.c (suitable_component_p): Same.
4052 (determine_roots_comp): Same.
4053 (execute_load_motion): Same.
4054 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
4055 (vect_enhance_data_refs_alignment): Same.
4056 (vect_analyze_group_access): Same.
4057
4058 2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
4059
4060 PR testsuite/42843
4061 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
4062 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
4063
4064 2010-09-03 Marcin Baczynski <marbacz@gmail.com>
4065
4066 * dwarf2out.c (file scope): Remove #if0'd code.
4067 (gen_subprogram_die): Same.
4068
4069 2010-09-03 Jakub Jelinek <jakub@redhat.com>
4070
4071 PR middle-end/45484
4072 * dwarf2out.c (flush_queued_reg_saves): Rename to...
4073 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
4074 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
4075 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
4076 * config/i386/i386.c (output_set_got): Call it.
4077
4078 2010-09-03 Michael Matz <matz@suse.de>
4079
4080 PR middle-end/45415
4081 * tree-sra.c (sra_modify_assign): If we modify the statement,
4082 say so.
4083
4084 * tree-ssa.c (verify_ssa): Check number of operands and links
4085 per statement to agree.
4086
4087 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
4088 Iain Sandoe <iains@gcc.gnu.org>
4089
4090 PR target/45476
4091 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
4092 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
4093 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
4094
4095 2010-09-03 Richard Guenther <rguenther@suse.de>
4096
4097 * lto-streamer-out.c (output_function): Output function
4098 start and end loci.
4099 * lto-streamer-in.c (input_function): Input function start
4100 and end loci.
4101
4102 2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4103
4104 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
4105 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
4106 * configure: Regenerate.
4107 * aclocal.m4: Regenerate.
4108
4109 2010-09-03 Jan Hubicka <jh@suse.cz>
4110
4111 PR lto/44812
4112 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
4113 on functions/variables in other partition.
4114
4115 2010-09-03 Jan Hubicka <jh@suse.cz>
4116
4117 * cgraph.h (struct varpool_node): Add const_value_known.
4118 (varpool_decide_const_value_known): Declare.
4119 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
4120 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
4121 (input_varpool_node): Restore const_value_known.
4122 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
4123 initializer folding.
4124 * ipa.c (ipa_discover_readonly_nonaddressable_var,
4125 function_and_variable_visibility): Compute const_value_known.
4126 * gimple-fold.c (get_symbol_constant_value): Use varpool for
4127 initializer folding.
4128 * varpool.c (varpool_decide_const_value_known): New function.
4129
4130 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
4131
4132 * config/i386/i386.md: Remove empty preparation statements
4133 from splitters.
4134
4135 2010-09-03 Jan Hubicka <jh@suse.cz>
4136
4137 * passes.c (rest_of_decl_compilation): Do not add local vars into
4138 varpool.
4139 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
4140 static or extern vars are in varpool.
4141 (varpool_finalize_decl): Sanity check that only static vars are
4142 finalized.
4143
4144 2010-09-03 Jakub Jelinek <jakub@redhat.com>
4145
4146 PR debug/45500
4147 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
4148 not just generic vectors with BLKmode.
4149
4150 2010-09-03 Richard Guenther <rguenther@suse.de>
4151
4152 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
4153 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
4154 * tree.h (TMR_SYMBOL): Remove.
4155 (TMR_BASE, TMR_OFFSET): Adjust.
4156 (TMR_INDEX2): New.
4157 * alias.c (ao_ref_from_mem): Use TMR_BASE.
4158 * builtins.c (get_object_alignment): Merge TMR_BASE and
4159 TMR_SYMBOL handling.
4160 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
4161 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
4162 handling. Also allow TARGET_MEM_REF as base address.
4163 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
4164 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
4165 base. Gimplify TMR_INDEX2.
4166 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
4167 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4168 (get_addr_base_and_unit_offset): Likewise.
4169 * tree-eh.c (tree_could_trap_p): Likewise.
4170 * tree-pretty-print.c (dump_generic_node): Likewise.
4171 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
4172 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
4173 base to index2.
4174 (get_address_description): Reconstruct addres description
4175 from merged TMR_BASE and TMR_INDEX2.
4176 (maybe_fold_tmr): Fold propagated addresses.
4177 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
4178 MEM_REF and TARGET_MEM_REF paths.
4179 (indirect_refs_may_alias_p): Likewise.
4180 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
4181 instead of TMR_SYMBOL.
4182 * tree-ssa-operands.c (get_tmr_operands): Simplify.
4183 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
4184 according to changes ...
4185 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
4186 Split TARGET_MEM_REF into two fields plus the base.
4187 * tree.c (mem_ref_offset): Simplify.
4188 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
4189 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
4190 Strip NOPs when folding MEM_REF addresses.
4191 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
4192 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
4193 (fold_gimple_assign): ... not here.
4194
4195 2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
4196
4197 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
4198 * config/mips/mips.c (mips_shift_truncation_mask): New function.
4199 (TARGET_SHIFT_TRUNCATION_MASK): Define.
4200
4201 2010-09-02 Richard Henderson <rth@redhat.com>
4202
4203 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
4204 instead of readelf in the test.
4205 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
4206 in the .debug_frame section for coff targets.
4207 * configure: Rebuild.
4208
4209 2010-09-02 Anatoly Sokolov <aesok@post.ru>
4210
4211 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
4212 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
4213 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4214 (m32c_class_likely_spilled_p): Make static. Change argument type to
4215 reg_class_t. Change result type to bool.
4216
4217 2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4218
4219 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
4220 to convert (double)(long) into a single FRIZ instruction or not
4221 when -ffast-math is used.
4222
4223 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
4224 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
4225 or FRIZ instruction if -ffast-math.
4226 * config/rs6000/rs6000.md (friz): Ditto.
4227
4228 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
4229
4230 2010-09-02 Joseph Myers <joseph@codesourcery.com>
4231
4232 * opth-gen.awk (quote, comma): Remove unused variables.
4233
4234 2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
4235
4236 * arm.c (arm_override_options): Correct fall-back code to use
4237 SUBTARGET_CPU_DEFAULT.
4238
4239 2010-09-02 Julian Brown <julian@codesourcery.com>
4240
4241 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
4242 unspecs.
4243 (vcond<mode>, vcondu<mode>): New expanders.
4244 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
4245 comparisons with zero.
4246 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
4247 * config/arm/constraints.md (Dz): New constraint.
4248
4249 2010-09-02 Anatoly Sokolov <aesok@post.ru>
4250
4251 * target.def (class_likely_spilled_p): New hook.
4252 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
4253 * doc/tm.texi: Regenerate.
4254 * targhooks.c (default_class_likely_spilled_p): New function.
4255 * targhooks.h (default_class_likely_spilled_p): Declare.
4256 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
4257 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
4258 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
4259 Use fixed_reg_set instead of fixed_regs.
4260 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
4261 * calls.c (avoid_likely_spilled_reg): Ditto.
4262 * ira-conflicts.c (ira_build_conflicts): Ditto.
4263 * ira.c (update_equiv_regs): Ditto.
4264 * mode-switching.c (create_pre_exit): Ditto.
4265 * regmove.c (find_matches): Ditto.
4266 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
4267 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
4268 (small_register_class_p): New inline function.
4269 (push_secondary_reload, find_reusable_reload, find_reloads): Use
4270 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
4271
4272 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
4273 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
4274 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4275
4276 2010-09-02 Richard Guenther <rguenther@suse.de>
4277
4278 PR tree-optimization/44937
4279 PR tree-optimization/45412
4280 * ipa-split.c (split_function): Properly remove PHI nodes.
4281
4282 2010-09-02 Joseph Myers <joseph@codesourcery.com>
4283
4284 * opts.h (struct cl_option): Add warn_message field.
4285 (struct cl_decoded_option): Add warn_message field.
4286 * doc/options.texi (Ignore, Warn): Document.
4287 * opt-functions.awk (needs_state_p): Don't consider aliases or
4288 ignored options to need state saved.
4289 * optc-gen.awk: Handle Warn and Ignore.
4290 * opth-gen.awk: Output OPT_SPECIAL_ignore.
4291 * opts-common.c (decode_cmdline_option): Set warn_message field.
4292 Handle ignored options.
4293 (decode_cmdline_options_to_array, generate_option,
4294 generate_option_input_file): Set warn_message field.
4295 (read_cmdline_option): Generate warnings from warn_message field.
4296 Handle ignored options.
4297 * common.opt (Wunreachable-code, fargument-alias,
4298 fargument-noalias, fargument-noalias-global,
4299 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
4300 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
4301 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
4302 ftree-salias): Mark Ignore.
4303 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
4304 -mintel-syntax and -mno-intel-syntax here.
4305 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
4306 using Warn.
4307 * opts.c (common_handle_option): Don't handle options marked as
4308 ignored.
4309 (enable_warning_as_error): Handle ignored options.
4310
4311 2010-09-02 Joseph Myers <joseph@codesourcery.com>
4312
4313 PR driver/44076
4314 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
4315 alias_target fields.
4316 * opt-functions.awk (opt_sanitized_name): Don't handle
4317 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
4318 * optc-gen.awk: Generate alias fields.
4319 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
4320 Don't generate such constants for aliases.
4321 * opts-common.c (generate_canonical_option): New.
4322 (decode_cmdline_option): Handle aliases. Use
4323 generate_canonical_option for known options instead of copying the
4324 input option text.
4325 * doc/options.texi (Alias): Document.
4326 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
4327 fstack-check, specs): Mark as aliases.
4328 * gcc.c (driver_handle_option): Canonicalize -L options to joined
4329 arguments.
4330 (driver_handle_option): Don't handle OPT_specs.
4331 * opts.c (common_handle_option): Don't handle options marked as
4332 aliases.
4333 (enable_warning_as_error): Handle aliases.
4334 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
4335 OPT_Wlarger_than_eq.
4336 * tree-optimize.c (tree_rest_of_compilation): Use
4337 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
4338
4339 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
4340
4341 * config/i386/i386.md (nonmemory_operand): New mode attribute.
4342 (push memory peephole2): Macroize peepholes using SWI mode iterator.
4343 (move immediate to memory peephole2): Macroize peepholes using
4344 SWI124 mode iterator.
4345 (non-pairable NOT peephole2): Macroize peepholes using SWI124
4346 mode iterator.
4347 (simple lea add peephole2): Macroize peepholes using SWI48
4348 mode iterator.
4349 (simple lea mult peephole2): Ditto.
4350 (imul by 3,5,9 to lea peephole2): Ditto.
4351 (mov $-1, reg peephole2): Macroize peepholes using SWI248
4352 mode iterator.
4353 (imul $32bit_imm,mem,reg peephole2): Ditto.
4354 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
4355
4356 2010-09-02 Ian Bolton <ian.bolton@arm.com>
4357
4358 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
4359
4360 2010-09-02 Olivier Hainque <hainque@adacore.com>
4361
4362 PR middle-end/44763
4363 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
4364 (allocno_priority_compare_func): Use it instead of a straight
4365 difference computation over priorities.
4366
4367 2010-09-02 Andi Kleen <ak@linux.intel.com>
4368
4369 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
4370
4371 2010-09-02 Ira Rosen <irar@il.ibm.com>
4372
4373 * tree-vectorizer.h (get_later_stmt): New function.
4374 (vect_analyze_data_ref_dependences): Add argument.
4375 * tree-vect-loop.c (vect_analyze_loop): Update call to
4376 vect_analyze_data_ref_dependences.
4377 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
4378 New function.
4379 (vect_analyze_data_ref_dependence): Add argument for basic block
4380 dependencies. Check dependencies in basic block vectorization.
4381 (vect_analyze_data_ref_dependences): Add argument and update call to
4382 vect_analyze_data_ref_dependences.
4383 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
4384 (vect_bb_vectorizable_with_dependencies): New.
4385 (vect_slp_analyze_bb): Check dependencies in basic block.
4386 (vect_schedule_slp_instance): Insert stores before the last store in
4387 SLP instance.
4388
4389 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
4390
4391 PR target/45476
4392 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
4393 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
4394
4395 2010-09-01 Jakub Jelinek <jakub@redhat.com>
4396
4397 PR middle-end/45458
4398 * bb-reorder.c (add_labels_and_missing_jumps): Treat
4399 bbs ending with throwing insns like blocks ending with a call.
4400 (fix_up_fall_thru_edges): Likewise.
4401
4402 2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
4403
4404 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
4405 (m32c_function_arg_advance): Delete.
4406 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4407 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
4408 comments. Take a const_tree and a bool. Declare.
4409 (m32c_function_arg_advance): Likewise.
4410 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4411
4412 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
4413
4414 PR target/45476
4415 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
4416 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
4417 * config/i386/mingw32.h: ... here.
4418
4419 2010-09-01 Andi Kleen <ak@linux.intel.com>
4420
4421 PR lto/45475
4422 * lto-streamer-in.c (lto_input_ts_target_option): Add.
4423 (lto_input_tree_pointers): Call lto_input_ts_target_option.
4424 * lto-streamer-out (lto_output_ts_target_option): Add.
4425 (lto_output_tree_pointers): Call lto_output_ts_target_option.
4426
4427 2010-09-01 Kai Tietz <kai.tietz@onevision.com>
4428
4429 PR/target 45452
4430 * config/i386/cygwin.h: Change order of specified import libraries.
4431 * config/i386/mingw32.h: Likewise.
4432 * config/i386/t-cygwin: Likewise.
4433 * config/i386/t-mingw32: Likewise.
4434 * config/i386/t-mingw-w32: Likewise.
4435 * config/i386/t-mingw-w64: Likewise.
4436
4437 2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4438
4439 * config/arm/neon-schedgen.ml (core): New type.
4440 (allCores): List of supported cores.
4441 (availability_table): Add supported cores.
4442 (collate_bypasses): Accept core as a parameter.
4443 (worst_case_latencies_and_bypasses): Accept core as a parameter.
4444 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
4445 and coreStr to get tune attribute and prefix for functional units.
4446 (emit_bypasses): Accept core name and use it.
4447 (calculate_per_core_availability_table): New.
4448 (filter_core): New.
4449 (calculate_core_availability_table): New.
4450 (main): Use calculate_core_availablity_table.
4451 * config/arm/cortex-a8-neon.md: Update copyright year.
4452 Regenerated from ml file and merged in.
4453 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
4454 cortex_a8_neon_mrc.
4455
4456 2010-09-01 Ian Bolton <ian.bolton@arm.com>
4457
4458 * Makefile.in (tree-switch-conversion.o): Update dependencies.
4459
4460 2010-09-01 Richard Guenther <rguenther@suse.de>
4461
4462 * alias.c (ao_ref_from_mem): Adjust.
4463 * builtins.c (get_object_alignment): Likewise.
4464 * cfgexpand.c (expand_debug_expr): Likewise.
4465 * gimple.c (get_base_address): Likewise.
4466 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4467 (get_addr_base_and_unit_offset): Likewise. Fix for
4468 both TMR_SYMBOL and TMR_BASE being set.
4469 * tree-eh.c (tree_could_trap_p): Likewise.
4470 * gimplify.c (gimplify_expr): Do not attempt to gimplify
4471 TMR_SYMBOL. Always gimplify TMR_BASE.
4472 * tree-cfg.c (verify_types_in_gimple_reference): Verify
4473 TMR_BASE if there is a TMR_SYMBOL.
4474 * tree-pretty-print.c (dump_generic_node): Adjust.
4475 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
4476 (tree_mem_ref_addr): Likewise.
4477 (create_mem_ref_raw): Likewise.
4478 (move_fixed_address_to_symbol): Likewise.
4479 (create_mem_ref): Likewise.
4480 (dump_mem_address): Likewise.
4481 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
4482 Fix for both TMR_SYMBOL and TMR_BASE being set.
4483 (indirect_refs_may_alias_p): Likewise.
4484 * tree-ssa-operands.c (get_tmr_operands): Adjust.
4485 * tree.def (TARGET_MEM_REF): Adjust documentation.
4486
4487 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
4488
4489 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
4490 Rename from X86_TUNE_ADD_ESP_4.
4491 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
4492 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
4493 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
4494 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
4495 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
4496 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
4497 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
4498 * config/i386/i386.c (initial_ix86_tune_features)
4499 <X86_TUNE_SINGLE_POP>: Invert members.
4500 <X86_TUNE_DOUBLE_POP>: Ditto.
4501 <X86_TUNE_SINGLE_PUSH>: Ditto.
4502 <X86_TUNE_DOUBLE_PUSH>: Ditto.
4503 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
4504 No longer exported.
4505 (push peephole2 patterns): Macroize peepholes using P mode iterator.
4506 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
4507 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
4508 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
4509
4510 2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
4511
4512 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
4513 a volatile LHS if the constructor has only one element.
4514
4515 2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
4516
4517 PR bootstrap/45321
4518 * tree.c (stdarg_p): Make fntype parameter const.
4519 * tree.h (stdarg_p): Likewise.
4520 (function_args_iterator): Remove unused fntype field.
4521 (function_args_iter_init): Do not initialize fntype
4522 field. Make fntype parameter const.
4523
4524 2010-09-01 Richard Guenther <rguenther@suse.de>
4525
4526 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
4527 estimate.
4528 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
4529 (execute_vrp): Compute number of iteration estimates.
4530 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
4531 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
4532 * tree-data-ref.c (estimated_loop_iterations): Adjust.
4533 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4534 Infer loop bounds from undefined behavior based on a new parameter.
4535 (estimate_numbers_of_iterations): Likewise.
4536 (scev_probably_wraps_p): Adjust.
4537 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
4538
4539 2010-09-01 Nick Clifton <nickc@redhat.com>
4540
4541 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
4542 where appropriate.
4543 (xstormy16_legitimate_address_p): Use true and false instead of 1
4544 and 0.
4545 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
4546 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
4547 magic constant 2.
4548 (xstormy16_expand_call): Fix comment at start of function.
4549
4550 2010-09-01 Nick Clifton <nickc@redhat.com>
4551
4552 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
4553 when pushing accumulator register.
4554 (rx_get_stack_layout): Always save call clobbered registers inside
4555 interrupt handlers.
4556 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
4557
4558 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
4559
4560 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
4561 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
4562
4563 * libgcc-std.ver (GCC_4.6.0): Define version.
4564
4565 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
4566
4567 * tree-nested.c (convert_all_function_calls): Iterate until after the
4568 sum of static chains in the nest doesn't change.
4569
4570 2010-08-31 Anatoly Sokolov <aesok@post.ru>
4571
4572 * config/m32c/m32c.c (classes_intersect): Remove.
4573 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
4574 reg_classes_intersect_p instead of classes_intersect.
4575 (class_can_hold_mode): Change arguments type from enum reg_class to
4576 reg_class_t. Use reg_class_contents instead of class_contents.
4577 (m32c_register_move_cost): Make static. Change arguments type from
4578 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
4579 classes_intersect. Use reg_class_contents instead of class_contents.
4580 (m32c_memory_move_cost): Make static. Change arguments type from
4581 enum reg_class to reg_class_t.
4582 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4583 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4584 * config/m32c/m32c-protos.h (m32c_register_move_cost,
4585 m32c_memory_move_cost): Remove.
4586
4587 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
4588
4589 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
4590 (arm_function_arg): Delete.
4591 (arm_needs_doubleword_align): Take a const_tree.
4592 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4593 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
4594 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
4595 (arm_function_arg): Make static. Take a const_tree and a bool.
4596 (arm_function_arg_advance): Likewise.
4597 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4598
4599 2010-08-31 Andi Kleen <ak@linux.intel.com>
4600
4601 * common.opt (fwhopr=): Update for -fwhopr=jobserver
4602 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
4603 * lto-wrapper.c (run_gcc): Add jobserver mode.
4604 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
4605 argument.
4606
4607 2010-08-31 Uros Bizjak <ubizjak@gmail.com>
4608
4609 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
4610 (popsi1): Ditto.
4611 (*popdi1_epilogue): Ditto.
4612 (*popsi1_epilogue): Ditto.
4613 (popsi, popdi peephole2 patterns): Update peepholes for changed
4614 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
4615
4616 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
4617 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
4618
4619 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
4620 (override_options): Do not initialize removed ix86_gen_pop1.
4621 (gen_pop): New static function.
4622 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
4623 (release_scratch_register_on_entry): Ditto.
4624 (ix86_restore_reg_using_pop): Ditto.
4625 (ix86_expand_epilogue): Ditto.
4626
4627 2010-08-31 Jakub Jelinek <jakub@redhat.com>
4628
4629 PR middle-end/45461
4630 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
4631
4632 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
4633
4634 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
4635 semicolons.
4636
4637 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4638
4639 * doc/extend.texi: Fix documentation of the return value of
4640 __builtin_choose_expr.
4641
4642 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
4643
4644 * config/v850/v850-protos.h (function_arg): Delete.
4645 * config/v850/v850.h (FUNCTION_ARG): Delete.
4646 (FUNCTION_ARG_ADVANCE): Move code to...
4647 * config/v850/v850.c (v850_function_arg_advance): ...here.
4648 (v850_function_arg): Make static. Take a const_tree and a bool.
4649 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4650
4651 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
4652
4653 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
4654 these...
4655 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4656 ...and these...
4657 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
4658 ..to here..
4659 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4660 ...and here.
4661 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4662
4663 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
4664
4665 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
4666 Delete.
4667 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4668 * config/rx/rx.c (rx_function_arg_size): Make static.
4669 (rx_function_arg): Likewise.
4670 (rx_function_arg_advance): New function.
4671 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4672
4673 2010-08-31 John Tytgat <John.Tytgat@aaug.net>
4674
4675 * config/arm/arm.c (arm_override_options): Remove superfluous test.
4676 Fix indentation.
4677
4678 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
4679
4680 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
4681 (dwarf2out_decl) <CONST_DECL>: Likewise.
4682
4683 2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
4684
4685 Stack usage support
4686 * common.opt (-fstack-usage): New option.
4687 * doc/invoke.texi (Debugging options): Document it.
4688 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
4689 allocate_dynamic_stack_space.
4690 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
4691 and propagate it to allocate_dynamic_stack_space.
4692 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
4693 * calls.c (initialize_argument_information): Pass TRUE as 4th
4694 argument to allocate_dynamic_stack_space.
4695 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
4696 to 1 when pushing a variable-sized argument onto the stack. Pass
4697 TRUE as 4th argument to allocate_dynamic_stack_space.
4698 Update current_function_pushed_stack_size.
4699 (emit_library_call_value_1): Likewise.
4700 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
4701 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
4702 attempt to find an upper bound. Remove redundant code for the
4703 SETJMP_VIA_SAVE_AREA case.
4704 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
4705 * function.h (struct stack_usage): New structure.
4706 (current_function_static_stack_size): New macro.
4707 (current_function_dynamic_stack_size): Likewise.
4708 (current_function_pushed_stack_size): Likewise.
4709 (current_function_dynamic_alloc_count): Likewise.
4710 (current_function_has_unbounded_dynamic_stack_size): Likewise.
4711 (current_function_allocates_dynamic_stack_space): Likewise.
4712 (struct function): Add new field 'su'.
4713 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
4714 add the value of the dynamic offset to the dynamic stack usage.
4715 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
4716 for variable-sized objects.
4717 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
4718 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
4719 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
4720 BUILT_IN_ALLOCA for variable-sized objects.
4721 * output.h (output_stack_usage): Declare.
4722 * toplev.c (stack_usage_file): New file pointer.
4723 (output_stack_usage): New function.
4724 (open_auxiliary_file): Likewise.
4725 (lang_dependent_init): Open file if flag_stack_usage is set.
4726 (finalize): Close file if stack_usage_file is not null.
4727 * tree.h (ALLOCA_FOR_VAR_P): New macro.
4728 * config/alpha/alpha.c (compute_frame_size): New function.
4729 (alpha_expand_prologue): Use it.
4730 (alpha_start_function): Likewise.
4731 (alpha_expand_epilogue): Likewise. Set stack usage info.
4732 * config/i386/i386.c (ix86_expand_prologue): Likewise.
4733 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4734 * config/mips/mips.c (mips_expand_prologue): Likewise.
4735 * config/pa/pa.c (hppa_expand_prologue): Likewise.
4736 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4737 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4738
4739 2010-08-30 Zdenek Dvorak <ook@ucw.cz>
4740
4741 PR tree-optimization/45427
4742 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
4743 Handle the case that the exit is never taken correctly.
4744 (number_of_iterations_ne): Pass exit_must_be_taken to
4745 number_of_iterations_ne_max.
4746
4747 2010-08-30 Catherine Moore <clm@codesourcery.com>
4748
4749 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
4750 Infer -mdspr2 for the the 74K.
4751
4752 2010-08-30 Jakub Jelinek <jakub@redhat.com>
4753
4754 PR debug/45419
4755 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
4756
4757 PR middle-end/45423
4758 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
4759 and TRUTH_{AND,OR,XOR}_EXPR.
4760 * c-parser.c (c_parser_omp_atomic): Handle boolean
4761 {PRE,POST}_{INC,DEC}REMENT.
4762
4763 2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
4764
4765 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
4766 (function_arg): Delete.
4767 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4768 (FUNCTION_INCOMING_ARG): Delete.
4769 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
4770 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
4771 and a bool.
4772 (function_arg): Rename to...
4773 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
4774 a bool.
4775 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
4776 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4777 (TARGET_FUNCTION_INCOMING_ARG): Define.
4778
4779 2010-08-30 Richard Guenther <rguenther@suse.de>
4780
4781 PR tree-optimization/21602
4782 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
4783 using points-to information.
4784
4785 2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
4786
4787 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
4788
4789 2010-08-30 Richard Guenther <rguenther@suse.de>
4790
4791 PR tree-optimization/45449
4792 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
4793 variables.
4794
4795 2010-08-30 Joseph Myers <joseph@codesourcery.com>
4796
4797 * opts.h (CL_ERR_NEGATIVE): Define.
4798 * opts.c (unknown_option_callback): Don't postpone warnings for
4799 options marked with CL_ERR_NEGATIVE.
4800 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
4801 for negative versions of CL_REJECT_NEGATIVE options.
4802
4803 2010-08-30 Uros Bizjak <ubizjak@gmail.com>
4804
4805 * config/i386/i386.md (zero_extendsidi2_1): Rename from
4806 zero_extendsidi2_32.
4807 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
4808 using SWI12 mode iterator.
4809 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
4810 to define_insn_and_split pattern.
4811 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
4812 using SWI24 mode iterator.
4813 (*zero_extendqi<mode>2_and): Macroize insn from
4814 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
4815 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
4816 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
4817 SWI24 mode iterator.
4818 (*zero_extendqi<mode>2_movzbl): Ditto from
4819 *zero_extendqi{hi,si}2_movzbl.
4820 (extendsidi2_1): Rename from extendsidi2_32.
4821 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
4822 SWI12 mode iterator.
4823
4824 2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
4825
4826 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
4827 general purpose registers.
4828 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
4829 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
4830 with general purpose registers and memory operands. Add associated
4831 CCImode post-reload splitter.
4832 * config/ia64/div.md: Change BImode to CCImode throughout.
4833
4834 2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
4835
4836 * config/ia64/ia64.md (cstorebi4): Fix thinko.
4837
4838 2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
4839
4840 * config/picochip/picochip.c (reorder_var_tracking_notes): This
4841 function was dropping debug insns which caused PR45299.
4842
4843 2010-08-28 Uros Bizjak <ubizjak@gmail.com>
4844
4845 * config/i386/sse.md (extsuffix): New code attribute.
4846 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
4847 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
4848 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
4849 and sse4_1_zero_extendv4qiv4si2.
4850 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
4851 and sse4_1_zero_extendv2qiv2di2.
4852 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
4853 and sse4_1_zero_extendv4hiv4si2.
4854 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
4855 and sse4_1_zero_extendv2hiv2di2.
4856 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
4857 and sse4_1_zero_extendv2siv2di2
4858
4859 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
4860 using any_extend code iterator.
4861 (*avx_<s>mulv8hi3_highpart): Macroize insn from
4862 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
4863 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
4864
4865 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
4866 gen_sse4_1_sign_extend* functions.
4867 (struct builtin_description bdesc_args): Ditto.
4868
4869 2010-08-27 Xinliang David Li <davidxl@google.com>
4870
4871 PR/45422
4872 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
4873 (iv_ca_set_no_cp): Update used inv expr count.
4874 (iv_ca_set_cp): Ditto.
4875 (iv_ca_new): Initialize new member.
4876 (iv_ca_free): Free memory.
4877
4878 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
4879
4880 * config/sh/sh-protos.h (sh_function_arg): Delete.
4881 (sh_function_arg_advance): Delete.
4882 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4883 (PASS_IN_REG_P): Eliminate cast.
4884 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
4885 const_tree and a bool.
4886 (sh_function_arg): Likewise.
4887 (sh_output_mi_thunk): Call sh_function_arg_advance) and
4888 sh_function_arg.
4889 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4890
4891 2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
4892 Kaz Kojima <kkojima@gcc.gnu.org>
4893
4894 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
4895 when possible.
4896 (sh_expand_epilogue): Likewise.
4897 * config/sh/sh.md (movml_push_banked): New insn.
4898 (movml_pop_banked): Likewise.
4899
4900 2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
4901
4902 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
4903 gen_regexp_oneof, gen_regexp_sequence): Use the string found
4904 in vector element 0 rather than the original string when there's
4905 only one element.
4906 (gen_regexp): Remove extra semicolon.
4907
4908 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
4909 thumb2_movsf_vfp): Set attribute "insn".
4910 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
4911 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
4912 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
4913 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
4914 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
4915 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
4916 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
4917 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
4918 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
4919 if_not_arith, if_arith_not, cond_move_not): Likewise.
4920
4921 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4922
4923 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
4924 New declaration.
4925 (rs6000_allocate_stack_temp): Ditto.
4926 (rs6000_expand_convert_si_to_sfdf): Ditto.
4927
4928 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
4929 line. Update the options set if power6 or power7 server/embedded
4930 type options are used. If we give a warning for no vsx under
4931 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
4932 (rs6000_allocate_stack_temp): New function to allocate a stack
4933 tempoary and adjust the address so it meets either REG+OFFSET or
4934 REG+REG addressing requirements.
4935 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
4936 that they can be used with the LFIWAX/LFIWZX instrucitons.
4937 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
4938 converting signed/unsigned SImode to either SFmode/DFmode.
4939
4940 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
4941 whether certain instructions can be generated.
4942 (TARGET_FCTIDZ): Ditto.
4943 (TARGET_STFIWX): Ditto.
4944 (TARGET_LFIWAX): Ditto.
4945 (TARGET_LFIWZX): Ditto.
4946 (TARGET_FCFIDS): Ditto.
4947 (TARGET_FCFIDU): Ditto.
4948 (TARGET_FCFIDUS): Ditto.
4949 (TARGET_FCTIDUZ): Ditto.
4950 (TARGET_FCTIWUZ): Ditto.
4951
4952 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
4953 (UNSPEC_FCTID): Ditto.
4954 (UNSPEC_LFIWAX): Ditto.
4955 (UNSPEC_LFIWZX): Ditto.
4956 (UNSPEC_FCTIWUZ): Ditto.
4957 (rreg): Use correct constraints.
4958 (SI_CONVERT_FP): New mode attribute for floating point conversion
4959 tests.
4960 (E500_CONVERT): Ditto.
4961 (lfiwax): New insns for converting from integer to floating point
4962 utilizing newer instructions. Attempt to optimize conversions
4963 that come from memory so that we don't load the value into a GPR,
4964 spill it to the stack and reload it into a FPR.
4965 (floatsi<mode>2_lfiwax): Ditto.
4966 (floatsi<mode>2_lfiwax_mem): Ditto.
4967 (floatsi<mode>2_lfiwax_mem2): Ditto.
4968 (lfiwzx): Ditto.
4969 (floatunssi<mode>2_lfiwzx): Ditto.
4970 (floatunssi<mode>2_lfiwzx_mem): Ditto.
4971 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4972 (floatdidf2_mem): Ditto.
4973 (floatunsdidf2_fcfidu): Ditto.
4974 (floatunsdidf2_mem): Ditto.
4975 (floatunsdisf2): Ditto.
4976 (floatunsdisf2_fcfidus): Ditto.
4977 (floatunsdisf2_mem): Ditto.
4978 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
4979 Use FCFID on 32-bit hosts that support it.
4980 (floatsidf2_internal): Ditto.
4981 (floatunssisf2): Ditto.
4982 (floatunssidf2): Ditto.
4983 (floatunssidf2_internal): Ditto.
4984 (floatsisf2): Ditto.
4985 (floatdidf2): Ditto.
4986 (floatdidf2_fpr): Ditto.
4987 (floatunsdidf2): Ditto.
4988 (floatdisf2): Ditto.
4989 (floatdisf2_fcfids): Ditto.
4990 (floatdisf2_internal1): Ditto.
4991 (fixuns_truncsfsi2): Delete, merge into common pattern for both
4992 SF/DF. Add power7 support.
4993 (fix_truncsfsi2): Ditto.
4994 (fixuns_truncdfsi2): Ditto.
4995 (fixuns_truncdfdi2): Ditto.
4996 (fix_truncdfsi2): Ditto.
4997 (fix_truncdfsi2_internal): Ditto.
4998 (fix_truncdfsi2_internal_gfxopt): Ditto.
4999 (fix_truncdfsi2_mfpgpr): Ditto.
5000 (fctiwz): Ditto.
5001 (btruncdf2): Ditto.
5002 (btruncdf2_fpr): Ditto.
5003 (btructsf2): Ditto.
5004 (ceildf2): Ditto.
5005 (ceildf2_fpr): Ditto.
5006 (ceilsf2): Ditto.
5007 (floordf2): Ditto.
5008 (floordf2_fpr): Ditto.
5009 (floorsf2): Ditto.
5010 (rounddf2): Ditto.
5011 (rounddf2_fpr): Ditto.
5012 (roundsf2): Ditto.
5013 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
5014 (fix_trunc<mode>di2): Ditto.
5015 (fixuns_trunc<mode>si2): Ditto.
5016 (fixuns_trunc<mode>di2): Ditto.
5017 (fctiwz_<mode>): Ditto.
5018 (btrunc<mode>2): Ditto.
5019 (btrunc<mode>2_fpr): Ditto.
5020 (ceil<mode>2): Ditto.
5021 (ceil<mode>2_fpr): Ditto.
5022 (floor<mode>2): Ditto.
5023 (float<mode>2_fpr): Ditto.
5024 (round<mode>2): Ditto.
5025 (round<mode>2_fpr): Ditto.
5026 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
5027 (fixuns_trunc<mode>si2_stfiwx): Ditto.
5028 (fix_truncdfsi2_internal): Ditto.
5029 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
5030 converted value on stack, loaded into GPR, and then stored into
5031 the final destination.
5032 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
5033 FCTIDZ.
5034 (lrint<mode>di2): New insn, provide the lrint builtin functions.
5035 (ftruncdf2): Delete, unused.
5036 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
5037
5038 * config/rs6000/vsx.md (toplevel): Update copyright year.
5039 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
5040 (VSr3): Ditto.
5041
5042 2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
5043 Jeremie Salvucci <jeremie.salvucci@free.fr>
5044
5045 * gengtype.c (output_type_enum): Test the right union member.
5046
5047 2010-08-27 Uros Bizjak <ubizjak@gmail.com>
5048
5049 PR target/41484
5050 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
5051 operands for operand 1.
5052 (sse4_1_extendv4qiv4si2): Ditto.
5053 (sse4_1_extendv2qiv2di2): Ditto.
5054 (sse4_1_extendv4hiv4si2): Ditto.
5055 (sse4_1_extendv2hiv2di2): Ditto.
5056 (sse4_1_extendv2siv2di2): Ditto.
5057 (sse4_1_zero_extendv8qiv8hi2): Ditto.
5058 (sse4_1_zero_extendv4qiv4si2): Ditto.
5059 (sse4_1_zero_extendv2qiv2di2): Ditto.
5060 (sse4_1_zero_extendv4hiv4si2): Ditto.
5061 (sse4_1_zero_extendv2hiv2di2): Ditto.
5062 (sse4_1_zero_extendv2siv2di2): Ditto.
5063 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
5064 (*sse4_1_extendv4qiv4si2): Ditto.
5065 (*sse4_1_extendv2qiv2di2): Ditto.
5066 (*sse4_1_extendv4hiv4si2): Ditto.
5067 (*sse4_1_extendv2hiv2di2): Ditto.
5068 (*sse4_1_extendv2siv2di2): Ditto.
5069 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
5070 (*sse4_1_zero_extendv4qiv4si2): Ditto.
5071 (*sse4_1_zero_extendv2qiv2di2): Ditto.
5072 (*sse4_1_zero_extendv4hiv4si2): Ditto.
5073 (*sse4_1_zero_extendv2hiv2di2): Ditto.
5074 (*sse4_1_zero_extendv2siv2di2): Ditto.
5075
5076 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
5077
5078 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
5079 (mips_function_arg): Delete.
5080 (mips_function_arg_boundary): Take a const_tree.
5081 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
5082 (mips_arg_info): Likewise.
5083 (mips_setup_incoming_varargs): Call mips_function_arg_advance
5084 instead of FUNCTION_ARG_ADVANCE.
5085 (mips_function_arg_advance): Adjust prototype. Make static.
5086 (mips_function_arg): Likewise.
5087 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5088 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
5089
5090 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
5091
5092 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5093 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
5094 (function_arg): Delete.
5095 (function_arg_boundary): Take a const_tree.
5096 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
5097 (rs6000_spe_function_arg): Likewise.
5098 (rs6000_parm_start): Likewise.
5099 (rs6000_arg_size): Likewise.
5100 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
5101 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
5102 (rs6000_mixed_function_arg): Likewise.
5103 (function_arg): Rename to...
5104 (rs6000_function_arg): ...this.
5105 (function_arg_advance): Rename to...
5106 (rs6000_function_arg_advance_1): ...this
5107 (rs6000_function_arg_advance): New function. Call it.
5108 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
5109 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
5110 (rs6000_function_value): Likewise.
5111 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5112
5113 2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5114
5115 * config/arm/arm.md (enabled): Test the value of arch_enabled
5116 rather than just using it.
5117
5118 2010-08-27 Olivier Hainque <hainque@adacore.com>
5119 Eric Botcazou <ebotcazou@adacore.com>
5120
5121 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
5122 cover all the possible offsets from this base.
5123 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
5124
5125 2010-08-26 Jakub Jelinek <jakub@redhat.com>
5126
5127 PR tree-optimization/44485
5128 * calls.c (flags_from_decl_or_type): For const or pure
5129 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
5130 together with ECF_CONST resp. ECF_PURE.
5131 * builtins.c (expand_builtin): Use flags_from_decl_or_type
5132 instead of querying flags directly.
5133 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
5134 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
5135
5136 2010-08-26 Richard Guenther <rguenther@suse.de>
5137
5138 PR tree-optimization/45255
5139 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
5140 and externals are also invariant.
5141
5142 2010-08-25 Jakub Jelinek <jakub@redhat.com>
5143
5144 PR rtl-optimization/44858
5145 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
5146 newi2pat, make sure they don't affect newpat.
5147
5148 PR rtl-optimization/45400
5149 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
5150 SUBREG_REG if both modes are of MODE_INT class.
5151
5152 2010-08-25 Julian Brown <julian@codesourcery.com>
5153
5154 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
5155 * config/arm/arm.md (generic_sched): No for Cortex-A5.
5156 (generic_vfp): Likewise.
5157 (cortex-a5.md): Include.
5158 * config/arm/cortex-a5.md: New.
5159
5160 2010-08-25 Richard Guenther <rguenther@suse.de>
5161
5162 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
5163 * gimple.c (gimple_get_alias_set): Remove special handling
5164 for pointers.
5165
5166 2010-08-25 Bernd Schmidt <bernds@codesourcery.com>
5167
5168 PR middle-end/45355
5169 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
5170 dead_or_set_p when computing i0_feeds_i2_n.
5171
5172 * combine.c (find_split_point): Undo canonicalization of multiply-add
5173 to (minus x (mult)) when it seems likely that this will increase the
5174 chances of a split.
5175
5176 2010-08-25 Richard Guenther <rguenther@suse.de>
5177
5178 PR lto/44562
5179 * lto-streamer.c (lto_record_common_node): Do not mess with
5180 TYPE_CANONICAL when not in lto.
5181 * gimple.c (gimple_register_type): Likewise.
5182
5183 2010-08-25 Richard Guenther <rguenther@suse.de>
5184
5185 PR tree-optimization/45316
5186 * tree-ssa-pre.c (eliminate): Properly clean EH info.
5187
5188 2010-08-25 Richard Guenther <rguenther@suse.de>
5189
5190 PR tree-optimization/45393
5191 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
5192 and clean EH info. Avoid SSA update.
5193 (execute_cse_sincos): Cleanup the CFG if it has changed.
5194
5195 2010-08-25 Richard Guenther <rguenther@suse.de>
5196
5197 PR middle-end/45379
5198 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
5199 TARGET_MEM_REF in alignment computation.
5200
5201 2010-08-25 Jakub Jelinek <jakub@redhat.com>
5202
5203 PR tree-optimization/45059
5204 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
5205 type conversions from newop{1,2}. Assert t is a comparison and
5206 newop{1,2} after the stripping are gimple vals.
5207
5208 2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
5209
5210 * config/arm/iterators.md (VU, SE, V_widen_l): New.
5211 (V_unpack, US): New.
5212 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
5213 (vec_unpack<US>_lo_<mode>): Likewise.
5214 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
5215 (neon_vec_unpack<US>_lo_<mode>): Likewise.
5216 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
5217 (vec_widen_<US>mult_hi_<mode>): Likewise.
5218 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
5219 (neon_vec_<US>mult_hi_<mode>"): Likewise.
5220 (neon_unpack<US>_<mode>): Widening move intermediate step for
5221 vectorizing without -mvectorize-with-neon-quad.
5222 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
5223 for vectorizing without -mvectorize-with-neon-quad.
5224 * config/arm/predicates.md (vect_par_constant_high): Check for
5225 high-half lanes of a vector.
5226 (vect_par_constant_low): Check for low-half lanes of a vector.
5227
5228 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
5229
5230 * tree-if-conv.c (struct ifc_dr): New.
5231 (IFC_DR): New.
5232 (DR_WRITTEN_AT_LEAST_ONCE): New.
5233 (DR_RW_UNCONDITIONALLY): New.
5234 (memref_read_or_written_unconditionally): Use the cached values
5235 when possible.
5236 (write_memref_written_at_least_once): Same.
5237 (if_convertible_loop_p): Initialize and free DR->aux fields.
5238
5239 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
5240
5241 * gimple.c (gimple_could_trap_p_1): Not static anymore.
5242 Pass an extra bool parameter include_mem.
5243 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
5244 (gimple_assign_rhs_could_trap_p): Same.
5245 * gimple.h (gimple_could_trap_p_1): Declared.
5246 * tree-data-ref.h (same_data_refs_base_objects): New.
5247 (same_data_refs): New.
5248 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
5249 (write_memrefs_written_at_least_once): New.
5250 (ifcvt_memrefs_wont_trap): New.
5251 (operations_could_trap): New.
5252 (ifcvt_could_trap_p): New.
5253 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
5254 Gets a vector of data refs.
5255 (if_convertible_stmt_p): Same.
5256 (if_convertible_loop_p_1): New.
5257 (if_convertible_loop_p): Call if_convertible_loop_p_1.
5258
5259 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
5260
5261 * common.opt (ftree-loop-if-convert-stores): New flag.
5262 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
5263 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
5264 the created statement before GSI.
5265 (if_convertible_phi_p): Allow virtual phi nodes when
5266 flag_loop_if_convert_stores is set.
5267 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
5268 Do not handle types that do not match is_gimple_reg_type.
5269 Remove loop and bb parameters. Call gimple_could_trap_p instead of
5270 when flag_loop_if_convert_stores is set, as LHS can contain
5271 memory refs.
5272 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
5273 to if_convertible_gimple_assign_stmt_p.
5274 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
5275 (replace_phi_with_cond_gimple_assign_stmt): Renamed
5276 predicate_scalar_phi. Do not handle virtual phi nodes.
5277 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
5278 Call predicate_scalar_phi.
5279 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
5280 just after the labels for flag_loop_if_convert_stores, otherwise
5281 insert the predicate in the end of the BB.
5282 (predicate_mem_writes): New.
5283 (combine_blocks): Call predicate_all_scalar_phis. When
5284 flag_loop_if_convert_stores is set, call predicate_mem_writes.
5285 (tree_if_conversion): Call mark_sym_for_renaming when
5286 flag_loop_if_convert_stores is set.
5287 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
5288 flag_loop_if_convert_stores is set.
5289
5290 2010-08-24 Anatoly Sokolov <aesok@post.ru>
5291
5292 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
5293 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
5294 (pa_function_value): Make static.
5295 (override_options): Rename to...
5296 (pa_option_override): ...this. Make static.
5297 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
5298 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
5299 TARGET_OPTION_OVERRIDE): Define.
5300 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
5301 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
5302 Remove.
5303 * config/pa/pa-protos.h (override_options): Remove.
5304
5305 2010-08-24 Richard Guenther <rguenther@suse.de>
5306
5307 PR middle-end/45379
5308 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
5309 if addr->index is NULL or zero.
5310 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
5311 TARGET_MEM_REF more properly.
5312 (indirect_ref_may_alias_decl_p): Likewise.
5313 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
5314 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
5315
5316 2010-08-23 Anatoly Sokolov <aesok@post.ru>
5317
5318 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
5319 (m32c_override_options): Rename to...
5320 (m32c_option_override): ...this. Make static.
5321 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
5322 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
5323 Remove.
5324 * config/m32c/m32c-protos.h (m32c_override_options,
5325 m32c_function_value_regno_p): Remove.
5326
5327 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
5328
5329 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
5330 Fix a typo in a previous commit.
5331
5332 2010-08-23 Kai Tietz <kai.tietz@onevision.com>
5333
5334 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
5335 Pre-initialize innerloop_iters to one.
5336
5337 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
5338
5339 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
5340 existing static function global.
5341
5342 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
5343 is changed to global.
5344
5345 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
5346 may_be_nonaddressable_p on base, and don't collect this reference
5347 if the address of the base could not be taken.
5348
5349 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5350
5351 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
5352 enable the compiler to autovectorize mathmetical functions for
5353 power7 using the Mathematical Acceleration Subsystem library.
5354
5355 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
5356 handle which vector math library we have.
5357 (rs6000_override_options): Add -mveclibabi=mass support.
5358 (rs6000_builtin_vectorized_libmass): New function to handle auto
5359 vectorizing math functions that are in the MASS library.
5360 (rs6000_builtin_vectorized_function): Call it.
5361
5362 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5363 -mveclibabi=mass.
5364
5365 2010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5366
5367 PR boehm-gc/34544
5368 * gthr-posix.h (__gthread_active_init): Delete.
5369 (__gthread_active_p): Do activity check here.
5370 Don't include errno.h on hppa-hpux. Update comment.
5371 * gthr-posix95.h (__gthread_active_init): Delete.
5372 (__gthread_active_p): Do activity check here.
5373 Don't include errno.h on hppa-hpux. Update comment.
5374 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
5375 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
5376 add -lpthread when -mt or -pthread is specified.
5377 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
5378 (LINK_GCC_C_SEQUENCE_SPEC): Define.
5379 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
5380 (stublib.c, pthread_default_stacksize_np-stub.o,
5381 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
5382 $(T)libgcc_stub.a): Add methods.
5383 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
5384 (stublib.c, pthread_default_stacksize_np-stub.o,
5385 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
5386 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
5387 pthread_mutex_unlock): New stubs.
5388
5389 2010-08-22 Joseph Myers <joseph@codesourcery.com>
5390
5391 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
5392 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
5393 options.
5394 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
5395 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
5396 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
5397 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
5398 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
5399 "-l".
5400 * cppspec.c: Include opts.h.
5401 (lang_specific_driver): Use cl_decoded_option structures.
5402 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
5403 * doc/tm.texi: Regenerate.
5404 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
5405 (driver_handle_option): Allow driver options needing no special
5406 processing.
5407 (process_command): Decode options before call to
5408 lang_specific_driver. Pass decoded options to
5409 lang_specific_driver.
5410 * gcc.h (lang_specific_driver): Update prototype.
5411 * gccspec.c: Include opts.h.
5412 (lang_specific_driver): Use cl_decoded_option structures.
5413 * opts-common.c (option_ok_for_language, generate_option,
5414 generate_option_input_file): New.
5415 (decode_cmdline_option): Use option_ok_for_language.
5416 (decode_cmdline_options_to_array): Use generate_option_input_file.
5417 (handle_generated_option): Use generate_option.
5418 * opts.h (generate_option, generate_option_input_file): Declare.
5419
5420 2010-08-22 Anatoly Sokolov <aesok@post.ru>
5421
5422 * config/mips/mips.c (mips_override_options): Rename to...
5423 (mips_option_override): ...this. Make static.
5424 (TARGET_OPTION_OVERRIDE): Define.
5425 (mips_in_small_data_p): Update comment.
5426 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
5427 (FIXED_REGISTERS): Update comment.
5428 * config/mips/mips-protos.h (mips_override_options): Remove.
5429
5430 2010-08-21 Olivier Hainque <hainque@adacore.com>
5431
5432 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
5433
5434 2010-08-21 Olivier Hainque <hainque@adacore.com>
5435
5436 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
5437 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
5438
5439 2010-08-20 Jan Hubicka <jh@suse.cz>
5440
5441 * tree-pass.h (pass_ipa_cdtor_merge): New function.
5442 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
5443 heap allocated.
5444 (record_cdtor_fn): Move to ipa.c; do not test for
5445 have_ctors_dtors.
5446 (build_cdtor): Move to ipa.c; add code avoiding construction
5447 when target have ctors/dtors and there is only one ctor/dtor at given
5448 priority.
5449 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
5450 sort; reverse order of constructors.
5451 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
5452 (cgraph_finalize_function): Do not call record_cdtor_fn.
5453 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
5454 (cgraph_build_static_cdtor): Move to ipa.c.
5455 * ipa.c: Include target.h and tree-iterator.h.
5456 (cgraph_build_static_cdtor, static_ctors, static_dtors,
5457 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
5458 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
5459 pass_ipa_cdtor_merge): New.
5460 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
5461 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
5462 bounds access.
5463
5464 2010-08-20 Jan Hubicka <jh@suse.cz>
5465
5466 PR c++/45307
5467 PR c++/17736
5468 * cgraph.h (cgraph_only_called_directly_p,
5469 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
5470 static cdtors.
5471 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
5472 are not needed.
5473 (cgraph_finalize_function): Static cdtors are reachable.
5474 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
5475
5476 2010-08-20 Jan Hubicka <jh@suse.cz>
5477
5478 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
5479 flag_wpa.
5480 * lto-streamer-out.c (lto_output): Likewise.
5481 * passes.c (ipa_write_optimization_summaries): Initialize statement
5482 uids.
5483
5484 2010-08-20 Olivier Hainque <hainque@adacore.com>
5485
5486 * tree.h (alias_diag_flags): New enum.
5487 (alias_pair): Add an 'emitted_diags' field.
5488 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
5489 (assemble_alias): Initialize emitted_diags of new pairs.
5490
5491 2010-08-20 Eric Botcazou <ebotcazou@adacore.com>
5492
5493 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5494 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5495 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5496 (STACK_CHECK_PROTECT): Define.
5497 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
5498 (output_probe_stack_range): Likewise.
5499 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
5500 builtin stack checking is enabled.
5501 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
5502 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
5503 (probe_stack_range): New insn.
5504
5505 2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
5506
5507 PR target/45336
5508 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
5509 short first.
5510
5511 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
5512 char first.
5513
5514 2010-08-20 Jakub Jelinek <jakub@redhat.com>
5515
5516 PR target/45336
5517 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
5518 to cover zero extension into 64-bit register.
5519 (*sse2_pextrw): Likewise.
5520 (*sse4_1_pextrd_zext): New insn.
5521
5522 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
5523
5524 revert r163410, partially revert r163267.
5525 * config/rs6000/darwin.h (LIB_SPEC): Remove.
5526 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
5527 Darwin versions.
5528
5529 2010-08-20 Jakub Jelinek <jakub@redhat.com>
5530
5531 PR middle-end/44974
5532 * builtins.c (expand_builtin): Don't optimize away
5533 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
5534
5535 2010-08-20 Uros Bizjak <ubizjak@gmail.com>
5536
5537 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
5538 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
5539 alternative 1 of operand 2.
5540
5541 2010-08-20 Jakub Jelinek <jakub@redhat.com>
5542 Paolo Bonzini <bonzini@gnu.org>
5543
5544 * simplify-rtx.c (simplify_unary_operation_1): Optimize
5545 (sign_extend (zero_extend (...)) and
5546 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
5547
5548 2010-08-20 Jakub Jelinek <jakub@redhat.com>
5549
5550 PR rtl-optimization/45353
5551 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
5552 after bb_note is a BARRIER.
5553
5554 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
5555
5556 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
5557 linking libgcc.a.
5558
5559 2010-08-20 Jakub Jelinek <jakub@redhat.com>
5560 Michael Matz <matz@suse.de>
5561
5562 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
5563
5564 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
5565
5566 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
5567 (ggc_mark_roots): ...here.
5568
5569 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
5570
5571 * vec.h (FOR_EACH_VEC_ELT): Define.
5572 * c-decl.c: Use it.
5573 * cfgloop.c: Likewise.
5574 * cfgloopmanip.c: Likewise.
5575 * cgraph.c: Likewise.
5576 * cgraphunit.c: Likewise.
5577 * combine.c: Likewise.
5578 * config/bfin/bfin.c: Likewise.
5579 * config/mips/mips.c: Likewise.
5580 * config/rs6000/rs6000.c: Likewise.
5581 * dbxout.c: Likewise.
5582 * df-scan.c: Likewise.
5583 * dominance.c: Likewise.
5584 * dse.c: Likewise.
5585 * dwarf2out.c: Likewise.
5586 * except.c: Likewise.
5587 * expr.c: Likewise.
5588 * function.c: Likewise.
5589 * gcse.c: Likewise.
5590 * genattr.c: Likewise.
5591 * ggc-common.c: Likewise.
5592 * gimplify.c: Likewise.
5593 * graphite-blocking.c: Likewise.
5594 * graphite-clast-to-gimple.c: Likewise.
5595 * graphite-dependences.c: Likewise.
5596 * graphite-interchange.c: Likewise.
5597 * graphite-poly.c: Likewise.
5598 * graphite-scop-detection.c: Likewise.
5599 * graphite-sese-to-poly.c: Likewise.
5600 * graphite.c: Likewise.
5601 * haifa-sched.c: Likewise.
5602 * ifcvt.c: Likewise.
5603 * implicit-zee.c: Likewise.
5604 * ipa-prop.c: Likewise.
5605 * ipa-struct-reorg.c: Likewise.
5606 * ipa.c: Likewise.
5607 * ira-build.c: Likewise.
5608 * ira-color.c: Likewise.
5609 * ira-emit.c: Likewise.
5610 * lambda-code.c: Likewise.
5611 * loop-invariant.c: Likewise.
5612 * loop-unroll.c: Likewise.
5613 * lower-subreg.c: Likewise.
5614 * lto-cgraph.c: Likewise.
5615 * lto-opts.c: Likewise.
5616 * lto-streamer-in.c: Likewise.
5617 * lto-streamer-out.c: Likewise.
5618 * lto-streamer.c: Likewise.
5619 * lto-symtab.c: Likewise.
5620 * matrix-reorg.c: Likewise.
5621 * opts.c: Likewise.
5622 * predict.c: Likewise.
5623 * print-tree.c: Likewise.
5624 * sdbout.c: Likewise.
5625 * sel-sched-dump.c: Likewise.
5626 * sel-sched-ir.c: Likewise.
5627 * sel-sched.c: Likewise.
5628 * sese.c: Likewise.
5629 * stor-layout.c: Likewise.
5630 * tree-cfg.c: Likewise.
5631 * tree-cfgcleanup.c: Likewise.
5632 * tree-chrec.c: Likewise.
5633 * tree-data-ref.c: Likewise.
5634 * tree-emutls.c: Likewise.
5635 * tree-inline.c: Likewise.
5636 * tree-into-ssa.c: Likewise.
5637 * tree-loop-distribution.c: Likewise.
5638 * tree-loop-linear.c: Likewise.
5639 * tree-mudflap.c: Likewise.
5640 * tree-outof-ssa.c: Likewise.
5641 * tree-parloops.c: Likewise.
5642 * tree-predcom.c: Likewise.
5643 * tree-pretty-print.c: Likewise.
5644 * tree-scalar-evolution.c: Likewise.
5645 * tree-ssa-live.c: Likewise.
5646 * tree-ssa-loop-im.c: Likewise.
5647 * tree-ssa-loop-ivcanon.c: Likewise.
5648 * tree-ssa-loop-ivopts.c: Likewise.
5649 * tree-ssa-loop-manip.c: Likewise.
5650 * tree-ssa-loop-niter.c: Likewise.
5651 * tree-ssa-loop-prefetch.c: Likewise.
5652 * tree-ssa-phiprop.c: Likewise.
5653 * tree-ssa-pre.c: Likewise.
5654 * tree-ssa-reassoc.c: Likewise.
5655 * tree-ssa-sccvn.c: Likewise.
5656 * tree-ssa-structalias.c: Likewise.
5657 * tree-ssa.c: Likewise.
5658 * tree-vect-data-refs.c: Likewise.
5659 * tree-vect-loop-manip.c: Likewise.
5660 * tree-vect-loop.c: Likewise.
5661 * tree-vect-patterns.c: Likewise.
5662 * tree-vect-slp.c: Likewise.
5663 * tree-vect-stmts.c: Likewise.
5664 * tree-vrp.c: Likewise.
5665 * tree.c: Likewise.
5666 * value-prof.c: Likewise.
5667 * var-tracking.c: Likewise.
5668 * varasm.c: Likewise.
5669 * vmsdbgout.c: Likewise.
5670
5671 2010-08-19 Nathan Sidwell <nathan@codesourcery.com>
5672 Richard Guenther <richard.guenther@gmail.com>
5673
5674 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
5675 copy the src value and return a copy.
5676 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
5677 (C++ Volatiles): Adjust to describe C++ semantics only.
5678
5679 2010-08-20 Joseph Myers <joseph@codesourcery.com>
5680
5681 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
5682 be zero or nonzero.
5683 * doc/tm.texi: Regenerate.
5684 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
5685 * df-scan.c (df_get_exit_block_use_set), reginfo.c
5686 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
5687 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
5688 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
5689 to 1.
5690
5691 2010-08-20 Olivier Hainque <hainque@adacore.com>
5692
5693 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
5694 an extra nop past a sibling call at the very end.
5695
5696 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
5697
5698 PR bootstrap/45350
5699 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
5700 a comment.
5701
5702 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
5703
5704 * target.def (function_arg, function_incoming_arg): Remove const
5705 qualifier on CUMULATIVE_ARGS parameter.
5706 * targhooks.h (default_function_arg, default_function_incoming_arg):
5707 Likewise.
5708 * targhooks.c (default_function_arg, default_function_incoming_arg):
5709 Likewise.
5710 * config/i386/i386.c (ix86_function_arg): Likewise.
5711
5712 2010-08-19 Jakub Jelinek <jakub@redhat.com>
5713
5714 PR target/45336
5715 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
5716 SIGN_EXTENDs or ZERO_EXTENDs.
5717
5718 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
5719
5720 PR target/42172
5721 * combine.c (combine_validate_cost): New arg I0. All callers changed.
5722 Take its cost into account if nonnull.
5723 (insn_a_feeds_b): New static function.
5724 (combine_instructions): Look for four-insn combinations.
5725 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
5726 them into account when computing all_adjacent and looking for other
5727 uses.
5728 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
5729 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
5730 (try_combine): New arg I0. Handle four-insn combinations.
5731 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
5732 like ELIM_I1.
5733
5734 2010-08-19 Jason Merrill <jason@redhat.com>
5735
5736 PR c++/45307
5737 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
5738 if ctor is empty.
5739 (gimplify_modify_expr_rhs): Adjust.
5740
5741 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
5742
5743 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
5744 bitmap_bit_p.
5745 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
5746 * dominance.c (iterate_fix_dominators): Likewise.
5747 * dse.c (set_usage_bits): Likewise.
5748 (set_position_unneeded, record_store): Likewise.
5749 * gimple-fold.c (get_maxval_strlen): Likewise.
5750 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
5751 * ipa-inline.c (update_caller_keys): Likewise.
5752 * ipa-split.c (verify_non_ssa_vars): Likewise.
5753 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
5754 (close_type_exposed_parameter, close_type_full_escape): Likewise.
5755 (close_addressof_down): Likewise.
5756 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
5757 (setup_allocno_left_conflicts_size): Likewise.
5758 (ira_reassign_conflict_allocnos): Likewise.
5759 (ira_reassign_pseudos): Likewise.
5760 * ira-emit.c (change_loop): Likewise.
5761 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
5762 * lto-streamer-out.c (write_symbol): Likewise.
5763 * predict.c (expr_expected_value_1): Likewise.
5764 * regstat.c (regstat_bb_compute_ri): Likewise.
5765 * sel-sched.c (create_block_for_bookkeeping): Likewise.
5766 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
5767 * stmt.c (expand_case): Likewise.
5768 * tree-eh.c (emit_eh_dispatch): Likewise.
5769 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
5770 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
5771 Likewise.
5772 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
5773 (rdg_build_components): Likewise.
5774 * tree-object-size.c (collect_object_sizes_for): Likewise.
5775 * tree-sra.c (convert_callers): Likewise.
5776 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
5777 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
5778 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
5779
5780 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
5781
5782 * config/i386/i386.md (*lea_1): Use P mode iterator.
5783 (lea add splitter): Also handle DImode operands.
5784 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
5785 predicate. Do not use ix86_lea_for_add_ok.
5786 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
5787 (lea ashift splitter): Also handle DImode operands.
5788 (DImode lea ashift splitter): Remove splitter.
5789
5790 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
5791
5792 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
5793 ix86_binary_operator_ok.
5794
5795 2010-08-19 Andrey Belevantsev <abel@ispras.ru>
5796
5797 PR rtl-optimization/44691
5798 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
5799 is not a register.
5800
5801 2010-08-19 Ian Bolton <ian.bolton@arm.com>
5802
5803 PR target/45070
5804 * config/arm/arm.c (arm_output_epilogue): Ensure that return
5805 value of size 1-3 is handled correctly.
5806
5807 2010-08-19 Ian Bolton <ian.bolton@arm.com>
5808
5809 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
5810 type for the conditional has wide enough range.
5811
5812 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
5813
5814 PR target/45327
5815 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
5816 ix86_binary_operator_ok.
5817
5818 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
5819
5820 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
5821 <default>: Swap operands 1 and 2 for alternative 2 to use existing
5822 code to output insn mnemonic. Fix comment.
5823 (*addsi_1_zext): Add r-r-0 alternative 1.
5824 <TYPE_LEA>: Split insn to lea.
5825 <default>: Handle alternative 1.
5826 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
5827 multi-level if_then_else RTX to set "type" attribute.
5828 <default>: Handle alternative 2.
5829 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
5830 Use cond RTX instead of multi-level if_then_else RTX to set
5831 "type" attribute.
5832 <default>: Handle alternatives 2 and 4.
5833 (lea splitters): Update calls to ix86_lea_for_add_ok.
5834
5835 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
5836 argument.
5837 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
5838
5839 2010-08-18 Richard Guenther <rguenther@suse.de>
5840
5841 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
5842 use operand helpers.
5843
5844 2010-08-18 Paolo Bonzini <bonzini@gnu.org>
5845
5846 PR middle-end/45292
5847 * optabs.c (expand_bool_compare_and_swap): Expand pending
5848 pops before trying the optab.
5849
5850 2010-08-18 Yao Qi <yao@codesourcery.com>
5851
5852 PR target/45094
5853 * config/arm/arm.c (output_move_double): Fix typo generating
5854 instructions ('ldr'->'str').
5855
5856 2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
5857
5858 PR rtl-optimization/42575
5859 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
5860 live ranges.
5861
5862 2010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
5863
5864 * config/arm/arm-protos.h (arm_expand_sync): New.
5865 (arm_output_memory_barrier, arm_output_sync_insn): New.
5866 (arm_sync_loop_insns): New.
5867 * config/arm/arm.c (FL_ARCH7): New.
5868 (FL_FOR_ARCH7): Include FL_ARCH7.
5869 (arm_arch7): New.
5870 (arm_print_operand): Support %C markup.
5871 (arm_legitimize_sync_memory): New.
5872 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
5873 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
5874 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
5875 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
5876 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
5877 (arm_process_output_sync_insn, arm_output_sync_insn): New.
5878 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
5879 * config/arm/arm.h (struct arm_sync_generator): New.
5880 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
5881 (TARGET_HAVE_MEMORY_BARRIER): New.
5882 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
5883 * config/arm/arm.md: Include sync.md.
5884 (UNSPEC_MEMORY_BARRIER): New.
5885 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
5886 (VUNSPEC_SYNC_OP):New.
5887 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
5888 (sync_result, sync_memory, sync_required_value): New attributes.
5889 (sync_new_value, sync_t1, sync_t2): Likewise.
5890 (sync_release_barrier, sync_op): Likewise.
5891 (length): Add logic to length attribute defintion to call
5892 arm_sync_loop_insns when appropriate.
5893 * config/arm/sync.md: New file.
5894
5895 2010-08-17 Jakub Jelinek <jakub@redhat.com>
5896
5897 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
5898 ENABLE_TREE_CHECKING.
5899 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
5900 and GCC >= 4.3.
5901
5902 2010-08-17 H.J. Lu <hongjiu.lu@intel.com>
5903
5904 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
5905 or optimizing for size, always avoid lea if possible.
5906
5907 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
5908
5909 2010-08-17 Iain Sandoe <iains@gcc.gnu.org>
5910
5911 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
5912 Dunmmy function with NULL return unless the target is
5913 OSX >= 10.6 (Darwin10).
5914
5915 2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
5916
5917 * gcc.c (spec_function): Add remove-outfile.
5918 (remove_outfile_spec_function): New function.
5919 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
5920 * invoke.texi (replace-outfile): Document.
5921
5922 2010-08-17 Uros Bizjak <ubizjak@gmail.com>
5923
5924 PR target/45296
5925 * reginfo.c (globalize_reg): Reject stack registers.
5926
5927 2010-08-17 Richard Guenther <rguenther@suse.de>
5928
5929 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
5930 list of conditional equivalences.
5931 (free_all_edge_infos): Adjust.
5932 (record_equivalences_from_incoming_edge): Likewise.
5933 (record_cond): Likewise.
5934 (build_and_record_new_cond): Likewise.
5935 (record_conditions): Likewise.
5936 (dom_opt_leave_block): Likewise.
5937
5938 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
5939
5940 * doc/invoke.texi (ms-extension): Add documentation.
5941
5942 2010-08-17 Richard Guenther <rguenther@suse.de>
5943
5944 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
5945
5946 2010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
5947
5948 PR c/40563
5949 * c-decl.c (diagnose_uninitialized_cst_member): New function.
5950 (finish_decl): Use it to issue a -Wc++-compat warning about
5951 uninitialized const field in struct or union.
5952
5953 (finish_struct): Use strip_array_types.
5954
5955 2010-08-17 Jakub Jelinek <jakub@redhat.com>
5956
5957 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
5958 functions.
5959 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
5960 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
5961 call block_nreverse here.
5962 (blocks_nreverse): Rename decl temporary to block.
5963
5964 2010-08-16 Bernd Schmidt <bernds@codesourcery.com>
5965
5966 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
5967 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
5968 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
5969 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
5970 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
5971 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
5972 thumb2_iorsi3): Delete.
5973 (orsi_notsi_si): No longer a named pattern.
5974 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
5975 * config/arm/predicates.md (shift_amount_operand): New.
5976 (mult_operator): New.
5977 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
5978 attr enabled): New.
5979 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
5980 arch matches t2.
5981 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
5982 (not_shiftsi_compare0): Likewise, renamed from
5983 arm_notsi_shiftsi_compare0.
5984 (not_shiftsi_compare0_scratch): Likweise, renamed from
5985 arm_notsi_shiftsi_compare0_scratch.
5986 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
5987 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
5988 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
5989 so that the register alternative is disabled when the shift_operator
5990 is MULT. Use "M" as the constraint for constants.
5991 (arith_shiftsi splitter): Enable for TARGET_32BIT.
5992 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
5993 constraint for constants.
5994 (arith_shiftsi_compare0_scratch): Likewise.
5995 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
5996 Handle Thumb2 alternative.
5997
5998 2010-08-16 Joseph Myers <joseph@codesourcery.com>
5999
6000 * doc/options.texi (NoDriverArg): Document.
6001 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
6002 -MDX and -MMDX.
6003 * opt-functions.awk (switch_flags): Handle NoDriverArg.
6004 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
6005 marking for CL_NO_DRIVER_ARG options when in the driver.
6006 * opts.h (CL_NO_DRIVER_ARG): Define.
6007 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6008 CL_COMMON): Update values.
6009
6010 2010-08-16 Joseph Myers <joseph@codesourcery.com>
6011
6012 * common.opt: Add driver options.
6013 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
6014 * doc/options.texi (Driver, RejectDriver): Document.
6015 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
6016 print_prog_name, print_multi_directory, print_sysroot,
6017 print_multi_os_directory, print_multi_lib,
6018 print_sysroot_headers_suffix, report_times, combine_flag,
6019 use_pipes, wrapper_string): Remove.
6020 (save_switch, driver_unknown_option_callback,
6021 driver_wrong_lang_callback, driver_post_handling_callback,
6022 driver_handle_option): New.
6023 (spec_lang, last_language_n_infiles): Make file-scope static
6024 instead of local to process_command.
6025 (process_command): Use decode_cmdline_options_to_array and
6026 read_cmdline_option for option processing. Compute have_c in
6027 prescan of decoded options.
6028 * opt-functions.awk (switch_flags): Handle Driver and
6029 RejectDriver.
6030 (var_type, var_type_struct): Handle Separate options as generating
6031 const char * variables.
6032 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
6033 CL_TARGET to be passed by caller if required.
6034 (decode_cmdline_options_to_array): Update comment.
6035 * opts.c (complain_wrong_lang): Handle options only valid for the
6036 driver.
6037 (decode_options): Update call to decode_cmdline_options_to_array.
6038 (print_filtered_help): Ignore driver-only options.
6039 (print_specific_help): Ignore CL_DRIVER.
6040 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
6041 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
6042 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
6043 Update values.
6044
6045 2010-08-16 Richard Guenther <rguenther@suse.de>
6046
6047 * tree-cfg.c (verify_types_in_gimple_reference): Verify
6048 TARGET_MEM_REF a bit.
6049 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
6050 (create_mem_ref_raw): Always create TMR_OFFSET, store the
6051 alias pointer type via it.
6052 (copy_mem_ref_info): Adjust.
6053 (maybe_fold_tmr): Likewise.
6054 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
6055 (reference_alias_ptr_type): Likewise.
6056 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
6057 adjust documentation of TMR_OFFSET operand.
6058 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
6059 use the alias pointer type.
6060 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
6061 initialize mem attrs but the TMR itself.
6062 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
6063 similar to MEM_REF.
6064 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
6065 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
6066 (unshare_and_remove_ssa_names): Likewise.
6067 (copy_ref_info): Adjust.
6068 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
6069 TARGET_MEM_REF case.
6070 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
6071 at TMR_ORIGINAL.
6072 * tree.h (TMR_ORIGINAL): Remove.
6073 * gimple.c (get_base_address): For TARGET_MEM_REF with a
6074 symbol return that.
6075 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
6076 with a symbol.
6077 (get_addr_base_and_unit_offset): Likewise.
6078 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
6079 TARGET_MEM_REFs.
6080 (indirect_ref_may_alias_decl_p): Likewise.
6081 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
6082
6083 2010-08-15 Uros Bizjak <ubizjak@gmail.com>
6084
6085 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
6086 with GCC version 4.6, the default setting (when not optimizing
6087 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
6088 been changed to -fomit-frame-pointer.
6089
6090 2010-08-15 Iain Sandoe <iains@gcc.gnu.org>
6091
6092 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
6093 Darwin10. Do not link libgcc.a for Darwin >= 9.
6094
6095 2010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
6096
6097 * doc/invoke.texi (Warning Options): Fix terminology and markup
6098 in the description of how unknown warning options are handled.
6099
6100 2010-08-15 Ira Rosen <irar@il.ibm.com>
6101
6102 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
6103 in basic blocks.
6104 (vect_supportable_dr_alignment): Check alignment for basic blocks.
6105 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
6106 data references.
6107 (vect_bb_vectorization_profitable_p): New function.
6108 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
6109 check if it's worthwhile to vectorize the basic block.
6110
6111 2010-08-14 Anatoly Sokolov <aesok@post.ru>
6112
6113 * reload.h (register_move_cost, memory_move_secondary_cost,
6114 secondary_reload_class): Adjust prototype.
6115 * rtl.h (reg_class_subset_p): Adjust prototype.
6116 * reload.c (secondary_reload_class): Change arguments type from
6117 enum reg_class to reg_class_t. Change result type to reg_class_t.
6118 * reginfo.c (register_move_cost, reg_class_subset_p): Change
6119 arguments type from enum reg_class to reg_class_t.
6120 (memory_move_secondary_cost): Change arguments type from
6121 enum reg_class to reg_class_t. Change type of saved_flags to
6122 reg_class_t.
6123
6124 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6125 Remove macros.
6126 (mips_cost): Remove.
6127 (struct mips_rtx_cost_data): Moved to mips.c.
6128 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
6129 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
6130 (mips_cost): Make static.
6131 (mips_canonicalize_move_class): Change argument type to reg_class_t.
6132 Change result type to reg_class_t.
6133 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
6134 type from enum reg_class to reg_class_t.
6135 (mips_register_move_cost): Make static. Change arguments
6136 type from enum reg_class to reg_class_t.
6137 (mips_memory_move_cost): New function.
6138 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6139
6140 2010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
6141
6142 PR rtl-optimization/43358
6143 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
6144 of a single hard register, using simplify_subreg_regno to decide
6145 what that register should be.
6146
6147 2010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
6148
6149 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
6150 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
6151 (loongson_pmull<V_suffix>): Rename to...
6152 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
6153
6154 2010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
6155
6156 * configure.ac: Enable -fomit-frame-pointer on darwin
6157 which support dwarf2.
6158 * config/i386/i386.c (override_options): Same.
6159
6160 2010-08-13 Jie Zhang <jie@codesourcery.com>
6161
6162 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
6163
6164 2010-08-12 Joseph Myers <joseph@codesourcery.com>
6165
6166 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
6167 -MMD.
6168
6169 2010-08-12 Changpeng Fang <changpeng.fang@amd.com>
6170
6171 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
6172 up dot_prod pattern searching if a stmt is outside the loop.
6173
6174 2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
6175 Uros Bizjak <ubizjak@gmail.com>
6176
6177 * config.gcc: Handle --enable-frame-pointer.
6178
6179 * configure.ac: Add --enable-frame-pointer.
6180 * configure: Regenerated.
6181
6182 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
6183 (override_options): If not configured with --enable-frame-pointer,
6184 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
6185 optimizing for size), -fasynchronous-unwind-tables and
6186 -maccumulate-outgoing-args by default.
6187
6188 2010-08-12 Jakub Jelinek <jakub@redhat.com>
6189
6190 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
6191
6192 PR middle-end/45262
6193 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
6194 -a overflows. Normalize the range.
6195
6196 2010-08-12 Richard Guenther <rguenther@suse.de>
6197
6198 PR tree-optimization/45232
6199 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
6200 for types with undefined overflow.
6201 (reassociate_bb): Allow re-associating of bit and min/max
6202 operations for types with undefined overflow.
6203 * tree-ssa-forwprop.c (associate_plusminus): New function.
6204 (tree_ssa_forward_propagate_single_use_vars): Call it.
6205
6206 2010-08-12 Richard Guenther <rguenther@suse.de>
6207
6208 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
6209 * tree-ssa-alias.c (get_ptr_info): Move ...
6210 * tree-ssanames.c (get_ptr_info): ... here. Initialize
6211 align and misalign fields conservatively.
6212 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
6213 derive alignment information.
6214 (evaluate_stmt): Derive alignment information from memory
6215 allocation functions.
6216 * tree.h (get_pointer_alignment): Make unsigned.
6217 * builtins.c (get_object_alignment): Use alignment information we
6218 have computed for pointers.
6219 (get_pointer_alignment): Likewise. Make conservative, return
6220 and unsigned value.
6221 (expand_builtin_strlen): Adjust.
6222 (expand_builtin_memcmp): Likewise.
6223 (expand_builtin_strcmp): Likewise.
6224 (expand_builtin_strncmp): Likewise.
6225 (get_builtin_sync_mem): Use at least mode alignment.
6226 (fold_builtin_memset): Adjust.
6227 (fold_builtin_memory_op): Likewise.
6228 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
6229 information also dump pointer alignment knowledge.
6230 (dump_gimple_stmt): Likewise.
6231
6232 2010-08-12 Uros Bizjak <ubizjak@gmail.com>
6233
6234 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
6235 (EMPTY_FIELD_BOUNDARY): Remove.
6236 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
6237
6238 2010-08-12 Jakub Jelinek <jakub@redhat.com>
6239
6240 PR debug/45259
6241 * caller-save.c (save_call_clobbered_regs): Only swap notes with
6242 DEBUG_INSNs if n_regs_saved.
6243
6244 2010-08-12 Wei Guozhi <carrot@google.com>
6245
6246 PR target/44999
6247 * config/arm/arm.md (andsi3): Change to zero extension if possible.
6248 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
6249
6250 2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
6251
6252 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
6253
6254 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
6255
6256 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6257
6258 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
6259 the case removed in the previous patch, when the only phi argument
6260 is defined in the same loop as the phi node itself. Handle it
6261 separately from the invariant case by both propagating it outside
6262 the region and replacing the phi node with an assign.
6263
6264 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6265
6266 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
6267 constant phi nodes with one argument are is_gimple_min_invariant
6268 and SSA_NAME_IS_DEFAULT_DEF.
6269
6270 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6271
6272 * graphite-cloog-util.c (oppose_constraint):
6273 Extend loop counter's value range (CLOOG_ORG).
6274 (cloog_matrix_to_ppl_constraint): Same.
6275 (new_Constraint_System_from_Cloog_matrix): Same.
6276 * graphite-cloog-compat.h (matrix_num_type): New.
6277
6278 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6279
6280 * graphite.c (graphite_initialize): Do not initialize
6281 CLooG and initialize the Parma Polyhedra Library
6282 manually when using CLOOG_ORG.
6283 (graphite_finalize): Do not finalize CLooG and finalize
6284 the Parma Polyhedra Library manually when using CLOOG_ORG.
6285 * graphite-cloog-compat.h (cloog_initialize): Hide function
6286 when using CLOOG_ORG.
6287 (cloog_finalize): Same.
6288
6289 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6290
6291 * graphite-clast-to-gimple.c (free_scattering): Change
6292 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
6293 (CLOOG_ORG).
6294 (build_cloog_prog): Same.
6295 * graphite-cloog-compat.h (cloog_domain): Removed.
6296 (cloog_scattering): New.
6297 (cloog_set_domain): Removed.
6298 (cloog_set_scattering): New.
6299 (cloog_next_domain): Removed.
6300 (cloog_next_scattering): New.
6301 (cloog_set_next_domain): Removed.
6302 (cloog_set_next_scattering): New.
6303 (CloogScatteringList): New.
6304 (CloogScattering): New.
6305 (cloog_scattering_free): New.
6306 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
6307 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
6308 New.
6309
6310 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6311
6312 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
6313 CloogState.
6314 (set_cloog_options): Same.
6315 (print_clast_stmt): Same.
6316 (scop_to_clast): Same.
6317 (print_generated_program): Same.
6318 (gloog): Same.
6319 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
6320 (scop_to_clast): Extend with CloogState.
6321 * graphite-cloog-util.c: Include graphite-cloog-compat.h
6322 (new_Cloog_Domain_from_ppl_Polyhedron):
6323 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
6324 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
6325 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6326 * graphite-cloog-util.h (build_cloog_prog): Same.
6327 * graphite-cloog-copat.h (build_cloog_prog): New.
6328 (CloogState): New.
6329 (cloog_state_malloc): New.
6330 (cloog_state_free): New.
6331 (cloog_loop_malloc): New.
6332 (cloog_options_malloc): New.
6333 (cloog_statement_alloc): New.
6334 (cloog_domain_from_cloog_matrix): New.
6335 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
6336 (new_Cloog_Domain_from_ppl_Polyhedron): New.
6337
6338 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6339
6340 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
6341 type of NAME now depends on used CLooG version.
6342 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
6343 (gcc_type_for_clast_expr): Same.
6344 (print_clast_stmt): Replace pprint with clast_pprint.
6345 * graphite-cloog-compat.h: Provide compatibility macros for
6346 CLooG Legacy.
6347 (clast_name_p): New.
6348 (clast_expr_term): New.
6349 (clast_expr_red): New.
6350 (clast_expr_bin): New.
6351 (clast_pprint): New.
6352
6353 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6354
6355 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
6356 compatible to newer CLooG releases (CLOOG_ORG).
6357 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
6358 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
6359 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
6360 (build_cloog_prog) : New.
6361 (cloog_program_extract_scalars): New.
6362 (cloog_program_scatter): New.
6363
6364 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6365
6366 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
6367 conditionally (CLOOG_ORG).
6368 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
6369 (cloog_statement_usr): New.
6370 (cloog_domain): Same.
6371 (cloog_set_domain): Same.
6372 (cloog_next_domain): Same.
6373 (cloog_set_next_domain): Same.
6374 (cloog_program_nb_scattdims): Same.
6375 (cloog_program_set_nb_scattdims): Same.
6376 (cloog_program_names): Same.
6377 (cloog_program_set_names): Same.
6378 (cloog_program_set_context): Same.
6379 (cloog_program_set_loop): Same.
6380 (cloog_program_blocklist): Same.
6381 (cloog_program_set_blocklist): Same.
6382 (cloog_program_scaldims): Same.
6383 (cloog_program_set_scaldims): Same.
6384 (cloog_names_nb_parameters): Same.
6385 (cloog_names_set_nb_parameters): Same.
6386 (cloog_names_parameters): Same.
6387 (cloog_names_set_parameters): Same.
6388 (cloog_names_set_nb_iterators): Same.
6389 (cloog_names_set_iterators): Same.
6390 (cloog_names_set_nb_scattering): Same.
6391 (cloog_names_set_scattering): Same.
6392 (cloog_statement_set_usr): Same.
6393 (cloog_loop_set_next): Same.
6394 (cloog_loop_set_domain): Same.
6395 (cloog_loop_set_block): Same.
6396 (cloog_block_list_next): Same.
6397 (cloog_block_list_set_next):
6398 (cloog_block_list_set_block): Same.
6399
6400 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6401
6402 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
6403 a bool.
6404 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
6405 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
6406 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
6407 when something has been changed.
6408 (rewrite_commutative_reductions_out_of_ssa): Same.
6409
6410 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6411
6412 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
6413 handle the case when def is in the sese region.
6414 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
6415 for invariant expressions.
6416 (rewrite_cross_bb_phi_deps): Removed.
6417 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
6418 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
6419 rewrite_cross_bb_phi_deps.
6420
6421 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6422
6423 * graphite-sese-to-poly.c
6424 (rewrite_commutative_reductions_out_of_ssa_loop): Call
6425 scev_analyzable_p only on is_gimple_reg
6426
6427 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6428
6429 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
6430 (rewrite_close_phi_out_of_ssa): Propagate constant values or
6431 parametric expressions outside the scop region.
6432 (rewrite_cross_bb_scalar_deps): Same.
6433 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
6434
6435 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6436
6437 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
6438 SSA_NAME_DEF_STMT only on SSA_NAMEs.
6439
6440 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6441
6442 * tree-scalar-evolution.c (instantiate_scev_name): Do not
6443 instantiate default definitions.
6444
6445 2010-08-11 Vladimir Kargov <kargov@gmail.com>
6446 Sebastian Pop <sebastian.pop@amd.com>
6447
6448 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
6449 (loop_exits_from_bb_p): New.
6450 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
6451 (loop_exits_from_bb_p): Declared.
6452 * graphite-scop-detection.c (scopdet_basic_block_info): Call
6453 loop_exits_to_bb_p.
6454
6455 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6456
6457 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
6458 extra parameter for the region. Call scev_analyzable_p.
6459 (rewrite_reductions_out_of_ssa): Update call to
6460 rewrite_close_phi_out_of_ssa.
6461 (rewrite_cross_bb_phi_deps): Same.
6462 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
6463 parameter for the region. Call scev_analyzable_p.
6464 (rewrite_commutative_reductions_out_of_ssa): Update call to
6465 rewrite_commutative_reductions_out_of_ssa_loop.
6466
6467 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6468
6469 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
6470
6471 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6472
6473 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
6474 SSA scalar phi nodes that can be scev_analyzable_p.
6475
6476 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6477
6478 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
6479 handle SSA_NAME_IS_DEFAULT_DEF.
6480
6481 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6482
6483 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
6484
6485 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6486
6487 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
6488 case non close-phi nodes with one argument.
6489
6490 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6491
6492 * sese.h (scev_analyzable_p): Scevs could be expressions without
6493 chrecs and still be scev_analyzable_p.
6494
6495 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6496
6497 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6498
6499 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6500
6501 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
6502 * cfgloop.h (struct loop): Remove single_iv field.
6503 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
6504 (scop_canonicalize_loops): Removed.
6505 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
6506 over all the loop phi nodes in loop->header.
6507 (build_poly_scop): Remove use of scop_canonicalize_loops.
6508
6509 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6510
6511 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
6512 handle GIMPLE_CALL.
6513
6514 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6515
6516 * tree-chrec.c (chrec_apply): Should only apply to the specified
6517 variable. Also handle multivariate chains of recurrences that
6518 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
6519
6520 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6521
6522 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
6523 (debug_clast_name_indexes_1): Removed.
6524 (debug_clast_name_indexes): Removed.
6525 (pbb_to_depth_to_oldiv): Removed.
6526 (build_iv_mapping): Replace the use of rename_map with iv_map.
6527 (translate_clast_user): Remove uses of rename_map. Allocate and
6528 free iv_map.
6529 (translate_clast_for_loop): Remove uses of rename_map.
6530 (translate_clast_for): Same.
6531 (translate_clast_guard): Same.
6532 (translate_clast): Same.
6533 (gloog): Same.
6534 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
6535 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
6536 * sese.c (set_rename): Now static.
6537 (rename_variables_in_stmt): Removed.
6538 (rename_uses): New.
6539 (is_parameter): Removed.
6540 (is_iv): Removed.
6541 (expand_scalar_variables_call): Removed.
6542 (expand_scalar_variables_ssa_name): Removed.
6543 (expand_scalar_variables_expr): Removed.
6544 (expand_scalar_variables_stmt): Removed.
6545 (expand_scalar_variables): Removed.
6546 (rename_variables): Removed.
6547 (remove_condition): Removed.
6548 (get_true_edge_from_guard_bb): Removed.
6549 (get_false_edge_from_guard_bb): Removed.
6550 (struct igp): Removed.
6551 (default_before_guard): Removed.
6552 (convert_for_phi_arg): Removed.
6553 (add_guard_exit_phis): Removed.
6554 (insert_guard_phis): Removed.
6555 (graphite_copy_stmts_from_block): Now also uses iv_map and a
6556 region. Do not copy conditions. Do not copy induction variables.
6557 Call rename_uses.
6558 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
6559 the translated statement. Use the iv_map for the induction
6560 variable renaming.
6561 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
6562 (set_rename): Removed declaration.
6563 (scev_analyzable_p): ...here.
6564 * tree-chrec.c (chrec_apply_map): New.
6565 * tree-chrec.h (chrec_apply_map): Declared.
6566
6567 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6568
6569 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
6570 insert_loop_close_phis.
6571 * sese.c (name_defined_in_loop_p): Removed.
6572 (expr_defined_in_loop_p): Removed.
6573 (alive_after_loop): Removed.
6574 (close_phi_not_yet_inserted_p): Removed.
6575 (struct alep): Removed.
6576 (add_loop_exit_phis): Removed.
6577 (insert_loop_close_phis): Removed.
6578
6579 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6580
6581 * graphite-cloog-util.c
6582 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
6583 * graphite-poly.c
6584 (psct_scattering_dim_for_loop_depth): Same.
6585
6586 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6587
6588 * graphite-cloog-util.h: Added cloog.h.
6589 * graphite-blocking.c: Removed cloog.h.
6590 * graphite-dependences.c: Same.
6591 * graphite-interchange.c: Same.
6592 * graphite-poly.c: Same.
6593 * graphite-ppl.c: Same.
6594 * graphite-scop-detection.c: Same.
6595 * graphite-sese-to-poly.c:
6596 Removed cloog.h.
6597 Removed graphite-clast-to-gimple.h.
6598 (check_poly_representation): Removed (unused).
6599 * graphite-sese-to-poly.h
6600 (check_poly_representation): Removed (unused).
6601
6602 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6603
6604 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
6605 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
6606 (graphite-cloog-util.o): New.
6607 (graphite-ppl.o): Added graphite-cloog-util.h.
6608 * graphite-clast-to-gimple.c:
6609 Added graphite-cloog-util.h to include statements.
6610 * graphite-cloog-util.c: New.
6611 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
6612 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6613 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6614 (new_C_Polyhedron_from_Cloog_Matrix): Same.
6615 (insert_constraint_into_matrix): Same.
6616 (ppl_Constrain_System_number_of_constraints): Same.
6617 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6618 (oppose_constraint): Same.
6619 (cloog_matrix_to_ppl_constraint): Same.
6620 (new_Constraint_System_from_Cloog_Matrix): Same.
6621 * graphite-cloog-util.h: New.
6622 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
6623 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6624 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6625 (new_C_Polyhedron_from_Cloog_Matrix): Same.
6626 (insert_constraint_into_matrix): Same.
6627 * graphite-ppl.c:
6628 Added graphite-cloog-util.h to include statements.
6629 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
6630 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6631 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6632 (new_C_Polyhedron_from_Cloog_Matrix): Same.
6633 (insert_constraint_into_matrix): Same.
6634 (ppl_Constrain_System_number_of_constraints): Same.
6635 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6636 (oppose_constraint): Same.
6637 (cloog_matrix_to_ppl_constraint): Same.
6638 (new_Constraint_System_from_Cloog_Matrix): Same.
6639 * graphite-ppl.h:
6640 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
6641 graphite-cloog-util.h.
6642 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6643 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6644 (new_C_Polyhedron_from_Cloog_Matrix): Same.
6645 (insert_constraint_into_matrix): Same.
6646
6647 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6648
6649 * graphite-clast-to-gimple.c
6650 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
6651 (precision_for_interval): Same.
6652 (gcc_type_for_interval): Same.
6653 (compute_type_for_level): Same.
6654 * graphite-interchange.c
6655 (lst_interchange_profitable_p): Same.
6656 * graphite-poly.c
6657 (psct_scattering_dim_for_loop_depth): Same.
6658 * graphite-ppl.c
6659 (ppl_max_for_le_pointset): Same.
6660 (ppl_min_for_le_pointset): Same.
6661
6662 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6663
6664 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
6665 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
6666
6667 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6668
6669 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
6670 rewrite_close_phi_out_of_ssa.
6671
6672 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6673
6674 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
6675
6676 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6677
6678 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
6679 rename_map.
6680 * sese.c (debug_rename_map): Same.
6681 (get_rename): Same.
6682 (set_rename): Same.
6683 (rename_variables_in_stmt): Same.
6684 (expand_scalar_variables_call): Same.
6685 (expand_scalar_variables_ssa_name): Same.
6686 (expand_scalar_variables_expr): Same.
6687 (expand_scalar_variables_stmt): Same.
6688 (expand_scalar_variables): Same.
6689 (rename_variables): Same.
6690 (graphite_copy_stmts_from_block): Same.
6691 (copy_bb_and_scalar_dependences): Same.
6692
6693 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6694
6695 * graphite-clast-to-gimple.c (copy_renames): Removed.
6696 (translate_clast_for): Do not call copy_renames.
6697 (translate_clast_guard): Same.
6698
6699 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6700
6701 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
6702 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
6703 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
6704 before rewrite_cross_bb_scalar_deps.
6705
6706 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6707
6708 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
6709 Early return in when flag_associative_math is not set.
6710
6711 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6712
6713 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
6714 of SSA copies on edges except for loop->latch.
6715
6716 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6717
6718 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
6719 Split out of rewrite_reductions_out_of_ssa.
6720 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
6721 Declared.
6722 * graphite.c (graphite_transform_loops): Call it.
6723
6724 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6725
6726 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
6727
6728 2010-08-11 Alexander Monakov <amonakov@ispras.ru>
6729
6730 * dbgcnt.def (graphite_scop): New counter.
6731 * graphite.c: Include dbgcnt.h.
6732 (graphite_transform_loops): Use new counter to limit transformations.
6733 * Makefile.in (graphite.o): Depend on DBGCNT_H.
6734
6735 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6736
6737 * passes.c (init_optimization_passes): Add pass_graphite.
6738 Schedule a pass_copy_prop before pass_graphite_transforms.
6739 * timevar.def (TV_GRAPHITE): Declared.
6740 * tree-pass.h (pass_graphite): Declared.
6741 * tree-ssa-loop.c (pass_graphite): New.
6742
6743 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6744
6745 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
6746 Remove calls to rename_nb_iterations and rename_sese_parameters.
6747 * graphite-clast-to-gimple.h (gloog): Update declaration.
6748 * graphite.c (graphite_transform_loops): Update call to gloog.
6749 * sese.c (rename_variables_in_expr): Removed.
6750 (rename_nb_iterations): Removed.
6751 (rename_sese_parameters): Removed.
6752 * sese.h (rename_nb_iterations): Removed.
6753 (rename_sese_parameters): Removed.
6754
6755 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6756
6757 * graphite-clast-to-gimple.c (gloog): Remove call to
6758 sese_adjust_liveout_phis.
6759 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
6760 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
6761 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
6762 rewrite_phi_out_of_ssa.
6763 * sese.c (get_vdef_before_sese): Removed.
6764 (sese_adjust_vphi): Removed.
6765 (sese_adjust_liveout_phis): Removed.
6766 * sese.h (sese_adjust_liveout_phis): Removed.
6767
6768 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6769
6770 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
6771 argument for the place after which to insert the out of SSA copy.
6772 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
6773 (rewrite_phi_out_of_ssa): Same.
6774 (rewrite_cross_bb_scalar_deps): Same.
6775 (insert_copyout): Removed.
6776 (insert_copyin): Removed.
6777 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
6778 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
6779 insert_copyin.
6780
6781 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6782
6783 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
6784 (rewrite_reductions_out_of_ssa): Same.
6785 (rewrite_commutative_reductions_out_of_ssa): Same.
6786 (build_poly_scop): Do not call these functions.
6787 * graphite-sese-to-poly.h (build_poly_scop): Declared.
6788 (rewrite_reductions_out_of_ssa): Declared.
6789 (rewrite_commutative_reductions_out_of_ssa): Declared.
6790 * graphite.c (graphite_transform_loops): Call on every scop
6791 rewrite_commutative_reductions_out_of_ssa before calling
6792 rewrite_reductions_out_of_ssa and build_scop_bbs.
6793
6794 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6795
6796 * graphite-dependences.c (dot_deps): Make system call to dotty run
6797 in background.
6798 (dot_deps_stmt): Same.
6799 * graphite-poly.c (dot_lst): Same.
6800
6801 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6802
6803 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
6804 phi_arg_in_outermost_loop.
6805 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
6806 (remove_invariant_phi): Same.
6807
6808 2010-08-11 Anatoly Sokolov <aesok@post.ru>
6809
6810 * target.def (output_addr_const_extra): New hook.
6811 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
6812 * doc/tm.texi: Regenerate.
6813 * targhooks.c (default_asm_output_addr_const_extra): New function.
6814 * targhooks.h (default_asm_output_addr_const_extra): Declare.
6815 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6816 target hook.
6817
6818 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6819 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
6820 * config/i386/i386.h (output_addr_const_extra): Rename to...
6821 (i386_asm_output_addr_const_extra): ...this. Make static.
6822 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6823
6824 2010-08-11 Richard Henderson <rth@redhat.com>
6825
6826 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
6827
6828 2010-08-11 Nick Clifton <nickc@redhat.com>
6829
6830 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
6831 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
6832 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6833 stormy16-lib2-cmpsi.c.
6834
6835 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
6836 -O2.
6837
6838 2010-08-11 Joseph Myers <joseph@codesourcery.com>
6839
6840 * opts.h (struct cl_option_handler_func): Make handler take
6841 cl_decoded_option structure as parameter, not individual elements.
6842 (struct cl_option_handlers): Make callbacks take cl_decoded_option
6843 structure as parameter, not individual elements.
6844 (handle_option): Take cl_decoded_option structure as parameter,
6845 not individual elements.
6846 (handle_generated_option): Declare.
6847 * opts-common.c (handle_option): Take cl_decoded_option structure
6848 as parameter, not individual elements. Update calls to callback
6849 and handler functions.
6850 (handle_generated_option): New.
6851 (read_cmdline_option): Update calls to callback functions and
6852 handle_option.
6853 * opts.c (common_handle_option, complain_wrong_lang,
6854 unknown_option_callback, post_handling_callback,
6855 lang_handle_option, target_handle_option): Take cl_decoded_option
6856 structure as parameter, not individual elements.
6857 (lang_handle_option, target_handle_option, common_handle_option):
6858 Assert option has at most one argument.
6859 (enable_warning_as_error): Call handle_generated_option instead of
6860 handle_option. Do not pass -Werror argument as argument of
6861 generated option.
6862
6863 2010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6864
6865 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6866 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6867 (SUBWORD_BOOL_CAS): Likewise.
6868 (SUBWORD_SYNC_OP): Likewise.
6869 (SUBWORD_TEST_AND_SET): Likewise.
6870 (FETCH_AND_OP_WORD): Parenthesise INF_OP
6871 (SUBWORD_SYNC_OP): Likewise.
6872 (OP_AND_FETCH_WORD): Likewise.
6873
6874 2010-08-10 Xinliang David Li <davidxl@google.com>
6875
6876 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
6877 compute max/min offset in address.
6878
6879 2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
6880
6881 * ira-live.c: Include sbitmap.h.
6882 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
6883 Compress live ranges even more.
6884
6885 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6886
6887 * coverage.c (ctr_labels): Delete.
6888
6889 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
6890
6891 PR bootstrap/45177
6892 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
6893 test here from arm_gen_load_multiple_1.
6894 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
6895 multiple_operation_profitable_p.
6896
6897 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6898
6899 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
6900 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
6901
6902 2010-08-10 Richard Henderson <rth@redhat.com>
6903
6904 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
6905 after saving registers. Assert that SSE registers are only saved
6906 with a sufficiently aligned frame.
6907 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
6908 remove stack_realign_fp handling.
6909 (ix86_expand_prologue): Save int registers before stack_realign_fp,
6910 and do not mark the stack alignment as frame related.
6911 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
6912
6913 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
6914 saves when re-aligning the stack.
6915
6916 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6917
6918 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
6919 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
6920 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
6921
6922 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
6923
6924 * dwarf2out.c (struct die_struct): Move die_tag to the end.
6925
6926 2010-08-09 Sofiane Naci <sofiane.naci@arm.com>
6927
6928 * config/arm/iterators.md: New file.
6929 * config/arm/arm.md: Include iterators.md.
6930 (QHSI): Move to new file.
6931 (LTUGEU, cnb, optab, ior_xor): Likewise.
6932 * config/arm/iwmmxt.md (VMMX): Move to new file.
6933 (VSHFT, MMX_char): Likewise.
6934 * config/arm/neon.md (VD): Move to new file.
6935 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
6936 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
6937 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
6938 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
6939 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
6940 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
6941 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
6942 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
6943 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
6944 (Is_d_reg, V_mode_nunits): Likewise.
6945 * config/arm/vec-common.md (VALL): Move to new file.
6946 (VALLW, VINT, VINTW): Likewise.
6947
6948 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
6949
6950 PR middle-end/45182
6951 * combine.c (make_compound_operation): Don't try to convert
6952 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
6953
6954 2010-08-10 Richard Guenther <rguenther@suse.de>
6955
6956 * tree.h (get_object_alignment): Adjust prototype.
6957 * builtins.c (get_object_alignment): Return unsigned int,
6958 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
6959 and TARGET_MEM_REF properly.
6960 (get_pointer_alignment): Adjust.
6961 * emit-rtl.c (get_mem_align_offset): Adjust comment.
6962 (set_mem_attributes_minus_bitpos): Adjust.
6963 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
6964
6965 2010-08-10 Richard Guenther <rguenther@suse.de>
6966
6967 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
6968 (copy_prop_visit_assignment): Simplify.
6969 (copy_prop_visit_stmt): Also visit assignments from
6970 constants.
6971 (copy_prop_visit_phi_node): Use operand_equal_p.
6972
6973 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
6974
6975 * ipa-split.c (find_split_points): Free stack.
6976
6977 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
6978
6979 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
6980 * tree.c (tree_node_kind): Delete corresponding entries.
6981
6982 2010-08-09 H.J. Lu <hongjiu.lu@intel.com>
6983
6984 * alias.c (may_alias_p): Remove unused ret.
6985
6986 2010-08-09 Bingfeng Mei <bmei@broadcom.com>
6987
6988 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
6989 alias_sets_conflict_p.
6990 (walk_mems_1): Moved from alias.c.
6991 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
6992 in alias.c.
6993 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
6994 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
6995 * alias.c (walk_mems_2): Moved to ddg.c.
6996 (walk_mems_1): Ditto.
6997 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
6998 to ddg.c.
6999 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
7000 disambiguation.
7001 *(may_alias_p): New function to check whether two memory expression
7002 may alias or not. Currently used in buidling inter-iteration memory
7003 dependence.
7004 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
7005 (insn_alias_sets_conflict_p): Removed
7006 *rtl.h (may_alias_p): New function prototype.
7007
7008 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
7009
7010 * tree.c (nreverse): Assert that we don't have a BLOCK.
7011
7012 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
7013
7014 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
7015 * config/arm/arm.c (arm_get_pcs_model): Likewise.
7016 * config/avr/avr.c (init_cumulative_args): Likewise.
7017 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
7018 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
7019 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
7020 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
7021 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
7022 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7023 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
7024 * dwarf2out.c (gen_subprogram_die): Likewise.
7025 * function.c (allocate_struct_function): Likewise.
7026 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
7027 (deserves_ellipsis): Delete.
7028
7029 2010-08-09 Richard Guenther <rguenther@suse.de>
7030
7031 * tree-ssa-copy.c (cached_last_copy_of): Remove.
7032 (valueize_val): New function.
7033 (get_last_copy_of): Remove.
7034 (set_copy_of_val): Simplify.
7035 (dump_copy_of): Likewise.
7036 (copy_prop_visit_cond_stmt): Use valueize_val.
7037 (copy_prop_visit_phi_node): Properly handle unvisited names.
7038 Drop code managing copy-of chains.
7039 (init_copy_prop): Adjust.
7040 (fini_copy_prop): Likewise.
7041 (execute_copy_prop): Remove obsolete comment.
7042
7043 2010-08-09 Richard Guenther <rguenther@suse.de>
7044
7045 PR middle-end/44632
7046 * function.c (gimplify_parameters): Do not clear addressable
7047 bit of the original parameter.
7048
7049 2010-08-09 Richard Guenther <rguenther@suse.de>
7050
7051 PR middle-end/45212
7052 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
7053 alignment from MEM_REF offset only if we took it from the
7054 base object.
7055
7056 2010-08-09 Eric Fisher <joefoxreal@gmail.com>
7057
7058 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
7059
7060 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
7061
7062 * c-tree.h (build_arg_info): Declare.
7063 * c-decl.c (build_arg_info): Define.
7064 (get_parm_info): Call it. Delete initialization code.
7065 * c-parser.c (c_parser_parms_declarator): Likewise.
7066 (c_parser_parms_list_declaractor): Likewise.
7067
7068 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
7069
7070 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
7071 (struct c_arg_info): Change type of tags field.
7072 * c-decl.c (grokdeclarator): Update for changed type of tags field.
7073 (get_parm_info): Likewise.
7074 (store_parm_decls_newstyle): Likewise.
7075
7076 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
7077
7078 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
7079 (branch_island_list): Delete.
7080 (branch_islands): Declare.
7081 (add_compiler_branch_island): Adjust for branch_islands instead of
7082 branch_island_list.
7083 (macho_branch_islands): Likewise.
7084 (no_previous_def): Likewise.
7085 (get_prev_label): Likewise.
7086
7087 2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7088
7089 PR boehm-gc/34544
7090 * gthr-posix.h (__gthread_start): Delete.
7091 (__gthread_active_init): Use pthread_default_stacksize_np instead of
7092 pthread_create to determine if hpux pthreads are active.
7093 * gthr-posix95.h (__gthread_start): Delete.
7094 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
7095
7096 2010-08-08 Kai Tietz <kai.tietz@onevision.com>
7097
7098 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
7099 _WIN64 not expanded.
7100
7101 2010-08-07 Uros Bizjak <ubizjak@gmail.com>
7102 H.J. Lu <hongjiu.lu@intel.com>
7103
7104 PR target/45213
7105 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
7106 to output 32bit SFmode immediate as 8 byte sign extended value.
7107
7108 2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
7109
7110 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
7111 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
7112 (SUBWORD_BOOL_CAS): Likewise.
7113 (SUBWORD_SYNC_OP): Likewise.
7114 (SUBWORD_TEST_AND_SET): Likewise.
7115 (FETCH_AND_OP_WORD): Parenthesise INF_OP
7116 (SUBWORD_SYNC_OP): Likewise.
7117 (OP_AND_FETCH_WORD): Likewise.
7118
7119 2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7120
7121 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
7122 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
7123 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
7124 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
7125 generic part.
7126 (cortex_a9_sched_adjust_cost): New function.
7127 (xscale_sched_adjust_cost): New function.
7128 * config/arm/arm-protos.h (struct tune_params): New field
7129 sched_adjust_cost.
7130 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
7131
7132 2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
7133
7134 PR target/44942
7135 * config/sparc/sparc.c (function_arg_advance): Always take into account
7136 the padding, if any.
7137
7138 2010-08-06 Richard Guenther <rguenther@suse.de>
7139
7140 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
7141 (dump_lattice_value): Dump it.
7142 (get_default_value): Adjust.
7143 (get_constant_value): Likewise.
7144 (set_value_varying): Likewise.
7145 (set_lattice_value): Make sure to not go up the lattice
7146 with bitwise constant values.
7147 (get_value_for_expr): Handle ADDR_EXPRs.
7148 (value_to_double_int): New function.
7149 (get_value_from_alignment): Likewise.
7150 (do_dbg_cnt): Adjust.
7151 (ccp_lattice_meet): Handle partially constant values.
7152 (bit_value_unop_1): New function.
7153 (bit_value_binop_1): Likewise.
7154 (bit_value_unop): Likewise.
7155 (bit_value_binop): Likewise.
7156 (evaluate_stmt): Track partially constant values if
7157 flag_tree_bit_ccp is set.
7158 (ccp_fold_stmt): Dump if we folded a predicate.
7159 (ccp_visit_stmt): Adjust.
7160 * common.opt (ftree-bit-ccp): New flag.
7161 * doc/invoke.texi (ftree-bit-ccp): Document.
7162 * opts.c (decode_options): Enable bit-CCP at -O1.
7163
7164 2010-08-06 Alan Modra <amodra@gmail.com>
7165
7166 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
7167 and -mrelocatable-lib description.
7168
7169 2010-08-05 Bernd Schmidt <bernds@codesourcery.com>
7170
7171 From Martin Thuresson <martint@google.com>
7172 * postreload.c (reload_cse_simplify_operands): Use
7173 SET_REGNO_RAW instead of SET_REGNO.
7174 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
7175 SET_REGNO.
7176 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
7177 instead of SET_REGNO.
7178 * rtl.h (SET_REGNO_RAW): New macro.
7179
7180 2010-08-05 Eric Botcazou <ebotcazou@adacore.com>
7181
7182 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
7183 computations. Fix formatting issues.
7184 (num_sign_bit_copies1): Likewise.
7185 (canonicalize_condition): Likewise.
7186
7187 2010-08-05 Richard Henderson <rth@redhat.com>
7188
7189 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
7190 (floor_log2): Use clz_hwi.
7191 (exact_log2): Use ctz_hwi.
7192 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
7193 * builtins.c (fold_builtin_bitop): Use them.
7194 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
7195 * combine.c (get_pos_from_mask): Use ctz_hwi.
7196 * double-int.c (double_int_ctz): Likewise.
7197 * explow.c (force_reg): Likewise.
7198 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
7199
7200 2010-08-05 Richard Henderson <rth@redhat.com>
7201
7202 PR target/45189
7203 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
7204 the alignment constant is properly sign-extended.
7205
7206 2010-08-05 Richard Guenther <rguenther@suse.de>
7207
7208 * expr.c (store_expr): Use emit_block_move only if both
7209 source and target are MEMs. Use store_bit_field if only
7210 the target is a MEM.
7211
7212 2010-08-05 Richard Henderson <rth@redhat.com>
7213
7214 PR debug/45188
7215 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
7216 (INCOMING_RETURN_ADDR_RTX): Likewise.
7217 (dwarf2out_do_frame): Remove conditional compilation.
7218 (dwarf2out_frame_init): Likewise.
7219
7220 2010-08-05 Nicolas Setton <setton@adacore.com>
7221
7222 * gcov.c (flag_display_progress): New static variable.
7223 (main): Display progress info on standard output if requested.
7224 (options): Add -d/--display-progress.
7225 (print_usage): Print them.
7226 (process_args): Handle them.
7227 * doc/gcov.texi: Document them.
7228
7229 2010-08-05 Martin Jambor <mjambor@suse.cz>
7230
7231 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
7232 (ipcp_insert_stage): Redirect only edges not flagged with
7233 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
7234 discovered constants.
7235
7236 2010-08-05 Martin Jambor <mjambor@suse.cz>
7237
7238 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
7239 (struct ipa_param_descriptor): New fields types and
7240 cannot_devirtualize.
7241 (ipa_param_cannot_devirtualize_p): New function.
7242 (ipa_param_types_vec_empty): Likewise.
7243 (ipa_make_edge_direct_to_target): Declare.
7244 * ipa-cp.c: Fixed first stage driver name in initial comment,
7245 described devirtualization there too.
7246 (ipcp_analyze_node): Call ipa_analyze_params_uses.
7247 (ipcp_print_all_lattices): Print devirtualization info.
7248 (ipa_set_param_cannot_devirtualize): New function.
7249 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
7250 lattice to BOTTOM.
7251 (ipcp_init_stage): Merged into...
7252 (ipcp_generate_summary): ...its caller.
7253 (ipcp_change_tops_to_bottom): Also process type lists.
7254 (ipcp_add_param_type): New function.
7255 (ipcp_copy_types): Likewise.
7256 (ipcp_propagate_types): Likewise.
7257 (ipcp_propagate_stage): Also propagate types.
7258 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
7259 Also return true if propagated types require it.
7260 (ipcp_update_callgraph): Dump redirection info.
7261 (ipcp_process_devirtualization_opportunities): New function.
7262 (ipcp_const_param_count): Include known type information.
7263 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
7264 on new node. Fixed formatting.
7265 * ipa-prop.c (make_edge_direct_to_target): Renamed to
7266 ipa_make_edge_direct_to_target and changed all callers. Made
7267 externally visible.
7268 (ipa_node_duplication_hook): Duplicate types vector.
7269 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
7270 redirect outgoing calls for which we can't get a decl from the
7271 statement. Check that we can get a decl from the call statement.
7272 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
7273 ipa_analyze_params_uses only when ipa-cp is disabled.
7274 * tree-inline.c (get_indirect_callee_fndecl): Removed.
7275 (expand_call_inline): Do not call get_indirect_callee_fndecl.
7276 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
7277 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
7278
7279 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
7280
7281 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
7282 temporary. Emit move from temporary to accum, so REG_EQUAL note will
7283 be attached to this insn in correct mode.
7284
7285 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
7286
7287 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
7288 using REGNO of base_reg directly.
7289
7290 2010-08-05 Jie Zhang <jie@codesourcery.com>
7291
7292 PR tree-optimization/45144
7293 * tree-sra.c (type_consists_of_records_p): Return false
7294 if the record contains bit-field.
7295
7296 2010-08-04 Richard Henderson <rth@redhat.com>
7297
7298 * config/i386/i386.c (struct ix86_frame): Remove padding and
7299 to_allocate members.
7300 (ix86_compute_frame_layout): Don't store them.
7301 (ix86_can_use_return_insn_p): Use a more direct and more obviously
7302 correct condition for the position of the stack pointer.
7303 (ix86_expand_prologue): Compute remaining stack allocation based
7304 on the ultimate stack pointer offset.
7305 (ix86_expand_epilogue): Use more obvious expressions testing for
7306 the stack pointer already pointing to the saved registers.
7307
7308 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
7309 duplication deconstructing the frame pointer. Simplify
7310 deallocation of the local stack frame.
7311
7312 * reg-notes.def (CFA_EXPRESSION): New.
7313 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7314 (dwarf2out_frame_debug_cfa_expression): New.
7315 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
7316
7317 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
7318 * config/i386/i386.c (ix86_expand_prologue): Set it.
7319 (ix86_expand_epilogue): Clear it.
7320 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
7321 context, add REG_CFA_EXPRESSION notes.
7322
7323 * config/i386/i386.h (struct machine_frame_state): Rename from
7324 machine_cfa_state. Add members tracking SP and FP regardless
7325 of the current CFA register.
7326 (ix86_cfa_state): Remove.
7327 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
7328 and sse_reg_save_offset members.
7329 (ix86_compute_frame_layout): Set them.
7330 (gen_push): Increment sp_offset too.
7331 (choose_baseaddr_len, choose_baseaddr): New.
7332 (ix86_emit_save_reg_using_mov): New.
7333 (ix86_emit_save_regs_using_mov): Use it.
7334 (ix86_emit_save_sse_regs_using_mov): Likewise.
7335 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
7336 compare vs the saved red_zone_offset.
7337 (pro_epilogue_adjust_stack): Adjust sp_offset.
7338 (ix86_adjust_stack_and_probe): Likewise.
7339 (ix86_expand_prologue): Set up, use, and validate the new
7340 frame_state_info members. Use gen_frame_mem.
7341 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
7342 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
7343 new frame_state_info members.
7344 (ix86_emit_leave): Likewise.
7345 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
7346 out-of-range stack pointer offsets here.
7347 (ix86_emit_restore_sse_regs_using_mov): Likewise.
7348 (ix86_expand_epilogue): Use and validate the new frame_state_info
7349 members. Break up and simplify the logic selecting the
7350 restore_regs_via_mov code path. Ensure that there will be no
7351 out-of-range stack pointer offsets.
7352
7353 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
7354
7355 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
7356 argument name to reflect the expected tree; fix indentation.
7357 (ix86_asm_output_function_label): Output the entire 32-bit
7358 ms_hook here as bytes ...
7359 (ix86_expand_prologue): ... not here as insns. Attach the
7360 unwind info for the ms_hook to a blockage insn.
7361 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
7362 (ix86_ms_bitfield_layout_p): Fix indentation.
7363 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
7364
7365 * config/i386/i386.c (ix86_using_red_zone): New.
7366 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
7367 ix86_expand_prologue, ix86_force_to_memory): Use it.
7368
7369 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
7370 saving the int registers.
7371
7372 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
7373 and DWARF2_UNWIND_INFO conditional compilation.
7374
7375 2010-08-04 Richard Henderson <rth@redhat.com>
7376
7377 PR debug/45171
7378 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
7379 an is_naming_typedef_decl.
7380
7381 2010-08-04 Bernd Schmidt <bernds@codesourcery.com>
7382
7383 PR rtl-optimization/45162
7384 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
7385 * dce.c (word_dce_process_block): Likewise.
7386
7387 2010-08-04 Steve Ellcey <sje@cup.hp.com>
7388
7389 PR target/44583
7390 * config/ia64/constraints.md (Z): New.
7391 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
7392 (xfreg_or_signed_fp01_operand): New.
7393 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
7394 with fr_reg_or_signed_fp01_operand and constraint G with Z.
7395 (subsf3): Ditto.
7396 (*maddsf4): Ditto.
7397 (*msubsf4): Ditto.
7398 (adddf3): Ditto.
7399 (adddf3_trunc): Ditto.
7400 (subdf3): Ditto.
7401 (*subdf3_trunc): Ditto.
7402 (*madddf4): Ditto.
7403 (*madddf4_trunc): Ditto.
7404 (*msubdf4): Ditto.
7405 (*msubdf4_trunc): Ditto.
7406 (addxf3): Replace xfreg_or_fp01_operand with
7407 xfreg_or_signed_fp01_operand and constraint G with Z.
7408 (*addxf3_truncsf): Ditto.
7409 (*addxf3_truncdf): Ditto.
7410 (subxf3): Ditto.
7411 (*subxf3_truncsf): Ditto.
7412 (*subxf3_truncdf): Ditto.
7413 (*maddxf4): Ditto.
7414 (*maddxf4_truncsf): Ditto.
7415 (*maddxf4_truncdf): Ditto.
7416 (*msubxf4): Ditto.
7417 (*msubxf4_truncsf): Ditto.
7418 (*msubxf4_truncdf): Ditto.
7419
7420 2010-08-04 Richard Guenther <rguenther@suse.de>
7421
7422 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
7423 if either alias-set is zero.
7424
7425 2010-08-04 Richard Guenther <rguenther@suse.de>
7426
7427 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
7428 * tree-ssa-ccp.c: ... here.
7429 * tree-ssa-copy.c: ... and here.
7430 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
7431 value_range_t): Move ...
7432 * tree-vrp.c: ... here.
7433 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
7434 (substitute_and_fold): Adjust prototype.
7435 * tree-ssa-propagate.c (replace_uses_in): Adjust.
7436 (replace_phi_args_in): Likewise.
7437 (substitute_and_fold): Take callback to query lattice instead
7438 of pointer to lattice. Replace SSA name defs with lattice
7439 values first.
7440 * tree-ssa-ccp.c (ccp_finalize): Adjust.
7441 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
7442 (get_value): New function.
7443 (fini_copy_prop): Adjust.
7444 * tree-vrp.c (vrp_finalize): Adjust.
7445
7446 2010-08-04 Richard Guenther <rguenther@suse.de>
7447
7448 PR middle-end/45176
7449 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
7450 points-to set for original MEM_REF.
7451
7452 2010-08-04 Richard Guenther <rguenther@suse.de>
7453
7454 * tree-ssa-ccp.c (get_constant_value): New function.
7455 (get_rhs_assign_op_for_ccp): Remove.
7456 (valueize_op): New function.
7457 (ccp_fold): Use get_constant_value and valueize_op.
7458 (fold_const_aggregate_ref): Likewise.
7459 (ccp_fold_stmt): Likewise.
7460 (visit_assignment): Simplify.
7461
7462 2010-08-04 Richard Guenther <rguenther@suse.de>
7463
7464 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
7465 * double-int.h (double_int_ctz): Declare.
7466 * double-int.c (double_int_ctz): New function.
7467
7468 2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
7469
7470 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
7471 Define.
7472 picochip_expand_movmemhi : Expand movmem pattern.
7473 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
7474 Declare.
7475 * config/picochip/picochip.md (movmemhi) : New pattern.
7476
7477 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
7478
7479 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
7480
7481 2010-08-03 Bernd Schmidt <bernds@codesourcery.com>
7482
7483 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
7484 NEG as operand of a MULT by merging it with the other operand.
7485 * combine.c (make_compound_operation): Use trunc_int_for_mode when
7486 generating a MULT with constant. Canonicalize PLUS and MINUS involving
7487 MULT.
7488 * config/arm/constraints.md (M): Examine only 32 bits of a
7489 HOST_WIDE_INT.
7490 * config/arm/predicates.md (power_of_two_operand): Likewise.
7491
7492 2010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7493
7494 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
7495 non-NOTE insns.
7496
7497 2010-08-03 Jan Hubicka <jh@suse.cz>
7498
7499 * ipa-split.c (struct split_point): Add split_part_set_retval.
7500 (find_retval): Forward declare.
7501 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
7502 (consider_split): Compute current->split_part_set_retval.
7503 (visit_bb): Do not look into return value.
7504 (split_function): Handle !split_part_set_retval
7505
7506 2010-08-03 Martin Jambor <mjambor@suse.cz>
7507
7508 * tree-sra.c (completely_scalarize_record): New parameter REF, create
7509 its own access->expr intead of using build_ref_for_offset.
7510
7511 2010-08-03 Joseph Myers <joseph@codesourcery.com>
7512
7513 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
7514 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
7515 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
7516 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
7517 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
7518 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
7519 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
7520 DEFAULT_SWITCH_TAKES_ARG.
7521 * config/rx/rx.opt (-patch=): Remove option.
7522 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
7523 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
7524 * doc/invoke.texi (RX Options): Remove -patch=.
7525 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
7526 (option_map): Remove --profile-blocks, --quiet and --silent.
7527
7528 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
7529
7530 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
7531 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
7532 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
7533 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7534 Update calls to ix86_expand_compare and ix86_expand_branch.
7535 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
7536 ix86_expand_compare.
7537 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
7538 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7539 Make static.
7540 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
7541 and ix86_compare_op1. Update calls to ix86_expand_compare.
7542 (ix86_expand_int_movcc): Ditto.
7543 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
7544 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
7545 (ix86_expand_setcc): Ditto.
7546 (ix86_expand_compare): Remove prototype.
7547 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
7548 ix86_compare_op0 and ix86_compare_op1. Update calls
7549 to ix86_expand_branch to directly pass operands[1] and operands[2].
7550 (cbranchxf4): Ditto.
7551 (cbranch<MODEF:mode>4): Ditto.
7552 (cbranchcc4): Ditto.
7553 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
7554 Update calls to ix86_expand_setcc to directly pass operands[2] and
7555 operands[3].
7556 (cstorexf4): Ditto.
7557 (cstore<MODEF:mode>4): Ditto.
7558 (cstorecc4): Ditto.
7559
7560 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
7561
7562 PR target/45063
7563 * caller-save.c (save_call_clobbered_regs): Remove regs from
7564 hard_regs_saved when they are set.
7565
7566 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
7567
7568 PR target/41089
7569 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
7570 as volatile.
7571
7572 2010-08-02 Sebastian Pop <sebastian.pop@amd.com>
7573
7574 * common.opt (ftree-loop-distribute-patterns): New.
7575 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
7576 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
7577 at -O3.
7578 * tree-data-ref.c (stores_zero_from_loop): New.
7579 * tree-data-ref.h (stores_zero_from_loop): Declared.
7580 * tree-loop-distribution.c (tree_loop_distribution): Call
7581 stores_zero_from_loop.
7582 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
7583
7584 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
7585
7586 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
7587 into account.
7588
7589 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
7590 * config/arm/arm.c (thumb1_code): New variable.
7591 (arm_override_options): Set it.
7592 (thumb1_final_prescan_insn): Keep track of condition code status.
7593 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
7594 jumps that depend on them.
7595 * config/arm/arm.h (thumb1_code): Declare variable.
7596 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
7597 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
7598 thumb1_cc_mode.
7599 (CC_STATUS_INIT): New macro.
7600 * config/arm/constraints.md (Pd): New constraint.
7601 * config/arm/predicates.md (noov_comparison_operator): New predicate.
7602 * config/arm/arm.md (is_thumb1): New define_attr.
7603 (conds): Set default to "clob" when generating Thumb1 code.
7604 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
7605 code are set. Use two-operand assembly syntax.
7606 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
7607 pattern.
7608 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
7609 codes are set. Use two-operand assembly syntax.
7610 (zero_extendhisi splitter): Remove constraints.
7611 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
7612 thumb1_movsf_insn): Set conds attribute as appropriate.
7613 (cbranchsi4_insn): Use condition code status from struct
7614 machine_function to determine whether the comparison can be eliminated.
7615 Discourage the alternative using high registers.
7616 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
7617 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
7618 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
7619 subsi3_cbranch): Delete.
7620 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
7621 one subtract and one cbranch insn.
7622
7623 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
7624 thumb2_movdf_soft_insn): Delete patterns.
7625 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
7626 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
7627 (pool_range, neg_pool_range): Use them to define defaults.
7628 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
7629 and allow for TARGET_32BIT.
7630
7631 PR target/40457
7632 * config/arm/arm.h (arm_regs_in_sequence): Declare.
7633 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
7634 load_multiple_sequence, store_multiple_sequence): Delete
7635 declarations.
7636 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
7637 declarations.
7638 * config/arm/ldmstm.md: New file.
7639 * config/arm/arm.c (arm_regs_in_sequence): New array.
7640 (load_multiple_sequence): Now static. New args SAVED_ORDER,
7641 CHECK_REGS. All callers changed.
7642 If SAVED_ORDER is nonnull, copy the computed order into it.
7643 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
7644 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
7645 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
7646 If SAVED_ORDER is nonnull, copy the computed order into it.
7647 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
7648 like REGS. Handle Thumb mode.
7649 (arm_gen_load_multiple_1): New function, broken out of
7650 arm_gen_load_multiple.
7651 (arm_gen_store_multiple_1): New function, broken out of
7652 arm_gen_store_multiple.
7653 (arm_gen_multiple_op): New function, with code from
7654 arm_gen_load_multiple and arm_gen_store_multiple moved here.
7655 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
7656 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
7657 changed.
7658 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
7659 * config/arm/predicates.md (commutative_binary_operator): New.
7660 (load_multiple_operation, store_multiple_operation): Handle more
7661 variants of these patterns with different starting offsets. Handle
7662 Thumb-1.
7663 * config/arm/arm.md: Include "ldmstm.md".
7664 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
7665 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
7666 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
7667 peepholes): Delete.
7668 * config/arm/ldmstm.md: New file.
7669 * config/arm/arm-ldmstm.ml: New file.
7670
7671 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
7672 if statement which adds extra costs to frame-related expressions.
7673
7674 2010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7675
7676 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
7677
7678 2010-08-01 Uros Bizjak <ubizjak@gmail.com>
7679
7680 PR target/45142
7681 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
7682 alternative 2.
7683 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
7684 split V4SI operands.
7685
7686 2010-08-01 Anatoly Sokolov <aesok@post.ru>
7687
7688 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7689 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
7690 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
7691 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
7692
7693 2010-07-31 Kai Tietz <kai.tietz@onevision.com>
7694
7695 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
7696 LOCAL_INCLUDE_DIR.
7697
7698 2010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
7699
7700 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
7701 used in the call to optab_for_tree_code. Fix the second
7702 is_widening_mult_p call. Check that both unwidened operands
7703 have the same sign.
7704
7705 2010-07-31 John Tytgat <John.Tytgat@aaug.net>
7706
7707 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
7708
7709 2010-07-31 Anatoly Sokolov <aesok@post.ru>
7710
7711 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7712
7713 2010-07-30 DJ Delorie <dj@redhat.com>
7714
7715 * config/rx/predicates.md (rx_constshift_operand): New.
7716 * config/rx/rx.md (zs_cond): New.
7717 (cbranchsi4): Remove mode.
7718 (*cbranchsi4_<code>): Likewise.
7719 (*tstbranchsi4_<code>): New.
7720 (*tstbranchsi4r_<code>): New.
7721 (*tstbranchsi4m_eq): New.
7722 (*tstbranchsi4m_ne): New.
7723 (cbranchsf4): Remove mode.
7724 (*cbranchsf4_<code>): Likewise.
7725
7726 2010-07-30 Bernd Schmidt <bernds@codesourcery.com>
7727
7728 * rtlanal.c (simplify_subreg_regno): Don't treat
7729 HARD_FRAME_POINTER_REGNUM specially.
7730
7731 2010-07-30 Joseph Myers <joseph@codesourcery.com>
7732
7733 * common.opt (-G): Don't define option here.
7734 * config/g.opt: New.
7735 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
7736 rs6000/powerpc and score targets.
7737 * opts.c (common_handle_option): Don't handle -G here.
7738 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
7739 * config/frv/frv.c (frv_handle_option): Handle -G.
7740 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
7741 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
7742 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
7743 * config/mips/mips.c (mips_handle_option): Handle -G.
7744 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
7745 * config/score/score.c (score_handle_option): Handle -G.
7746
7747 2010-07-30 Anatoly Sokolov <aesok@post.ru>
7748
7749 * config/mmix/mmix.c: Include basic-block.h.
7750
7751 2010-07-30 Jakub Jelinek <jakub@redhat.com>
7752
7753 PR debug/45055
7754 PR rtl-optimization/45137
7755 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
7756 prototypes.
7757 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
7758 New functions.
7759 * combine.c (next_nonnote_nondebug_insn): Removed.
7760 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
7761 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
7762 * sched-deps.c (sched_analyze_insn): Likewise.
7763 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
7764 * rtlanal.c (canonicalize_condition): Likewise.
7765 * postreload.c (reload_combine_recognize_pattern): Likewise.
7766 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
7767
7768 2010-07-29 Uros Bizjak <ubizjak@gmail.com>
7769
7770 * config/i386/i386.md (int_cond): Remove code iterator.
7771 (fp_cond): Ditto.
7772 (cbranch<mode>4): Use ordered_comparison_operator predicate
7773 for operator0.
7774 (cstore<mode>4): Ditto for operator1.
7775 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
7776 (add<mode>cc): ditto.
7777
7778 2010-07-30 Richard Guenther <rguenther@suse.de>
7779
7780 PR middle-end/45141
7781 * expr.c (expand_expr_real_1): Check for not handled base address.
7782
7783 2010-07-30 Richard Guenther <rguenther@suse.de>
7784
7785 * ipa-prop.c (ipa_modify_formal_parameters): Use
7786 build_distinct_type_copy.
7787
7788 2010-07-30 Anthony Green <green@moxielogic.com>
7789
7790 * config/moxie/rtems.h: New file.
7791 * config.gcc: Add moxie-rtems support.
7792
7793 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
7794
7795 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
7796 df flags as in run_fast_df_dce.
7797
7798 2010-07-29 Jakub Jelinek <jakub@redhat.com>
7799
7800 Revert:
7801 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
7802
7803 * rtl.def (NOTE): Swap operands 4 and 5.
7804 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
7805 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
7806 Adjust accordingly.
7807 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
7808
7809 2010-07-29 Jakub Jelinek <jakub@redhat.com>
7810
7811 PR debug/45110
7812 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
7813 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
7814 (gen_subprogram_die): Likewise. Remove it when removing declaration's
7815 formal parameters.
7816 (gen_decl_die): Change return type to dw_die_ref, return what
7817 gen_formal_parameter_die returned.
7818
7819 2010-07-29 Martin Jambor <mjambor@suse.cz>
7820
7821 * dbgcnt.def (eipa_sra): New counter.
7822 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
7823
7824 2010-07-29 Xinliang David Li <davidxl@google.com>
7825
7826 PR bootstrap/45119
7827 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
7828 in revision 162652.
7829
7830 2010-07-29 Richard Guenther <rguenther@suse.de>
7831
7832 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
7833 (TV_TREE_STORE_CCP): Likewise.
7834 (TV_TREE_REDPHI): Likewise.
7835
7836 2010-07-29 Richard Guenther <rguenther@suse.de>
7837
7838 * double-int.h (double_int_and_not): New function.
7839 * combine.c (try_combine): Use it.
7840 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
7841
7842 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
7843
7844 PR rtl-optimization/42575
7845 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
7846 Argument AU removed. All callers changed. Ignore artificial refs.
7847 Use return value of df_word_lr_simulate_defs to decide whether an insn
7848 is necessary.
7849 (fast_dce): Rename arg to WORD_LEVEL.
7850 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
7851 static.
7852 (pass_fast_rtl_byte_dce): Delete.
7853 * dce.h (run_word_dce): Declare.
7854 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
7855 All callers changed. Simplify code to only deal with two-word regs.
7856 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
7857 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
7858 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
7859 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
7860 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
7861 (df_word_lr_mark_ref): Declare.
7862 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
7863 df_word_lr_simulate_uses): Declare or rename from byte variants.
7864 (df_byte_lr_simulate_artificial_refs_at_top,
7865 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7866 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
7867 declarations.
7868 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
7869 (enum df_mm): Delete.
7870 * df-byte-scan.c: Delete file.
7871 * df-problems.c (df_word_lr_problem_data): Renamed from
7872 df_byte_lr_problem_data, all members deleted except for
7873 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
7874 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
7875 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7876 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
7877 df_byte_lr_confluence_0): Delete functions.
7878 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
7879 callers changed.
7880 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
7881 Don't initialize members that were deleted, don't try to discover data
7882 about registers. Ignore hard regs.
7883 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
7884 (df_word_lr_mark_ref): New function.
7885 (df_word_lr_bb_local_compute): Renamed from
7886 df_byte_bb_lr_local_compute; all callers changed. Use
7887 df_word_lr_mark_ref. Assert that artificial refs don't include
7888 pseudos. Ignore hard registers.
7889 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
7890 Assert that exit block uses don't contain pseudos.
7891 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
7892 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
7893 callers changed. Ignore hard regs.
7894 (df_word_lr_transfer_function): Renamed from
7895 df_byte_lr_transfer_function; all callers changed.
7896 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
7897 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
7898 changed.
7899 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
7900 callers changed.
7901 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
7902 confluence operator 0 set to NULL.
7903 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
7904 callers changed.
7905 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
7906 Return bool, true if bitmap changed or insn otherwise necessary.
7907 All callers changed. Simplify using df_word_lr_mark_ref.
7908 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
7909 all callers changed. Simplify using df_word_lr_mark_ref.
7910 * lower-subreg.c: Include "dce.h"
7911 (decompose_multiword_subregs): Call run_word_dce if df available.
7912 * Makefile.in (lower-subreg.o): Adjust dependencies.
7913 (df-byte-scan.o): Delete.
7914 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
7915
7916 2010-07-29 Richard Guenther <rguenther@suse.de>
7917
7918 * tree.c (build_vector): Assert that the vector constant
7919 has enough elements.
7920 (build_vector_from_ctor): Pad with trailing zeros.
7921
7922 2010-07-29 Richard Guenther <rguenther@suse.de>
7923
7924 PR tree-optimization/45120
7925 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7926 Handle offset in DEREFs properly.
7927 (get_constraint_for_1): Handle MEM_REF offset properly.
7928
7929 2010-07-29 Richard Guenther <rguenther@suse.de>
7930
7931 PR middle-end/45034
7932 * convert.c (convert_to_integer): Always use an unsigned
7933 type for narrowed negate and bitwise not.
7934
7935 2010-07-29 Ira Rosen <irar@il.ibm.com>
7936
7937 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
7938 to outer loop when creating reduction epilogue for double reduction,
7939 and switch back to the inner loop when updating the phi nodes.
7940 Update uses of outer loop exit phi nodes in double reduction (instead
7941 of uses of reduction).
7942
7943 2010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
7944
7945 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
7946 popcount on power7 and parity on power6 systems.
7947 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
7948 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
7949 instructions.
7950
7951 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
7952 (UNSPEC_PARITY): Ditto.
7953 (SFDF): New iterator for SF/DF.
7954 (rreg2): New mode attribute for floating register constraint.
7955 (TARGET_FLOAT): New mode attribute for whether single/double float
7956 is supported.
7957 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
7958 pattern.
7959 (parity<mode>2_cmpb): New insn for parity on power6 and newer
7960 machines.
7961 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
7962 pattern. Add support for fcpsgn instruction added in power6.
7963 (copysignsf3): Delete.
7964 (copysigndf3): Delete.
7965 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
7966 instead of if_then_else in RTL to avoid problems with -0.
7967
7968 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
7969 of if_then_else to mirror scalar code.
7970 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
7971 rs6000.md.
7972
7973 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
7974 instead of if_then_else.
7975
7976 2010-07-28 Xinliang David Li <davidxl@google.com>
7977
7978 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
7979 (dump_cand): Dump var_before/after.
7980 (htab_inv_expr_eq): New function.
7981 (htab_inv_expr_hash): New function.
7982 (tree_ssa_iv_optimize_init): Support pseudo invariants.
7983 (add_candidate_1): consider base type precision.
7984 (set_use_iv_cost): New parameter.
7985 (adjust_setup_cost): Use profile information.
7986 (get_address_cost): Do not hard code width in computing address
7987 offset limits.
7988 (compare_aff_trees): New function.
7989 (get_loop_invariant_expr_id): New function.
7990 (get_computation_cost_at): New parameter and use profile information.
7991 (get_computation_cost): New parameter.
7992 (determine_use_iv_cost_generic): Pass new parameter.
7993 (determine_use_iv_cost_address): Ditto.
7994 (determine_use_iv_cost_condition): Ditto.
7995 (autoinc_possible_for_pair): Ditto.
7996 (determine_use_iv_costs): More dumps.
7997 (iv_ca_get_num_inv_exprs): New function.
7998 (iv_ca_recount_cost): Consider loop invariants in register pressure
7999 cost.
8000 (iv_ca_add_use): New parameter.
8001 (iv_ca_dump): Better dumping.
8002 (iv_ca_extend): New parameter.
8003 (try_add_cand_for): Attempt to get better partial solution.
8004 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
8005 (create_new-ivs): More dumps.
8006 (rewrite_use_compare): Ditto.
8007 (free_loop_data): More cleanup.
8008 (treee_ssa_iv_optimize_finalize): Ditto.
8009
8010 2010-07-28 Kai Tietz <kai.tietz@onevision.com>
8011
8012 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
8013 * config/i386/i386.c (ix86_profile_before_prologue): New.
8014 (override_options): Add special handling for -mfentry.
8015 (ix86_function_regparm): Likewise.
8016 (ix86_function_sseregparm): Likewise.
8017 (ix86_frame_pointer_required): Likewise.
8018 (ix86_expand_prologue): Check for ms_hook_prologue.
8019 (x86_function_profiler): Adjust mcount output.
8020 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
8021 * config/i386/i386.opt (mfentry): New.
8022 * doc/invoke.texi (mfentry): Add documentation.
8023 * doc/tm.texi: Regenerated..
8024 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
8025 * final.c (final_start_function): Replace macro
8026 PROFILE_BEFORE_PROLOGUE by target hook.
8027 * function.c (thread_prologue_and_epilogue_insns): Likewise.
8028 * target.def (profile_before_prologue): New hook.
8029 * targhooks.c (default_profile_before_prologue): New.
8030 * targhooks.h (default_profile_before_prologue): New.
8031
8032 2010-07-28 Jakub Jelinek <jakub@redhat.com>
8033
8034 PR debug/45105
8035 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
8036
8037 PR debug/45103
8038 * dwarf2out.c (dwarf2out_var_location): Always consider
8039 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
8040
8041 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
8042
8043 PR rtl-optimization/45107
8044 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
8045
8046 2010-07-28 Richard Guenther <rguenther@suse.de>
8047
8048 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
8049 (set_lattice_value): Do not query an old default value.
8050 (get_value_for_expr): New function. Properly canonicalize
8051 float values.
8052 (ccp_visit_phi_node): Use it.
8053
8054 2010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
8055
8056 * config/arm/arm.c (arm_pcs_default): Remove static.
8057 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
8058 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
8059 (arm_pcs_default): Declare.
8060
8061 2010-07-28 Iain Sandoe <iains@gcc.gnu.org>
8062
8063 * config/rs6000/rs6000.c (rs6000_override_options):
8064 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
8065 ... to darwin_rs6000_override_options.
8066 (rs6000_return_in_memory): Update preceding comment for darwin
8067 64 bit ABI. Use TARGET_MACHO inline.
8068 (rs6000_darwin64_struct_check_p): New.
8069 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
8070 (function_arg): Likewise.
8071 (rs6000_arg_partial_bytes): Likewise.
8072 (rs6000_function_value): Likewise.
8073
8074 2010-07-28 Andi Kleen <ak@linux.intel.com>
8075
8076 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
8077
8078 2010-07-28 Richard Guenther <rguenther@suse.de>
8079
8080 PR middle-end/44903
8081 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
8082 targets try harder to not generate unaligned accesses.
8083
8084 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
8085
8086 PR rtl-optimization/45101
8087 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
8088 for gcse-las.
8089
8090 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
8091
8092 PR tree-optimization/44885
8093 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
8094 with non-aliased component.
8095
8096 2010-07-28 Joseph Myers <joseph@codesourcery.com>
8097
8098 * config/darwin-driver.c (SWITCH_TAKES_ARG,
8099 WORD_SWITCH_TAKES_ARG): Remove.
8100 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
8101 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
8102 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
8103 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
8104 definitions from gcc.c.
8105 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
8106 defaults.h.
8107 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
8108 Move to defaults.h.
8109 * opts-common.c: Include tm.h.
8110 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
8111 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
8112 Handle more than one argument. Set canonical_option_num_elements.
8113 (decode_cmdline_options_to_array): Set
8114 canonical_option_num_elements and trailing elements of
8115 canonical_option.
8116 * opts.h (struct cl_decoded_option): Allow four elements in
8117 canonical_option. Add field canonical_option_num_elements.
8118 * Makefile.in (opts-common.o): Update dependencies.
8119
8120 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
8121
8122 PR middle-end/44790
8123 PR middle-end/44993
8124 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
8125 sure the base has address_mode before adding the offset.
8126
8127 2010-07-27 Xinliang David Li <davidxl@google.com>
8128
8129 * tree-flow.h (create_mem_ref): Add one new parameter.
8130 * tree-ssa-address.c (create_mem_ref): New parameter.
8131 (addr_to_parts): Ditto.
8132 (move_variant_to_index): New function.
8133 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
8134
8135 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
8136
8137 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
8138 4 and 5.
8139 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
8140 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
8141 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
8142 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
8143 CODE_LABELs and NOTEs.
8144 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
8145 * combine.c (try_combine): Likewise.
8146 * ira.c (setup_prohibited_mode_move_regs): Likewise.
8147 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
8148
8149 2010-07-27 Joseph Myers <joseph@codesourcery.com>
8150
8151 * coretypes.h (struct cl_option_handlers): Declare.
8152 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
8153 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
8154 * langhooks-def.h (lhd_handle_option): Declare.
8155 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
8156 * langhooks.c (lhd_handle_option): New.
8157 * langhooks.h (struct lang_hooks): Update prototype and return
8158 value type of handle_option hook.
8159 * optc-gen.awk: Generate target_flags_explicit definition for the
8160 driver.
8161 * opts-common.c: Include diagnostic.h.
8162 (handle_option): Move from opts.c. Update prototype and return
8163 value type. Use handlers structure.
8164 (read_cmdline_option): Move from opts.c. Update prototype. Use
8165 handlers structure.
8166 (set_option): Move from opts.c.
8167 * opts.c (common_handle_option): Update prototype and return value
8168 type. Update calls to handle_option and enable_warning_as_error.
8169 (unknown_option_callback, post_handling_callback,
8170 lang_handle_option, target_handle_option): New.
8171 (handle_option, read_cmdline_option): Move to opts-common.c.
8172 (read_cmdline_options): Update prototype. Update call to
8173 read_cmdline_option.
8174 (decode_options): Initialize and use handlers structure.
8175 (set_option): Move to opts-common.c.
8176 (enable_warning_as_error): Update prototype. Update call to
8177 handle_option.
8178 * opts.h (struct cl_option_handler_func, struct
8179 cl_option_handlers): New.
8180 (handle_option, enable_warning_as_error): Update prototypes.
8181 (read_cmdline_option): Declare.
8182 * Makefile.in (opts-common.o): Update dependencies.
8183
8184 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8185
8186 * config/arm/arm.c (params.h): Include.
8187 (arm_override_options): Tune gcse-unrestricted-cost.
8188 * config/arm/t-arm (arm.o): Define dependencies.
8189
8190 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8191
8192 PR target/42495
8193 PR middle-end/42574
8194 * basic-block.h (get_dominated_to_depth): Declare.
8195 * dominance.c (get_dominated_to_depth): New function, use
8196 get_all_dominated_blocks as a base.
8197 (get_all_dominated_blocks): Use get_dominated_to_depth.
8198
8199 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
8200 (hoist_exprs): Remove.
8201 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
8202 (compute_code_hoist_vbeinout): Add debug print outs.
8203 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
8204
8205 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
8206 quadratic behavior.
8207 * params.h (MAX_HOIST_DEPTH): New macro.
8208 * doc/invoke.texi (max-hoist-depth): Document.
8209
8210 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8211
8212 PR rtl-optimization/40956
8213 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
8214 constants.
8215
8216 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8217
8218 PR target/42495
8219 PR middle-end/42574
8220 * config/arm/arm.c (legitimize_pic_address): Use
8221 gen_calculate_pic_address pattern to emit calculation of PIC address.
8222 (will_be_in_index_register): New function.
8223 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
8224 (thumb1_legitimate_address_p): Use it provided !strict_p.
8225 * config/arm/arm.md (calculate_pic_address): New expand and split.
8226
8227 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8228
8229 PR target/42495
8230 PR middle-end/42574
8231 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
8232 * config/arm/arm.md (define_split "J", define_split "K"): Make
8233 IRA/reload friendly.
8234
8235 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8236
8237 * gcse.c (insert_insn_end_basic_block): Update signature, remove
8238 unused checks.
8239 (pre_edge_insert, hoist_code): Update.
8240
8241 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8242
8243 PR target/42495
8244 PR middle-end/42574
8245 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
8246
8247 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8248
8249 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
8250
8251 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8252
8253 PR rtl-optimization/40956
8254 PR target/42495
8255 PR middle-end/42574
8256 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
8257 for hoisting.
8258 (hoist_code): Count occurences in current block too.
8259
8260 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8261
8262 * gcse.c (struct expr:max_distance): New field.
8263 (doing_code_hoisting_p): New static variable.
8264 (want_to_gcse_p): Change signature. Allow constrained hoisting of
8265 simple expressions, don't change behavior for PRE. Set max_distance.
8266 (insert_expr_in_table): Set new max_distance field.
8267 (hash_scan_set): Update.
8268 (hoist_expr_reaches_here_p): Stop search after max_distance
8269 instructions.
8270 (find_occr_in_bb): New static function. Use it in ...
8271 (hoist_code): Calculate sizes of basic block before any changes are
8272 done. Pass max_distance to hoist_expr_reaches_here_p.
8273 (one_code_hoisting_pass): Set doing_code_hoisting_p.
8274
8275 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
8276 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
8277 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
8278 macros.
8279 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
8280 Document.
8281
8282 2010-07-27 Jeff Law <law@redhat.com>
8283 Maxim Kuvyrkov <maxim@codesourcery.com>
8284
8285 * gcse.c (compute_transpout, transpout): Remove, move logic
8286 to prune_expressions.
8287 (compute_pre_data): Move pruning of trapping expressions ...
8288 (prune_expressions): ... here. New static function.
8289 (compute_code_hoist_data): Use it.
8290 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
8291
8292 2010-07-27 Xinliang David Li <davidxl@google.com>
8293
8294 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
8295 (rewrite_use_address): Adjust iv update position when needed.
8296
8297 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
8298
8299 * dbgcnt.def (hoist_insn): New debug counter.
8300 * gcse.c (hoist_code): Use it.
8301
8302 2010-07-27 Xinliang David Li <davidxl@google.com>
8303
8304 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
8305 (niter_for_single_dom_exit): Passes additional parameter.
8306 (iv_period): Fix comments.
8307 (may_eliminate_iv): Handles multiple exit loops properly.
8308 (free_tree_niter_desc): New function.
8309 (free_loop_data): Frees up loop iteration descriptors.
8310
8311 2010-07-27 Jakub Jelinek <jakub@redhat.com>
8312
8313 PR target/44542
8314 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
8315 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
8316 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
8317 (expand_one_var): Don't consider DECL_ALIGN for variables for
8318 which expand_one_stack_var_at has been already called.
8319
8320 PR testsuite/44701
8321 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
8322 constraints on IA-64.
8323
8324 2010-07-27 Jie Zhang <jie@codesourcery.com>
8325
8326 PR target/44290
8327 Revert:
8328 2010-07-23 Jie Zhang <jie@codesourcery.com>
8329
8330 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8331 false if ! tree_versionable_function_p.
8332
8333 2010-07-27 Jakub Jelinek <jakub@redhat.com>
8334
8335 * dwarf2out.c (add_data_member_location_attribute): Use
8336 add_AT_unsigned instead of add_AT_int if offset is non-negative.
8337
8338 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
8339
8340 * postreload.c (try_replace_in_use): New static function.
8341 (reload_combine_recognize_const_pattern): Use it here. Allow
8342 substituting into a final add insn, and substituting into a memory
8343 reference in an insn that sets the reg.
8344
8345 2010-07-27 Joseph Myers <joseph@codesourcery.com>
8346
8347 * common.opt (o): Add MissingArgError.
8348 * doc/options.texi (MissingArgError): Document.
8349 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
8350 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
8351 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
8352 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
8353 * langhooks.h (struct lang_hooks): Remove missing_argument.
8354 * optc-gen.awk: Handle MissingArgError and output new structure
8355 field initializers.
8356 * opts.c (read_cmdline_option): Use missing_argument_error field
8357 instead of missing_argument langhook.
8358 * opts.h (struct cl_option): Add missing_argument_error field.
8359 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
8360
8361 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
8362
8363 PR target/29090
8364 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
8365 Darwin64 ABI, for zero-sized objects.
8366
8367 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
8368
8369 PR target/35491
8370 PR target/29090
8371
8372 Merge from Apple local 4.2.1.
8373 2005-05-11 Stan Shebs <shebs@apple.com>
8374 Fix 64-bit varargs for Darwin (Radar 4028089).
8375 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
8376 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
8377 Add argument, add case for 8-byte register half-filled with a float.
8378 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
8379 single-precision floats specially.
8380
8381 2010-07-27 Ira Rosen <irar@il.ibm.com>
8382
8383 PR tree-optimization/44152
8384 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
8385 complex numbers for further check.
8386 (vect_supported_load_permutation_p): Check nodes with
8387 complex numbers.
8388
8389 2010-07-27 Joseph Myers <joseph@codesourcery.com>
8390
8391 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
8392 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
8393 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
8394 (LANG_HOOKS_INITIALIZER): Add new hooks.
8395 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
8396 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
8397 and complain_wrong_lang_p. Update init_options prototype.
8398 * c-objc-common.c (c_initialize_diagnostics): First call
8399 c_common_initialize_diagnostics.
8400 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
8401 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
8402 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
8403 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
8404 (hook_uint_void_0): New.
8405 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
8406 (hook_uint_void_0): New.
8407 * opts-common.c (decode_cmdline_option,
8408 decode_cmdline_options_to_array): Also fill in canonical_option field.
8409 * opts.c (complain_wrong_lang): Use langhook to determine whether
8410 to complain instead of special-casing LTO.
8411 (decode_options): Separate lang_mask determination with
8412 option_lang_mask hook from call of init_options hook.
8413 * opts.h (struct cl_decoded_option): Add canonical_option.
8414
8415 2010-07-27 Jakub Jelinek <jakub@redhat.com>
8416
8417 PR tree-optimization/45083
8418 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
8419
8420 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
8421
8422 * postreload.c (reload_combine_recognize_const_pattern): Move test
8423 for limiting the insn movement to the right scope.
8424
8425 PR rtl-optimization/45051
8426 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
8427 than reg_mentioned_p.
8428
8429 2010-07-26 Richard Henderson <rth@redhat.com>
8430
8431 PR target/44132
8432 * tree-emutls.c: New file.
8433 * Makefile.in (OBJS-common): Add it.
8434 * tree-pass.h (pass_ipa_lower_emutls): Declare.
8435 * passes.c (init_optimization_passes): Add it.
8436
8437 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
8438 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
8439 * expr.c (emutls_var_address): Delete.
8440 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
8441 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
8442 (emutls_finish): Delete.
8443 * toplev.c (compile_file): Don't call it.
8444 * tree.h (emutls_decl): Delete.
8445 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
8446 (emutls_finish, emutls_finalize_control_var): Delete.
8447 (emutls_object_type): Move to tree-emutls.c.
8448 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
8449 default_emutls_var_fields, get_emutls_object_type,
8450 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
8451 default_emutls_var_init): Likewise.
8452 (get_variable_section): Don't special case emutls.
8453 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
8454 default_elf_select_section, default_unique_section,
8455 default_encode_section_info): Likewise.
8456 * varpool.c (decide_is_variable_needed): Likewise.
8457 * gimple-iterator.c (update_call_edge_frequencies): New
8458 (gsi_insert_on_edge_immediate): Use it.
8459 (gsi_insert_seq_on_edge_immediate): Likewise.
8460 (gsi_commit_one_edge_insert): Likewise.
8461
8462 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
8463 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
8464 (x86_64_elf_unique_section): Likewise.
8465
8466 2010-07-26 Jan Hubicka <jh@suse.cz>
8467
8468 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
8469 GTY((skip)).
8470
8471 2010-07-26 Anatoly Sokolov <aesok@post.ru>
8472
8473 * target.def (output_source_filename): New hook.
8474 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
8475 * doc/tm.texi: Regenerate.
8476 * toplev.c (output_file_directive) Remove function.
8477 * toplev.h (output_file_directive) Remove.
8478 * output.h (default_asm_output_source_filename,
8479 output_file_directive): Declare.
8480 * varasm.h (default_asm_output_source_filename,
8481 output_file_directive): New functions.
8482
8483 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
8484 * config/mips/mips-protos.h (mips_output_filename): Remove.
8485 * config/mips/mips.c (mips_output_filename): Make Static.
8486 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
8487
8488 2010-07-26 Richard Guenther <rguenther@suse.de>
8489
8490 PR tree-optimization/43784
8491 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
8492 if the destination is used by the call.
8493
8494 2010-07-26 Richard Guenther <rguenther@suse.de>
8495
8496 PR middle-end/45073
8497 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
8498 SSA updating on being in SSA form.
8499
8500 2010-07-26 Richard Guenther <rguenther@suse.de>
8501
8502 PR middle-end/45056
8503 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
8504
8505 2010-07-26 Richard Guenther <rguenther@suse.de>
8506
8507 PR tree-optimization/45071
8508 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
8509 adjust op->opcode.
8510
8511 2010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
8512
8513 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
8514 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
8515 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
8516 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
8517 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
8518 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
8519 save_r31, return_r31, save_interrupt, return_interrupt,
8520 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
8521 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
8522 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
8523 new ABI requirements.
8524 (save_r6_r9, L_callt_save_r6_r9): Remove.
8525 * config/v850/predicates.md (even_reg_operand, disp23_operand,
8526 const_float_1_operand const_float_0_operand): New Predicates.
8527 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
8528 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
8529 * config/v850/t-v850: Update multilibs for new target variants.
8530 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
8531 * config/v850/t-v850e: Likewise.
8532 * config/v850/v850.c (v850_issue_rate): New.
8533 (v850_strict_argument_naming): New.
8534 (function_arg): Modify to generate a different ABI.
8535 (print_operand): Update case 'z' to support float modes.
8536 (output_move_single): Modify to generate appropriate and better
8537 assembly.
8538 (v850_float_z_comparison_operator, v850_select_cc_mode,
8539 v850_float_nz_comparison_operator, v850_gen_float_compare,
8540 v850_gen_compare): New functions to support comparison of float values.
8541 (ep_memory_offset): Add support for V850E2 targets.
8542 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
8543 (INTERRUPT_REGPARM_NUM): Remove.
8544 (compute_register_save_size): Add extra case to save/restore long call.
8545 (use_prolog_function): New function to support prologue.
8546 (expand_prologue): Add support for V850E2 targets and modified
8547 as per the current ABI requirements.
8548 (expand_epilogue): Likewise.
8549 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
8550 (construct_save_jarl): Likewise.
8551 (construct_dispose_instruction): Update as per the current ABI
8552 requirements.
8553 (construct_prepare_instruction): Likewise.
8554 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
8555 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
8556 (CPP_SPEC): Updated to support v850e2 targets.
8557 (STRICT_ALIGNMENT): Modified.
8558 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
8559 (FIXED_REGISTERS): Likewise.
8560 (CALL_USED_REGISTERS): Likewise.
8561 (CONDITIONAL_REGISTER_USAGE): Updated.
8562 (HARD_REGNO_MODE_OK): Updated.
8563 (reg_class): Updated to add even registers.
8564 (REG_CLASS_NAMES): Likewise.
8565 (REG_CLASS_CONTENTS): Likewise.
8566 (REGNO_REG_CLASS): Updated for CC registers.
8567 (REG_CLASS_FROM_LETTER): Added support for even registers.
8568 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
8569 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
8570 ARG_POINTER_REGNUM): Updated.
8571 (FUNCTION_ARG_ADVANCE): Define.
8572 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
8573 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
8574 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
8575 (GO_IF_LEGITIMATE_ADDRESS): Updated.
8576 (SELECT_CC_MODE): Define.
8577 (REGISTER_NAMES): Updated to add psw and fcc registers.
8578 (ADDITIONAL_REGISTER_NAMES): Updated.
8579 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
8580 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
8581 * config/v850/v850.md (define_constants): Define new constants.
8582 (type): Update store,bit1,macc,div,fpu and single attributes.
8583 (cpu): New attribute.
8584 (cc): Add set_z attribute.
8585 (unsign23byte_load, sign23byte_load, unsign23hword_load,
8586 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
8587 23word_store): New instructions for 23-bit displacement load and store.
8588 (movqi_internal, movhi_internal): Update the attributes.
8589 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
8590 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
8591 the attributes.
8592 (v850_tst1): Modified using CC_REGNUM.
8593 (tstsi): Remove.
8594 (cmpsi): Modified as define_expand from define_insn.
8595 (cmpsi_insn, cmpsf, cmpdf): New instructions.
8596 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
8597 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
8598 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
8599 one_cmplsi2): Clobber the CC_REGNUM register.
8600 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
8601 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
8602 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
8603 (setf_insn, set_z_insn, set_nz_insn): New instructions for
8604 v850e2v3 target.
8605 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
8606 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
8607 targets.
8608 (sasf_1, sasf_2): Remove.
8609 (sasf): New instruction.
8610 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
8611 targets. CC_REGNUM register is clobbered and attributes are
8612 updated.
8613 (branch_z_normal, branch_z_invert, branch_nz_normal,
8614 branch_nz_invert): New branch related instructions.
8615 (jump): Updated the attributes.
8616 (switch): Update to support new targets. CC_REGNUM register is
8617 clobbered and attributes are updated.
8618 (call_internal_short, call_internal_long, call_value_internal_short,
8619 call_value_internal_long): Updated the attributes.
8620 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
8621 clobbered and attributes are updated.
8622 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
8623 Update to support new targets. CC_REGNUM register is clobbered.
8624 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
8625 instructions.
8626 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
8627 are updated.
8628 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
8629 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
8630 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
8631 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
8632 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
8633 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
8634 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
8635 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
8636 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
8637 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
8638 point instructions defined for V850e2v3 target.
8639 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
8640 Add support for V850E2 targets and CC_REGNUM register is clobbered.
8641 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
8642 support for new targets.
8643 * config/v850/v850-modes.def: New file.
8644 * config/v850/v850.opt(mstrict-align): Remove.
8645 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
8646 mv850e2v3): New command line options for V850.
8647 * config.gcc: Update the newly added files.
8648 * doc/invoke.texi: Update the newly added command line options for
8649 V850 target.
8650
8651 2010-07-26 Richard Guenther <rguenther@suse.de>
8652
8653 PR tree-optimization/45052
8654 * ipa-pure-const.c (check_stmt): Check volatileness.
8655
8656 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
8657
8658 PR target/44707
8659 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
8660 * config/sparc/sparc.c: Include reload.h.
8661 (legitimize_tls_address): Rename into...
8662 (sparc_legitimize_tls_address): ...this.
8663 (legitimize_pic_address): Rename into...
8664 (sparc_legitimize_pic_address): ...this.
8665 (sparc_expand_move): Adjust to above renaming.
8666 (sparc_tls_referenced_p): Likewise.
8667 (sparc_legitimize_tls_address): Likewise.
8668 (sparc_legitimize_pic_address): Likewise.
8669 (sparc_legitimize_address): Likewise.
8670 (sparc_output_mi_thunk): Likewise.
8671 (sparc_legitimize_reload_address): New global function. Recognize
8672 (lo_sum (high ...) ...) patterns generated by earlier passes.
8673 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
8674
8675 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
8676
8677 PR target/44484
8678 * config/sparc/predicates.md (memory_reg_operand): Delete.
8679 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
8680 (*sync_compare_and_swap): Encode the address form in the pattern.
8681 (*sync_compare_and_swapdi_v8plus): Likewise.
8682
8683 2010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
8684
8685 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
8686 Streamline paragraph on compatibility with the system compiler.
8687
8688 2010-07-24 Steven Bosscher <steven@gcc.gnu.org>
8689
8690 PR middle-end/45035
8691 * alias.c (true_dependence_1): Fix thinko in merge of old
8692 true_dependence and canon_true_dependence.
8693
8694 2010-07-23 Jan Hubicka <jh@suse.cz>
8695
8696 * lto-streamer-out.c (write_symbol): Fix visibilities of external
8697 references.
8698
8699 2010-07-23 Le-Chun Wu <lcwu@google.com>
8700
8701 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
8702 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
8703 and an unnecessary assignment.
8704 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
8705 self-assign warning.
8706 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
8707 unnecessary self-init.
8708
8709 2010-07-23 Richard Guenther <rguenther@suse.de>
8710
8711 PR lto/43071
8712 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
8713 for -flto and -fwhopr.
8714
8715 2010-07-23 Kai Tietz <kai.tietz@onevision.com>
8716
8717 PR target/41943
8718 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
8719 (stmp-int-hdrs): Prefix/postfix headers by include_next.
8720 * config.gcc (user_headers_inc_next_pre): New.
8721 (user_headers_inc_next_post): Likewise.
8722 (*-w64-mingw*): Use for float.h post-fixing, and for
8723 stddef.h/stdarg.h pre-fixing by include_next.
8724 * configure.ac (user_headers_inc_next_post): New.
8725 (user_headers_inc_next_pre): New.
8726 * configure: Regenerated.
8727
8728 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8729
8730 * configure.ac: Don't disable TLS on Solaris 8/9 by default
8731 Set tga_func for Solaris 2/x86 resp. SPARC.
8732 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
8733 (LIB_THREAD_LDFLAGS_SPEC): Define.
8734 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
8735 * configure: Regenerate.
8736 * config.in: Regenerate.
8737 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
8738 -pthread, -threads, LIB_TLS_SPEC with -pthread.
8739 * doc/install.texi (Specific, *-*-solaris2*): Document use of
8740 alternate thread libraries on Solaris 8.
8741 Document TLS patch requirements.
8742 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
8743 Document tls.
8744
8745 PR target/18788
8746 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
8747 -shared.
8748
8749 2010-07-23 Jakub Jelinek <jakub@redhat.com>
8750
8751 * tree.h (struct tree_base): Add nameless_flag bitfield.
8752 (TYPE_NAMELESS, DECL_NAMELESS): Define.
8753 * omp-low.c (create_omp_child_function, scan_omp_parallel,
8754 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
8755 DECL_ARTIFICIAL where needed.
8756 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
8757 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
8758 has DECL_NAMELESS set.
8759
8760 2010-07-23 Martin Jambor <mjambor@suse.cz>
8761
8762 PR tree-optimization/44915
8763 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
8764 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
8765 (analyze_function): Likewise.
8766
8767 2010-07-23 Martin Jambor <mjambor@suse.cz>
8768
8769 PR tree-optimization/44914
8770 * tree-sra.c (sra_modify_function_body): Return true if CFG was
8771 changed, add purging dead eh edges.
8772 (ipa_sra_modify_function_body): Return true if CFG was changed,
8773 simplify purging dead eh edges.
8774 (modify_function): Return true if CFG was changed.
8775 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
8776 was changed.
8777 (ipa_early_sra): Likewise.
8778
8779 2010-07-23 Jie Zhang <jie@codesourcery.com>
8780
8781 PR target/44290
8782 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
8783 if "naked".
8784 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8785 false if ! tree_versionable_function_p.
8786
8787 2010-07-23 Nathan Froyd <froydnj@codesourcery.com>
8788
8789 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
8790 * ipa-pure-const.c (special_builtlin_state): Remove
8791 BUILT_IN_ARGS_INFO case.
8792 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8793 * builtins.c (expand_builtin): Likewise.
8794 (expand_builtin_args_info): Remove.
8795 * doc/tm.texi (__builtin_args_info): Remove.
8796 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
8797 * doc/tm.text.in: Likewise.
8798
8799 2010-07-23 Richard Guenther <rguenther@suse.de>
8800
8801 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
8802 (lto_symtab_merge_decls_2): Likewise.
8803 * tree-ssa.c (useless_type_conversion_p): Likewise.
8804 * lto-streamer-in.c (input_gimple_stmt): Likewise.
8805 * gimple.c (gtc_visited2, gtc_ob2): Remove.
8806 (struct type_pair_d): Make same_p an array indexed by mode.
8807 Update comment.
8808 (lookup_type_pair): Update initialization.
8809 (struct sccs): Adjust same_p type.
8810 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
8811 Adjust.
8812 (print_gimple_types_stats): Likewise.
8813 * gimple.h (enum gtc_mode): New.
8814 (gimple_types_compatible_p): Adjust prototype.
8815
8816 2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
8817
8818 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
8819 again after processing insn.
8820
8821 2010-07-23 Jie Zhang <jie@codesourcery.com>
8822
8823 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
8824 proper words when !tree_versionable_function_p.
8825
8826 2010-07-23 Richard Guenther <rguenther@suse.de>
8827
8828 PR tree-optimization/45037
8829 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
8830
8831 2010-07-23 Jie Zhang <jie@codesourcery.com>
8832
8833 * doc/extend.texi: Remove IP2K from the description of naked attribute.
8834 Add MCORE instead.
8835
8836 2010-07-10 Andi Kleen <ak@linux.intel.com>
8837
8838 PR lto/44992
8839 * lto-opts.c (lto_write_options): Add NULL file_data argument to
8840 lto_get_section_name.
8841 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
8842 * lto-streamer-out.c (produce_asm): Likewise.
8843 (copy_function): Likewise.
8844 (produce_symtab): Likewise.
8845 (produce_asm_for_decls): Likewise.
8846 * lto-streamer.c (lto_get_section_name): Add file_data argument.
8847 Rewrite to add random postfix to LTO sections.
8848 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
8849 (lto_get_section_name): Add file_data argument to prototype.
8850
8851 2010-07-10 Andi Kleen <ak@linux.intel.com>
8852
8853 * lto-section-in.c (lto_section_name): Synchronize names
8854 with lto_get_section_name.
8855
8856 2010-07-10 Andi Kleen <ak@linux.intel.com>
8857
8858 * lto-opts.c (lto_read_file_options): Check for missing section.
8859
8860 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
8861
8862 * ira.c (check_allocation): Correctly handle the case where an allocno
8863 with two objects was allocated to a single reg.
8864
8865 2010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
8866
8867 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
8868 (is_widening_mult_p): Likewise.
8869 (convert_to_widen): Use them.
8870 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
8871 well as integer ones.
8872
8873 2010-07-22 Steven Bosscher <steven@gcc.gnu.org>
8874
8875 * alias.c (true_dependence_1): New function, merged version of
8876 true_dependence and canon_true_dependence.
8877 (true_dependence): Simplify.
8878 (canon_true_dependence): Simplify.
8879
8880 2010-07-22 Richard Henderson <rth@redhat.com>
8881
8882 PR target/45027
8883 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
8884 of V4SFmode for the SSE saves; increase stack alignment if needed.
8885 (ix86_gimplify_va_arg): Don't increase stack alignment here.
8886
8887 2010-07-22 Jakub Jelinek <jakub@redhat.com>
8888
8889 PR bootstrap/45028
8890 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
8891 call cprop_find_used_regs again via note_uses.
8892
8893 2010-07-22 Eric Botcazou <ebotcazou@adacore.com>
8894
8895 * alias.c (get_alias_set): Fix formatting issues.
8896
8897 2010-07-22 Steve Ellcey <sje@cup.hp.com>
8898
8899 PR middle-end/44878
8900 * stmt.c (expand_value_return): Call promote_function_mode with
8901 a for_return argument of 2 when returning by reference.
8902
8903 2010-07-22 Dodji Seketeli <dodji@redhat.com>
8904
8905 PR debug/45024
8906 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
8907 unit DIE if we can find the scope DIE.
8908
8909 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
8910
8911 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
8912 changed. Initialize OBJECT_SUBWORD.
8913 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
8914 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
8915 all callers changed.
8916 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
8917 (finish_allocno): Likewise.
8918 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
8919 (remove_low_level_allocnos): Likewise.
8920 (update_bad_spill_attribute): Likewise.
8921 (setup_min_max_allocno_live_range_point): Likewise.
8922 (sort_conflict_id_map): Likewise.
8923 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
8924 (ior_hard_reg_conflicts): New function.
8925 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
8926 (compress_conflict_vecs): Iterate over objects, not allocnos.
8927 (ira_add_live_range_to_object): New function.
8928 (object_range_compare_func): Renamed from allocno_range_compare_func.
8929 All callers changed.
8930 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
8931 subobjects, widen the min/max range of the lowest-order object to
8932 potentially include all other such low-order objects.
8933 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
8934 (check_allocation): Likewise. Use more fine-grained tests for register
8935 conflicts.
8936 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
8937 allocno subobjects.
8938 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
8939 choices about which bits to set in each set. Don't use
8940 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
8941 using the multiple sets we computed.
8942 (push_allocno_to_stack): Iterate over allocno subobjects.
8943 (all_conflicting_hard_regs_coalesced): New static function.
8944 (setup_allocno_available_regs_num): Use it.
8945 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
8946 subobjects.
8947 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
8948 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8949 by ALLOCNO_NUM_OBJECTS.
8950 (calculate_spill_cost): Likewise.
8951 (color_pass): Express if statement in a more normal way.
8952 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
8953 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
8954 (setup_slot_coalesced_allocno_live_ranges): Likewise.
8955 (allocno_reload_assign): Likewise.
8956 (ira_reassign_pseudos): Likewise.
8957 (fast_allocation): Likewise.
8958 * ira-conflicts.c (build_conflict_bit_table): Likewise.
8959 (print_allocno_conflicts): Likewise.
8960 (ira_build_conflicts): Likewise.
8961 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
8962 callers changed. Test subword 0 of each allocno for conflicts.
8963 (build_object_conflicts): Renamed from build_allocno_conflicts. All
8964 callers changed. Iterate over allocno subobjects.
8965 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
8966 * ira-int.h (struct ira_allocno): New member: num_objects.
8967 Rename object to objects and change it into an array.
8968 (ALLOCNO_OBJECT): Add new argument N.
8969 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
8970 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
8971 (ior_hard_reg_conflicts): Declare.
8972 (ira_add_live_range_to_object): Declare.
8973 (ira_allocno_object_iterator): New.
8974 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
8975 (FOR_EACH_ALLOCNO_OBJECT): New macro.
8976 * ira-lives.c (objects_live): Renamed from allocnos_live; all
8977 uses changed.
8978 (allocnos_processed): New sparseset.
8979 (make_object_born): Renamed from make_allocno_born; take an
8980 ira_object_t argument. All callers changed.
8981 (make_object_dead): Renamed from make_allocno_dead; take an
8982 ira_object_t argument. All callers changed.
8983 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
8984 All callers changed.
8985 (mark_pseudo_regno_live): Iterate over allocno subobjects.
8986 (mark_pseudo_regno_dead): Likewise.
8987 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
8988 functions.
8989 (mark_ref_live): Detect subword accesses and call
8990 mark_pseudo_regno_subword_live as appropriate.
8991 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
8992 (process_bb_nodes_live): Deal with object-related updates first; set
8993 and test bits in allocnos_processed to avoid computing allocno
8994 statistics more than once.
8995 (create_start_finish_chains): Iterate over objects, not allocnos.
8996 (print_object_live_ranges): New function.
8997 (print_allocno_live_ranges): Use it.
8998 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
8999 and objects_live.
9000
9001 2010-07-22 Richard Guenther <rguenther@suse.de>
9002
9003 PR lto/42451
9004 * gimple.c (gtc_next_dfs_num): New global.
9005 (struct sccs): Make value a union, add integer same_p member.
9006 (gtc_visit): New function.
9007 (gimple_types_compatible_p_1): New function, split out from ...
9008 (gimple_types_compatible_p): ... here. Start a DFS walk here.
9009 (iterative_hash_gimple_type): Adjust for sccs change.
9010
9011 2010-07-22 Martin Jambor <mjambor@suse.cz>
9012
9013 PR tree-optimization/44891
9014 * tree-sra.c: Include gimple-pretty-print.h.
9015 (replace_uses_with_default_def_ssa_name): Renamed to
9016 get_repl_default_def_ssa_name, return the new SSA name instead of
9017 replacing the old one.
9018 (sra_modify_assign): Dump a message when removing a load, if the LHS
9019 is an SSA_NAME, do not do any propagation, just set the RHS to a
9020 default definition SSA NAME, type convert if necessary.
9021 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
9022
9023 2010-07-22 Richard Guenther <rguenther@suse.de>
9024
9025 PR tree-optimization/45017
9026 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
9027 TYPE_PRECISION of integral types in addition to size.
9028
9029 2010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
9030
9031 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
9032 when no C library is specified.
9033
9034 2010-07-22 Martin Jambor <mjambor@suse.cz>
9035
9036 * ipa-prop.h (struct ipa_node_params): Updated comment.
9037 (struct ipa_edge_args): Likewise.
9038 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
9039
9040 2010-07-22 Martin Jambor <mjambor@suse.cz>
9041
9042 * cgraphunit.c (verify_edge_count_and_frequency): New function.
9043 (verify_cgraph_node): Verify frequencies of indirect edges.
9044 * tree-inline.c (tree_function_versioning): Update frequencies of
9045 indirect edges.
9046
9047 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9048
9049 PR target/43698
9050 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
9051 Set *arm_rev to be predicable.
9052
9053 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
9054
9055 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
9056 (LINK_COMMAND_SPEC_A): New.
9057 (DSYMUTIL): New.
9058 (DSYMUTIL_SPEC): New.
9059 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
9060 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
9061
9062 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
9063
9064 * calls.c (load_register_parameters): Move check for zero
9065 sized items so that only the call to
9066 mem_overlaps_already_clobbered_arg_p () is protected.
9067
9068 2010-07-22 Jan Hubicka <jh@suse.cz>
9069
9070 * ipa-pure-const.c (varying_state): Break out from ...
9071 (get_function_state): ... here; always return varying_state
9072 when state would be NULL otherwise.
9073 (remove_node_data): Do not free varying state.
9074
9075 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
9076
9077 PR bootstrap/44970
9078 PR middle-end/45009
9079 * postreload.c: Include "target.h".
9080 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
9081 into account.
9082 (fixup_debug_insns): Don't copy the rtx.
9083 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
9084 Don't copy when replacing. Call fixup_debug_insns in the case where
9085 we merged one add with another.
9086 (reload_combine_recognize_pattern): Fail if there aren't any uses.
9087 Try harder to determine whether we're picking a valid index register.
9088 Don't set store_ruid for an insn we're going to scan in the
9089 next iteration.
9090 (reload_combine): Remove unused code.
9091 (reload_combine_note_use): When updating use information for
9092 an old insn, ignore a use that occurs after store_ruid.
9093 * Makefile.in (postreload.o): Update dependencies.
9094
9095 * function.c (record_hard_reg_sets): Restrict the previous change
9096 to cases where the incoming nominal mode is the same as the
9097 incoming promoted mode and everything happens in MODE_INT.
9098
9099 2010-07-21 Jakub Jelinek <jakub@redhat.com>
9100
9101 PR debug/45015
9102 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
9103 ASM_OPERANDS_OUTPUT_IDX.
9104 (adjust_insn): For inline asm with multiple sets ensure first
9105 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
9106 the insn.
9107
9108 2010-07-21 Richard Henderson <rth@redhat.com>
9109
9110 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
9111 comparison for avoiding xmm register saves. Emit the xmm register
9112 saves explicitly.
9113 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
9114 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
9115 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
9116 Remove patterns and the associated splitters.
9117
9118 2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
9119
9120 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
9121 and imagine parts of a complex, so that they can have the same
9122 base and fall into the same group.
9123
9124 2010-07-21 Richard Guenther <rguenther@suse.de>
9125
9126 PR lto/45018
9127 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
9128 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
9129 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
9130
9131 2010-07-21 Martin Jambor <mjambor@suse.cz>
9132
9133 PR tree-optimization/44900
9134 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
9135 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
9136
9137 2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
9138
9139 PR middle-end/44738
9140 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
9141
9142 2010-07-21 Richard Guenther <rguenther@suse.de>
9143
9144 PR middle-end/45013
9145 * tree-ssa.c (useless_type_conversion_p): Dispatch to
9146 gimple_types_compatible_p only when in lto.
9147 * gimple.c (gimple_types_compatible_p): Use canonical types
9148 to speed up comparison.
9149
9150 2010-07-21 Richard Guenther <rguenther@suse.de>
9151
9152 * tree-flow.h (referenced_var): Move define ...
9153 * tree-flow-inline.h (referenced_var): ... here as an inline
9154 function. Assert here ...
9155 * tree-dfa.c (referenced_var_lookup): ... instead of here.
9156 * tree-ssa.c (maybe_optimize_var): Check if the variable
9157 is in referenced vars.
9158 (execute_update_addresses_taken): Remove old broken check.
9159 * gimple-pretty-print.c (pp_points_to_solution): Use
9160 referenced_var_lookup.
9161 * tree-into-ssa.c (dump_decl_set): Likewise.
9162
9163 2010-07-21 Jakub Jelinek <jakub@redhat.com>
9164
9165 PR debug/45003
9166 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
9167 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
9168 ZERO_EXTEND here.
9169
9170 2010-07-20 Richard Henderson <rth@redhat.com>
9171
9172 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
9173
9174 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
9175
9176 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
9177 computing the sum of the stack pointer and a large constant.
9178 * config/arm/constraints.md (M): Remove superfluous parentheses.
9179 (Pc): New constraint.
9180
9181 2010-07-20 Jakub Jelinek <jakub@redhat.com>
9182
9183 PR debug/45006
9184 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
9185 operand's type if exp is tcc_unary class tree.
9186
9187 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
9188
9189 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
9190 Reverse sense of if_then_else condition.
9191
9192 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
9193
9194 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
9195 * config/rs6000/rs6000.c (rs6000_override_options): Set
9196 rs6000_block_move_inline_limit appropriately.
9197 (expand_block_move): Use rs6000_block_move_inline_limit.
9198 * doc/invoke.texi (mblock-move-inline-limit): Document.
9199
9200 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
9201
9202 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
9203 FROM and TO. All callers changed. Don't look for tracked uses,
9204 just scan the RTL for DEBUG_INSNs and substitute.
9205 (reload_combine_recognize_pattern): Call fixup_debug_insns.
9206 (reload_combine): Ignore DEBUG_INSNs.
9207
9208 2010-07-20 Jakub Jelinek <jakub@redhat.com>
9209
9210 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
9211 depth to 8 from 5.
9212
9213 PR debug/45003
9214 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
9215 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
9216 instead of the result's type.
9217
9218 2010-07-20 Richard Guenther <rguenther@suse.de>
9219
9220 PR tree-optimization/44977
9221 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
9222 SSA form.
9223
9224 2010-07-20 Richard Guenther <rguenther@suse.de>
9225
9226 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
9227 (lto_symtab_merge_decls_2): Likewise.
9228 * gimple.h (gimple_types_compatible_p): Declare.
9229 * gimple.c (gimple_queue_type_fixup): Remove.
9230 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
9231 (gimple_compatible_complete_and_incomplete_type_p): New function.
9232 (gimple_types_compatible_p): Adjust.
9233 (gimple_register_type): Remove type fixup code.
9234 (print_gimple_types_stats): Adjust.
9235 (free_gimple_type_tables): Likewise.
9236 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
9237 * tree-ssa.c (useless_type_conversion_p): Likewise.
9238
9239 2010-07-20 Richard Guenther <rguenther@suse.de>
9240
9241 PR middle-end/44971
9242 PR middle-end/44988
9243 * tree-ssa.c (maybe_optimize_var): New function split out from ...
9244 (execute_update_addresses_taken): ... here.
9245 (non_rewritable_mem_ref_base): Likewise.
9246 (execute_update_addresses_taken): Do not iterate over all referenced
9247 vars but just all local decls and parms.
9248 Properly check call and asm arguments and rewrite call arguments.
9249
9250 2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
9251
9252 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
9253 to top level.
9254 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
9255 definitions ...
9256 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
9257 New macro.
9258 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
9259
9260 2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
9261
9262 * gengtype.c (start_root_entry): New function, split out from
9263 write_root. Check whether V is null and raise an error if so.
9264 (write_field_root): Check for V being null. Don't raise an error here;
9265 set V to null instead.
9266 (write_root): Update comment above function. Use start_root_entry.
9267
9268 2010-07-19 Xinliang David Li <davidxl@google.com>
9269
9270 PR testsuite/44932
9271 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
9272 def edges.
9273 (find_uninit_use): Add dump.
9274 (is_use_properly_guarded): Ditto.
9275 (warn_uninitialized_phi): Ditto.
9276 (execute_late_warn_uninitialized): Ditto.
9277
9278 2010-07-19 Richard Guenther <rguenther@suse.de>
9279
9280 PR middle-end/44941
9281 * expr.c (emit_block_move_hints): Move zero size check first.
9282 Move asserts to more useful places.
9283 * calls.c (load_register_parameters): Check for zero size.
9284
9285 2010-07-19 Richard Henderson <rth@redhat.com>
9286
9287 * tree-optimize.c (execute_all_early_local_passes): New. Change
9288 cgraph_state here ...
9289 (execute_early_local_optimizations): ... not here. Remove.
9290 (pass_early_local_passes, pass_all_early_optimizations): Update.
9291
9292 2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
9293
9294 * postreload.c (reload_combine_closest_single_use): Ignore the
9295 number of uses for DEBUG_INSNs.
9296 (fixup_debug_insns): New static function.
9297 (reload_combine_recognize_const_pattern): Use it. Don't let the
9298 main loop be affected by DEBUG_INSNs.
9299 Really disallow moving adds past a jump insn.
9300 (reload_combine_recognize_pattern): Don't update use_ruid here.
9301 (reload_combine_note_use): Do it here.
9302 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
9303
9304 2010-07-19 Bingfeng Mei <bmei@broadcom.com>
9305
9306 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
9307 of a loop.
9308 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
9309
9310 2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
9311
9312 * config/i386/darwin.h: Define darwin_emit_branch_islands.
9313 (TARGET_MACHO_BRANCH_ISLANDS): New.
9314 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
9315 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
9316 default value.
9317 * config/i386/i386.c (output_pic_addr_const): Do not emit
9318 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
9319 (x86_output_mi_thunk): Adjust symbol creation.
9320 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
9321 Remove out of date comment.
9322 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
9323 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9324 (DARWIN_GENERATE_ISLANDS): Ditto.
9325 (output_call): Do not emit branch islands unless
9326 darwin_emit_branch_islands is set.
9327 * config/darwin.c: Declare darwin_emit_branch_islands.
9328 (machopic_indirect_data_reference): Do not emit unless
9329 darwin_emit_branch_islands is set.
9330 (darwin_override_options): Set darwin_emit_branch_islands
9331 where it is needed.
9332 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9333
9334 2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9335
9336 * doc/sourcebuild.texi (Effective-Target Keywords): Document
9337 sse_runtime, sse2_runtime.
9338
9339 2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
9340
9341 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
9342 low half of a single-register SCmode return value before ORing
9343 it with the high half.
9344 * config/mips/mips16.S (MERGE_GPRf): Likewise.
9345
9346 2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9347
9348 PR target/44805
9349 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
9350 on all targets.
9351
9352 2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
9353
9354 PR target/42235
9355 * postreload.c (reload_cse_move2add): Return bool, true if anything.
9356 changed. All callers changed.
9357 (move2add_use_add2_insn): Likewise.
9358 (move2add_use_add3_insn): Likewise.
9359 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
9360 reload_combine.
9361 (RELOAD_COMBINE_MAX_USES): Bump to 16.
9362 (last_jump_ruid): New static variable.
9363 (struct reg_use): New members CONTAINING_MEM and RUID.
9364 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
9365 (reload_combine_split_one_ruid, reload_combine_split_ruids,
9366 reload_combine_purge_insn_uses, reload_combine_closest_single_use
9367 reload_combine_purge_reg_uses_after_ruid,
9368 reload_combine_recognize_const_pattern): New static functions.
9369 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
9370 is true for our reg and that we have available index regs.
9371 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
9372 callers changed. Use them to initialize fields in struct reg_use.
9373 (reload_combine): Initialize last_jump_ruid. Be careful when to
9374 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
9375 Call reload_combine_recognize_const_pattern.
9376 (reload_combine_note_store): Update REAL_STORE_RUID field.
9377
9378 2010-07-16 Jason Merrill <jason@redhat.com>
9379
9380 * Makefile.in (opts-common.o): Depend on options.h.
9381
9382 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
9383
9384 * tree.c (build_common_builtin_nodes): Use build_function_type_list
9385 instead of build_function_type.
9386 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
9387 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9388
9389 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
9390
9391 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
9392 do all the work.
9393 (rs6000_emit_int_cmove): Use function pointers for insn generation.
9394 Don't force values into registers unnecessarily.
9395 (output_isel): Assert that we're not given conditions we can't handle.
9396 Delete corresponding code.
9397 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
9398 scc_comparison_operator constraint. Permit 0 for the consequent
9399 operand. Permit any GPR for the alternative operand.
9400 (isel_unsigned_<mode>): Likewise.
9401
9402 2010-07-16 Jakub Jelinek <jakub@redhat.com>
9403
9404 PR target/44942
9405 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
9406 argument to const_tree.
9407 * config/i386/i386.c (function_arg_advance): If padding needs to be
9408 inserted before argument, increment cum->words by number of padding
9409 words as well.
9410 (contains_aligned_value_p): Change argument to const_tree.
9411 (ix86_function_arg_boundary): Change second argument to const_tree.
9412
9413 2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
9414
9415 PR target/42235
9416 * function.c (record_hard_reg_sets): New static function.
9417 (assign_parm_setup_reg): If an optab for extending exists and the
9418 generated code clobbbers no hard regs, emit the insn directly and
9419 create a REG_EQUIV note.
9420
9421 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
9422
9423 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
9424 TREE_CHAIN.
9425 * c-typeck.c (push_init_level): Likewise.
9426 (process_init_element): Likewise.
9427
9428 2010-07-15 Anatoly Sokolov <aesok@post.ru>
9429
9430 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
9431 (integer_three_node): Add.
9432 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
9433 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
9434 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
9435 of call build_int_cst.
9436 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
9437 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
9438 (find_interesting_uses_address): Ditto.
9439 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
9440 * tree-eh.c (lower_eh_constructs_2): Ditto.
9441 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
9442 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
9443 * expmed.c (expand_divmod): Ditto.
9444 * tree-mudflap.c (mx_register_decls): Ditto.
9445 * varasm.c (array_size_for_constructor): Ditto.
9446 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
9447 * c-parser.c (c_parser_postfix_expression): Ditto.
9448
9449 2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
9450
9451 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
9452 New static variables.
9453 (reload_combine_recognize_pattern): New static function, broken out
9454 of reload_combine.
9455 (reload_combine): Use it. Only initialize first_index_reg and
9456 last_index_reg once.
9457
9458 2010-07-15 Richard Henderson <rth@redhat.com>
9459
9460 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
9461 when done.
9462
9463 2010-07-15 Jan Hubicka <jh@suse.cz>
9464
9465 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
9466 comdats for broken gold.
9467 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
9468
9469 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
9470
9471 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
9472
9473 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
9474
9475 * tree.h (DECL_CHAIN): Define.
9476 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
9477 * c-decl.c: Likewise.
9478 * c-parser.c: Likewise.
9479 * c-typeck.c: Likewise.
9480 * cfgexpand.c: Likewise.
9481 * cgraph.c: Likewise.
9482 * cgraphunit.c: Likewise.
9483 * combine.c: Likewise.
9484 * config/alpha/alpha.c: Likewise.
9485 * config/arm/arm.c: Likewise.
9486 * config/frv/frv.c: Likewise.
9487 * config/i386/i386.c: Likewise.
9488 * config/i386/winnt-cxx.c: Likewise.
9489 * config/ia64/ia64.c: Likewise.
9490 * config/iq2000/iq2000.c: Likewise.
9491 * config/mep/mep.c: Likewise.
9492 * config/mips/mips.c: Likewise.
9493 * config/pa/som.h: Likewise.
9494 * config/rs6000/rs6000.c: Likewise.
9495 * config/s390/s390.c: Likewise.
9496 * config/sh/sh.c: Likewise.
9497 * config/sh/symbian-cxx.c: Likewise.
9498 * config/sparc/sparc.c: Likewise.
9499 * config/spu/spu.c: Likewise.
9500 * config/stormy16/stormy16.c: Likewise.
9501 * config/vxworks.c: Likewise.
9502 * config/xtensa/xtensa.c: Likewise.
9503 * coverage.c: Likewise.
9504 * dbxout.c: Likewise.
9505 * dwarf2out.c: Likewise.
9506 * emit-rtl.c: Likewise.
9507 * expr.c: Likewise.
9508 * function.c: Likewise.
9509 * gimple-low.c: Likewise.
9510 * gimple-pretty-print.c: Likewise.
9511 * gimplify.c: Likewise.
9512 * integrate.c: Likewise.
9513 * ipa-inline.c: Likewise.
9514 * ipa-prop.c: Likewise.
9515 * ipa-split.c: Likewise.
9516 * ipa-struct-reorg.c: Likewise.
9517 * ipa-type-escape.c: Likewise.
9518 * langhooks.c: Likewise.
9519 * lto-cgraph.c: Likewise.
9520 * omp-low.c: Likewise.
9521 * stor-layout.c: Likewise.
9522 * tree-cfg.c: Likewise.
9523 * tree-complex.c: Likewise.
9524 * tree-dfa.c: Likewise.
9525 * tree-dump.c: Likewise.
9526 * tree-inline.c: Likewise.
9527 * tree-mudflap.c: Likewise.
9528 * tree-nested.c: Likewise.
9529 * tree-object-size.c: Likewise.
9530 * tree-pretty-print.c: Likewise.
9531 * tree-sra.c: Likewise.
9532 * tree-ssa-live.c: Likewise.
9533 * tree-ssa-loop-niter.c: Likewise.
9534 * tree-ssa-math-opts.c: Likewise.
9535 * tree-ssa-reassoc.c: Likewise.
9536 * tree-ssa-sccvn.c: Likewise.
9537 * tree-ssa-structalias.c: Likewise.
9538 * tree-tailcall.c: Likewise.
9539 * tree-vrp.c: Likewise.
9540 * tree.c: Likewise.
9541 * var-tracking.c: Likewise.
9542 * varasm.c: Likewise.
9543
9544 2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9545
9546 PR target/44877
9547 * config/spu/spu.c (spu_expand_builtin_1): Allow references
9548 (as well as pointers) as argument to mask_for_load builtins.
9549
9550 2010-07-15 Richard Guenther <rguenther@suse.de>
9551
9552 PR tree-optimization/44946
9553 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
9554 with accessing only padding properly.
9555
9556 2010-07-15 Jan Hubicka <jh@suse.cz>
9557
9558 * ipa.c (function_and_variable_visibility): Variables marked as used
9559 should not be localized.
9560
9561 2010-07-15 Jan Hubicka <jh@suse.cz>
9562
9563 * cgraph.c: Include lto-streamer.h
9564 (change_decl_assembler_name): Work when assembler name hash is at place.
9565 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
9566 be sure to rename it to avoid name clash.
9567 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
9568 Localize hidden symbols only when locally defined.
9569
9570 2010-07-15 Uros Bizjak <ubizjak@gmail.com>
9571
9572 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
9573
9574 2010-07-15 Magnus Granberg <zorry@gentoo.org>
9575 Kevin F. Quinn <kevquinn@gentoo.org>
9576
9577 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
9578 * common.opt: Add -Wtrampolines.
9579 * doc/invoke.texi: Add -Wtrampolines.
9580
9581 2010-07-15 Jie Zhang <jie@codesourcery.com>
9582
9583 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
9584 cortex_a8_issue_ls.
9585
9586 2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
9587
9588 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
9589 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
9590
9591 2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9592
9593 * config/spu/spu.c (reg_names): Remove prototype.
9594 (call_used_regs): Likewise.
9595
9596 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
9597
9598 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
9599 "unused" with attribute "used".
9600 (__JCR_END__): Likewise.
9601 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
9602 "used" attribute.
9603 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
9604
9605 2010-07-14 Richard Guenther <rguenther@suse.de>
9606
9607 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
9608 (maybe_fixup_decls): Likewise.
9609 (input_gimple_stmt): Do not fixup anything.
9610 * lto-streamer-out.c (output_gimple_stmt): Make sure all
9611 non-automatic variable uses are wrapped inside a MEM_REF.
9612
9613 2010-07-14 Richard Henderson <rth@redhat.com>
9614
9615 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
9616 for functions.
9617 * varasm.c (assemble_variable): Remove early exit for functions;
9618 assert that we're given a variable.
9619
9620 2010-07-14 Jie Zhang <jie@codesourcery.com>
9621
9622 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
9623 cortex_a8_default when neon_type is not none.
9624
9625 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
9626
9627 * lower-subreg.c (subreg_context): New static bitmap.
9628 (decompose_multiword_subregs): Allocate and free it.
9629 (find_decomposable_subregs): Set a bit in it for a register that
9630 occurs in a subreg that changes mode but not size.
9631 (can_decompose_p): Test it instead of non_decomposable_context.
9632
9633 2010-07-14 Richard Guenther <rguenther@suse.de>
9634
9635 PR tree-optimization/44824
9636 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
9637 is_gimple_mem_ref_addr.
9638 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
9639 non-decl_address_invariant_p addresses.
9640
9641 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
9642
9643 * reload.c (find_reloads): Revert code to penalize small register
9644 classes that was brought in with the IRA merge.
9645
9646 2010-07-14 Richard Guenther <rguenther@suse.de>
9647
9648 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
9649 as base of ARRAY_REFs.
9650
9651 2010-07-14 Richard Guenther <rguenther@suse.de>
9652
9653 PR middle-end/44930
9654 * tree-pretty-print.c (do_niy): Do not print a newline.
9655
9656 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
9657
9658 * ira-int.h (struct ira_object): New.
9659 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
9660 (struct ira_allocno): Remove members min, max,
9661 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
9662 conflict_allocnos_num and conflict_vec_p. Add new member object.
9663 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
9664 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
9665 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
9666 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
9667 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
9668 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
9669 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
9670 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
9671 an ira_object_t rather than ira_allocno_t. All uses changed.
9672 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9673 contains a vector of ira_object_t; all uses changed.
9674 (ira_objects_num): Declare variable.
9675 (ira_create_allocno_object): Declare function.
9676 (ira_conflict_vector_profitable_p): Adjust prototype.
9677 (ira_allocate_conflict_vec): Renamed from
9678 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
9679 (ira_allocate_object_conflicts): Renamed from
9680 ira_allocate_allocno_conflicts; first arg now ira_object_t.
9681 (struct ira_object_iterator): New.
9682 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
9683 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
9684 to conflict_vec_p. All uses changed.
9685 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
9686 Changed to take into account that conflicts are now tracked for
9687 objects.
9688 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
9689 Args changed to accept ira_object_t. All uses changed.
9690 (allocnos_conflict_p): New static function.
9691 (collected_conflict_objects): Renamed from collected_allocno_objects;
9692 now a vector of ira_object_t. All uses changed.
9693 (build_conflict_bit_table): Changed to take into account that
9694 conflicts are now tracked for objects.
9695 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
9696 (print_allocno_conflicts, ira_build_conflicts): Likewise.
9697 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
9698 setup_allocno_left_conflicts_size, allocno_reload_assign,
9699 fast_allocation): Likewise.
9700 * ira-lives.c (make_hard_regno_born, make_allocno_born)
9701 process_single_reg_class_operands, process_bb_node_lives): Likewise.
9702 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
9703 Likewise.
9704 * ira-build.c (ira_objects_num): New variable.
9705 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9706 contains a vector of ira_object_t; all uses changed.
9707 (ira_object_id_map_vec): Corresponding change.
9708 (object_pool): New static variable.
9709 (initiate_allocnos): Initialize it.
9710 (finish_allocnos): Free it.
9711 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
9712 New functions.
9713 (ira_create_allocno): Don't set members that were removed.
9714 (ira_set_allocno_cover_class): Don't change conflict hard regs.
9715 (merge_hard_reg_conflicts): Changed to take into account that
9716 conflicts are now tracked for objects.
9717 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
9718 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
9719 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
9720 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
9721 setup_min_max_conflict_allocno_ids, ): Likewise.
9722 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
9723 to ira_object_t; all callers changed.
9724 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
9725 to ira_object_t, all callers changed.
9726 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
9727 to ira_object_t, all callers changed.
9728 (conflict_check, curr_conflict_check_tick): Renamed from
9729 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
9730 changed.
9731 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
9732 arg changed to ira_object_t, all callers changed.
9733 (create_cap_allocno): Call ira_create_allocno_object.
9734 (finish_allocno): Free the corresponding object.
9735 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
9736 callers changed. Adjusted for dealing with objects.
9737 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
9738 dealing with objects.
9739 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
9740
9741 * ira-int.h (struct live_range): Rename allocno member to object
9742 and change type to ira_object_t.
9743 (struct ira_object): New member live_ranges.
9744 (struct ira_allocno): Remove member live_ranges.
9745 (ALLOCNO_LIVE_RANGES): Remove.
9746 (OBJECT_LIVE_RANGES): New macro.
9747 (ira_create_live_range, ira_copy_live_range_list,
9748 ira_merge_live_range_list, ira_live_ranges_intersect_p,
9749 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
9750 * ira-build.c (ira_create_object): Initialize live ranges here.
9751 (ira_create_allocno): Not here.
9752 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
9753 changed to ira_object_t, all callers changed.
9754 (copy_live_range): Rename from copy_allocno_live_range, all callers
9755 changed.
9756 (ira_copy_live_range_list): Rename from
9757 ira_copy_allocno_live_range_list, all callers changed.
9758 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
9759 all callers changed.
9760 (ira_live_ranges_intersect_p): Rename from
9761 ira_allocno_live_ranges_intersect_p, all callers changed.
9762 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
9763 callers changed.
9764 (ira_finish_live_range_list): Rename from
9765 ira_finish_allocno_live_range_list, all callers changed.
9766 (change_object_in_range_list): Rename from change_allocno_in_range_list,
9767 last arg changed to ira_object_t, all callers changed.
9768 (finish_allocno): Changed to expect live ranges in the allocno's object.
9769 (move_allocno_live_ranges, copy_allocno_live_ranges,
9770 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
9771 ira_flattening, ira_build): Likewise.
9772 * ira-color.c (allocnos_have_intersected_live_ranges_p,
9773 slot_coalesced_allocno_live_ranges_intersect,
9774 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
9775 * ira-conflicts.c (build_conflict_bit_table): Likewise.
9776 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9777 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
9778 make_allocno_dead, create_start_finish_chains,
9779 remove_some_program_points_and_update_live_ranges,
9780 ira_debug_live_range_list): Likewise.
9781
9782 * ira-int.h (ira_object_conflict_iterator): Rename from
9783 ira_allocno_conflict_iterator.
9784 (ira_object_conflict_iter_init): Rename from
9785 ira_allocno_conflict_iter_init, second arg changed to
9786 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
9787 FOR_EACH_ALLOCNO_CONFLICT.
9788 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
9789 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
9790 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
9791 * ira-conflicts.c (print_allocno_conflicts): Likewise.
9792
9793 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
9794
9795 PR other/44874
9796 * tree-dump.c (dump_options): Add enumerate_locals entry.
9797 Add TDF_NOID exclusion to all entry.
9798 * tree-dump.h (dump_enumerated_decls): Declare.
9799 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
9800 Don't display type uid.
9801 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
9802 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
9803 * tree-ssa-live.c: Include gimple.h.
9804 (numbered_tree_d): New struct.
9805 (numbered_tree): New typedef.
9806 (DEF_VEC_O (numbered_tree): New.
9807 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
9808 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
9809 (dump_enumerated_decls): Likewise.
9810 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
9811 debug info and flag_dump_final_insns, call dump_enumerated_decls.
9812 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
9813 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
9814
9815 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
9816
9817 * expmed.h (MAX_BITS_PER_WORD): Move to...
9818 * defaults.h (MAX_BITS_PER_WORD): ...here.
9819
9820 2010-07-13 DJ Delorie <dj@redhat.com>
9821
9822 * config/h8300/h8300.c (h8300_init_once): Default to
9823 -fstrict_volatile_bitfields.
9824
9825 * config/sh/sh.c (sh_override_options): Default to
9826 -fstrict_volatile_bitfields.
9827
9828 * config/rx/rx.c (rx_option_override): New.
9829
9830 * config/m32c/m32c.c (m32c_override_options): Default to
9831 -fstrict_volatile_bitfields.
9832
9833 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
9834
9835 * tree.h (build_function_call_expr): Delete.
9836 (build_call_expr_loc_array): New function.
9837 (build_call_expr_loc_vec): New function.
9838 * tree-flow.h (struct omp_region): Change type of ws_args field
9839 to a VEC.
9840 * builtins.c (build_function_call_expr): Delete.
9841 (build_call_expr_loc_array): New function.
9842 (build_call_expr_loc): Call it. Use XALLOCAVEC.
9843 (build_call_expr): Likewise.
9844 (build_call_expr_loc_vec): New function.
9845 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
9846 build_function_call_expr.
9847 * expr.c (emutls_var_address): Likewise.
9848 * varasm.c (emutls_common_1): Likewise.
9849 * omp-low.c (expand_omp_atomic_mutex): Likewise.
9850 (expand_omp_taskreg): Adjust for new type of region->ws_args.
9851 (get_ws_args_for): Return a VEC instead of a tree.
9852 (expand_parallel_call): Call build_call_expr_loc_vec instead of
9853 build_function_call_expr.
9854 * stor-layout.c (self_referential_size): Likewise.
9855
9856 2010-07-13 Jakub Jelinek <jakub@redhat.com>
9857
9858 PR testsuite/44701
9859 * recog.c (constrain_operands): Allow side-effects in memory
9860 operands if either < or > constraint is used, rather than if
9861 both < and > is used.
9862
9863 2010-07-13 Richard Guenther <rguenther@suse.de>
9864
9865 PR middle-end/44911
9866 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
9867 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
9868 without name.
9869
9870 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
9871
9872 PR target/44761
9873 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
9874 to variable emited.
9875 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
9876 * config/sh/sh.md (symGOT_load): Likewise.
9877 (symDTPOFF2reg): Likewise.
9878 (symTPOFF2reg): Likewise.
9879
9880 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9881
9882 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
9883 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
9884
9885 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9886
9887 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
9888 explanation.
9889 Find ucontext_t * on Solaris 11.
9890 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
9891 Handle new Solaris 11 __sighndlr patterns.
9892
9893 2010-07-13 Jakub Jelinek <jakub@redhat.com>
9894
9895 PR debug/44901
9896 * vec.h (VEC_block_remove): Fix comment.
9897 * tree-ssa-live.c (remove_unused_locals): Don't use
9898 VEC_unordered_remove on local_decls, instead replace a single
9899 vector element in each iteration if at least one element had
9900 to be removed and VEC_truncate at the end.
9901 * omp-low.c (expand_omp_taskreg): Likewise.
9902
9903 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
9904
9905 * c-decl.c (finish_function): Fix typo in comment.
9906
9907 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
9908
9909 PR bootstrap/44921
9910 * postreload.c (move2add_use_add3_insn): Silence gcc warning
9911 on min_regno.
9912
9913 2010-07-12 Jakub Jelinek <jakub@redhat.com>
9914
9915 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
9916 (simplify_stmt_using_ranges): Use it.
9917
9918 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9919
9920 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
9921 member. Do not mark as GTY(()).
9922 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
9923 (spu_builtin_decls): New static variable.
9924 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
9925 (spu_init_builtins): Likewise.
9926 (spu_builtin_mul_widen_even): Likewise.
9927 (spu_builtin_mul_widen_odd): Likewise.
9928 (spu_builtin_mask_for_load): Likewise.
9929 (spu_builtin_vec_perm): Likewise.
9930 * config/spu/spu-c.c: Include "target.h".
9931 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
9932 of using spu_builtins[].fndecl.
9933
9934 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9935
9936 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
9937 imply -minterlink-mips16.
9938
9939 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9940
9941 * config/mips/mips.h (mips16_globals): Declare.
9942 (SWITCHABLE_TARGET): Define.
9943 * config/mips/mips.c: Include target-globals.h.
9944 (mips16_globals): New variable.
9945 (mips_set_mips16_mode): Use save_target_globals and
9946 restore_target_globals instead of target_reinit.
9947
9948 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9949
9950 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
9951 to say that the function can be called more than once.
9952 * target-globals.c (save_target_globals): Call init_reg_sets.
9953
9954 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9955
9956 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
9957 * bb-reorder.h: New file.
9958 * bb-reorder.c (default_target_bb_reorder): New variable.
9959 (this_target_bb_reorder): New conditional variable.
9960 (uncond_jump_length): Redefine as a macro.
9961 * target-globals.h (this_target_bb_reorder): Declare.
9962 (target_globals): Add a bb_reorder field.
9963 (restore_target_globals): Copy the bb_reorder field to
9964 this_target_bb-reorder.
9965 * target-globals.c: Include bb-reorder.h.
9966 (default_target_globals): Initialize the bb_reorder field.
9967 (save_target_globals): Likewise.
9968
9969 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9970
9971 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
9972 * gcse.h: New file.
9973 * gcse.c: Include gcse.h.
9974 (default_target_gcse): New variable.
9975 (this_target_gcse): New conditional variable.
9976 (can_copy): Redefine as a macro.
9977 (can_copy_init_p): New macro.
9978 (can_copy_p): Remove can_copy_init_p.
9979 * target-globals.h (this_target_gcse): Declare.
9980 (target_globals): Add a gcse field.
9981 (restore_target_globals): Copy the gcse field to this_target_gcse.
9982 * target-globals.c: Include gcse.h.
9983 (default_target_globals): Initialize the gcse field.
9984 (save_target_globals): Likewise.
9985
9986 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9987
9988 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
9989 and x_ira_prohibited_mode_move_regs_initialized_p.
9990 (ira_prohibited_mode_move_regs): Redefine as a macro.
9991 * ira.c (ira_prohibited_mode_move_regs): Delete.
9992 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
9993
9994 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
9995
9996 * reload.h (target_reload): Add x_cached_reg_save_code and
9997 x_cached_reg_restore_code.
9998 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
9999 Redefine as macros.
10000
10001 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10002
10003 * Makefile.in (target-globals.o): Depend on builtins.h.
10004 * builtins.h: New file.
10005 * builtins.c: Include builtins.h.
10006 (default_target_builtins): New variable.
10007 (this_target_builtins): New conditional variable.
10008 (apply_args_mode, apply_result_mode): Redefine as macros.
10009 * target-globals.h (this_target_builtins): Declare.
10010 (target_globals): Add a builtins field.
10011 (restore_target_globals): Copy the builtins field to
10012 this_target_builtins.
10013 * target-globals.c: Include builtins.h.
10014 (default_target_globals): Initialize the builtins field.
10015 (save_target_globals): Likewise.
10016
10017 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10018
10019 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
10020 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
10021 from expmed.c.
10022 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
10023 (alg_hash, alg_hash_used_p): New macros.
10024 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
10025 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
10026 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
10027
10028 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10029
10030 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
10031 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
10032 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
10033 (this_op_costs, costs_classes): Redefine as macros.
10034 (record_reg_classes): Don't take op_costs as a parameter.
10035 (record_operand_costs): Likewise. Update calls to record_reg_classes.
10036 (scan_one_insn): Update call to record_operand_costs.
10037
10038 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10039
10040 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
10041 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
10042 (target_ira_int): New structure.
10043 (default_target_ira_int): Declare.
10044 (this_target_ira_int): Declare as a variable or define as a macro.
10045 (ira_reg_mode_hard_regset, ira_register_move_cost)
10046 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
10047 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
10048 (prohibited_class_mode_regs, ira_important_classes_num)
10049 (ira_important_classes, ira_reg_class_intersect)
10050 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
10051 (ira_reg_class_union): Redefine as macros.
10052 * ira.h (target_ira): New structure.
10053 (default_target_ira): Declare.
10054 (this_target_ira): Declare as a variable or define as a macro.
10055 (ira_available_class_regs, ira_hard_regno_cover_class)
10056 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
10057 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
10058 (ira_class_hard_regs_num): Redefine as macros.
10059 * ira.c (default_target_ira, default_target_ira_int): New variables.
10060 (this_target_ira, this_target_ira_int): New conditional variables.
10061 (ira_reg_mode_hard_regset, ira_memory_move_cost)
10062 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
10063 (ira_class_subset_p): Delete.
10064 (no_unit_alloc_regs): Redefine as a macro.
10065 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
10066 (ira_class_hard_regs_num, ira_class_hard_reg_index)
10067 (ira_available_class_regs): Delete.
10068 (alloc_reg_class_subclasses): Redefine as a macro.
10069 (ira_reg_class_cover_size, ira_reg_class_cover)
10070 (ira_important_classes_num, ira_important_classes)
10071 (ira_important_class_nums, ira_class_translate): Delete.
10072 (cover_class_order): Document the variable's lifetime.
10073 (reorder_important_classes): Don't set ira_important_class_nums.
10074 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
10075 (ira_reg_class_super_classes, ira_reg_class_union)
10076 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
10077 Delete.
10078 (setup_reg_class_nregs): Don't set ira_max_regs.
10079 (prohibited_class_mode_regs): Delete.
10080 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
10081 (target_globals): Add ira and ira_int fields.
10082 (restore_target_globals): Copy the ira field to this_target_ira
10083 and the ira_int field to this_target_ira_int.
10084 * target-globals.c: Include ira-int.h.
10085 (default_target_globals): Initialize the ira and ira_int fields.
10086 (save_target_globals): Likewise.
10087
10088 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10089
10090 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
10091 * cfgloop.h (target_cfgloop): New structure.
10092 (default_target_cfgloop): Declare.
10093 (this_target_cfgloop): Declare as a variable or define as a macro.
10094 (target_avail_regs, target_clobbered_regs, target_res_regs)
10095 (target_reg_cost, target_spill_cost): Redefine as macros.
10096 * cfgloopanal.c (default_target_cfgloop): New variable.
10097 (this_target_cfgloop): New conditional variable.
10098 (target_avail_regs, target_clobbered_regs, target_res_regs)
10099 (target_reg_cost, target_spill_cost): Delete.
10100 * target-globals.h (this_target_cfgloop): Declare.
10101 (target_globals): Add a cfgloop field.
10102 (restore_target_globals): Copy the cfgloop field to
10103 this_target_cfgloop.
10104 * target-globals.c: Include cfgloop.h.
10105 (default_target_globals): Initialize the cfgloop field.
10106 (save_target_globals): Likewise.
10107
10108 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10109
10110 * regs.h (target_regs): Add x_direct_load, x_direct_store and
10111 x_float_extend_from_mem.
10112 (direct_load, direct_store, float_extend_from_mem): New macros.
10113 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
10114
10115 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10116
10117 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
10118 (target-globals.o): Depend on $(LIBFUNCS_H).
10119 * libfuncs.h: Include hashtab.h.
10120 (libfunc_entry): Moved from optabs.c.
10121 (target_libfuncs): New structure.
10122 (default_target_libfuncs): Declare.
10123 (this_target_libfuncs): Declare as a variable or define as a macro.
10124 (libfunc_table): Redefine as a macro.
10125 * optabs.c (default_target_libfuncs): New variable.
10126 (this_target_libfuncs): New conditional variable.
10127 (libfunc_table): Delete.
10128 (libfunc_entry): Moved to optabs.h.
10129 (libfunc_hash): Redefine as a macro.
10130 (hash_libfunc, eq_libfunc): Fix comments.
10131 (init_optabs): Use libfunc_hash to detect cases where the function
10132 has already been called. Clear the hash table instead of
10133 recreating it.
10134 * target-globals.h (this_target_libfuncs): Declare.
10135 (target_globals): Add a libfuncs field.
10136 (restore_target_globals): Copy the libfuncs field to
10137 this_target_libfuncs.
10138 * target-globals.c: Include libfuncs.h.
10139 (default_target_globals): Initialize the libfuncs field.
10140 (save_target_globals): Likewise.
10141
10142 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10143
10144 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
10145 in all dependency lists.
10146
10147 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10148
10149 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
10150 * optabs.h (target_optabs): New structure.
10151 (default_target_optabs): Declare.
10152 (this_target_optabs): Declare as a variable or define as a macro.
10153 (optab_table, convert_optab_table, direct_optab_table): Redefine
10154 as macros.
10155 * optabs.c (default_target_optabs): New variable.
10156 (this_target_optabs): New conditional variable.
10157 (optab_table, convert_optab_table, direct_optab_table): Delete.
10158 * target-globals.h (this_target_optabs): Declare.
10159 (target_globals): Add a optabs field.
10160 (restore_target_globals): Copy the optabs field to
10161 this_target_optabs.
10162 * target-globals.c: Include expr.h and optabs.h.
10163 (default_target_globals): Initialize the optabs field.
10164 (save_target_globals): Likewise.
10165
10166 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10167
10168 * flags.h (target_flagstate): Add x_flag_excess_precision.
10169 (flag_excess_precision): Redefine as a macro.
10170 * toplev.c (flag_excess_precision): Delete.
10171
10172 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10173
10174 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
10175 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
10176 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
10177 (no_caller_save_reg_set): Redefine as a macro.
10178 * reload.h (target_reload): Add x_caller_save_initialized_p and
10179 x_regno_save_mode.
10180 (caller_save_initialized_p): Redefine as a macro.
10181 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
10182 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
10183 (regno_save_mode): Redefine as a macro.
10184
10185 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10186
10187 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
10188 * expmed.h: New file.
10189 * expmed.c (default_target_costs): New variable.
10190 (this_target_costs): New conditional variable.
10191 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
10192 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
10193 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
10194 * target-globals.h (this_target_expmed): Declare.
10195 (target_globals): Add a expmed field.
10196 (restore_target_globals): Copy the expmed field to
10197 this_target_expmed.
10198 * target-globals.c: Include expmed.h.
10199 (default_target_globals): Initialize the expmed field.
10200 (save_target_globals): Likewise.
10201
10202 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10203
10204 * Makefile.in (target-globals.o): Depend on reload.h.
10205 * reload.h (target_reload): New structure.
10206 (default_target_reload): Declare.
10207 (this_target_reload): Declare as a variable or define as a macro.
10208 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
10209 * reload1.c (default_target_reload): New variable
10210 (this_target_reload): New conditional variable.
10211 (indirect_symref_ok, double_reg_address_ok): Delete.
10212 (spill_indirect_levels): Redefine as a macro.
10213 * target-globals.h (this_target_reload): Declare.
10214 (target_globals): Add a reload field.
10215 (restore_target_globals): Copy the reload field to
10216 this_target_reload.
10217 * target-globals.c: Include hard-reg-set.h.
10218 (default_target_globals): Initialize the reload field.
10219 (save_target_globals): Likewise.
10220
10221 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10222
10223 * rtl.h (target_rtl): Add x_static_reg_base_value.
10224 * alias.c (static_reg_base_value): Redefine as a macro.
10225
10226 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10227
10228 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
10229 (GTFILES): Remove reginfo.c.
10230 * rtl.h (target_rtl): Add x_top_of_stack.
10231 (top_of_stack): New macro.
10232 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
10233 (top_of_stack): Delete.
10234
10235 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10236
10237 * regs.h (target_regs): Add x_hard_regs_of_mode,
10238 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
10239 x_may_move_out_cost and x_last_mode_for_init_move_cost.
10240 (have_regs_of_mode, contains_reg_of_mode, move_cost)
10241 (may_move_in_cost, may_move_out_cost): Redefine as macros.
10242 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
10243 (may_move_in_cost, may_move_out_cost): Delete.
10244 (last_mode_for_init_move_cost): Redefine as a macro.
10245
10246 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10247
10248 * hard-reg-set.h (target_hard_regs): New structure.
10249 (default_target_hard_regs): Declare.
10250 (this_target_hard_regs): Declare as a variable or define as a macro.
10251 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
10252 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
10253 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
10254 (reg_class_size, reg_class_subclasses, reg_class_subunion)
10255 (reg_class_superunion, reg_names): Redefine as macros.
10256 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
10257 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
10258 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
10259 (reg_class_contents, reg_class_size, reg_class_subclasses)
10260 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
10261 (default_target_hard_regs): New variable
10262 (this_target_hard_regs, initial_call_really_used_regs)
10263 (initial_reg_alloc_order): New conditional variables.
10264 (initial_reg_names): New variable.
10265 (init_reg_sets): Assert that initial_call_really_used_regs,
10266 initial_reg_alloc_order and initial_reg_names
10267 are all the same size as their variable counterparts. Use them to
10268 initialize those counterparts.
10269 * target-globals.h (this_target_hard_regs): Declare.
10270 (target_globals): Add a hard_regs field.
10271 (restore_target_globals): Copy the hard_regs field to
10272 this_target_hard_regs.
10273 * target-globals.c: Include hard-reg-set.h.
10274 (default_target_globals): Initialize the hard_regs field.
10275 (save_target_globals): Likewise.
10276
10277 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10278
10279 * Makefile.in (target-globals.o): Depend on $(RTL_H).
10280 * rtl.h (target_rtl): New structure.
10281 (default_target_rtl): Declare.
10282 (this_target_rtl): Declare as a variable or define as a macro.
10283 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
10284 Redefine as macros.
10285 * emit-rtl.c (default_target_rtl): New variable.
10286 (this_target_rtl): New conditional variable.
10287 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
10288 (return_address_pointer_rtx): Delete.
10289 (initial_regno_reg_rtx): New macro.
10290 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
10291 (init_emit_regs): Likewise.
10292 * target-globals.h (this_target_rtl): Declare.
10293 (target_globals): Add a rtl field.
10294 (restore_target_globals): Copy the rtl field to this_target_rtl.
10295 * target-globals.c: Include rtl.h.
10296 (default_target_globals): Initialize the rtl field.
10297 (save_target_globals): Likewise.
10298
10299 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10300
10301 * Makefile.in (target-globals.o): Depend on $(REGS_H).
10302 * regs.h (target_reg_modes): New structure.
10303 (default_target_reg_modes): Declare.
10304 (this_target_reg_modes): Declare as a variable or define as a macro.
10305 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
10306 * reginfo.c (default_target_reg_modes): New variable.
10307 (this_target_reg_modes): New conditional variable.
10308 (hard_regno_nregs, reg_raw_mode): Delete.
10309 * target-globals.h (this_target_regs): Declare.
10310 (target_globals): Add a regs field.
10311 (restore_target_globals): Copy the regs field to this_target_regs.
10312 * target-globals.c: Include regs.h.
10313 (default_target_globals): Initialize the regs field.
10314 (save_target_globals): Likewise.
10315
10316 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
10317
10318 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
10319 * doc/tm.texi: Regenerate.
10320 * Makefile.in (OBJS-common): Add target-globals.o.
10321 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
10322 and target-globals.h.
10323 (target-globals.o): New rule.
10324 (GTFILES): Include $(srcdir)/target-globals.h.
10325 * defaults.h (SWITCHABLE_TARGET): Define.
10326 * gengtype.c (open_base_files): Add target-globals.h to the
10327 list of includes.
10328 * target-globals.h: New file.
10329 * target-globals.c: Likewise.
10330
10331 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
10332 * flags.h (target_flag_state): New structure.
10333 (default_target_flag_state): Declare.
10334 (this_target_flag_state): Declare as a variable or define as a macro.
10335 (align_loops_log): Redefine as a macro.
10336 (align_loops_max_skip, align_jumps_log): Likewise.
10337 (align_jumps_max_skip, align_labels_log): Likewise.
10338 (align_labels_max_skip, align_functions_log): Likewise.
10339 * toplev.c (default_target_flag_state): New variable.
10340 (this_target_flag_state): New conditional variable.
10341 (align_loops_log): Delete.
10342 (align_loops_max_skip, align_jumps_log): Likewise.
10343 (align_jumps_max_skip, align_labels_log): Likewise.
10344 (align_labels_max_skip, align_functions_log): Likewise.
10345 * target-globals.h (this_target_flag_state): Declare.
10346 (target_globals): Add a flag_state field.
10347 (restore_target_globals): Copy the flag_state field to
10348 this_target_flag_state.
10349 * target-globals.c: Include flags.h.
10350 (default_target_globals): Initialize the flag_state field.
10351 (save_target_globals): Likewise.
10352
10353 2010-07-12 Jie Zhang <jie@codesourcery.com>
10354
10355 * postreload.c (reg_symbol_ref[]): New.
10356 (move2add_use_add2_insn): New.
10357 (move2add_use_add3_insn): New.
10358 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
10359 (move2add_note_store): Likewise.
10360
10361 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
10362
10363 PR rtl-optimization/44752
10364 * genautomata.c (main): Don't emit an empty file even if there
10365 is no automaton.
10366
10367 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10368
10369 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
10370 ix86_solaris_return_in_memory.
10371 * config/i386-protos.h: Reflect this.
10372 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
10373 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
10374 Move ...
10375 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
10376
10377 2010-07-12 Jie Zhang <jie@codesourcery.com>
10378
10379 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
10380 align the stack when it's going to be saved.
10381
10382 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10383
10384 PR pch/14940
10385 * config/host-solaris.c (mmap_fixed): New function.
10386 (sol_gt_pch_get_address): Use it.
10387 (sol_gt_pch_use_address): Likewise.
10388
10389 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10390
10391 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
10392 pentiumpro on Solaris 8 and 9/x86.
10393 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
10394 Document SSE/SSE2 support.
10395 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
10396
10397 2010-07-12 Andi Kleen <ak@linux.intel.com>
10398
10399 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
10400 instead of gcc_assert to print better error message for multiple
10401 prevailing defs.
10402
10403 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
10404
10405 * config/i386/i386.c (ix86_asm_output_function_label): Change format
10406 string placeholder from 0x%x to %#x.
10407 (ix86_code_end): Use putc to output '\n'.
10408 (ix86_print_operand) <case ';'>: Use putc to output ';'.
10409
10410 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
10411
10412 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
10413 in directive -export.
10414
10415 2010-07-10 Anatoly Sokolov <aesok@post.ru>
10416
10417 * reginfo.h (reg_classes_intersect_p): Change arguments type to
10418 reg_class_t.
10419 * rtl.h (reg_classes_intersect_p): Adjust prototype.
10420
10421 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10422 Remove macros.
10423 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
10424 rs6000_memory_move_cost): Remove
10425 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
10426 TARGET_MEMORY_MOVE_COST): Define.
10427 (rs6000_register_move_cost): Make static. Change arguments type from
10428 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
10429 (rs6000_memory_move_cost): Make static. Change arguments type from
10430 'enum reg_class' to reg_class_t.
10431
10432 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
10433
10434 PR middle-end/42505
10435 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
10436 lookup code into....
10437 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
10438 new functions.
10439 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
10440 * cfgloopanal.c (target_clobbered_regs): Define.
10441 (init_set_costs): Initialize target_clobbered_regs.
10442 (estimate_reg_pressure_cost): Add call_p argument. When true,
10443 adjust the number of available registers to exclude the
10444 call-clobbered registers.
10445 * cfgloop.h (target_clobbered_regs): Declare.
10446 (estimate_reg_pressure_cost): Adjust declaration.
10447 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
10448 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
10449 (determine_set_costs): Dump target_clobbered_regs.
10450 (loop_body_includes_call): New function.
10451 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
10452 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
10453 call_p flag through.
10454 (best_gain_for_invariant): Likewise.
10455 (find_invariants_to_move): Likewise.
10456 (move_single_loop_invariants): Likewise, using already-computed
10457 has_call field.
10458
10459 2010-07-10 Richard Guenther <rguenther@suse.de>
10460 Joern Rennecke <joern.rennecke@embecosm.com>
10461
10462 PR debug/44832
10463 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
10464 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
10465 unless they have DECL_IGNORED_P set.
10466
10467 2010-07-10 Richard Guenther <rguenther@suse.de>
10468
10469 PR lto/44889
10470 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
10471 helper function.
10472 (gimple_types_compatible_p): Similar to pointed-to
10473 types allow and merge a mix of complete and incomplete aggregate.
10474 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
10475 (iterative_hash_gimple_type): Adjust for that.
10476
10477 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
10478
10479 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
10480
10481 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
10482
10483 PR objc/44140
10484 * config/darwin.c (output_objc_section_asm_op): Save and restore
10485 section when outputting ObjC section list.
10486
10487 2010-07-09 Jan Hubicka <jh@suse.cz>
10488
10489 * lto-streamer-out.c (produce_symtab): Do not write alias
10490 cgraph/varpool nodes.
10491
10492 2010-07-09 Jan Hubicka <jh@suse.cz>
10493
10494 * tree-inline.c (declare_return_variable): Fix ICE while
10495 inlining DECL_BY_VALUE function not in SSA form
10496
10497 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
10498
10499 PR tree-optimization/44576
10500 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
10501 New. Pull out from is_loop_prefetching_profitable to implement
10502 the trip count to ahead ratio heuristic.
10503 (mem_ref_count_reasonable_p): New. Pull out from
10504 is_loop_prefetching_profitable to implement the instruction to
10505 memory reference ratio heuristic. Also consider not reasonable if
10506 the memory reference count is above a threshold (to avoid
10507 explosive compilation time.
10508 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
10509 is_loop_prefetching_profitable to implement the instruction to
10510 prefetch ratio heuristic.
10511 (is_loop_prefetching_profitable): Removed.
10512 (loop_prefetch_arrays): Distribute the cost analysis across the
10513 function to allow early exit of the prefetch analysis.
10514 is_loop_prefetching_profitable is splitted into three functions,
10515 with each one called as early as possible.
10516 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
10517 number of memory references in a loop is considered too many.
10518
10519 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
10520
10521 * reload.c (find_reloads): Don't clear badop if we have a winreg
10522 alternative, but not win, and the class only has fixed regs.
10523 * hard-reg-set.h (class_only_fixed_regs): Declare.
10524 * reginfo.c (class_only_fixed_regs): New array.
10525 (init_reg_sets_1): Initialize it.
10526 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
10527 discourage alternatives using the stack pointer.
10528
10529 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
10530
10531 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
10532
10533 * config/arm/arm.md (cbranchqi4): Fix array size.
10534 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
10535 calculating length.
10536
10537 2010-07-09 Richard Guenther <rguenther@suse.de>
10538
10539 * gimple.c (struct type_fixup_s): New struct and VEC type.
10540 (gimple_register_type_fixups): New static global.
10541 (gimple_queue_type_fixup): New function.
10542 (gimple_types_compatible_p): Queue type fixups instead of
10543 applying them here.
10544 (gimple_register_type): Apply queued fixups for the
10545 canonical type. Empty the type fixup queue.
10546
10547 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
10548
10549 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
10550 * configure: Regenerate.
10551 * config.in: Ditto.
10552
10553 2010-07-09 Jakub Jelinek <jakub@redhat.com>
10554 Denys Vlasenko <dvlasenk@redhat.com>
10555 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10556
10557 PR tree-optimization/28632
10558 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
10559 (extract_range_from_binary_expr): Further optimize
10560 BIT_AND_EXPR and BIT_IOR_EXPR.
10561
10562 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
10563
10564 * tree-if-conv.c (fold_or_predicates): New.
10565 (add_to_predicate_list): Call it.
10566
10567 2010-07-09 Richard Guenther <rguenther@suse.de>
10568
10569 PR middle-end/44890
10570 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
10571 if base is a pointer.
10572 * tree-cfg.c (verify_expr): Update MEM_REF checking.
10573
10574 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10575
10576 PR target/44877
10577 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
10578 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
10579 builtin mask for load/store builtins.
10580
10581 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
10582
10583 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
10584 for "lock addl".
10585 * configure: Regenerate.
10586 * config/i386/i386.c (ix86_print_operand) <case ';'>:
10587 Remove TARGET_MACHO.
10588
10589 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
10590
10591 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
10592 default ISA flags.
10593 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
10594
10595 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
10596
10597 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
10598
10599 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
10600
10601 * config/picochip/picochip.md (commsTestPort): Emit more
10602 efficient sequence for tstport instruction.
10603
10604 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
10605
10606 * config/i386/i386.c (ix86_veclib_handler): Make static.
10607
10608 2010-07-09 Richard Guenther <rguenther@suse.de>
10609
10610 PR tree-optimization/44852
10611 * tree-ssa-alias.c: Include toplev.h for exact_log2.
10612 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
10613 in MEM_REF.
10614 (indirect_refs_may_alias_p): Likewise.
10615 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
10616
10617 2010-07-09 Richard Guenther <rguenther@suse.de>
10618
10619 PR tree-optimization/44882
10620 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
10621 sets do conflict.
10622 (vectorizable_load): Likewise.
10623
10624 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
10625
10626 PR target/40657
10627 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
10628 All callers changed.
10629 Handle the case when we're called for the epilogue.
10630 (thumb_unexpanded_epilogue): Use it.
10631 (thumb1_expand_epilogue): Likewise.
10632
10633 2010-07-09 Jakub Jelinek <jakub@redhat.com>
10634
10635 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
10636 both ranges are range_int_cst_p with non-negative minimum,
10637 try harder to derive smaller range.
10638
10639 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10640
10641 * genrecog.c: Include diagnostic-core.h before toplev.h.
10642 * genoutput.c: Likewise.
10643 * genextract.c: Likewise.
10644 * genautomata.c: Likewise.
10645 * genemit.c: Likewise.
10646 * genpeep.c: Likewise.
10647 * genattrtab.c: Likewise.
10648 * genconditions.c: Likewise.
10649 * genpreds.c: Likewise.
10650
10651 2010-07-08 Andi Kleen <ak@linux.intel.com>
10652
10653 * lto-section-in.c (lto_section_name): Add missing comma.
10654
10655 2010-07-08 Anatoly Sokolov <aesok@post.ru>
10656
10657 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
10658 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
10659 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
10660 (ia64_override_options): Rename to...
10661 (ia64_option_override): ... this one. Make static.
10662
10663 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
10664
10665 PR middle-end/44843
10666 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
10667 pointed-to type of the offset in a MEM_REF to compute the alignment.
10668
10669 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
10670
10671 * final.c (final_scan_insn): Replace
10672 TARGET_UNWIND_INFO macro check by unwind_emit
10673 hook NULL check.
10674 * targhooks.c (default_unwind_emit): Removed.
10675 * targhooks.h (default_unwind_emit): Likewise.
10676 * target.def (unwind_emit): Set default value to NULL.
10677
10678 * config/i386/i386-protos.h (ix86_asm_output_function_label):
10679 New prototype.
10680 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
10681 for NULL fntype argument and allow 64-bit targets.
10682 (ix86_asm_output_function_label): New function.
10683 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
10684 (ix86_handle_fndecl_attribute): Likewise.
10685 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
10686 * doc/doc/tm.texi: Regenerated.
10687 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
10688 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
10689 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
10690 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
10691 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10692 * config/elfos.h: Likewise.
10693 * config/i386/cygming.h: Likewise.
10694 * config/netbsd-aout.h: Likewise.
10695 * config/openbsd.h: Likewise.
10696 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
10697 by ix86_asm_output_function_label function call.
10698 * varasm.c (assemble_start_function): Use
10699 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10700
10701 2010-07-08 Jan Hubicka <jh@suse.cz>
10702
10703 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
10704 New function.
10705 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
10706 Declare.
10707 * ipa-cp.c (ipcp_estimate_growth): Use it.
10708 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
10709 Likewise.
10710
10711 2010-07-08 Jan Hubicka <jh@suse.cz>
10712
10713 * tree-inline.c (declare_return_variable): Allocate annotation for new
10714 temporary.
10715
10716 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
10717
10718 PR tree-optimization/44710
10719 * tree-if-conv.c (parse_predicate): New.
10720 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
10721 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
10722
10723 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
10724
10725 * common.opt (ftree-loop-if-convert): New flag.
10726 * doc/invoke.texi (ftree-loop-if-convert): Documented.
10727 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
10728 when flag_tree_loop_if_convert is set.
10729
10730 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
10731
10732 * config/i386/i386.c: Use short syntax for function calls
10733 through function pointers.
10734 * config/i386/i386.md: Ditto.
10735
10736 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
10737
10738 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
10739
10740 2010-07-08 Richard Guenther <rguenther@suse.de>
10741
10742 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
10743 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
10744
10745 2010-07-08 Jakub Jelinek <jakub@redhat.com>
10746
10747 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
10748 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
10749 (loc_list_from_tree): Likewise.
10750 (output_loc_operands): Handle outputting DW_OP_const[48]u
10751 with loc->dtprel set.
10752 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
10753
10754 2010-07-08 Jan Hubicka <jh@suse.cz>
10755
10756 * ipa.c: Include pointer-set.h
10757 (cgraph_externally_visible_p): New attribute ALIASED;
10758 when in LTO, hidden symbols are local unless they are aliased.
10759 (function_and_variable_visibility): Compute aliased nodes;
10760 handle LTO and hidden symbol on functions and vars.
10761 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
10762 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
10763
10764 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
10765
10766 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
10767 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10768 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10769 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10770 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10771 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
10772 (ix86_gen_probe_stack_range): Likewise.
10773 (override_options): Set them.
10774 (ix86_target_stack_probe): New function.
10775 (ix86_compute_frame_layout): Force use of push instructions to
10776 save registers if stack checking with probes is enabled.
10777 (get_scratch_register_on_entry): New function.
10778 (release_scratch_register_on_entry): Likewise.
10779 (ix86_adjust_stack_and_probe): Likewise.
10780 (output_adjust_stack_and_probe): Likewise.
10781 (ix86_emit_probe_stack_range): Likewise.
10782 (output_probe_stack_range): Likewise.
10783 (ix86_expand_prologue): Emit stack checking code if static built-in
10784 stack checking is enabled.
10785 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
10786 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
10787 (output_adjust_stack_and_probe): Likewise.
10788 (output_probe_stack_range): Likewise.
10789 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
10790 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
10791 TARGET_STACK_PROBE.
10792 (allocate_stack_worker_64): Likewise.
10793 (allocate_stack): Likewise.
10794 (adjust_stack_and_probe): New insn.
10795 (probe_stack_range): Likewise.
10796
10797 2010-07-08 Richard Guenther <rguenther@suse.de>
10798
10799 PR tree-optimization/44831
10800 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
10801 a MEM_REF preserving TBAA info of the original dereference.
10802 Dereference the original pointer if the address is not invariant.
10803 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
10804 at least one invariant address that we are going to dereference.
10805
10806 2010-07-08 Richard Guenther <rguenther@suse.de>
10807
10808 PR tree-optimization/44861
10809 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
10810 information when building MEM_REFs.
10811 (vectorizable_load): Likewise.
10812 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
10813
10814 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
10815
10816 * config/sol2-c.c: Do not include diagnostic-core.h.
10817
10818 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10819
10820 PR bootstrap/44768
10821 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
10822 with respect to current_function_decl. Pass decl of the function.
10823 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
10824 * ipa-inline.c (compute_inline_parameters): Pass decl to
10825 estimated_stack_frame_size.
10826
10827 2010-07-08 Richard Guenther <rguenther@suse.de>
10828
10829 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
10830 New function.
10831 (valueize_refs): Call it.
10832
10833 2010-07-08 Richard Guenther <rguenther@suse.de>
10834
10835 PR rtl-optimization/44838
10836 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
10837 SSA form do not use pointer equivalence.
10838
10839 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
10840
10841 * dwarf2out.c (AT_linkage_name): Delete.
10842 (add_linkage_attr): New function.
10843 (add_linkage_name): Call it to emit the linkage attribute.
10844 (dwarf2out_finish): Likewise.
10845 (move_linkage_attr): Explicitly accept both attribute variants.
10846
10847 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
10848
10849 * toplev.h: Do not include diagnostic-core.h.
10850 Include diagnostic-core.h in every file that includes toplev.h.
10851 * c-tree.h: Do not include toplev.h.
10852 * pretty-print.h: Update comment.
10853 * Makefile.in: Update dependencies.
10854 * alias.c: Include diagnostic-core.h in every file that includes
10855 toplev.h.
10856 * attribs.c: Likewise.
10857 * auto-inc-dec.c: Likewise.
10858 * bb-reorder.c: Likewise.
10859 * bt-load.c: Likewise.
10860 * caller-save.c: Likewise.
10861 * calls.c: Likewise.
10862 * cfg.c: Likewise.
10863 * cfganal.c: Likewise.
10864 * cfgbuild.c: Likewise.
10865 * cfgcleanup.c: Likewise.
10866 * cfghooks.c: Likewise.
10867 * cfgloop.c: Likewise.
10868 * combine.c: Likewise.
10869 * config/alpha/alpha.c: Likewise.
10870 * config/arc/arc.c: Likewise.
10871 * config/arm/arm.c: Likewise.
10872 * config/arm/pe.c: Likewise.
10873 * config/avr/avr.c: Likewise.
10874 * config/bfin/bfin.c: Likewise.
10875 * config/cris/cris.c: Likewise.
10876 * config/crx/crx.c: Likewise.
10877 * config/darwin-c.c: Likewise.
10878 * config/darwin.c: Likewise.
10879 * config/fr30/fr30.c: Likewise.
10880 * config/frv/frv.c: Likewise.
10881 * config/h8300/h8300.c: Likewise.
10882 * config/host-darwin.c: Likewise.
10883 * config/i386/i386.c: Likewise.
10884 * config/i386/netware.c: Likewise.
10885 * config/i386/nwld.c: Likewise.
10886 * config/i386/winnt-cxx.c: Likewise.
10887 * config/i386/winnt-stubs.c: Likewise.
10888 * config/i386/winnt.c: Likewise.
10889 * config/ia64/ia64-c.c: Likewise.
10890 * config/ia64/ia64.c: Likewise.
10891 * config/iq2000/iq2000.c: Likewise.
10892 * config/lm32/lm32.c: Likewise.
10893 * config/m32c/m32c-pragma.c: Likewise.
10894 * config/m32c/m32c.c: Likewise.
10895 * config/m32r/m32r.c: Likewise.
10896 * config/m68hc11/m68hc11.c: Likewise.
10897 * config/m68k/m68k.c: Likewise.
10898 * config/mcore/mcore.c: Likewise.
10899 * config/mep/mep-pragma.c: Likewise.
10900 * config/mep/mep.c: Likewise.
10901 * config/mmix/mmix.c: Likewise.
10902 * config/mn10300/mn10300.c: Likewise.
10903 * config/moxie/moxie.c: Likewise.
10904 * config/pa/pa.c: Likewise.
10905 * config/pdp11/pdp11.c: Likewise.
10906 * config/picochip/picochip.c: Likewise.
10907 * config/rs6000/rs6000-c.c: Likewise.
10908 * config/rs6000/rs6000.c: Likewise.
10909 * config/rx/rx.c: Likewise.
10910 * config/s390/s390.c: Likewise.
10911 * config/score/score.c: Likewise.
10912 * config/score/score3.c: Likewise.
10913 * config/score/score7.c: Likewise.
10914 * config/sh/sh.c: Likewise.
10915 * config/sh/symbian-base.c: Likewise.
10916 * config/sh/symbian-c.c: Likewise.
10917 * config/sh/symbian-cxx.c: Likewise.
10918 * config/sol2-c.c: Likewise.
10919 * config/sol2.c: Likewise.
10920 * config/sparc/sparc.c: Likewise.
10921 * config/spu/spu.c: Likewise.
10922 * config/stormy16/stormy16.c: Likewise.
10923 * config/v850/v850-c.c: Likewise.
10924 * config/v850/v850.c: Likewise.
10925 * config/vax/vax.c: Likewise.
10926 * config/vxworks.c: Likewise.
10927 * config/xtensa/xtensa.c: Likewise.
10928 * convert.c: Likewise.
10929 * cse.c: Likewise.
10930 * cselib.c: Likewise.
10931 * dbgcnt.c: Likewise.
10932 * dbxout.c: Likewise.
10933 * ddg.c: Likewise.
10934 * dominance.c: Likewise.
10935 * emit-rtl.c: Likewise.
10936 * explow.c: Likewise.
10937 * expmed.c: Likewise.
10938 * fixed-value.c: Likewise.
10939 * fold-const.c: Likewise.
10940 * fwprop.c: Likewise.
10941 * gcse.c: Likewise.
10942 * ggc-common.c: Likewise.
10943 * ggc-page.c: Likewise.
10944 * ggc-zone.c: Likewise.
10945 * gimple-low.c: Likewise.
10946 * gimplify.c: Likewise.
10947 * graph.c: Likewise.
10948 * haifa-sched.c: Likewise.
10949 * ifcvt.c: Likewise.
10950 * implicit-zee.c: Likewise.
10951 * integrate.c: Likewise.
10952 * ira-build.c: Likewise.
10953 * ira-color.c: Likewise.
10954 * ira-conflicts.c: Likewise.
10955 * ira-costs.c: Likewise.
10956 * ira-lives.c: Likewise.
10957 * ira.c: Likewise.
10958 * lists.c: Likewise.
10959 * loop-doloop.c: Likewise.
10960 * loop-iv.c: Likewise.
10961 * lto-opts.c: Likewise.
10962 * lto-symtab.c: Likewise.
10963 * main.c: Likewise.
10964 * modulo-sched.c: Likewise.
10965 * optabs.c: Likewise.
10966 * params.c: Likewise.
10967 * plugin.c: Likewise.
10968 * postreload-gcse.c: Likewise.
10969 * postreload.c: Likewise.
10970 * predict.c: Likewise.
10971 * profile.c: Likewise.
10972 * real.c: Likewise.
10973 * regcprop.c: Likewise.
10974 * reginfo.c: Likewise.
10975 * regmove.c: Likewise.
10976 * reorg.c: Likewise.
10977 * resource.c: Likewise.
10978 * rtl.c: Likewise.
10979 * rtlanal.c: Likewise.
10980 * sched-deps.c: Likewise.
10981 * sched-ebb.c: Likewise.
10982 * sched-rgn.c: Likewise.
10983 * sdbout.c: Likewise.
10984 * sel-sched-dump.c: Likewise.
10985 * sel-sched-ir.c: Likewise.
10986 * simplify-rtx.c: Likewise.
10987 * stmt.c: Likewise.
10988 * stor-layout.c: Likewise.
10989 * store-motion.c: Likewise.
10990 * targhooks.c: Likewise.
10991 * tree-cfg.c: Likewise.
10992 * tree-cfgcleanup.c: Likewise.
10993 * tree-dump.c: Likewise.
10994 * tree-eh.c: Likewise.
10995 * tree-inline.c: Likewise.
10996 * tree-nomudflap.c: Likewise.
10997 * tree-object-size.c: Likewise.
10998 * tree-optimize.c: Likewise.
10999 * tree-outof-ssa.c: Likewise.
11000 * tree-phinodes.c: Likewise.
11001 * tree-profile.c: Likewise.
11002 * tree-ssa-ccp.c: Likewise.
11003 * tree-ssa-coalesce.c: Likewise.
11004 * tree-ssa-live.c: Likewise.
11005 * tree-ssa-loop-niter.c: Likewise.
11006 * tree-ssa-loop-prefetch.c: Likewise.
11007 * tree-ssa-loop.c: Likewise.
11008 * tree-ssa-structalias.c: Likewise.
11009 * tree-ssa-uninit.c: Likewise.
11010 * tree-ssa.c: Likewise.
11011 * tree-vect-data-refs.c: Likewise.
11012 * tree-vect-loop-manip.c: Likewise.
11013 * tree-vect-loop.c: Likewise.
11014 * tree-vect-patterns.c: Likewise.
11015 * tree-vect-stmts.c: Likewise.
11016 * tree-vrp.c: Likewise.
11017 * varasm.c: Likewise.
11018 * vec.c: Likewise.
11019 * web.c: Likewise.
11020 * xcoffout.c: Likewise.
11021
11022 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
11023
11024 * gengtype.c (write_field_root): New function.
11025 (write_root): Use it.
11026
11027 2010-07-07 Wei Guozhi <carrot@google.com>
11028
11029 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
11030 of lowest bits to lshift/compare): Add a missing line.
11031
11032 2010-07-07 Wei Guozhi <carrot@google.com>
11033
11034 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
11035 of lowest bits to lshift/compare): New.
11036
11037 2010-07-07 Tom Tromey <tromey@redhat.com>
11038
11039 * doc/tm.texi: Update.
11040 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
11041 Add @hook.
11042 * target.def (want_debug_pub_sections): New hook.
11043 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
11044 * dwarf2out.c (add_pubname_string): Check
11045 targetm.want_debug_pub_sections.
11046 (add_pubname): Likewise.
11047 (add_pubtype): Likewise.
11048
11049 2010-07-07 Jie Zhang <jie@codesourcery.com>
11050
11051 * genautomata.c (output_automata_list_min_issue_delay_code):
11052 Correctly decompress min_issue_delay.
11053
11054 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
11055
11056 PR rtl-optimization/44404
11057 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
11058 possible, use reg_overlap_mentioned_p instead.
11059
11060 2010-07-07 Duncan Sands <baldrick@free.fr>
11061
11062 PR middle-end/41355
11063 * tree.c (build_function_type_skip_args): Copy the original type using
11064 build_distinct_type_copy rather than copy_node.
11065
11066 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
11067
11068 PR target/44850
11069 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
11070 revision 161876.
11071 (ix86_expand_prologue): Likewise.
11072 (ix86_handle_fndecl_attribute): Likewise.
11073 (ix86_asm_declare_function_name): Likewise.
11074 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11075 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11076 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
11077 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
11078 * doc/extend.texi: Likewise.
11079
11080 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
11081
11082 PR target/44844
11083 * config/i386/i386.md (rdrand<mode>): Changed to expand to
11084 retry if the carry flag isn't valid.
11085 (rdrand<mode>_1): New.
11086
11087 2010-07-07 Richard Guenther <rguenther@suse.de>
11088
11089 PR middle-end/44790
11090 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
11091 for expanding the constant offset for MEM_REFs.
11092
11093 2010-07-07 Richard Guenther <rguenther@suse.de>
11094
11095 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
11096 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
11097 * gimple.h (is_gimple_operand): Remove.
11098 * gimple.c (is_gimple_operand): Likewise.
11099 (walk_gimple_op): Fix wi->val_only setting for calls.
11100 * tree-cfg.c (verify_gimple_call): Fix argument validation.
11101 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
11102 invalid gimple calls.
11103
11104 2010-07-06 Jan Hubicka <jh@suse.cz>
11105
11106 * lto-cgraph.c (output_cgraph): Add missing declaration.
11107
11108 2010-07-06 Jan Hubicka <jh@suse.cz>
11109
11110 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
11111 partition.
11112
11113 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
11114
11115 * doc/gimple.texi (GIMPLE_DEBUG): Document.
11116 * doc/rtl.texi (Debug Information): New node.
11117 (NOTE_INSN_VAR_LOCATION): Document.
11118 (debug_insn): Likewise.
11119 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
11120
11121 2010-07-07 Jan Hubicka <jh@suse.cz>
11122
11123 With parts by Richard Guenther.
11124
11125 PR middle-end/44813
11126 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
11127 for functions passed by reference.
11128 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
11129 in memory when passed by reference.
11130 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
11131 beggining.
11132 * ipa-split.c (split_function): Cleanup way return value is passed;
11133 handle SSA DECL_BY_REFERENCE retvals.
11134 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
11135 DECL_BY_REFERENCE is set.
11136 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
11137 find_what_p_points_to): Handle RESULT_DECL.
11138 * tree-inline.c (declare_return_variable): Get new entry_block argument;
11139 when passing by reference ensure that RESULT_DECL is gimple_val.
11140 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
11141 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
11142
11143 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
11144
11145 PR rtl-optimization/44787
11146 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
11147 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
11148
11149 2010-07-06 Jan Hubicka <jh@suse.cz>
11150
11151 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
11152 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
11153 with body can prevail.
11154 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
11155 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
11156 * cgraph.c (cgraph_get_node_or_alias): New function.
11157 * cgraph.h (cgraph_get_node_or_alias): Declare.
11158
11159 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
11160
11161 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
11162 support.
11163 (ix86_expand_prologue): Likewise.
11164 (ix86_handle_fndecl_attribute): Likewise.
11165 (ix86_asm_declare_function_name): New function for
11166 ASM_DECLARE_FUNCTION_NAME.
11167 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
11168 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
11169 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
11170 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
11171 * doc/extend.texi: Adjust documentation about ms_hook_prologue
11172 attribute.
11173
11174 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
11175
11176 * config/i386/i386.md (immediate_operand): New mode attribute.
11177
11178 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
11179 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
11180 using P mode iterator.
11181 (pro_epilogue_adjust_stack_di_2): Rename from
11182 pro_epilogue_adjust_stack_rex64_2.
11183
11184 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
11185
11186 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
11187
11188 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
11189 through gen_mov_insv_1 function pointer.
11190 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
11191 gen_truncxf<mode>2 through gen_truncxf function pointer.
11192 (remainder<mode>3): Ditto.
11193 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
11194 (allocate_stack): Call gen_allocate_stack_worker_64 or
11195 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
11196 function pointer.
11197 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
11198 function pointer.
11199
11200 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
11201
11202 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
11203 operand constraint instead of <r><i>m.
11204
11205 2010-07-06 Richard Guenther <rguenther@suse.de>
11206
11207 PR middle-end/44828
11208 * convert.c (convert_to_integer): Watch out for overflowing
11209 MULT_EXPR as well.
11210
11211 2010-07-05 Jan Hubicka <jh@suse.cz>
11212
11213 * lto-streamer.c (write_symbol_vec): Rename to ...
11214 (write_symbol) ... this one; write only symbol given and when
11215 present in cache. Sanity check that what is defined is present
11216 in cgraph/varpool with body/finalized decl.
11217 (write_symbols_of_kind): Remove.
11218 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
11219 pairs to produce symtab.
11220 (produce_asm_for_decls): Update call of produce_symtab; don't do so
11221 when doing WPA streaming.
11222
11223 2010-07-05 Jan Hubicka <jh@suse.cz>
11224
11225 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
11226 function is still available to fold into.
11227
11228 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
11229
11230 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
11231 * function.h (struct_function): Change type of local_decls field
11232 to a VEC.
11233 (add_local_decl): New function.
11234 (FOR_EACH_LOCAL_DECL): New macro.
11235 * cfgexpand.c (init_vars_expansion): Adjust for new type of
11236 cfun->local_decls.
11237 (estimated_stack_frame_size): Likewise.
11238 (expand_used_vars): Likewise.
11239 * cgraphbuild.c (build_cgraph_edges): Likewise.
11240 * function.c (instantiate_decls_1): Likewise.
11241 * ipa-struct-reorg.c (build_data_structure): Likewise.
11242 * ipa-type-escape.c (analyze_function): Likewise.
11243 * lto-streamer-in.c (input_function): Likewise.
11244 * lto-streamer-out.c (output_function): Likewise.
11245 * tree-ssa-live.c (remove_unused_locals): Likewise.
11246 * tree.c (free_lang_data_in_decl): Likewise.
11247 (find_decls_types_in_node): Likewise.
11248 * omp-low.c (remove_exit_barrier): Likewise.
11249 (expand_omp_taskreg): Likewise.
11250 (list2chain): Rename to...
11251 (vec2chain): ...this. Adjust.
11252 * cgraphunit.c (assemble_thunk): Call add_local_decl.
11253 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
11254 * gimple-low.c (record_vars_into): Likewise.
11255 * tree-inline.c (remap_decls): Likewise.
11256 (declare_return_variable): Likewise.
11257 (declare_inline_vars): Likewise.
11258 (copy_forbidden): Adjust for new type of cfun->local_decls.
11259 (add_local_variables): New function.
11260 (expand_call_inline): Call it.
11261 (tree_function_versioning): Likewise.
11262
11263 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
11264
11265 AVX Programming Reference (June, 2010)
11266 * config/i386/cpuid.h (bit_F16C): New.
11267 (bit_RDRND): Likewise.
11268 (bit_FSGSBASE): Likewise.
11269
11270 * config/i386/i386-builtin-types.def: Add
11271 "DEF_FUNCTION_TYPE (UINT16)", function types for
11272 float16 <-> float conversions and
11273 "DEF_FUNCTION_TYPE (VOID, UINT64)".
11274
11275 * config/i386/i386-c.c (ix86_target_macros_internal): Support
11276 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
11277 OPTION_MASK_ISA_F16C.
11278
11279 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
11280 (OPTION_MASK_ISA_RDRND_SET): Likewise.
11281 (OPTION_MASK_ISA_F16C_SET): Likewise.
11282 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
11283 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
11284 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
11285 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
11286 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
11287 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
11288 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
11289 (override_options): Handle them.
11290 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
11291 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
11292 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
11293 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
11294 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
11295 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
11296 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
11297 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
11298 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
11299 (bdesc_args): Likewise.
11300 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
11301 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
11302 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
11303 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
11304 Handle non-memory store.
11305
11306 * config/i386/i386.h (TARGET_FSGSBASE): New.
11307 (TARGET_RDRND): Likewise.
11308 (TARGET_F12C): Likewise.
11309
11310 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
11311 (UNSPEC_VCVTPS2PH): Likewise.
11312 (UNSPECV_RDFSBASE): Likewise.
11313 (UNSPECV_RDGSBASE): Likewise.
11314 (UNSPECV_WRFSBASE): Likewise.
11315 (UNSPECV_WRGSBASE): Likewise.
11316 (UNSPECV_RDRAND): Likewise.
11317 (rdfsbase<mode>): Likewise.
11318 (rdgsbase<mode>): Likewise.
11319 (wrfsbase<mode>): Likewise.
11320 (wrgsbase<mode>): Likewise.
11321 (rdrand<mode>): Likewise.
11322
11323 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
11324
11325 * config/i386/immintrin.h (_rdrand_u16): New.
11326 (_rdrand_u32): Likewise.
11327 (_readfsbase_u32): Likewise.
11328 (_readfsbase_u64): Likewise.
11329 (_readgsbase_u32): Likewise.
11330 (_readgsbase_u64): Likewise.
11331 (_writefsbase_u32): Likewise.
11332 (_writefsbase_u64): Likewise.
11333 (_writegsbase_u32): Likewise.
11334 (_writegsbase_u64): Likewise.
11335 (_rdrand_u64): Likewise.
11336 (_cvtsh_ss): Likewise.
11337 (_mm_cvtph_ps): Likewise.
11338 (_mm256_cvtph_ps): Likewise.
11339 (_cvtss_sh): Likewise.
11340 (_mm_cvtps_ph): Likewise.
11341 (_mm256_cvtps_ph): Likewise.
11342
11343 * config/i386/sse.md (vcvtph2ps): New.
11344 (*vcvtph2ps_load): Likewise.
11345 (vcvtph2ps256): Likewise.
11346 (vcvtps2ph): Likewise.
11347 (*vcvtps2ph): Likewise.
11348 (*vcvtps2ph_store): Likewise.
11349 (vcvtps2ph256): Likewise.
11350
11351 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
11352
11353 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
11354
11355 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
11356
11357 PR bootstrap/44512
11358 * genenums.c (main): Output include of insn-constants.h
11359 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
11360
11361 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
11362
11363 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
11364 (override_options): Initialize it.
11365 (ix86_expand_prologue): Use it.
11366
11367 2010-07-05 Jakub Jelinek <jakub@redhat.com>
11368
11369 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
11370
11371 2010-07-05 Anatoly Sokolov <aesok@post.ru>
11372
11373 * double-int.h (fit_double_type): Remove declaration.
11374 * double-int.c (fit_double_type): Remove function.
11375 * tree.h (int_fits_type_p): Adjust prototype.
11376 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
11377 instead of fit_double_type.
11378 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
11379 instead of fit_double_type and build_int_cst_wide.
11380 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
11381 instead of fit_double_type and build_int_cst_wide.
11382 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
11383 of fit_double_type.
11384
11385 2010-07-05 Jan Hubicka <jh@suse.cz>
11386
11387 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
11388 in_other_partition.
11389 * lto-cgraph.c (referenced_from_other_partition_p,
11390 reachable_from_other_partition_p): Use in_other_partition flags.
11391 (output_node, output_varpool_node): COMDAT nodes always have private
11392 copies and thus are never used from other partition.
11393
11394 2010-07-05 Anatoly Sokolov <aesok@post.ru>
11395
11396 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
11397 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
11398 * config/ia64/ia64.c Include reload.h.
11399 (ia64_memory_move_cost): New function.
11400 (TARGET_MEMORY_MOVE_COST): Define.
11401 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
11402 memory_move_cost.
11403
11404 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
11405
11406 PR middle-end/42505
11407 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
11408 comments about cost model.
11409 (try_add_cand_for): Add second strategy for choosing initial set
11410 based on original IVs, controlled by ORIGINALP argument.
11411 (get_initial_solution): Add ORIGINALP argument.
11412 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
11413 (find_optimal_iv_set): Try two different strategies for choosing
11414 the IV set, and return the one with lower cost.
11415
11416 2010-07-05 Richard Guenther <rguenther@suse.de>
11417
11418 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
11419
11420 2010-07-05 Richard Guenther <rguenther@suse.de>
11421
11422 * tree.c (reference_alias_ptr_type): New function.
11423 * tree.h (reference_alias_ptr_type): Declare.
11424 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
11425 allow non-TARGET_MEM_REF new refs.
11426 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
11427 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
11428 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
11429 (create_mem_ref): Get alias pointer type. Adjust calls to
11430 create_mem_ref_raw.
11431 (maybe_fold_tmr): Likewise.
11432 * tree-flow.h (create_mem_ref): Adjust prototype.
11433
11434 2010-07-05 Jakub Jelinek <jakub@redhat.com>
11435
11436 PR c++/44808
11437 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
11438 *from_p is VAR_DECL.
11439
11440 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
11441
11442 * tree.h (build_call_list): Remove.
11443 * tree.c (build_call_list): Remove.
11444
11445 2010-07-05 Richard Guenther <rguenther@suse.de>
11446
11447 * double-int.h (double_int_sub): Declare.
11448 * double-int.c (double_int_sub): New function.
11449 * dwarf2out.c (field_byte_offset): Use it.
11450 * fixed-value.c (do_fixed_add): Likewise.
11451 (do_fixed_multiply): Likewise.
11452 (do_fixed_divide): Likewise.
11453 * tree-predcom.c (add_ref_to_chain): Likewise.
11454 (determine_roots_comp): Likewise.
11455 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
11456
11457 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
11458
11459 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
11460 implementations.
11461
11462 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
11463
11464 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
11465 * arm-modes.def (CC_NOTB): Don't define.
11466 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
11467 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
11468 (LTUGEU): New code_iterator.
11469 (cnb, optab): New corresponding code_attrs.
11470 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
11471 to canonical form. Operands 1 and 2 are commutative. Parametrize
11472 using LTUGEU.
11473 (addsi3_carryin_shift_<optab>): Likewise.
11474 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
11475 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
11476 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
11477 (subsi3_compare): Renamed from subsi3_compare0_c.
11478 Change CC_NOTB to CC.
11479 (arm_subsi3_insn): Allow constants for operand 0.
11480 (compare_scc peephole for eq case): New.
11481 (compare_scc splitters): Change CC_NOTB to CC.
11482
11483 2010-07-05 Richard Guenther <rguenther@suse.de>
11484
11485 * tree-ssa-loop-im.c (for_each_index): Do not handle
11486 ALIGN_INDIRECT_REF.
11487 (gen_lsm_tmp_name): Likewise.
11488 * tree-dump.c (dequeue_and_dump): Likewise.
11489 * tree-pretty-print.c (dump_generic_node): Likewise.
11490 (op_code_prio): Likewise.
11491 (op_symbol_code): Likewise.
11492 * tree.c (staticp): Likewise.
11493 (build1_stat): Likewise.
11494 * tree.h (INDIRECT_REF_P): Likewise.
11495 * fold-const.c (maybe_lvalue_p): Likewise.
11496 (operand_equal_p): Likewise.
11497 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11498 (ao_ref_init_from_vn_reference): Likewise.
11499 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11500 (find_interesting_uses_address): Likewise.
11501 * dwarf2out.c (loc_list_from_tree): Likewise.
11502 * gimplify.c (gimplify_expr): Likewise.
11503 * tree-eh.c (tree_could_trap_p): Likewise.
11504 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11505 * cfgexpand.c (expand_debug_expr): Likewise.
11506 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11507 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11508 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11509 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
11510 * tree-ssa-operands.c (get_expr_operands): Likewise.
11511 * expr.c (safe_from_p): Likewise.
11512 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
11513 * tree-vect-data-refs.c (vect_setup_realignment): Build
11514 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
11515 * tree-vect-stmts.c (vectorizable_load): Likewise.
11516 * tree.def (ALIGN_INDIRECT_REF): Remove.
11517
11518 2010-07-05 Richard Guenther <rguenther@suse.de>
11519
11520 PR tree-optimization/44784
11521 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
11522 for inserted stmts.
11523 (find_or_generate_expression): Fix SCCVN insertion check.
11524
11525 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
11526
11527 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
11528 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
11529 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
11530 directives.
11531
11532 2010-07-05 Ira Rosen <irar@il.ibm.com>
11533
11534 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
11535 statements that are not vectorized.
11536 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
11537 in INSIDE_COST.
11538
11539 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
11540
11541 PR bootstrap/44820
11542 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
11543
11544 2010-07-05 Richard Guenther <rguenther@suse.de>
11545
11546 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
11547 RESULT_DECLs properly.
11548
11549 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
11550
11551 PR rtl-optimization/44695
11552 * config/i386/i386.md (extract_code): Removed.
11553 (<u>divmodqi4): Likewise.
11554 (divmodqi4): New.
11555 (udivmodqi4): Likewise.
11556 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
11557 (udivmodhiqi3): Likewise.
11558
11559 2010-07-04 Jan Hubicka <jh@suse.cz>
11560
11561 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
11562
11563 2010-07-04 Jan Hubicka <jh@suse.cz>
11564
11565 * cgraphunit.c (init_cgraph): Only initialize dump file if it
11566 is not already initialized.
11567
11568 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
11569
11570 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
11571 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
11572 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
11573 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
11574 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
11575 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
11576 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
11577 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
11578 (sync_new_nand_optab): Redefine as macros.
11579 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
11580 Delete.
11581 (direct_optab_index): New enum.
11582 (direct_optab_d): New structure.
11583 (direct_optab): New typedef.
11584 (direct_optab_table): Declare.
11585 (direct_optab_handler, set_direct_optab_handler): New functions.
11586 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
11587 (sync_lock_release_optab): New macros.
11588 * optabs.c (direct_optab_table): New variable.
11589 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
11590 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
11591 cmpstr_optab and cmpstrn_optab.
11592 (emit_conditional_move): Likewise for movcc_optab.
11593 (can_conditionally_move_p): Likewise for movcc_gen_code.
11594 (init_insn_codes): Clear direct_optab_table.
11595 (init_optabs): Don't initialize the new "direct optabs" here.
11596 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
11597 vcond_gen_code.
11598 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
11599 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
11600 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
11601 (expand_sync_operation): Likewise other sync_*_optabs.
11602 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
11603 to sync_compare_and_swap_optab.
11604 (expand_sync_lock_test_and_set): Use direct_optab_handler for
11605 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
11606 to the names of both.
11607 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
11608 cmpstr_optab and cmpstrn_optab.
11609 (expand_builtin_lock_release): Likewise sync_lock_release.
11610 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
11611 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
11612 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
11613 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
11614 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
11615 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
11616 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
11617 (sync_lock_test_and_set, sync_lock_release): Delete.
11618 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
11619 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
11620 * genopinit.c (optabs): Use set_direct_optab_handler for the new
11621 macro optabs.
11622 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
11623 the "optab" local variable. Use direct_optab_handler for optab and
11624 sync_compare_and_swap_optab.
11625 * reload1.c (reload_in_optab, reload_out_optab): Delete.
11626 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
11627 reload_in_optab and reload_out_optab.
11628 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
11629 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
11630 * config/pa/pa.c (pa_secondary_reload): Likewise.
11631 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
11632 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
11633 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
11634 (VMSupportsCS8_builtin): Likewise.
11635
11636 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
11637
11638 * optabs.h (optab_handlers): Change type of insn_code to int.
11639 (optab_handler, set_optab_handler, convert_optab_handler)
11640 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
11641 CODE_FOR_nothing".
11642 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
11643 (init_insn_codes): Zero both the above arrays.
11644 (init_optabs): Never call init_insn_codes first time around.
11645
11646 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
11647
11648 * optabs.h (optab_handler, convert_optab_handler): Turn into
11649 inline functions that return an insn code.
11650 (set_optab_handler, set_convert_optab_handler): New functions.
11651 * builtins.c: Replace optab_handler(X)->insn_code with
11652 optab_handler or set_optab_handler thoughout. Likewise
11653 convert_optab_handler(X)->insn_code with convert_optab_handler
11654 and set_convert_optab_handler.
11655 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
11656 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
11657 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
11658 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
11659 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
11660 config/spu/spu.c: Likewise.
11661
11662 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
11663
11664 PR target/44531
11665 * config.gcc (sh*-*-*): Use regular expressions instead of
11666 the 'i' modifier for sed substitutions.
11667
11668 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
11669
11670 * gimple.c (gimple_body): Comments added.
11671
11672 2010-07-04 Richard Guenther <rguenther@suse.de>
11673
11674 PR middle-end/44809
11675 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
11676 of an INDIRECT_REF.
11677
11678 2010-07-04 Richard Guenther <rguenther@suse.de>
11679
11680 PR tree-optimization/44479
11681 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
11682 extra SSA name copy statements which preserves points-to
11683 information.
11684 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
11685 Copy points-to information for all pointers. Properly handle
11686 MEM_REFs.
11687 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
11688 copy statements.
11689 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
11690 dependency.
11691
11692 2010-07-04 Richard Guenther <rguenther@suse.de>
11693
11694 PR middle-end/44785
11695 * tree-inline.c (initialize_inlined_parameters): Do not
11696 re-use pointer-map slot over remap_type call.
11697
11698 2010-07-04 Richard Guenther <rguenther@suse.de>
11699
11700 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
11701
11702 2010-07-04 Richard Guenther <rguenther@suse.de>
11703
11704 PR tree-optimization/44656
11705 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
11706 again after value-replacing in the defintions lhs.
11707
11708 2010-07-04 Ira Rosen <irar@il.ibm.com>
11709 Revital Eres <eres@il.ibm.com>
11710
11711 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
11712 Document new arguments.
11713 * doc/tm.texi: Regenerate.
11714 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
11715 Handle unaligned store.
11716 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
11717 * target.def (builtin_vectorization_cost): Add new arguments.
11718 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
11719 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
11720 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
11721 (vect_vfa_segment_size): Fix indentation.
11722 * tree-vectorizer.h (struct _vect_peel_info): New.
11723 (struct _vect_peel_extended_info): New.
11724 (struct _loop_vec_info): Add new field for peeling hash table and a
11725 macro for its access.
11726 (VECT_MAX_COST): Define.
11727 (vect_get_load_cost): Declare.
11728 (vect_get_store_cost, vect_get_known_peeling_cost,
11729 vect_get_single_scalar_iteraion_cost): Likewise.
11730 (vect_supportable_dr_alignment): Add new argument.
11731 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
11732 field.
11733 (destroy_loop_vec_info): Free peeling hash table.
11734 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
11735 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
11736 vect_analyze_slp. Fix indentation.
11737 (vect_get_single_scalar_iteraion_cost): New function.
11738 (vect_get_known_peeling_cost): Likewise.
11739 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
11740 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
11741 statement. Move outside cost calculation inside unknown peeling case.
11742 Call vect_get_known_peeling_cost for known amount of peeling.
11743 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
11744 reference to the print message of forced alignment.
11745 (vect_verify_datarefs_alignment): Update call to
11746 vect_supportable_dr_alignment.
11747 (vect_get_data_access_cost): New function.
11748 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
11749 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
11750 vect_peeling_hash_choose_best_peeling): Likewise.
11751 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
11752 to store all the accesses in the loop and find best possible access to
11753 align using peeling for known alignment case. For unknown alignment
11754 check if stores are preferred or if peeling is worthy.
11755 (vect_find_same_alignment_drs): Analyze pairs of loads too.
11756 (vect_supportable_dr_alignment): Add new argument and check aligned
11757 accesses according to it.
11758 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
11759 (cost_for_stmt): Call vect_get_stmt_cost.
11760 (vect_model_simple_cost): Likewise.
11761 (vect_model_store_cost): Call vect_get_stmt_cost. Call
11762 vect_get_store_cost to calculate the cost of the statement.
11763 (vect_get_store_cost): New function.
11764 (vect_model_load_cost): Call vect_get_stmt_cost. Call
11765 vect_get_load_cost to calculate the cost of the statement.
11766 (vect_get_load_cost): New function.
11767 (vectorizable_store): Update call to vect_supportable_dr_alignment.
11768 (vectorizable_load): Likewise.
11769 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
11770 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
11771 arguments. Handle unaligned store.
11772 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
11773 (rs6000_builtin_support_vector_misalignment): Return true for word and
11774 double word alignments for VSX.
11775 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
11776 vect_supportable_dr_alignment and builtin_vectorization_cost.
11777
11778 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11779
11780 PR target/44597
11781 * config/pa/predicates.md (prefetch_cc_operand): Remove.
11782 (prefetch_nocc_operand): Likewise.
11783 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
11784 (prefetch_20): New insn.
11785 (prefetch_cc): Remove.
11786 (prefetch_nocc): Likewise.
11787
11788 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
11789
11790 * expr.c (vector_mode_valid_p): Move to c-common.c.
11791 * expr.h (vector_mode_valid_p): Do not declare here.
11792 * system.h: Poison GCC_EXPR_H in front-ends.
11793 * Makefile.in: Update dependencies.
11794
11795 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11796
11797 PR target/44705
11798 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
11799
11800 2010-07-03 Jan Hubicka <jh@suse.cz>
11801
11802 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
11803 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
11804 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
11805 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
11806 Likewise.
11807
11808 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
11809 Update timevars.V
11810 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
11811 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
11812 TV_IPA_LTO_DECL_OUT): New.
11813 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
11814
11815 2010-07-03 Jan Hubicka <jh@suse.cz>
11816
11817 * ipa-inline.c (update_edge_key): Break out from ...
11818 update_callers_keys): ... here;
11819 (update_callee_keys): Update only the edges from caller to callee.
11820 (update_all_calle_keys): Do what update_calle_keys did.
11821 (decide_inlining_of_small_functions): Avoid recomputing of all
11822 callees when badness increase.
11823
11824 2010-07-03 Jie Zhang <jie@codesourcery.com>
11825
11826 * config/arm/arm.c (arm_attr_length_move_neon): New.
11827 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
11828 * config/arm/neon.md (define_mode_attr V_slen): Remove.
11829 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
11830 to compute length attribute.
11831
11832 2010-07-03 Jie Zhang <jie@codesourcery.com>
11833
11834 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
11835 as predicate for operand 1 and remove its constraint.
11836 * config/arm/predicates.md (vfp_register_operand): New.
11837 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
11838 (*push_fp_multi): Likewise.
11839
11840 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
11841
11842 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
11843
11844 2010-07-03 Jan Hubicka <jh@suse.cz>
11845
11846 * config/i386/i386.c (override_options): Revert accidental commit.
11847
11848 2010-07-02 Le-Chun Wu <lcwu@google.com>
11849
11850 PR c++/44128
11851 * doc/invoke.texi: Update documentation of -Wshadow.
11852
11853 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
11854 Julian Brown <julian@codesourcery.com>
11855 Sandra Loosemore <sandra@codesourcery.com>
11856
11857 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
11858 comparisons. Adjust to take both operands.
11859 (arm_select_cc_mode): Handle DImode comparisons.
11860 (arm_gen_compare_reg): Generate a scratch register for DImode
11861 comparisons which require one. Use xor for Thumb equality checks.
11862 (arm_const_double_by_immediates): New.
11863 (arm_print_operand): Allow 'Q' and 'R' for constants.
11864 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
11865 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
11866 arm_canonicalize_comparison.
11867 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
11868 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
11869 prototype.
11870 (arm_const_double_by_immediates): Declare.
11871 * config/arm/constraints.md (Di): New constraint.
11872 * config/arm/predicates.md (arm_immediate_di_operand)
11873 (arm_di_operand, cmpdi_operand): New.
11874 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
11875 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
11876 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
11877 (cstoredi4): Handle non-Cirrus also.
11878
11879 2010-07-02 Julian Brown <julian@codesourcery.com>
11880 Sandra Loosemore <sandra@codesourcery.com>
11881
11882 PR target/43703
11883 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
11884 (smax<mode>3): Disable for NEON float modes when
11885 flag_unsafe_math_optimizations is false.
11886 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
11887 (*mul<mode>3_neon)
11888 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
11889 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
11890 for NEON float modes when flag_unsafe_math_optimizations is false.
11891 (quad_halves_<code>v4sf): Only enable if
11892 flag_unsafe_math_optimizations is true.
11893 * doc/invoke.texi (ARM Options): Add note about floating point
11894 vectorization requiring -funsafe-math-optimizations.
11895
11896 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
11897 Julian Brown <julian@codesourcery.com>
11898
11899 * config/arm/neon.md (UNSPEC_VABA): Delete.
11900 (UNSPEC_VABAL): Delete.
11901 (UNSPEC_VABS): Delete.
11902 (UNSPEC_VMUL_N): Delete.
11903 (adddi3_neon): New.
11904 (subdi3_neon): New.
11905 (mul<mode>3add<mode>_neon): Make the pattern named.
11906 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
11907 (neon_vadd<mode>): Replace with define_expand, and move the remaining
11908 unspec parts...
11909 (neon_vadd<mode>_unspec): ...to this.
11910 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
11911 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
11912 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
11913 (neon_vaba<mode>): Rewrite in terms of vabd.
11914 (neon_vabal<mode>): Rewrite in terms of vabdl.
11915 (neon_vabs<mode>): Rewrite without unspec.
11916 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
11917 (*arm_subdi3): Likewise.
11918 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
11919 No_op attribute to disable assembly output checks.
11920 * config/arm/arm_neon.h: Regenerated.
11921 * doc/arm-neon-intrinsics.texi: Regenerated.
11922
11923 2010-07-02 Jan Hubicka <jh@suse.cz>
11924
11925 * ipa-split.c (split_function): For aggregate values, set the return
11926 slot optimization bit. When passing DECL_BY_REFERENCE, produce
11927 *<retval> = fncall.part ().
11928 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
11929
11930 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
11931
11932 * config/arm/neon.md (UNSPEC_VAND): Delete.
11933 (UNSPEC_VBIC): Delete.
11934 (UNSPEC_VCLZ): Delete.
11935 (UNSPEC_VCNT): Delete.
11936 (UNSPEC_VEOR): Delete.
11937 (UNSPEC_VORN): Delete.
11938 (UNSPEC_VORR): Delete.
11939 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
11940 core registers too.
11941 (anddi3_neon): Likewise.
11942 (orndi3_neon): Likewise.
11943 (bicdi3_neon): Likewise.
11944 (xordi3_neon): Likewise.
11945 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
11946 rid of unspec and handle unused operand.
11947 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
11948 * config/arm/predicates.md (imm_for_neon_logic_operand):
11949 Require TARGET_NEON.
11950 (imm_for_neon_inv_logic_operand): Likewise.
11951 * config/arm/arm.md (define_split for logical_binary_operator):
11952 Disable for NEON registers.
11953 (anddi3): Add new define_expand, and rename the insn. Disable
11954 this insn for NEON, where anddi3_neon now applies.
11955 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
11956 (iordi3): As for anddi3.
11957 (xordi3): Likewise.
11958 * config/arm/neon.ml (Vand): Split DImode variants and mark them
11959 as No_op to disable testing for exact instruction match.
11960 (Vorr): Likewise.
11961 (Veor): Likewise.
11962 (Vbic): Likewise.
11963 (Vorn): Likewise.
11964 * config/arm/arm_neon.h: Regenerated.
11965 * doc/arm-neon-intrinsics.texi: Regenerated.
11966
11967 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
11968
11969 * expr.h (emit_stack_probe): Declare.
11970 * explow.c (emit_stack_probe): Make global.
11971 (anti_adjust_stack_and_probe): Fix comments.
11972 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11973 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11974 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11975 * config/sparc/sparc.c: Include except.h.
11976 (sparc_emit_probe_stack_range): New function.
11977 (output_probe_stack_range): Likewise.
11978 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
11979 built-in stack checking is enabled.
11980 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
11981 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11982 (probe_stack_range): New insn.
11983
11984 2010-07-02 Richard Guenther <rguenther@suse.de>
11985
11986 PR target/43958
11987 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
11988 for argument alignment.
11989
11990 2010-07-02 Jan Hubicka <jh@suse.cz>
11991
11992 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
11993 walk backwards from entry_bb to check only those basic block of header
11994 that might lead to execution of split part.
11995 (consider_split) ... here.
11996 (find_return_bb): Allow assignment in return BB.
11997 (find_retval): New.
11998 (split_function): Fix name of cloned function; take care of updating
11999 return value in return_bb containing move.
12000
12001 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
12002
12003 PR target/44771
12004 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
12005 used variable insn.
12006
12007 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
12008
12009 * implicit-zee.c (combine_reaching_defs): Fix long lines.
12010 (is_set_with_extension_DI): Delete.
12011 (struct zero_extend_info): New structure.
12012 (add_removable_zero_extend): New function.
12013 (find_removable_zero_extends): Use note_stores to find SETs.
12014 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
12015
12016 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
12017
12018 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
12019 is_miss_rate_acceptable. Pull total_positions computation
12020 out of the loops. Early return if miss_positions exceeds
12021 the acceptable threshold.
12022 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
12023 is_miss_rate_acceptable after renaming of compute_miss_rate.
12024
12025 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
12026
12027 PR middle-end/44576
12028 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
12029 of 1000) for miss rate if the address diference is greater than or
12030 equal to the cache line size (the two reference will never hit the
12031 same cache line).
12032
12033 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
12034
12035 PR target/42835
12036 * config/arm/arm-modes.def (CC_NOTB): New mode.
12037 * config/arm/arm.c (get_arm_condition_code): Handle it.
12038 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
12039 * config/arm/arm.md (subsi3_compare0_c): New pattern.
12040 (compare_scc): Now a define_and_split. Add a number of extra
12041 splitters before it.
12042
12043 PR target/42172
12044 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
12045 and ZERO_EXTEND.
12046 (arm_rtx_costs_1): Likewise.
12047 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
12048 * config/arm/arm.md (is_arch6): New attribute.
12049 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
12050 extendqisi2): Tighten the code somewhat, avoiding invalid
12051 RTL to occur in the expander patterns.
12052 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
12053 (thumb1_zero_extendhisi2_v6): Delete.
12054 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
12055 (thumb1_extendhisi2_v6): Delete.
12056 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
12057 (thumb1_extendqisi2_v6): Delete.
12058 (zero_extendhisi2 for register input splitter): New.
12059 (zero_extendqisi2 for register input splitter): New.
12060 (thumb1_extendhisi2 for register input splitter): New.
12061 (extendhisi2 for register input splitter): New.
12062 (extendqisi2 for register input splitter): New.
12063 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
12064 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
12065 and add support for a register alternative requiring a split.
12066 (thumb1_zero_extendqisi2): Likewise.
12067 (arm_zero_extendqisi2): Likewise.
12068 (arm_extendhisi2): Likewise.
12069 (arm_extendqisi2): Likewise.
12070
12071 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
12072
12073 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
12074 instead of an unspec.
12075 (neon_expand_vector_init): Likewise.
12076 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
12077 (UNSPEC_VDUP_LANE): Delete.
12078 (UNSPEC VDUP_N): Delete.
12079 (UNSPEC_VGET_HIGH): Delete.
12080 (UNSPEC_VGET_LANE): Delete.
12081 (UNSPEC_VGET_LOW): Delete.
12082 (UNSPEC_VMVN): Delete.
12083 (UNSPEC_VSET_LANE): Delete.
12084 (V_double_vector_mode): New.
12085 (vec_set<mode>_internal): Make code emitted match that for the
12086 corresponding intrinsics.
12087 (vec_setv2di_internal): Likewise.
12088 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
12089 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
12090 (neon_vset_lane<mode>): Combine double and quad patterns and
12091 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
12092 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
12093 (neon_vdup_n<mode>): Rewrite RTL without unspec.
12094 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
12095 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
12096 with neon_vdup_lanev2di, adjusting the pattern from the latter
12097 to be predicable for consistency.
12098 (neon_vdup_lane<mode>_internal): New.
12099 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
12100 to avoid using an unspec.
12101 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
12102 (neon_vdup_lanev2di): Turn into a define_expand.
12103 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
12104 (neon_vget_high<mode>): Replace with....
12105 (neon_vget_highv16qi): New pattern using canonical RTL.
12106 (neon_vget_highv8hi): Likewise.
12107 (neon_vget_highv4si): Likewise.
12108 (neon_vget_highv4sf): Likewise.
12109 (neon_vget_highv2di): Likewise.
12110 (neon_vget_low<mode>): Replace with....
12111 (neon_vget_lowv16qi): New pattern using canonical RTL.
12112 (neon_vget_lowv8hi): Likewise.
12113 (neon_vget_lowv4si): Likewise.
12114 (neon_vget_lowv4sf): Likewise.
12115 (neon_vget_lowv2di): Likewise.
12116
12117 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
12118 test for this emitting vmov.
12119 (Vset_lane): Likewise.
12120 (Vdup_n): Likewise.
12121 (Vmov_n): Likewise.
12122
12123 * doc/arm-neon-intrinsics.texi: Regenerated.
12124
12125 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
12126
12127 * config/arm/neon.md (vec_extractv2di): Correct error in register
12128 numbering to reconcile with neon_vget_lanev2di.
12129
12130 2010-07-02 Richard Guenther <rguenther@suse.de>
12131
12132 * tree-ssa-structalias.c (pt_solution_set_var): New function.
12133 * tree-ssa-alias.h (pt_solution_set_var): Declare.
12134 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
12135 points-to information.
12136
12137 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
12138
12139 * config/s390/s390.c (override_options): Adopt prefetching
12140 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
12141
12142 2010-07-02 Jan Hubicka <jh@suse.cz>
12143
12144 * df-problems.c (df_kill_notes): Do not collect dead notes.
12145 (df_set_note): Just call add_reg_note.
12146 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
12147 df_create_unused_note): Do not deal with lists of old notes.
12148 (df_note_bb_compute): Likewise.
12149
12150 2010-07-02 Richard Guenther <rguenther@suse.de>
12151
12152 * tree-ssa-structalias.c (find_func_aliases): Handle
12153 pointer alignment via BIT_AND_EXPR.
12154 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
12155
12156 2010-07-02 Richard Guenther <rguenther@suse.de>
12157
12158 * tree-data-ref.c (initialize_data_dependence_relation): Handle
12159 mismatching number of dimensions properly.
12160
12161 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12162
12163 PR target/44707
12164 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
12165 (lo_sum (high ...) ...) patterns generated by earlier passes.
12166
12167 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12168
12169 * doc/install.texi (Prerequisites): Document Perl requirement on
12170 Solaris 2.
12171 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
12172
12173 2010-07-02 Richard Guenther <rguenther@suse.de>
12174
12175 PR middle-end/44777
12176 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
12177
12178 2010-07-02 Jan Hubicka <jh@suse.cz>
12179
12180 PR middle-end/44706
12181 * predict.c (predict_paths_for_bb): Handle case when control dependence
12182 BB has only abnormal edges.
12183
12184 2010-07-02 Richard Guenther <rguenther@suse.de>
12185
12186 PR tree-optimization/44748
12187 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
12188 the embedded conversion in MEM_REFs.
12189
12190 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
12191
12192 * reload.c: Include toplev.h.
12193 * recog.c: Likewise.
12194 * Makefile.in: Adjust dependencies.
12195
12196 2010-07-01 Jakub Jelinek <jakub@redhat.com>
12197
12198 PR debug/44694
12199 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
12200 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
12201
12202 2010-07-01 Richard Guenther <rguenther@suse.de>
12203
12204 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
12205 types for offsets.
12206
12207 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
12208
12209 PR target/44732
12210 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
12211 Fix argument types.
12212
12213 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
12214
12215 PR target/44727
12216 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12217 Make sure operand 0 dies.
12218
12219 2010-07-01 Richard Guenther <rguenther@suse.de>
12220
12221 PR middle-end/42834
12222 PR middle-end/44468
12223 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
12224 * doc/generic.texi (References to storage): Document MEM_REF.
12225 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
12226 (print_call_name): Likewise.
12227 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
12228 (build_simple_mem_ref_loc): New function.
12229 (mem_ref_offset): Likewise.
12230 * tree.h (build_simple_mem_ref_loc): Declare.
12231 (build_simple_mem_ref): Define.
12232 (mem_ref_offset): Declare.
12233 * fold-const.c: Include tree-flow.h.
12234 (operand_equal_p): Handle MEM_REF.
12235 (build_fold_addr_expr_with_type_loc): Likewise.
12236 (fold_comparison): Likewise.
12237 (fold_unary_loc): Fold
12238 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
12239 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
12240 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
12241 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
12242 (ptr_deref_may_alias_ref_p_1): Likewise.
12243 (ao_ref_base_alias_set): Properly differentiate base object for
12244 offset and TBAA.
12245 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
12246 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
12247 (indirect_refs_may_alias_p): Likewise.
12248 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
12249 chasing code.
12250 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
12251 (call_may_clobber_ref_p_1): Likewise.
12252 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
12253 * expr.c (expand_assignment): Handle MEM_REF.
12254 (store_expr): Handle MEM_REFs from STRING_CSTs.
12255 (store_field): If expanding a MEM_REF of a non-addressable
12256 decl use bitfield operations.
12257 (get_inner_reference): Handle MEM_REF.
12258 (expand_expr_addr_expr_1): Likewise.
12259 (expand_expr_real_1): Likewise.
12260 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
12261 * alias.c (ao_ref_from_mem): Handle MEM_REF.
12262 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
12263 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
12264 (dr_analyze_indices): Likewise.
12265 (dr_analyze_alias): Likewise.
12266 (object_address_invariant_in_loop_p): Likewise.
12267 * gimplify.c (mark_addressable): Handle MEM_REF.
12268 (gimplify_cond_expr): Build MEM_REFs.
12269 (gimplify_modify_expr_to_memcpy): Likewise.
12270 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
12271 (gimple_fold_indirect_ref): Adjust.
12272 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
12273 * tree.def (MEM_REF): New tree code.
12274 * tree-dfa.c: Include toplev.h.
12275 (get_ref_base_and_extent): Handle MEM_REF.
12276 (get_addr_base_and_unit_offset): New function.
12277 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
12278 * gimple-fold.c (may_propagate_address_into_dereference): Handle
12279 MEM_REF.
12280 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
12281 accesses if the array has just one dimension. Remove always true
12282 parameter. Do not require type compatibility here.
12283 (maybe_fold_offset_to_component_ref): Remove.
12284 (maybe_fold_stmt_indirect): Remove.
12285 (maybe_fold_reference): Remove INDIRECT_REF handling.
12286 Fold back to non-MEM_REF.
12287 (maybe_fold_offset_to_address): Simplify. Deal with type
12288 mismatches here.
12289 (maybe_fold_reference): Likewise.
12290 (maybe_fold_stmt_addition): Likewise. Also handle
12291 &ARRAY + I in addition to &ARRAY[0] + I.
12292 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
12293 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
12294 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
12295 * tree-ssa.c (useless_type_conversion_p): Make most pointer
12296 conversions useless.
12297 (warn_uninitialized_var): Handle MEM_REF.
12298 (maybe_rewrite_mem_ref_base): New function.
12299 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
12300 to SSA form.
12301 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
12302 INDIRECT_REF handling.
12303 (copy_tree_body_r): Handle MEM_REF.
12304 * gimple.c (is_gimple_addressable): Adjust.
12305 (is_gimple_address): Likewise.
12306 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
12307 invariant base are invariant.
12308 (is_gimple_min_lval): Adjust.
12309 (is_gimple_mem_ref_addr): New function.
12310 (get_base_address): Handle MEM_REF.
12311 (count_ptr_derefs): Likewise.
12312 (get_base_loadstore): Likewise.
12313 * gimple.h (is_gimple_mem_ref_addr): Declare.
12314 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
12315 * tree-cfg.c (verify_address): New function, split out from ...
12316 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
12317 the address operand of MEM_REFs. Verify MEM_REFs. Reject
12318 INDIRECT_REFs.
12319 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
12320 INDIRECT_REF. Allow conversions.
12321 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
12322 a register does not change its size.
12323 (verify_types_in_gimple_reference): Verify MEM_REF.
12324 (verify_gimple_assign_single): Disallow INDIRECT_REF.
12325 Handle MEM_REF.
12326 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
12327 New.
12328 (mark_address_taken): Handle MEM_REF.
12329 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
12330 (get_asm_expr_operands): Pass opf_not_non_addressable.
12331 (get_expr_operands): Handle opf_[not_]non_addressable.
12332 Handle MEM_REF. Remove INDIRECT_REF handling.
12333 * tree-vrp.c (check_array_ref): Handle MEM_REF.
12334 (search_for_addr_array): Likewise.
12335 (check_array_bounds): Likewise.
12336 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
12337 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
12338 (ref_always_accessed_p): Likewise.
12339 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
12340 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
12341 Handle MEM_REF.
12342 * cgraphbuild.c (mark_load): Properly check for NULL result
12343 from get_base_address.
12344 (mark_store): Likewise.
12345 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
12346 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
12347 handling for MEM_REF.
12348 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
12349 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
12350 * builtins.c (stabilize_va_list_loc): Use the function ABI
12351 valist type if we couldn't canonicalize the argument type.
12352 Always dereference with the canonical va-list type.
12353 (maybe_emit_free_warning): Handle MEM_REF.
12354 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
12355 memmove to memcpy.
12356 * builtins.c (fold_builtin_memory_op): Use ref-all types
12357 for all memcpy foldings.
12358 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
12359 (build_outer_var_ref): Likewise.
12360 (scan_omp_1_op): Likewise.
12361 (lower_rec_input_clauses): Likewise.
12362 (lower_lastprivate_clauses): Likewise.
12363 (lower_reduction_clauses): Likewise.
12364 (lower_copyprivate_clauses): Likewise.
12365 (expand_omp_atomic_pipeline): Likewise.
12366 (expand_omp_atomic_mutex): Likewise.
12367 (create_task_copyfn): Likewise.
12368 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
12369 Remove old union trick. Initialize constant offsets.
12370 (ao_ref_init_from_vn_reference): Likewise. Do not handle
12371 INDIRECT_REF. Init base_alias_set properly.
12372 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
12373 (vn_reference_fold_indirect): Adjust for MEM_REFs.
12374 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
12375 for ARRAY_REFs.
12376 (may_insert): Remove.
12377 (visit_reference_op_load): Do not test may_insert.
12378 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
12379 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
12380 a field to store the constant offset this op applies.
12381 (run_scc_vn): Adjust prototype.
12382 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
12383 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
12384 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
12385 bother about volatile qualifiers on pointers.
12386 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
12387 * tree-ssa-loop-ivopts.c
12388 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
12389 (strip_offset_1): Likewise.
12390 (find_interesting_uses_address): Replace INDIRECT_REF handling with
12391 MEM_REF handling.
12392 (get_computation_cost_at): Likewise.
12393 * ipa-pure-const.c (check_op): Handle MEM_REF.
12394 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
12395 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
12396 and constants.
12397 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
12398 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
12399 (eliminate_local_variables_1): Likewise.
12400 (create_call_for_reduction_1): Likewise.
12401 (create_loads_for_reductions): Likewise.
12402 (create_loads_and_stores_for_name): Likewise.
12403 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
12404 (ssa_accessed_in_tree): Handle MEM_REF.
12405 (ssa_accessed_in_assign_rhs): Likewise.
12406 (update_type_size): Likewise.
12407 (analyze_accesses_for_call_stmt): Likewise.
12408 (analyze_accesses_for_assign_stmt): Likewise.
12409 (transform_access_sites): Likewise.
12410 (transform_allocation_sites): Likewise.
12411 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
12412 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12413 not handle INDIRECT_REF.
12414 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
12415 (cond_store_replacement): Likewise.
12416 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
12417 MEM_REF, no not handle INDIRECT_REFs.
12418 (insert_into_preds_of_block): Properly initialize avail.
12419 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
12420 for ARRAY_REFs. Properly handle reference lookups that
12421 require a bit re-interpretation.
12422 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
12423 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
12424 (build_ref_for_offset_1): Remove.
12425 (build_ref_for_offset): Build MEM_REFs.
12426 (gate_intra_sra): Disable for now.
12427 (sra_ipa_modify_expr): Handle MEM_REF.
12428 (ipa_early_sra_gate): Disable for now.
12429 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
12430 MEM_REF handling.
12431 (disqualify_base_of_expr): Likewise.
12432 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
12433 MEM_REF handling.
12434 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
12435 Use mem_ref_offset. Remove bogus folding.
12436 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
12437 (make_fancy_name_1): Add support for MEM_REF.
12438 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
12439 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
12440 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
12441 (compute_complex_ancestor_jump_func): Likewise.
12442 (ipa_analyze_virtual_call_uses): Likewise.
12443 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
12444 INDIRECT_REF folding with more generalized MEM_REF folding.
12445 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
12446 (forward_propagate_addr_into_variable_array_index): Also handle
12447 &ARRAY + I in addition to &ARRAY[0] + I.
12448 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
12449 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
12450 creates assignments with overlap.
12451 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
12452 (get_frame_field): Likewise.
12453 (get_nonlocal_debug_decl): Likewise.
12454 (convert_nonlocal_reference_op): Likewise.
12455 (struct nesting_info): Add mem_refs pointer-set.
12456 (create_nesting_tree): Allocate it.
12457 (convert_local_reference_op): Insert to be folded mem-refs.
12458 (fold_mem_refs): New function.
12459 (finalize_nesting_tree_1): Perform defered folding of mem-refs
12460 (free_nesting_tree): Free the pointer-set.
12461 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
12462 (vectorizable_load): Likewise.
12463 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
12464 (propagate_with_phi): Likewise.
12465 * tree-object-size.c (addr_object_size): Handle MEM_REFs
12466 instead of INDIRECT_REFs.
12467 (compute_object_offset): Handle MEM_REF.
12468 (plus_stmt_object_size): Handle MEM_REF.
12469 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
12470 for &MEM_REF.
12471 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
12472 (symbol_marked_for_renaming): Likewise.
12473 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
12474 (fold-const.o): Add $(TREE_FLOW_H).
12475 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
12476 (find_func_clobbers): Likewise.
12477 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
12478 (decompose_access): Likewise.
12479 (replace_field_acc): Likewise.
12480 (replace_field_access_stmt): Likewise.
12481 (insert_new_var_in_stmt): Likewise.
12482 (get_stmt_accesses): Likewise.
12483 (reorg_structs_drive): Disable.
12484 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
12485 (ix86_canonical_va_list_type): Likewise.
12486
12487 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
12488
12489 PR other/44566
12490 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
12491 * target.def (struct gcc_target): Replace enum reg_class with
12492 reg_class_t in hook argument / return types.
12493 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
12494 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
12495 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
12496 * targhooks.h (default_branch_target_register_class): Likewise.
12497 (default_ira_cover_classes, default_secondary_reload): Likewise.
12498 (default_memory_move_cost, default_register_move_cost): Likewise.
12499 * targhooks.c (default_branch_target_register_class): Likewise.
12500 (default_ira_cover_classes, default_secondary_reload): Likewise.
12501 (default_memory_move_cost, default_register_move_cost): Likewise.
12502 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
12503 * bt-load.c (branch_target_load_optimize): Likewise.
12504 * ira.c (setup_cover_and_important_classes): Likewise.
12505 * ira-costs.c (copy_cost): Likewise.
12506 * reload1.c (emit_input_reload_insns): Likewise.
12507 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
12508 * config/frv/frv.c (frv_secondary_reload): Likewise.
12509 * config/s390/s390.c (s390_secondary_reload): Likewise.
12510 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
12511 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
12512 (ix86_register_move_cost): Likewise.
12513 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
12514 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
12515 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
12516 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
12517 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
12518 (rs6000_ira_cover_classes): Likewise.
12519 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
12520 * config/picochip/picochip-protos.h (picochip_secondary_reload):
12521 Likewise.
12522 * config/pa/pa.c (pa_secondary_reload): Likewise.
12523 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
12524 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
12525 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
12526 * doc/tm.texi: Regenerate.
12527
12528 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
12529
12530 PR bootstrrap/44726
12531 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
12532 use.
12533 (build_alias_set_optimal_p): Likewise.
12534 (build_base_obj_set_for_drs): Likewise.
12535
12536 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
12537
12538 * target.def: Remove comment about licensing problems of function
12539 declarations.
12540
12541 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
12542 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
12543 * doc/tm.texi: Regenerate.
12544
12545 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
12546 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
12547
12548 * target.def (enum_va_list_p): Use DEFHOOK.
12549 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
12550 Rename ptype to ptree.
12551 * doc/tm.texi: Regenerate.
12552
12553 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
12554 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
12555 * doc/tm.texi: Regenerate.
12556
12557 * target.def (memory_move_cost): Use DEFHOOK.
12558 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
12559 Rename regclass AKA class to rclass.
12560 * doc/tm.texi: Regenerate.
12561
12562 * target.def (pragma_parse): Use DEFHOOK.
12563 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
12564 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
12565 * doc/tm.texi: Regenerate.
12566
12567 * target.def (pass_by_reference): Use DEFHOOK.
12568 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
12569 * doc/tm.texi: Regenerate.
12570
12571 * target.def (resolve_overloaded_builtin): Rename params to arglist.
12572 Use DEFHOOK.
12573 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
12574 * doc/tm.texi: Regenerate.
12575
12576 * target.def (return_pops_args): Use DEFHOOK.
12577 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
12578 Rename stack-size to size.
12579 * doc/tm.texi: Regenerate.
12580
12581 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
12582 last-sched_cycle to last_clock, cur_cycle to clock.
12583 * doc/tm.texi.in: Use @hook.
12584 * doc/tm.texi: Regenerate.
12585
12586 * target.def (print_operand, print_operand_address): Update comment.
12587 (print_operand_punct_valid_p): Likewise.
12588
12589 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
12590
12591 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
12592 to rtl.h.
12593 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
12594 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
12595 * rtl-error.h: New.
12596 * regrename.c: Do not include toplev.h. Include rtl-error.h.
12597 * rtl-error.c: Likewise.
12598 * reload.c: Likewise.
12599 * recog.c: Likewise.
12600 * sel-sched.c: Likewise.
12601 * function.c: Likewise.
12602 * reg-stack.c: Likewise.
12603 * cfgrtl.c: Likewise.
12604 * reload1.c: Likewise.
12605 * final.c: Include rtl-error.
12606 * Makefile.in: Adjust dependencies.
12607
12608 2010-06-30 Jan Hubicka <jh@suse.cz>
12609
12610 PR middle-end/PR44706
12611 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
12612 to return the value.
12613
12614 2010-06-30 Michael Matz <matz@suse.de>
12615
12616 PR bootstrap/44699
12617 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
12618 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
12619 a gimple reg, attach the original VDEF to the last store in the
12620 sequence.
12621
12622 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
12623
12624 PR other/44034
12625 * config/darwin.c (darwin_override_options): Use renamed
12626 targetm.asm_out.emit_unwind_label.
12627
12628 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
12629
12630 PR tree-optimization/39799
12631 * tree-inline.c (remap_ssa_name): Initialize variable only if
12632 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12633
12634 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
12635
12636 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
12637
12638 2010-06-30 Richard Guenther <rguenther@suse.de>
12639
12640 PR target/44722
12641 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
12642 against oscillation with reverse peephole2.
12643
12644 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
12645
12646 PR target/44721
12647 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12648 Fix last commit.
12649
12650 2010-06-30 Nick Clifton <nickc@redhat.com>
12651
12652 * config/rx/rx-modes.def: New file.
12653 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
12654 (CC_REGNUM): Define.
12655 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
12656 register.
12657 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
12658 (SELECT_CC_MODE): Define.
12659 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
12660 (reg:CC CC_REG) instead of (cc0).
12661 (attr "cc"): Delete.
12662 (cbranchsi4): Do not split compare and branch here. Instead move
12663 it to...
12664 (cbranchsi4_<code>): ... here. New patterns.
12665 (cmpsi): Call rx-compare_redundant to find out if it is necessary
12666 to emit the compare instruction.
12667 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
12668 cc_status flags.
12669 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
12670 FIRST_PSEUDO_REGNUM.
12671 (rx_expand_prologue, rx_expand_epilogue): Likewise.
12672 (rx_notice_update_cc): Delete.
12673 (rx_cc_modes_compatible): New function.
12674 (flags_needed_for_conditional): New function.
12675 (flags_from_mode): New function.
12676 (rx_compare_redundant): New function - scans backwards through
12677 insn list to find out if condition flags are already set correctly.
12678 (TARGET_CC_MODES_COMPATIBLE): Define.
12679 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
12680
12681 * config/rx/rx.h (BRANCH_COST): Define.
12682 (REGISTER_MOVE_COST): Define.
12683 * config/rx/predicates (rx_source_operand): Allow all constant types.
12684 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
12685 (tstsi4): New pattern.
12686 * config/rx/rx.c (rx_memory_move_cost): Define.
12687 (TARGET_MEMORY_MOVE_COST): Define.
12688
12689 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
12690
12691 * tree.h (block_may_fallthru): Declare here.
12692 * tree-flow.h (block_may_fallthru): Do not declare here.
12693 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
12694 bitmap.h
12695 * Makefile.in (c-typeck.o): Update dependencies.
12696
12697 2010-06-30 Jakub Jelinek <jakub@redhat.com>
12698
12699 PR debug/44694
12700 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
12701 * cselib.c (cfa_base_preserved_regno): New static variable.
12702 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
12703 of REGNO (cfa_base_preserved_val->locs->loc).
12704 (cselib_preserve_cfa_base_value): Add regno argument, set
12705 cfa_base_preserved_regno to it.
12706 (cselib_invalidate_regno): Allow removal of registers other than
12707 cfa_base_preserved_regno from cfa_base_preserved_val.
12708 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
12709 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
12710 of MEM addresses, if not on LHS.
12711 (reverse_op): Don't add reverse ops for cfa_base_rtx.
12712 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
12713
12714 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
12715
12716 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
12717 static variables.
12718 (peep2_buf_position): New static function.
12719 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
12720 peephole2_optimize): Use it.
12721 (peep2_attempt, peep2_update_life): New static functions, broken out
12722 of peephole2_optimize.
12723 (peep2_fill_buffer): New static function.
12724 (peephole2_optimize): Change the main loop to try to fill the buffer
12725 with the maximum number of insns before matching them against
12726 peepholes. Use a forward scan. Remove special case for targets with
12727 conditional execution.
12728 * genrecog.c (change_state): Delete dead code.
12729 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12730 Rewrite so as not to expect the second insn to have had a peephole
12731 applied yet.
12732
12733 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12734
12735 * genhooks.c (emit_findices): Cast field precision to int.
12736 (emit_documentation): Likewise.
12737
12738 2010-06-29 Jakub Jelinek <jakub@redhat.com>
12739
12740 PR tree-optimization/43801
12741 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
12742 if old_decl was DECL_ONE_ONLY.
12743
12744 PR debug/44668
12745 * dwarf2out.c (add_accessibility_attribute): New function.
12746 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
12747 instead of adding DW_AT_accessibility manually.
12748 (gen_enumeration_type_die, gen_struct_or_union_type_die,
12749 gen_typedef_die): Use it.
12750
12751 2010-06-29 Douglas B Rupp <rupp@gnat.com>
12752
12753 * vmsdbgout.c (full_name): Just output the file name if not native.
12754
12755 2010-06-29 Douglas B Rupp <rupp@gnat.com>
12756
12757 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
12758 (funcnam_table): New static table.
12759 (funcnum_table): New static table.
12760 (write_rtnbeg): Write value saved in funcnum_table.
12761 (write_rtnend): Write value saved in funcnum_table.
12762 (vmsdbgout_begin_function): Save current function info in
12763 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
12764 (vmsdbgout_finish): Iterate over funcnum_table.
12765
12766 2010-06-29 Douglas B Rupp <rupp@gnat.com>
12767
12768 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
12769 (vmsdbgout_type_decl): Declare
12770 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
12771 (FUNC_EPILOGUE_LABEL): New macro
12772 (vmsdbgout_begin_epilogue): New function.
12773 (vmsdbgout_type_decl): New function.
12774
12775 2010-06-29 Douglas B Rupp <rupp@gnat.com>
12776
12777 * vmsdbg.h: Update copyright.
12778
12779 2010-06-29 Douglas B Rupp <rupp@gnat.com>
12780
12781 * vmsdbg.h (DST_K_TBG): New DST constant.
12782 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
12783 (write_modbeg): Cast module_language to avoid warning.
12784 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
12785
12786 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
12787
12788 PR other/44034
12789 * target.def, doc/tm.texi.in, genhooks.c: New files.
12790 * target.h: Instead of defining individual hook members,
12791 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
12792 include target.def.
12793 * target-def.h: Instead of defining individual hook initializers,
12794 include target-hooks-def.h.
12795 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
12796 targetm.live_on_entry -> targetm.extra_live_on_entry
12797 targetm.sched.md_finish ->targetm.sched.finish
12798 targetm.sched.md_init -> targetm.sched.init
12799 targetm.sched.md_init_global -> targetm.sched.init_global
12800 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
12801 targetm.asm_out.except_table_label ->
12802 targetm.asm_out.emit_except_table_label
12803 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
12804 targetm.target_help -> targetm.help
12805 targetm.vectorize.builtin_support_vector_misalignment ->
12806 targetm.vectorize.support_vector_misalignment
12807 targetm.file_start_app_off -> targetm.asm_file_start_app_off
12808 targetm.file_start_file_directive ->
12809 targetm.asm_file_start_file_directive
12810 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
12811 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
12812 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
12813 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
12814 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
12815 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
12816 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
12817 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
12818 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
12819 * Makefile.in (TARGET_H): Depend on target.def.
12820 (TARGET_DEF_H): Depend on target-hooks-def.h.
12821 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
12822 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
12823 * doc/tm.texi: Regenerate.
12824
12825 * Makefile.in (s-tm-texi): Remove stray tab / rule.
12826
12827 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
12828 (targetm.sched.init): Likewise.
12829
12830 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12831
12832 PR bootstrap/44713
12833 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
12834 (function_arg_advance_32): Const-ify TYPE parameter.
12835 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
12836 (ix86_function_arg_advance): Change type of NAMED to bool.
12837 (function_arg_32): Const-ify CUM and TYPE parameters.
12838 (function_arg_64): Likewise. Change type of NAMED to bool.
12839 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
12840 to bool.
12841 (ix86_function_arg): Change type of NAMED to bool.
12842 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
12843 last argument as a bool.
12844
12845 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
12846
12847 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
12848 (OVERRIDE_OPTIONS): Add note of obsolescence.
12849 Replace references with references to TARGET_OPTION_OVERRIDE.
12850 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
12851 the macro).
12852 * targhooks.c (default_target_option_override): New function.
12853 * targhooks.h (default_target_option_override): Declare.
12854 * target.h (struct gcc_target): Add override member to
12855 target_option member.
12856 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
12857 targetm.target_option.override call.
12858 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
12859 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
12860
12861 2010-06-29 Jan Hubicka <jh@suse.cz>
12862
12863 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
12864
12865 2010-06-29 Jan Hubicka <jh@suse.cz>
12866
12867 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
12868 unreachable.
12869 (rebuild_frequencies): New function.
12870 * predict.h (rebuild_frequencies): Declare.
12871 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
12872 entry block and edge reaching new_entry.
12873 (tree_function_versioning): When doing partial cloning, rebuild
12874 frequencies when done.
12875 * passes.c (execute_function_todo): Use rebild_frequencies.
12876
12877 2010-06-29 Richard Guenther <rguenther@suse.de>
12878
12879 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
12880 * tree-flow.h (enum noalias_state): Remove.
12881 (struct var_ann_d): Remove noalias_state member.
12882
12883 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
12884
12885 PR target/43902
12886 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
12887 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
12888 (maddhidi4): Likewise.
12889
12890 Revert parts of the change for PR25130.
12891 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
12892 MEM_ALIAS_SET.
12893
12894 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12895
12896 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
12897 targetm.calls.function_incoming_arg, and
12898 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
12899 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
12900 * target.h (struct gcc_target): Add function_arg_advance,
12901 function_arg, and function_incoming_arg fields.
12902 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
12903 (TARGET_FUNCTION_INCOMING_ARG): Define.
12904 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
12905 and TARGET_FUNCTION_INCOMING_ARG.
12906 * targhooks.h (default_function_arg_advance): Declare.
12907 (default_function_arg, default_function_incoming_arg): Declare.
12908 * targhooks.c (default_function_arg_advance): New function.
12909 (default_function_arg, default_function_incoming_arg): New function.
12910 * config/i386/i386.c (function_arg_advance): Rename to...
12911 (ix86_function_arg_advance): ...this. Make static.
12912 (function_arg): Rename to...
12913 (ix86_function_arg): ...this. Make static.
12914 (TARGET_FUNCTION_ARG_ADVANCE): Define.
12915 (TARGET_FUNCTION_ARG): Define.
12916 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
12917 (FUNCTION_ARG): Delete.
12918 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
12919 (function_arg): Delete prototype.
12920
12921 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
12922
12923 * reginfo.c (init_reg_sets_1): Adjust comments.
12924 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
12925 * calls.c (prepare_call_address): Likewise.
12926 (emit_call_1): Use targetm.calls.return_pops_args.
12927 (expand_call): Likewise.
12928 * function.c (assign_parms): Likewise.
12929 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
12930 * target.h (struct gcc_target) [struct calls]: Add
12931 return_pops_args field.
12932 * targhooks.h (default_return_pops_args): Declare.
12933 * targhooks.c (default_return_pops_args): Define.
12934 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
12935 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
12936 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
12937 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
12938 documentation.
12939 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
12940 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
12941 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
12942 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
12943 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
12944 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
12945 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
12946 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
12947 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
12948 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
12949 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
12950 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
12951 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
12952 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
12953 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
12954 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
12955 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
12956 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
12957 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
12958 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
12959 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
12960 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
12961 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
12962 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
12963 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
12964 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
12965 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
12966 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
12967 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
12968 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
12969 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
12970 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
12971 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
12972 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
12973 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
12974 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
12975 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
12976 * config/i386/i386.c (ix86_return_pops_args): Make static.
12977 Constify arguments.
12978 (TARGET_RETURN_POPS_ARGS): Define.
12979 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
12980 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
12981 (TARGET_RETURN_POPS_ARGS): Define.
12982 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
12983 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
12984 (TARGET_RETURN_POPS_ARGS): Define.
12985
12986 2010-06-29 Richard Guenther <rguenther@suse.de>
12987
12988 PR middle-end/44667
12989 * tree-inline.c (initialize_inlined_parameters): Make sure
12990 to remap the inlined parameter variable substitutions types.
12991
12992 2010-06-29 Eric Botcazou <ebotcazou@adacore.com>
12993
12994 PR rtl-optimization/44659
12995 * combine.c (make_compound_operation) <SUBREG>: Do not return the
12996 result of force_to_mode if it partially re-expanded the compound.
12997
12998 2010-06-28 Jan Hubicka <jh@suse.cz>
12999
13000 PR middle-end/44671
13001 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
13002 RESULT_DECL.
13003
13004 2010-06-28 Anatoly Sokolov <aesok@post.ru>
13005
13006 * double-int.h (force_fit_type_double): Remove declaration.
13007 * double-int.c (force_fit_type_double): Move to tree.c.
13008 * tree.h (force_fit_type_double): Declare.
13009 * tree.h (force_fit_type_double): Moved from double-int.c. Use
13010 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
13011 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
13012 * convert.c (convert_to_pointer): Adjust call to
13013 force_fit_type_double.
13014 * tree-vrp.c (extract_range_from_assert,
13015 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
13016 * fold-const.c: Update comment.
13017 (int_const_binop, fold_convert_const_int_from_int,
13018 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
13019 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
13020 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
13021 round_up_loc): Adjust call to force_fit_type_double.
13022
13023 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
13024
13025 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
13026
13027 2010-06-28 Martin Jambor <mjambor@suse.cz>
13028
13029 * tree-sra.c (convert_callers): New parameter, change fndecls of
13030 recursive calls.
13031 (modify_function): Pass the old decl to convert_callers.
13032
13033 2010-06-28 Martin Jambor <mjambor@suse.cz>
13034
13035 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
13036 ipa_check_create_node_params and ipa_initialize_node_params with
13037 checking asserts they are not necessary.
13038
13039 2010-06-28 Jan Hubicka <jh@suse.cz>
13040
13041 PR tree-optimization/44687
13042 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
13043
13044 2010-06-28 Martin Jambor <mjambor@suse.cz>
13045
13046 PR c++/44535
13047 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
13048 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
13049 instead of BINFO_BASE_BINFO.
13050
13051 2010-06-28 Michael Matz <matz@suse.de>
13052
13053 PR middle-end/44592
13054 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
13055 proper VDEF chain for intermediate stores in the sequence.
13056
13057 2010-06-28 Jan Hubicka <jh@suse.cz>
13058
13059 PR tree-optimization/44357
13060 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
13061 uninlinable functions.
13062
13063 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
13064
13065 * config.gcc (powerpc*-*-*): Handle titan.
13066 * config/rs6000/rs6000.c (titan_cost): New costs.
13067 (rs6000_override_options): Add "titan" to processor_target_table.
13068 Add Titan to branch alignment logic.
13069 Correctly set rs6000_cost for titan.
13070 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
13071 * config/rs6000/titan.md: New file.
13072 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
13073
13074 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
13075
13076 * tree-browser.c (TB_history_stack): Convert to a VEC.
13077 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
13078 (TB_history_prev): Likewise.
13079
13080 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
13081
13082 * vec.h (vec_heap_free): Add parentheses around free.
13083
13084 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
13085
13086 * system.h: Poison GCC_EXCEPT_H for front-end files.
13087
13088 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
13089 langhook.
13090 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
13091 Define to NULL by default.
13092 * except.h: Define GCC_EXCEPT_H.
13093 (doing_eh): Remove prototype.
13094 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
13095 (lang_protect_cleanup_actions): Remove.
13096 * except.c (lang_protect_cleanup_actions): Remove.
13097 (doing_eh): Remove.
13098 (gen_eh_region): Don't check doing_eh here.
13099 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
13100 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
13101 instead of lang_protect_cleanup_actions.
13102 * omp-low.c (maybe_catch_exception): Likewise.
13103 * Makefile.in: Update dependencies.
13104
13105 2010-06-28 Bingfeng Mei <bmei@broadcom.com>
13106
13107 * cgraph.h (struct varpool_node): new used_from_object_file flag.
13108 (struct cgraph_local_info): new used_from_object_file flag.
13109 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
13110 (cgraph_clone_node): initialize used_from_object_file.
13111 (cgraph_create_virtual_clone): initialize used_from_object_file.
13112 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
13113 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
13114 when compiling with -fwhole-program.
13115 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
13116 internal resolver.
13117 * ipa.c (function_and_variable_visibility): Set externally_visible
13118 flag of varpool_node if used_from_object_file flag is set.
13119 (cgraph_externally_visible_p): check used_from_object_file flag.
13120 * doc/invoke.texi (-fwhole-program option): Change description of
13121 externally_visible attribute accordingly.
13122 * doc/extend.texi (externally_visible): Ditto.
13123
13124 2010-06-27 Jan Hubicka <jh@suse.cz>
13125
13126 * params.def (max-inline-insns-auto): Default to 40.
13127 * doc/invoke.texi (max-inline-insns-auto): Document the change.
13128
13129 2010-06-27 Jan Hubicka <jh@suse.cz>
13130
13131 PR middle-end/44671
13132 PR middle-end/44686
13133 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
13134 signature change.
13135 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
13136 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
13137
13138 2010-06-27 Anatoly Sokolov <aesok@post.ru>
13139
13140 * target.h (struct gcc_target): Add register_move_cost field.
13141 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
13142 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
13143 * targhooks.c (default_register_move_cost): New function.
13144 * targhooks.h (default_register_move_cost): Declare function.
13145 * defaults.h (REGISTER_MOVE_COST): Delete.
13146 * ira-int.h (ira_register_move_cost): Update comment.
13147 * ira.c (ira_register_move_cost): Update comment.
13148 * reload.h (register_move_cost): Declare.
13149 * reginfo.c (register_move_cost): New function.
13150 (move_cost): Update comment.
13151 (init_move_cost, memory_move_secondary_cost): Replace
13152 REGISTER_MOVE_COST with register_move_cost.
13153 * postreload.c (reload_cse_simplify_set): (Ditto.).
13154 * reload.c (find_valid_class, find_reloads): (Ditto.).
13155 * reload1.c (choose_reload_regs): (Ditto.).
13156 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
13157 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
13158 * doc/md.texi (can_create_pseudo_p): Update documentation.
13159
13160 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
13161 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
13162 * config/i386/i386.h (ix86_memory_move_cost): Make static.
13163 (TARGET_MEMORY_MOVE_COST): Define.
13164
13165 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
13166 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
13167 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
13168 (TARGET_MEMORY_MOVE_COST): Define.
13169
13170 2010-06-27 Richard Guenther <rguenther@suse.de>
13171
13172 PR tree-optimization/44683
13173 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
13174 false edge from the inverted condition.
13175
13176 2010-06-27 Richard Guenther <rguenther@suse.de>
13177
13178 PR middle-end/44684
13179 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
13180 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
13181 for register LHS. Or non-store assignments.
13182
13183 2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
13184
13185 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
13186 (sparc_emit_set_const64): Likewise. Remove disabled code.
13187 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
13188 (sparc_emit_set_const64): Likewise.
13189
13190 2010-06-26 Catherine Moore <clm@codesourcery.com>
13191
13192 * config/mips/mips.md (alu_type): New attribute.
13193 (type): Infer type from alu_type.
13194 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
13195 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
13196 *subsi3_extended, negsi2, negdi2, *low<mode>,
13197 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
13198 xor<mode>3, *nor<mode>3,
13199 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
13200 *zero_extendhi_truncqi): Set alu_type instead of type.
13201
13202 2010-06-26 Douglas B Rupp <rupp@gnat.com>
13203
13204 * config/alpha/alpha.c (alpha_need_linkage): Adjust
13205 splay_tree_new_ggc call.
13206 (alpha_use_linkage): Likewise.
13207
13208 2010-06-26 Joseph Myers <joseph@codesourcery.com>
13209
13210 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
13211 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
13212 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
13213 (static_specs): Remove switches_need_spaces.
13214 (process_command, do_self_spec): Hardcode handling "-o" instead of
13215 checking switches_need_spaces.
13216 * system.h (SWITCHES_NEED_SPACES): Poison.
13217
13218 2010-06-26 Richard Guenther <rguenther@suse.de>
13219
13220 PR tree-optimization/44393
13221 * tree-loop-distribution.c (generate_loops_for_partition): Fix
13222 stmt removal and VOP renaming.
13223 (generate_memset_zero): Remove redundant stmt updating.
13224 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
13225 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
13226
13227 2010-06-26 Jan Hubicka <jh@suse.cz>
13228
13229 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
13230 edges comming from header are equivalent.
13231 (visit_bb): Handle PHIs correctly.
13232 * tree-inline.c (copy_phis_for_bb): Be able to copy
13233 PHI from entry edge.
13234 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
13235
13236 2010-06-26 Richard Guenther <rguenther@suse.de>
13237
13238 PR middle-end/44674
13239 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
13240 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
13241
13242 2010-06-26 Joseph Myers <joseph@codesourcery.com>
13243
13244 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
13245 add_infile, alloc_switch): New.
13246 (process_command): Remove variable lang_n_infiles. Process
13247 options in a single pass. Use new functions for allocating
13248 infiles and switches arrays. Properly skip operands of
13249 -Xpreprocessor and -Xassembler.
13250
13251 2010-06-26 Jan Hubicka <jh@suse.cz>
13252
13253 PR middle-end/44671
13254 * cgraphunit.c (cgraph_function_versioning): Remove wrong
13255 cgraph_make_decl_local call; fix typo copying RTL data.
13256
13257 2010-06-25 DJ Delorie <dj@redhat.com>
13258
13259 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
13260 (m32c_output_aligned_common): Likewise.
13261 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
13262 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
13263 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
13264 (m32c_register_pragmas): Register it.
13265 * config/m32c/m32c.c (m32c_get_pragma_address): New.
13266 (m32c_insert_attributes): Set #pragma address decls volatile.
13267 (pragma_entry_eq): New.
13268 (pragma_entry_hash): New.
13269 (m32c_note_pragma_address): New.
13270 (m32c_get_pragma_address): New.
13271 (m32c_output_aligned_common): New.
13272 * doc/extend.texi: Document the new pragma.
13273
13274 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
13275 also.
13276 * config/m32c/predicates.md (m32c_any_operand): Check the code
13277 instead of memory_operand so as to allow matching volatile MEMs.
13278 (m32c_nonimmediate_operand): Likewise.
13279 (mra_operand): Allow volatiles.
13280
13281 2010-06-25 Alexandre Oliva <aoliva@redhat.com>
13282
13283 PR debug/44610
13284 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
13285 address if the offset is unknown.
13286
13287 2010-06-25 Douglas B Rupp <rupp@gnat.com>
13288
13289 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
13290 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
13291 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
13292 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
13293 to ia64_start_function. Invoke it.
13294 * config/ia64/ia64.c (ia64_start_function): Call new function
13295 dwarf2out_vms_debug_main_pointer.
13296
13297 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
13298
13299 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
13300 statements computing the true predicate.
13301
13302 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
13303
13304 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
13305 to boolean_true_node.
13306 (reset_bb_predicate): New.
13307 (predicate_bbs): Call reset_bb_predicate.
13308
13309 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
13310
13311 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
13312 (tree_if_conversion): Returns true when something has been changed.
13313 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
13314 changed something.
13315
13316 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
13317
13318 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
13319 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
13320 * tree-if-conv.c: Include dbgcnt.h.
13321 (tree_if_conversion): Use if_conversion_tree to count the number of
13322 if-convertible loops.
13323
13324 2010-06-25 Changpeng Fang <changpeng.fang@amd.com>
13325
13326 * common.opt (fprefetch-loop-arrays): Re-define
13327 -fprefetch-loop-arrays as a tri-state option with the initial
13328 value of -1.
13329 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
13330 pass only when flag_prefetch_loop_arrays > 0.
13331 * toplev.c (process_options): Note that, with tri-states,
13332 flag_prefetch_loop_arrays>0 means prefetching is enabled.
13333 * config/i386/i386.c (override_options): Enable prefetching at -O3
13334 for a set of CPUs that sw prefetching is helpful.
13335 (software_prefetching_beneficial_p): New. Return TRUE if software
13336 prefetching is beneficial for the given CPU.
13337
13338 2010-06-25 H.J. Lu <hongjiu.lu@intel.com>
13339
13340 PR rtl-optimization/44326
13341 * implicit-zee.c (find_removable_zero_extends): Replace
13342 INSN_P with NONDEBUG_INSN_P.
13343
13344 2010-06-25 Martin Jambor <mjambor@suse.cz>
13345
13346 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
13347 (struct ipa_node_params): Removed the modification_analysis_done flag.
13348 (ipa_is_param_modified): Removed.
13349 (ipa_analyze_node): Declare.
13350 (ipa_compute_jump_functions): Remove declaration.
13351 (ipa_count_arguments): Likewise.
13352 (ipa_detect_param_modifications): Likewise.
13353 (ipa_analyze_params_uses): Likewise.
13354 * ipa-prop.c (struct param_analysis_info): New type.
13355 (visit_store_addr_for_mod_analysis): Removed.
13356 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
13357 moved down in the file.
13358 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
13359 (ipa_count_arguments): Made static.
13360 (mark_modified): New function.
13361 (is_parm_modified_before_call): New function.
13362 (compute_pass_through_member_ptrs): New parameter parms_info, call
13363 is_parm_modified_before_call instead of ipa_is_param_modified.
13364 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
13365 it to compute_pass_through_member_ptrs.
13366 (ipa_compute_jump_functions): New parameter parms_info, pass it to
13367 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
13368 on the callee if it is analyzed. Made static.
13369 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
13370 is_parm_modified_before_call instead of ipa_is_param_modified.
13371 (ipa_analyze_call_uses): New parameter parms_info, pass it to
13372 ipa_analyze_indirect_call_uses.
13373 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
13374 ipa_analyze_call_uses.
13375 (ipa_analyze_params_uses): New parameter parms_info, pass it to
13376 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
13377 (ipa_analyze_node): New function.
13378 (ipa_print_node_params): Do not dump the modified flag.
13379 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
13380 it. Do not stream the modified parameter flag.
13381 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
13382 it. Do not stream the modified parameter flag.
13383 * ipa-cp.c (ipcp_analyze_node): Removed.
13384 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
13385 with only a call to ipa_analyze_node.
13386 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
13387 node with only a call to ipa_analyze_node.
13388
13389 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
13390
13391 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
13392
13393 2010-06-25 Jan Hubicka <jh@suse.cz>
13394
13395 * tree-pass.h (pass_split_functions): Declare.
13396 * opts.c (decode_options): Enable function splitting at -O2
13397 * timevar.def (TV_IPA_FNSPLIT): New macro.
13398 * ipa-split.c: New file.
13399 * common.opt (-fpartial-inlining): New flag.
13400 * Makefile.in (ipa-split.o): New object file.
13401 * passes.c (init_optimization_passes): Add ipa-split.
13402 * params.def (partial-inlining-entry-probability): New parameters.
13403 * doc/invoke.texi (-fpartial-inlining): New.
13404
13405 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
13406
13407 PR 44665
13408 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
13409 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
13410 (gimplify_expr): Likewise.
13411
13412 2010-06-25 Martin Jambor <mjambor@suse.cz>
13413
13414 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
13415 statements instead of bailing out on them.
13416 (ipa_analyze_indirect_call_uses): Do not require that loads from the
13417 parameter are in the same BB as the condition. Update comments.
13418
13419 2010-06-25 Jakub Jelinek <jakub@redhat.com>
13420
13421 PR middle-end/43866
13422 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
13423 true or always false, return NULL_TREE.
13424 (tree_unswitch_single_loop): Optimize conditions even when reaching
13425 max-unswitch-level parameter. If num > 0, optimize first all conditions
13426 using entry checks, then do still reachable block discovery and consider
13427 only conditions in still reachable basic blocks in the loop.
13428
13429 PR tree-optimization/44539
13430 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
13431 the call doesn't have LHS, but has VDEF.
13432
13433 2010-06-25 Joseph Myers <joseph@codesourcery.com>
13434
13435 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
13436 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
13437 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
13438 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
13439 * system.h (MODIFY_TARGET_NAME): Poison.
13440
13441 2010-06-25 Alan Modra <amodra@gmail.com>
13442
13443 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
13444 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
13445 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13446 CMODEL_LARGE as default.
13447 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
13448 (offsettable_ok_by_alignment): Delete.
13449 (rs6000_emit_move): Remove mcmodel=medium optimization.
13450
13451 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
13452
13453 With large parts from Jim Wilson:
13454 PR target/43902
13455 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
13456 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
13457 * optabs.c (optab_for_tree_code): Likewise.
13458 (expand_widen_pattern_expr): Likewise.
13459 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
13460 out of execute_optimize_widening_mul.
13461 (convert_plusminus_to_widen): New function.
13462 (execute_optimize_widening_mul): Use the two new functions.
13463 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
13464 Remove code to generate widening multiply-accumulate. Add support
13465 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
13466 * gimple-pretty-print.c (dump_ternary_rhs): New function.
13467 (dump_gimple_assign): Call it when appropriate.
13468 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
13469 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
13470 (expand_gimple_stmt_1): Likewise.
13471 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
13472 WIDEN_MULT_MINUS_EXPR.
13473 * tree-ssa-operands.c (get_expr_operands): Likewise.
13474 * tree-inline.c (estimate_operator_cost): Likewise.
13475 * gimple.c (extract_ops_from_tree_1): Renamed from
13476 extract_ops_from_tree. Add new arg for a third operand; fill it.
13477 (gimple_build_assign_stat): Support operations with three operands.
13478 (gimple_build_assign_with_ops_stat): Likewise.
13479 (gimple_assign_set_rhs_from_tree): Likewise.
13480 (gimple_assign_set_rhs_with_ops_1): Renamed from
13481 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
13482 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
13483 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
13484 WIDEN_MULT_MINUS_EXPR.
13485 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
13486 (extract_ops_from_tree_1): Adjust declaration.
13487 (gimple_assign_set_rhs_with_ops_1): Likewise.
13488 (gimple_build_assign_with_ops): Pass NULL for last operand.
13489 (gimple_build_assign_with_ops3): New macro.
13490 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
13491 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
13492 functions.
13493 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
13494 (verify_gimple_assign): Call it.
13495 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
13496 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
13497 functions for dealing with three-operand statements.
13498 * tree.c (commutative_ternary_tree_code): New function.
13499 * tree.h (commutative_ternary_tree_code): Declare it.
13500 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
13501 ternary statements.
13502 (gimple_assign_nonzero_warnv_p): Likewise.
13503 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
13504 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
13505 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
13506 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
13507 (struct hashtable_expr): New member ternary in the union.
13508 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
13509 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
13510 (iterative_hash_hashable_expr): Likewise.
13511 (print_expr_hash_elt): Handle EXPR_TERNARY.
13512 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
13513 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
13514 statements. Handle GIMPLE_TERNARY_RHS.
13515
13516 2010-06-25 Jan Hubicka <jh@suse.cz>
13517
13518 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
13519
13520 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
13521
13522 PR c/44517
13523 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
13524 parameters are not good.
13525 (c_parser_parameter_declaration): Error unknown type name if the type
13526 name can't start declaration specifiers.
13527
13528 2010-06-25 Joseph Myers <joseph@codesourcery.com>
13529
13530 * gcc.c (translate_options): Don't mention +e in comment.
13531 (process_command): Don't handle +e specially.
13532
13533 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
13534
13535 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
13536
13537 * ira-build.c (merge_hard_reg_conflicts): New function.
13538 (create_cap_allocno, copy_info_to_removed_store_destinations,
13539 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
13540 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
13541 (remove_unnecessary_allocnos, remove_low_level_allocnos)
13542 copy_nifo_to_removed_store_destination): Use them.
13543 * ira-lives.c (make_hard_regno_born): New function, split out of
13544 make_regno_born.
13545 (make_allocno_born): Likewise.
13546 (make_hard_regno_dead): New function, split out of make_regno_dead.
13547 (make_allocno_dead): Likewise.
13548 (inc_register_pressure): New function, split out of set_allocno_live.
13549 (dec_register_pressure): New function, split out of clear_allocno_live.
13550 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
13551 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
13552 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
13553 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
13554 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
13555 mark_pseudo_regno_live.
13556 (process_bb_node_lives): Use mark_pseudo_regno_live,
13557 make_hard_regno_born and make_allocno_dead.
13558 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
13559 set_allocno_live, clear_allocno_live): Delete functions.
13560
13561 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
13562 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
13563 functions.
13564 (ira_flattening): Use ira_parent_allocno.
13565 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
13566 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
13567
13568 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
13569 statement.
13570
13571 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
13572 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
13573 minmax_set_iter_cond, minmax_set_iter_next,
13574 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
13575 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
13576 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
13577 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
13578 uses changed.
13579
13580 * ira-int.h (struct live_range, live_range_t): Renamed from struct
13581 ira_allocno_live_range and allocno_live_range_t; all uses changed.
13582 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
13583 All uses changed.
13584
13585 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
13586
13587 * thumb2.md (thumb2_tlobits_cbranch): Delete.
13588 (peephole2 to convert zero_extract/compare of single bit to
13589 lshift/compare): New.
13590
13591 2010-06-24 Anatoly Sokolov <aesok@post.ru>
13592
13593 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
13594 recursive call and call to 'int_const_binop'.
13595 (build_range_check, fold_cond_expr_with_comparison, unextend,
13596 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
13597 multiple_of_p): Adjust call to const_binop.
13598
13599 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
13600
13601 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
13602 determine size of XFmode operand.
13603 (XFmode extended DFmode push splitter): Ditto.
13604 (XFmode extended SFmode push splitter): Ditto.
13605
13606 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
13607
13608 PR target/44588
13609 * config/i386/i386.md (extract_code): New.
13610 (<u>divmodqi4): Likewise.
13611 (divmodhiqi3): Likewise.
13612 (udivmodhiqi3): Likewise.
13613 (<u>divqi3): Remvoved.
13614
13615 2010-06-24 Jakub Jelinek <jakub@redhat.com>
13616
13617 PR middle-end/44492
13618 * recog.h (struct recog_data): Add is_asm field.
13619 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
13620 present in constraints of inline-asm operand and memory operand
13621 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
13622 (extract_insn): Initialize recog_data.is_asm.
13623 * doc/md.texi (Constraints): Document operand side-effect rules.
13624
13625 2010-06-24 Andi Kleen <ak@linux.intel.com>
13626
13627 * c-parser.c (c_parser_conditional_expression): Call
13628 warn_for_omitted_condop.
13629 * doc/invoke.texi: Document omitted condop warning.
13630
13631 2010-06-24 Nick Clifton<nickc@redhat.com>
13632
13633 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
13634 insn in the sequence is a jump insn before setting its label.
13635
13636 2010-06-24 Alan Modra <amodra@gmail.com>
13637
13638 * collect2.c (main): Match exactly --version and --help.
13639
13640 2010-06-24 DJ Delorie <dj@redhat.com>
13641
13642 * config/m32c/m32c-pragma.c: Don't include rtl.h.
13643
13644 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
13645
13646 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
13647 using X87MODEF mode iterator.
13648 (pushsf splitter): Macroize splitter using P mode iterator.
13649 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
13650 mode iterator.
13651
13652 (*movxf_internal): Rename from *movxf_integer.
13653 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
13654 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
13655 (*movdf_internal): Rename from *movdf_integer.
13656 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
13657 (*movsf_internal): Rename from *movdf_1.
13658
13659 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
13660
13661 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
13662 (const_gimple_seq_node): Removed typedefs.
13663
13664 * gimple.h (gimple_seq_node_d, gimple_seq_node)
13665 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
13666
13667 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
13668
13669 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
13670 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
13671 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
13672 and CODE_FOR_vec_extract_lo_v4df.
13673
13674 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
13675 Changed to define_insn_and_split.
13676 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
13677 (vec_extract_lo_v16hi): Likewise.
13678 (vec_extract_lo_v32qi): Likewise.
13679 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
13680 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
13681
13682 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
13683
13684 PR target/44640
13685 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
13686 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
13687 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
13688 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
13689 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
13690
13691 PR target/44640
13692 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
13693
13694 PR other/44644
13695 * df-core.c (struct df): Rename to df_d.
13696 * df.h (struct df): Likewise.
13697 * dse.h (struct df): Remove forward declaration.
13698 * recog.h (struct insn_data): Rename to:
13699 (struct_insn_data_d). Adjusted all users.
13700
13701 2010-06-23 Arnaud Charlet <charlet@adacore.com
13702
13703 PR ada/22220
13704 * doc/install.texi: Update requirements to build GNAT.
13705
13706 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
13707
13708 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
13709 enum type.
13710 (m68k_sched_attr_opx_type): Remove unreachable return.
13711 (m68k_sched_attr_opy_type): Likewise.
13712 (m68k_sched_attr_size): Likewise.
13713 (sched_get_opxy_mem_type): Likewise.
13714 (m68k_sched_attr_op_mem): Likewise.
13715
13716 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
13717
13718 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
13719 new statement and adjust VDEF only if necessary. Remove superfluous
13720 call to maybe_clean_or_replace_eh_stmt.
13721 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
13722 copy the flags.
13723 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
13724 * tree-inline.c (copy_bb): ...and not there.
13725
13726 2010-06-22 Cary Coutant <ccoutant@google.com>
13727
13728 * dwarf2out.c (is_nested_in_subprogram): New function.
13729 (should_move_die_to_comdat): Use it.
13730 (copy_ancestor_tree): Don't mark DIEs here.
13731 (copy_decls_walk): Start walk from root of newly-added tree;
13732 mark DIEs here instead.
13733
13734 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
13735
13736 * config/i386/i386.md (unit): Also check sseishft1.
13737
13738 2010-06-22 Jan Hubicka <jh@suse.cz>
13739
13740 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
13741 enabled.
13742
13743 2010-06-22 Jan Hubicka <jh@suse.cz>
13744
13745 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
13746 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
13747 Return true if something changed.
13748 * df.h (df_confluence_function_n): Return bool.
13749 * df-core.c (df_worklist_propagate_forward,
13750 df_worklist_propagate_backward): Track changes and ages.
13751 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
13752 track ages.
13753 * dse.c (dse_confluence_n): Return always true.
13754
13755 2010-06-22 Jan Hubicka <jh@suse.cz>
13756
13757 * bitmap.c (bitmap_clear_bit): Micro optimize.
13758
13759 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
13760
13761 * config/i386/i386.md (SWI1248x): New mode iterator.
13762 (SWI48x): Ditto.
13763 (SWI12): Ditto.
13764 (SWI24): Ditto.
13765
13766 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
13767 SWI1248x mode iterator.
13768 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
13769 using SWI124 mode iterator.
13770 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
13771 mode iterator.
13772 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
13773 *pushdi2_prologue_rex64 using P mode iterator.
13774 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
13775 using SWI48 mode iterator.
13776 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
13777 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
13778 using SWI1248x mode iterator.
13779 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
13780 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
13781 SWI48 mode iterator.
13782 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
13783 iterator.
13784 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
13785 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
13786 SWI12 mode iterator.
13787 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
13788 SWI12 mode iterator.
13789 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
13790 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
13791 SWI24 mode iterator.
13792 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
13793 SWI48 mode iterator.
13794 (mov<mode>_insn_1): New expander.
13795 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
13796 using SWI48x mode iterator.
13797
13798 (*movoi_internal_avx): Rename from *movoi_internal.
13799 (*movti_internal_rex64): Rename from *movti_rex64.
13800 (*movti_internal_sse): Rename from *movti_sse.
13801 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
13802 (*movdi_internal): Rename from *movdi_2.
13803 (*movsi_internal): Rename from *movsi_1.
13804 (*movhi_internal): Rename from *movhi_1.
13805 (*movqi_internal): Rename from *movqi_1.
13806
13807 (insv): Update the call to gen_movsi_insv_1 for rename.
13808 * config/i386/i386.c (promote_duplicated_reg): Ditto.
13809
13810 2010-06-22 Jan Hubicka <jh@suse.cz>
13811
13812 * passes.c (execute_function_todo): Move call of statistics_fini_pass
13813 to ...
13814 (execute_todo) ... this one.
13815
13816 2010-06-22 Alan Modra <amodra@gmail.com>
13817
13818 PR target/44364
13819 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13820 * caller-save.c (insert_restore, insert_save): Use non-validate
13821 form of adjust_address.
13822
13823 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13824
13825 PR target/39690
13826 * config/pa/pa.c (override_options): Disable
13827 -freorder-blocks-and-partition.
13828
13829 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
13830
13831 PR target/44615
13832 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
13833
13834 * config/i386/i386.md (type): Add sseishft1
13835
13836 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
13837 (ppro_insn_load): Likewise.
13838 (ppro_insn_store): Likewise.
13839 (ppro_insn_both): Likewise.
13840
13841 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
13842 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
13843 for type.
13844 (*vec_extractv2di_1_avx): Likewise.
13845 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
13846 type. Remove atom_unit.
13847 (*vec_extractv2di_1_sse2): Likewise.
13848
13849 2010-06-21 DJ Delorie <dj@redhat.com>
13850
13851 * diagnostic.h (diagnostic_classification_change_t): New.
13852 (diagnostic_context): Add history and push/pop list.
13853 (diagnostic_push_diagnostics): Declare.
13854 (diagnostic_pop_diagnostics): Declare.
13855 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
13856 from pragmas in a history chain instead of the global table.
13857 (diagnostic_push_diagnostics): New.
13858 (diagnostic_pop_diagnostics): New.
13859 (diagnostic_report_diagnostic): Scan history chain to find state
13860 of diagnostics as of the diagnostic location.
13861 * opts.c (set_option): Pass UNKNOWN_LOCATION to
13862 diagnostic_classify_diagnostic.
13863 (enable_warning_as_error): Likewise.
13864 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
13865 use in the history chain.
13866 * doc/extend.texi: Document pragma GCC diagnostic changes.
13867
13868 2010-06-21 Jakub Jelinek <jakub@redhat.com>
13869
13870 * dwarf2out.c (add_linkage_name): New function. Don't add
13871 anything to DW_TAG_member DIEs.
13872 (add_name_and_src_coords_attributes): Use it.
13873 (gen_variable_die): Call it for C++ static data members if
13874 specification is DW_TAG_member.
13875
13876 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
13877 C++ char16_t and char32_t.
13878
13879 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
13880 * genattrtab.c: Include vecprim.h.
13881 (cached_attrs, cached_attr_count, attrs_seen_once,
13882 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
13883 attrs_cached_after): New variables.
13884 (find_attrs_to_cache): New function.
13885 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
13886 (write_test_expr): Add attrs_cached argument, return it too,
13887 attempt to cache non-const attributes used more than once in
13888 a single case handling.
13889 (write_attr_get): Use find_attrs_to_cache, for caching candidates
13890 emit cached_* variables. Adjust write_attr_set callers.
13891 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
13892 to find attributes that should be cached in this block. Adjust
13893 write_test_expr callers.
13894 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
13895 callers.
13896 (make_automaton_attrs): Adjust write_test_expr caller.
13897
13898 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
13899 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
13900 (make_automaton_attrs): If find_tune_attr returns non-NULL,
13901 write separate internal_dfa_insn_code_* and insn_default_latency_*
13902 functions for each attribute's value and emit init_sched_attrs
13903 function and function pointers.
13904 * genattr.c (const_attrs, reservations): New variables.
13905 (gen_attr): Add const attributes to const_attrs vector.
13906 (check_tune_attr, find_tune_attr): New functions.
13907 (main): Add reservations to reservations vector. If find_tune_attr
13908 returns true, add prototype for init_sched_attrs and make
13909 internal_dfa_insn_code and insn_default_latency function pointers,
13910 otherwise define init_sched_attrs as dummy macro.
13911 * cfgexpand.c: Include insn-attr.h.
13912 (gimple_expand_cfg): Call init_sched_attrs.
13913
13914 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
13915
13916 PR target/44575
13917 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
13918 va_arg from a set of register save slots into a temporary,
13919 if the container is bigger than type size, do the copying
13920 using smaller mode or using memcpy.
13921
13922 PR bootstrap/44426
13923 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
13924 prototype.
13925 (sel_print_to_dot): Remove macro.
13926 (sel_print): Likewise. New prototype.
13927 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
13928 (sel_print): New function.
13929
13930 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13931
13932 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
13933 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
13934
13935 2010-06-21 Nick Clifton <nickc@redhat.com>
13936
13937 * config/rx/rx.h (PTRDIFF_TYPE): Define.
13938 (SMALL_REGISTER_CLASS): Define (to zero).
13939 (PRINT_OPERAND): Delete.
13940 (PRINT_OPERAND_ADDRESS): Delete.
13941 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
13942 (rx_print_operand_address): Delete prototype.
13943 * config/rx/rx.c (rx_print_operand): Make static.
13944 Allow %H and %L to handle CONST_DOUBLEs.
13945 (rx_print_operand_address): Make static.
13946 (rx_gen_move_template): Rename local variable 'template' to
13947 out_template.
13948 (rx_function_arg): Do not pass unknown sized objects in registers.
13949 (TARGET_PRINT_OPERAND): Define.
13950 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13951
13952 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
13953
13954 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
13955
13956 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
13957
13958 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
13959 stack-alignment for simple leaf-functions.
13960
13961 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
13962
13963 * doc/install.texi: Document bootstrap-lto.
13964
13965 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
13966
13967 PR debug/44248
13968 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
13969 (input_function): Drop them here, if VTA is disabled.
13970
13971 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
13972
13973 PR target/44546
13974 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
13975 New predicate.
13976 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
13977 ix86_swapped_fp_comparsion_operator instead of
13978 ix86_fp_comparison_operator.
13979
13980 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
13981 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
13982 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
13983 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
13984 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
13985 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
13986
13987 2010-06-20 Joseph Myers <joseph@codesourcery.com>
13988
13989 PR other/32998
13990 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
13991 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
13992 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
13993 (decode_cmdline_option): Update for this return value. Set
13994 orig_option_with_args_text field. Set arg field for unknown
13995 options. Make static.
13996 (decode_cmdline_options_to_array): New.
13997 (prune_options): Update handling of find_opt return value.
13998 * opts.c (read_cmdline_option): Take decoded option. Return void.
13999 (read_cmdline_options): Take decoded options.
14000 (decode_options): Add parameters for decoded options. Use
14001 decode_cmdline_options_to_array. Use decoded options for -O
14002 scan. Use integral_argument for -O parameters. Update call to
14003 read_cmdline_options.
14004 (enable_warning_as_error): Update handling of find_opt return value.
14005 * opts.h: Update comment on unknown options.
14006 (struct cl_decoded_option): Update comments on opt_index and arg.
14007 Add orig_option_with_args_text.
14008 (decode_cmdline_option): Remove.
14009 (decode_cmdline_options_to_array): Declare.
14010 (decode_options): Update prototype.
14011 * toplev.c (save_argv): Remove.
14012 (save_decoded_options, save_decoded_options_count): New.
14013 (read_integral_parameter): Remove.
14014 (print_switch_values): Use decoded options.
14015 (toplev_main): Don't set save_argv. Update call to decode_options.
14016 * toplev.h (read_integral_parameter): Remove.
14017 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
14018
14019 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
14020
14021 PR target/44072
14022 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
14023 immediate.
14024 * constraints.md (Pw, Px): New constraints.
14025 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
14026
14027 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
14028
14029 * config/i386/sse.md (fma4modesuffixf4): Removed.
14030 (ssemodesuffixf2s): Likewise.
14031 (ssemodesuffixf4): Likewise.
14032 (ssemodesuffixf2c): Likewise.
14033 (ssescalarmodesuffix2s): Likewise.
14034 (avxmodesuffixf2c): Likewise.
14035 (ssemodesuffix): New.
14036 (ssescalarmodesuffix): Likewise.
14037 Update patterns with ssemodesuffix and ssescalarmodesuffix.
14038
14039 2010-06-19 Philip Herron <herron.philip@googlemail.com>
14040
14041 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
14042
14043 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
14044
14045 * stor-layout.c (debug_rli): Remove unused local variables.
14046
14047 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
14048
14049 PR rtl-optimization/40900
14050 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
14051 original expression for later reuse.
14052 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
14053 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
14054
14055 2010-06-18 Anatoly Sokolov <aesok@post.ru>
14056
14057 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
14058 double_int_fits_in_uhwi_p): Implement as static inline.
14059 (double_int_xor): New inline function.
14060 (double_int_lrotate, double_int_rrotate, double_int_max,
14061 double_int_umax, double_int_smax, double_int_min, double_int_umin,
14062 double_int_smin): Declare.
14063 (lrotate_double, rrotate_double): Remove declaration.
14064 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
14065 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
14066 (double_int_lrotate, double_int_rrotate, double_int_max,
14067 double_int_umax, double_int_smax, double_int_min, double_int_umin,
14068 double_int_smin): New function.
14069 * fold-const.c (int_const_binop): Clean up, use double_int_*
14070 functions.
14071 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
14072 double_int_* and immed_double_int_const functions.
14073
14074 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
14075
14076 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
14077 * function.c (types_used_by_cur_var_decl): Likewise.
14078 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
14079
14080 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
14081
14082 * tree.h (record_layout_info): Change type of pending_statics field
14083 to a VEC.
14084 * stor-layout.c (start_record_layout): Store NULL into
14085 pending_statics.
14086 (debug_rli): Call debug_vec_tree instead of debug_tree.
14087 (place_field): Likewise.
14088 (finish_record_layout): Likewise.
14089
14090 2010-06-18 Alan Modra <amodra@gmail.com>
14091
14092 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
14093
14094 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14095
14096 PR target/43740
14097 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
14098 for SET source operand from SET destination operand.
14099
14100 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
14101
14102 PR rtl-optimization/39871
14103 * reload1.c (init_eliminable_invariants): For flag_pic, disable
14104 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
14105 (function_invariant_p): Rule out a plus of frame or arg pointer with
14106 a SYMBOL_REF.
14107 * ira.c (find_reg_equiv_invariant_const): Likewise.
14108
14109 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
14110
14111 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
14112 print_operand_address and puts to output the operand for CONST.
14113
14114 2010-06-17 Jakub Jelinek <jakub@redhat.com>
14115
14116 PR debug/44572
14117 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
14118 hook.
14119
14120 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14121
14122 * v850-protos.h (print_operand): Delete.
14123 (print_operand_address): Delete.
14124 * v850.h (PRINT_OPERAND): Delete.
14125 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14126 (PRINT_OPERAND_ADDRESS): Delete.
14127 * v850.c (print_operand_address): Rename to...
14128 (v850_print_operand_address): ...this. Make static. Call
14129 v850_print_operand.
14130 (print_operand): Rename to...
14131 (v850_print_operand): ...this. Make static. Call
14132 v850_print_operand_address.
14133 (v850_print_operand_punct_valid_p): New function.
14134 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14135 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14136
14137 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14138
14139 * config/sh/sh-protos.h (print_operand): Delete.
14140 (print_operand_address): Delete.
14141 * config/sh/sh.h (PRINT_OPERAND): Delete.
14142 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14143 (PRINT_OPERAND_ADDRESS): Delete.
14144 * config/sh/sh.c (sh_print_operand_address): Make static.
14145 (sh_print_operand): Make static. Call sh_print_operand_address
14146 and sh_print_operand.
14147 (sh_print_operand_punct_valid_p): New function.
14148 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14149 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14150
14151 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14152
14153 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
14154 (mcore_print_operand_address): Delete.
14155 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
14156 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14157 (PRINT_OPERAND_ADDRESS): Delete.
14158 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
14159 (mcore_print_operand): Make static.
14160 (mcore_print_operand_punct_valid_p): New function.
14161 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
14162 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14163
14164 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14165
14166 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
14167 (print_operand_address): Delete.
14168 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
14169 (PRINT_OPERAND_ADDRESS): Delete.
14170 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
14171 static.
14172 (m68hc11_print_operand): Make static.
14173 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14174
14175 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14176
14177 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
14178 (m32r_print_operand_address): Delete.
14179 * config/m32r/m32r.h (m32r_punct_chars): Delete.
14180 (PRINT_OPERAND): Delete.
14181 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14182 (PRINT_OPERAND_ADDRESS): Delete.
14183 * config/m32r/m32r.c (m32r_punct_chars): Make static.
14184 (m32r_print_operand_address): Make static.
14185 (m32r_print_operand): Make static.
14186 (m32r_print_operand_punct_valid_p): New function.
14187 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14188 (TARGET_PRINT_OPERAND_ADDRESS): Define.
14189
14190 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14191
14192 * config/iq2000/iq2000-protos.h (print_operand): Delete.
14193 (print_operand_address): Delete.
14194 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
14195 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14196 (PRINT_OPERAND_ADDRESS): Delete.
14197 (iq2000_print_operand_punct): Delete.
14198 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
14199 (iq2000_print_operand_address): Make static.
14200 (iq2000_print_operand): Make static.
14201 (iq2000_print_operand_punct_valid_p): New function.
14202 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14203 (TARGET_PRINT_OPERAND_ADDRESS): Define.
14204
14205 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14206
14207 * config/frv/frv-protos.h (frv_print_operand): Delete.
14208 (frv_print_operand_address): Delete.
14209 * config/frv/frv.h (PRINT_OPERAND): Delete.
14210 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14211 (PRINT_OPERAND_ADDRESS): Delete.
14212 * config/frv/frv.c (frv_print_operand_address): Make static.
14213 (frv_print_operand): Make static.
14214 (frv_print_operand_punct_valid_p): New function.
14215 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14216 (TARGET_PRINT_OPERAND_ADDRESS): Define.
14217
14218 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
14219
14220 * tree.h (vec_member): Declare.
14221 * tree.c (vec_member): Define.
14222
14223 2010-06-17 Richard Guenther <rguenther@suse.de>
14224
14225 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
14226 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
14227
14228 2010-06-17 Richard Guenther <rguenther@suse.de>
14229
14230 * tree-inline.c (declare_return_variable): Remove bogus code.
14231
14232 2010-06-17 Richard Guenther <rguenther@suse.de>
14233
14234 * gimplify.c (gimplify_bind_expr): Always promote complex
14235 and vector variables to registers if possible.
14236
14237 2010-06-17 Richard Guenther <rguenther@suse.de>
14238
14239 * expr.c (get_inner_reference): Use double_int for bit_offset
14240 calculation.
14241
14242 2010-06-16 DJ Delorie <dj@redhat.com>
14243
14244 * common.opt (-fstrict-volatile-bitfields): new.
14245 * doc/invoke.texi: Document it.
14246 * fold-const.c (optimize_bit_field_compare): For volatile
14247 bitfields, use the field's type to determine the mode, not the
14248 field's size.
14249 * expr.c (expand_assignment): Likewise.
14250 (get_inner_reference): Likewise.
14251 (expand_expr_real_1): Likewise.
14252 * expmed.c (store_fixed_bit_field): Likewise.
14253 (extract_bit_field_1): Likewise.
14254 (extract_fixed_bit_field): Likewise.
14255
14256 2010-06-16 Richard Guenther <rguenther@suse.de>
14257
14258 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
14259
14260 2010-06-16 Douglas B Rupp <rupp@gnat.com>
14261
14262 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
14263 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
14264 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
14265 * debug.c: Likewise.
14266 * sdbout.c: Likewise.
14267 * vmsdbgout.c: Likewise.
14268 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
14269 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
14270 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
14271 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
14272 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
14273 * dwarf2out.c (dw_fde_struct): New fields
14274 dw_fde_vms_{end,begin}_prologue.
14275 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
14276 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
14277 (dwarf2out_vms_end_prologue): New function.
14278 (dwarf2out_vms_begin_epilogue): New function.
14279 (dw_val_struct): New value dw_val_class_vms_delta.
14280 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
14281 begin_epilogue for VMS.
14282 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
14283 new static functions.
14284 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
14285 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
14286 static functions.
14287 (print_die): New case dw_val_class_vms_delta.
14288 (attr_checksum): Likewise.
14289 (same_dw_val_p: Likewise.
14290 (size_of_die): Likewise.
14291 (value_format): Likewise.
14292 (output_die): Likewise.
14293 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
14294 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
14295 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
14296 dwarf2out_cfi_begin_epilogue
14297 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
14298
14299 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
14300
14301 * config/cris/cris-protos.h (cris_print_operand): Delete.
14302 (cris_print_operand_address): Delete.
14303 * config/cris/cris.h (PRINT_OPERAND): Delete.
14304 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14305 (PRINT_OPERAND_ADDRESS): Delete.
14306 * config/cris/cris.c (cris_print_operand_address): Make static.
14307 (cris_print_operand): Make static.
14308 (cris_print_operand_punct_valid_p): New function.
14309 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14310 (TARGET_PRINT_OPERAND_ADDRESS): Define.
14311
14312 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
14313
14314 * config/arm/arm-protos.h (arm_print_operand): Delete.
14315 (arm_print_operand_address): Delete.
14316 * config/arm/arm.h (PRINT_OPERAND): Delete.
14317 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14318 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
14319 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
14320 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
14321 (arm_print_operand): Make static.
14322 (arm_print_operand_punct_valid_p): New function.
14323 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14324 (TARGET_PRINT_OPERAND_ADDRESS): Define.
14325
14326 2010-06-16 Nick Clifton <nickc@redhat.com>
14327
14328 * config/rx/constraints.md (NEGint4): New constraint.
14329 * config/rx/rx.md (attr cc): Add set_zsc.
14330 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
14331 initialised.
14332 (cmpsf): Likewise.
14333 (call_internal): Clobber the cc0 register.
14334 (call_value_internal): Likewise.
14335 (cstoresi4): Likewise.
14336 (movsieq): Likewise.
14337 (movsine): Likewise.
14338 (addsi3): Add alternative to handle small negative constants.
14339 (sunsi3): Likewise.
14340 (addsi3): Do not set the O bit in the cc0 register.
14341 (adddi3): Likewise.
14342 (subsi3): Likewise.
14343 (subdi3): Likewise.
14344 (andsi3): Reorder alternatives to prefer shorter forms.
14345 (mulsi3): Likewise.
14346 (iorsi3): Likewise.
14347 (negsi2): Note that the cc0 flags are set.
14348 (rotlsi3): Note that only the Z and S bits are set in cc0.
14349 (lshrsi3): Likewise.
14350 (ashlsi3): Likewise.
14351 (subsf3): Use %Q for the MEM operand.
14352 (fix_truncsfsi2): Likewise.
14353 (floatsisf2): Likewise.
14354 (bitset): Remove early clobber from destination.
14355 (bitset_in_memory): Likewise.
14356 (lrintsf2): Clobber the cc0 register.
14357 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
14358 (rx_print_operand): Handle %N.
14359
14360 2010-06-16 Jan Hubicka <jh@suse.cz>
14361
14362 * df-core.c (df_compact_blocks): Free problem_temps vector.
14363
14364 2010-06-16 Martin Jambor <mjambor@suse.cz>
14365
14366 PR tree-optimization/43905
14367 * tree-sra.c: Include tree-inline.h.
14368 (create_abstract_origin): Removed.
14369 (modify_function): Version the call graph node instead of creating
14370 abstract origins and dealing with same_body aliases.
14371 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
14372 function is versionable.
14373 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
14374
14375 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
14376
14377 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
14378 (CHOOSE_DYNAMIC_LINKER): Update.
14379
14380 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
14381
14382 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
14383 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
14384 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
14385 *prefetch_3dnow_rex.
14386
14387 2010-06-15 Anatoly Sokolov <aesok@post.ru>
14388
14389 * target.h (struct asm_out):Add declare_constant_name field.
14390 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
14391 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
14392 * output.h (default_asm_declare_constant_name): Declare.
14393 (assemble_label): Update prototype.
14394 * varasm.c (assemble_constant_contents): Use
14395 targetm.asm_out.declare_constant_name target hook.
14396 (assemble_label): Add 'file' argument.
14397 (default_asm_declare_constant_name): New function.
14398 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
14399 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
14400 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
14401
14402 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
14403 * config/darwin.c (darwin_asm_declare_constant_name): New function.
14404 (machopic_output_indirection): Update assemble_label argument list.
14405 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
14406 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
14407
14408 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
14409
14410 PR middle-end/44391
14411 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
14412 size_one_node for pointer types. Do not call gmp_cst_to_tree.
14413
14414 2010-06-15 Richard Guenther <rguenther@suse.de>
14415
14416 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
14417
14418 2010-06-15 Paul Brook <paul@codesourcery.com>
14419
14420 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
14421 hard-float ABI.
14422
14423 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
14424
14425 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
14426 don't get a vector type for output.
14427
14428 2010-06-15 Jakub Jelinek <jakub@redhat.com>
14429
14430 PR fortran/44536
14431 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
14432 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
14433 (LANG_HOOKS_DECLS): Add it.
14434 * gimplify.c (omp_notice_variable): Call
14435 lang_hooks.decls.omp_report_decl.
14436
14437 2010-06-15 Martin Jambor <mjambor@suse.cz>
14438
14439 PR lto/44464
14440 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
14441 on the newly dead SSA name.
14442
14443 2010-06-15 Alan Modra <amodra@gmail.com>
14444
14445 * doc/invoke.texi: Add mcmodel to powerpc options.
14446 * configure.ac: Add HAVE_LD_LARGE_TOC test.
14447 * configure: Regenerate.
14448 * config.in: Regenerate.
14449 * config/rs6000/linux64.opt (mcmodel): New.
14450 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
14451 (TARGET_CMODEL, SET_CMODEL): Define.
14452 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
14453 select CMODEL_MEDIUM default.
14454 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
14455 (TARGET_CMODEL): Define default.
14456 * config/rs6000/rs6000.c (cmodel): New variable.
14457 (rs6000_explicit_options): Add cmodel field.
14458 (rs6000_handle_option): Handle -mcmodel.
14459 (create_TOC_reference): Add largetoc_reg param. Generate high,
14460 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
14461 (rs6000_delegitimize_address): Recognise new toc reference rtl
14462 and minimal-toc rtl.
14463 (rs6000_legitimize_reload_address): Handle new toc references.
14464 (print_operand_address): Handle legitimate_constant_pool_address_p
14465 match before lo_sum.
14466 (rs6000_eliminate_indexed_memrefs): Tidy.
14467 (rs6000_emit_move): Tweak threshold for inlining constants.
14468 Keep rs6000_emit_allocate_stack large stack frame offsets
14469 loaded into r0 inline.
14470 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
14471 (tocrel_base, tocrel_offset): New variables.
14472 (toc_relative_expr_p): Set them here.
14473 (print_operand_address): Skip over any offset on constant pool address.
14474 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
14475 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
14476 (offsettable_ok_by_alignment): New function.
14477 (rs6000_emit_move): Address suitably aligned local symbol_refs
14478 relative to the toc pointer for -mcmodel=medium.
14479 (legitimate_constant_pool_address_p): Make param const_rtx. Add
14480 strict param. Allow lo_sum version of addressing. Verify reg
14481 used for -mminimal-toc and -mcmodel != small. Update all callers.
14482 * config/rs6000/constraints.md: Update for above change.
14483 * config/rs6000/predicates.md: Likewise.
14484 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
14485 code.
14486 (tls_gd): Split for -mcmodel=medium/large.
14487 (tls_gd_high, tls_gd_low): New.
14488 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
14489 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
14490 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
14491 (largetoc_high, largetoc_low): New.
14492 (cmptf_internal2): Add clobber.
14493 * config/rs6000/rs6000-protos.h: Update.
14494
14495 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
14496
14497 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
14498 true if no prefetch is going to be generated for a given group.
14499 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
14500 estimate the prefetch_count.
14501 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
14502 prefetch count by considering the unroll_factor and prefetch_mod
14503 for is_loop_prefetching_profitable.
14504
14505 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
14506
14507 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
14508 anything if the argument is not a MEM.
14509
14510 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
14511
14512 PR debug/43650
14513 PR debug/44181
14514 PR debug/44247
14515 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
14516 debug stmts.
14517 (canonicalize_loop_ivs): Likewise.
14518
14519 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
14520
14521 PR debug/43656
14522 * haifa-sched.c (setup_insn_reg_pressure_info,
14523 update_register_pressure): Reject debug insns.
14524 (ready_sort): Don't setup reg pressure for debug insns.
14525 (schedule_insn): Don't update reg pressure for debug insns.
14526
14527 2010-06-14 Richard Guenther <rguenther@suse.de>
14528
14529 * lto-streamer.c (cached_bp): Remove.
14530 (bitpack_delete): Likewise.
14531 (bitpack_create): Likewise.
14532 (bp_get_next_word): Likewise.
14533 (bp_pack_value, bp_unpack_value): Move ...
14534 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
14535 Re-implement.
14536 (struct bitpack_d): Likewise.
14537 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
14538 New inline functions.
14539 * lto-streamer-out.c (lto_output_bitpack): Remove.
14540 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
14541 (pack_value_fields): Adjust.
14542 (lto_write_tree): Likewise.
14543 (output_gimple_stmt): Likewise.
14544 (output_function): Likewise.
14545 * lto-streamer-in.c (input_gimple_stmt): Adjust.
14546 (input_function): Likewise.
14547 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
14548 (lto_input_bitpack): Remove.
14549 (lto_materialize_tree): Adjust.
14550 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
14551 * lto-cgraph.c (lto_output_edge): Adjust.
14552 (lto_output_node): Likewise.
14553 (lto_output_varpool_node): Likewise.
14554 (lto_output_ref): Likewise.
14555 (input_node): Likewise.
14556 (input_varpool_node): Likewise.
14557 (input_ref): Likewise.
14558 (input_edge): Likewise.
14559 (output_node_opt_summary): Likewise.
14560 (input_node_opt_summary): Likewise.
14561 * ipa-pure-const.c (pure_const_write_summary): Likewise.
14562 (pure_const_read_summary): Likewise.
14563 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
14564 (ipa_read_indirect_edge_info): Likewise.
14565 (ipa_write_node_info): Likewise.
14566 (ipa_read_node_info): Likewise.
14567
14568 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
14569
14570 PR target/44534
14571 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
14572 (vec_extract_lo_v16hi): Likewise.
14573 (vec_extract_lo_v32qi): Likewise.
14574
14575 2010-06-14 Jakub Jelinek <jakub@redhat.com>
14576
14577 PR bootstrap/44426
14578 * tree.h (build_call_expr): Don't define as vararg macro, instead
14579 add a prototype.
14580 * builtins.c (build_call_nofold): Remove.
14581 (expand_builtin_int_roundingfn, expand_builtin_pow,
14582 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
14583 expand_builtin_memset_args, expand_builtin_strcmp,
14584 expand_builtin_strncmp, expand_builtin_memory_chk): Use
14585 build_call_nofold_loc instead of build_call_nofold.
14586 (build_call_expr): New function.
14587
14588 PR tree-optimization/44508
14589 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
14590 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
14591 don't eliminate trivially dead stmts.
14592 * tree-vrp.c (vrp_finalize): Pass false as last argument
14593 to substitute_and_fold.
14594 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
14595 to substitute_and_fold.
14596 * tree-ssa-ccp.c (ccp_finalize): Likewise.
14597
14598 PR bootstrap/44509
14599 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
14600
14601 2010-06-14 Ira Rosen <irar@il.ibm.com>
14602
14603 PR tree-optimization/44507
14604 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
14605 to build initial vector for BIT_AND_EXPR.
14606 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14607
14608 2010-06-14 Jakub Jelinek <jakub@redhat.com>
14609
14610 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
14611 adjust z10prop set_attr.
14612
14613 2010-06-13 Jan Hubicka <jh@suse.cz>
14614
14615 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
14616 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
14617 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
14618 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
14619 datastructure checks into checking asserts.
14620 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
14621 * tree-ssa-sccvn.c (VN_INFO): Likewise.
14622 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
14623 df_ref_create_structure): Likewise.
14624 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
14625 pool_free): Use gcc_checking_assert.
14626 * alias.c (get_alias_set): Likewise.
14627 * var-tracking.c (variable_htab_free, shared_hash_copy,
14628 canonicalize_values_mark, variable_merge_over_cur): Likewise.
14629 * lto-streamer.c (bp_unpack_value): Likewise.
14630
14631 2010-06-13 Richard Guenther <rguenther@suse.de>
14632
14633 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
14634 Do not stream but initialize TYPE_CANONICAL to NULL.
14635 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
14636 * gimple.c (gimple_types_compatible_p): Disregard
14637 TYPE_STRUCTURAL_EQUALITY_P.
14638 (gimple_register_type): Use TYPE_CANONICAL as cache.
14639 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
14640 before registering common types.
14641 * config/i386/i386.c (ix86_function_arg_boundary): Do not
14642 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
14643 * tree.h (TYPE_CANONICAL): Clarify documentation.
14644
14645 2010-06-13 Anatoly Sokolov <aesok@post.ru>
14646
14647 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14648 LIBCALL_VALUE): Remove macros.
14649 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
14650 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14651 TARGET_FUNCTION_VALUE_REGNO_P): Define.
14652 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
14653 (ia64_function_value): Make static. Handle receiving the function
14654 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
14655
14656 2010-06-12 Jan Hubicka <jh@suse.cz>
14657
14658 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
14659 at correct place.
14660
14661 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
14662
14663 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
14664
14665 2010-06-12 Jan Hubicka <jh@suse.cz>
14666
14667 * df-core.c (df_clear_bb_info): New function.
14668 (df_set_blocks): bb_info is always allocated.
14669 (df_get_bb_info): Use block_info_elt_size.
14670 (df_set_bb_info): Likewise.
14671 (df_compact_blocks): Update for new block_info.
14672 (grow_bb_info): New function.
14673 * df-problems.c (df_grow_bb_info): Move to df-core.c
14674 (df_rd_set_bb_info): Remove.
14675 (df_rd_free_bb_info): Do not free block pool.
14676 (df_rd_alloc): Do not create pool, use check for
14677 obstack presence instead of NULL pointer for new blocks.
14678 (df_rd_free): DO not free alloc pool; clear block_info.
14679 (problem_RD): Add size of block info structure.
14680 (df_lr_set_bb_info): Remove.
14681 (df_lr_free_bb_info): Do not free block pool.
14682 (df_lr_alloc): Do not create pool, use check for
14683 obstack presence instead of NULL pointer for new blocks.
14684 (df_lr_free): DO not free alloc pool; clear block_info.
14685 (problem_LR): Add size of block info structure.
14686 (df_live_set_bb_info): Remove.
14687 (df_live_free_bb_info): Do not free block pool.
14688 (df_live_alloc): Do not create pool, use check for
14689 obstack presence instead of NULL pointer for new blocks.
14690 (df_live_free): DO not free alloc pool; clear block_info.
14691 (problem_LIVE): Add size of block info structure.
14692 (problem_CHAIN): Add size of block info structure.
14693 (df_byte_lr_set_bb_info): Remove.
14694 (df_byte_lr_free_bb_info): Do not free block pool.
14695 (df_byte_lr_alloc): Do not create pool, use check for
14696 obstack presence instead of NULL pointer for new blocks.
14697 (df_byte_lr_free): DO not free alloc pool; clear block_info.
14698 (problem_BYTE_LR): Add size of block info structure.
14699 (problem_NOTE): Add size of block info structure.
14700 (df_byte_MD_set_bb_info): Remove.
14701 (df_byte_MD_free_bb_info): Do not free block pool.
14702 (df_byte_MD_alloc): Do not create pool, use check for
14703 obstack presence instead of NULL pointer for new blocks.
14704 (df_byte_MD_free): DO not free alloc pool; clear block_info.
14705 (problem_BD): Add size of block info structure.
14706 * df-scan.c (df_scan_free_internal): Free block pool.
14707 (df_scan_set_bb_info): Remove.
14708 (df_scan_free_bb_info): Check for artificial_defs instead
14709 of bb_info being non-NULL.
14710 (df_scan_alloc): DO not create df_scan_block pool.
14711 (problem_SCAN): Set size of block info.
14712 (df_bb_refs_record): Do not allocate bb_info.
14713 * df.h (df_problem): Add block_info_elt_size.
14714 (struct dataflow): Change block_info to void *.
14715 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
14716 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
14717 in-line structures.
14718
14719 2010-06-12 Jan Hubicka <jh@suse.cz>
14720
14721 PR tree-optimize/44485
14722 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
14723 containing use of return value of noreturn function.
14724
14725 2010-06-12 Anatoly Sokolov <aesok@post.ru>
14726
14727 * targhooks.c (default_function_value): Don't use
14728 FUNCTION_OUTGOING_VALUE.
14729 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
14730 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
14731
14732 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
14733
14734 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
14735 Add crtfastmath.o to extra_parts.
14736 * config/mips/crtfastmath.c: New.
14737 * config/mips/linux.h (ENDFILE_SPEC): New.
14738
14739 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
14740
14741 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
14742 old_type in parameter.
14743 (gcc_type_for_value): Update call to gcc_type_for_interval.
14744 (compute_type_for_level_1): Renamed compute_type_for_level.
14745 Update call to gcc_type_for_interval.
14746
14747 2010-06-11 Joseph Myers <joseph@codesourcery.com>
14748
14749 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
14750 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
14751
14752 2010-06-11 Joseph Myers <joseph@codesourcery.com>
14753
14754 * opts-common.c: Include options.h.
14755 (integral_argument): Move from opts.c.
14756 (decode_cmdline_option): New. Based on read_cmdline_option.
14757 * opts.c (integral_argument): Move to opts-common.c.
14758 (read_cmdline_option): Move most contents to
14759 decode_cmdline_option. Use %qs in diagnostics.
14760 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
14761 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
14762 decode_cmdline_option): New.
14763
14764 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
14765
14766 PR target/44481
14767 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
14768 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
14769 (partiysi2_cmp): Ditto.
14770 (*partiyhi2_cmp): Ditto.
14771 (*parityqi2_cmp): Remove.
14772
14773 2010-06-11 Jan Hubicka <jh@suse.cz>
14774
14775 * bitmap.h (bmp_iter_next_bit): New.
14776 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
14777
14778 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
14779 Eric Botcazou <ebotcazou@adacore.com>
14780
14781 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
14782 computed cost.
14783
14784 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
14785
14786 * config/i386/i386.md (unspec): New define_c_enum.
14787 (unspecv): Ditto.
14788
14789 2010-06-10 Jakub Jelinek <jakub@redhat.com>
14790
14791 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
14792
14793 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
14794
14795 PR middle-end/44483
14796 * tree-if-conv.c (bb_predicate_s): New struct.
14797 (bb_predicate_p): New.
14798 (bb_has_predicate): New.
14799 (bb_predicate): New.
14800 (set_bb_predicate): New.
14801 (bb_predicate_gimplified_stmts): New.
14802 (set_bb_predicate_gimplified_stmts): New.
14803 (add_bb_predicate_gimplified_stmts): New.
14804 (init_bb_predicate): New.
14805 (free_bb_predicate): New.
14806 (is_predicated): Use bb_predicate.
14807 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
14808 (predicate_bbs): Same. Gimplify the condition of the basic blocks
14809 before processing their successors.
14810 (clean_predicate_lists): Removed.
14811 (find_phi_replacement_condition): Use bb_predicate.
14812 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
14813 computations.
14814 (insert_gimplified_predicates): New.
14815 (combine_blocks): Call insert_gimplified_predicates.
14816 (tree_if_conversion): Call free_bb_predicate instead of
14817 clean_predicate_lists.
14818
14819 2010-10-11 Paul Brook <paul@codesourcery.com>
14820
14821 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
14822 * config/arm/arm.c (all_architectures): Change v7e-m default to
14823 cortexm4.
14824 * config/arm/arm-cores.def: Add cortex-m4.
14825 * config/arm/arm-tune.md: Regenerate.
14826
14827 2010-06-11 Jan Hubicka <jh@suse.cz>
14828
14829 * ipa-pure-const.c (special_builtlin_state): New function.
14830 (check_call): Use it instead of special casign BUILT_IN_RETURN.
14831 (propagate_pure_const): Use it.
14832
14833 2010-06-11 Jan Hubicka <jh@suse.cz>
14834
14835 * df-problems.c (df_live_scratch): Convert to bitmap_head.
14836 (df_live_alloc): Initialize df_live_scratch when initializing
14837 problem_data.
14838 (df_live_transfer_function): Update uses of df_live_scratch.
14839 (df_live_free): Free problem_data; clear df_live_scratch before
14840 releasing the obstack.
14841 (df_md_free): Free problem data.
14842
14843 2010-06-11 Jan Hubicka <jh@suse.cz>
14844
14845 * doc/invoke.texi (Wsuggest-attribute): Document.
14846 (Wmissing-noreturn): Remove.
14847 * ipa-pure-const.c (warn_function_noreturn): New function.
14848 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
14849 warn_missing_noreturn.
14850 * common.opt (Wsuggest-attribute=noreturn): New.
14851 * tree-flow.h (warn_function_noreturn): Declare.
14852 * tree-cfg.c (execute_warn_function_noreturn): Use
14853 warn_function_noreturn.
14854 (gate_warn_function_noreturn): New.
14855 (pass_warn_function_noreturn): Update.
14856
14857 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
14858
14859 * c-typeck.c (handle_warn_cast_qual): Add loc
14860 parameter. Improve warning message.
14861 (build_c_cast): Pass location to handle_warn_cast_qual.
14862
14863 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
14864
14865 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
14866 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
14867 insn mnemonic.
14868 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
14869
14870 2010-06-10 Dodji Seketeli <dodji@redhat.com>
14871
14872 Fix bootstap on mips
14873 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
14874 be naming typedefs.
14875
14876 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
14877
14878 * system.h (helper_const_non_const_cast): New inline for
14879 gcc version <= 4.0.
14880 (CONST_CAST2): For gcc version <= 4.0 use
14881 new helper to do const/non-const casting.
14882
14883 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14884
14885 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
14886 * Makefile.in (OBJS-common): Include insn-enums.o.
14887 (insn-enums.o): New rule.
14888 (simple_generated_c): Add insn-enums.c.
14889 (build/genenums.o): New rule.
14890 (genprogmd): Add "enums".
14891 * genconstants.c (print_enum_type): Declare a C string array
14892 for each enum.
14893 * genenums.c: New file.
14894 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
14895 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
14896 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
14897
14898 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14899
14900 * doc/md.texi (define_enum_attr): Document.
14901 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
14902 * read-md.h (lookup_enum_type): Declare.
14903 * read-md.c (lookup_enum_type): New function.
14904 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
14905 * genattrtab.c (attr_desc): Add an enum_name field.
14906 (evaluate_eq_attr): Take the associated attribute as argument.
14907 Get the enum prefix from the enum_name field, if defined.
14908 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
14909 (simplify_test_exp): Pass attr to evaluate_eq_attr.
14910 (add_attr_value): New function, split out from...
14911 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
14912 (write_test_expr): Pass attr to evaluate_eq_attr.
14913 (write_attr_get): Use the enum_name as the enum tag, if defined.
14914 (write_attr_valueq): Use the enum_name as a prefix, if defined.
14915 (find_attr): Initialize enum_name.
14916 (main): Handle DEFINE_ENUM_ATTR.
14917 * gensupport.c (process_rtx): Likewise.
14918 * config/mips/mips.h (mips_tune_attr): Delete.
14919 * config/mips/mips.md (cpu): Use define_attr_enum.
14920
14921 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
14922
14923 * doc/md.texi (define_c_enum, define_enum): Document.
14924 * read-md.h (md_constant): Add a parent_enum field.
14925 (enum_value, enum_type): New structures.
14926 (upcase_string, traverse_enum_types): Declare.
14927 * read-md.c (enum_types): New variable.
14928 (upcase_string, add_constant): New functions.
14929 (handle_constants): Don't create the hash table here.
14930 Use add_constant.
14931 (traverse_md_constants): Don't check for a null md_constants.
14932 (decimal_string, handle_enum, traverse_enum_types): New functions.
14933 (read_md_files): Initialize md_constants and md_enums.
14934 * genconstants.c (print_md_constant): Ignore info argument.
14935 Only print constants that belong to no enum.
14936 (print_enum_type): New function.
14937 (main): Don't pass stdout to print_md_constant. Call print_enum_type
14938 for each defined enum type.
14939 * config/mips/mips.md (processor): New define_enum.
14940 (unspec): New define_c_enum.
14941 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
14942 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
14943 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
14944 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
14945 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
14946 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
14947 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
14948 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
14949 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
14950 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
14951 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
14952 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
14953 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
14954 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
14955 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
14956 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
14957 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
14958 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
14959 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
14960 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
14961 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
14962 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
14963 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14964 (UNSPEC_RDDSP): Move to mips-dsp.md.
14965 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
14966 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
14967 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
14968 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
14969 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
14970 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
14971 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
14972 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
14973 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
14974 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
14975 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
14976 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
14977 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
14978 Moved to mips-dspr2.md.
14979 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
14980 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
14981 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
14982 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
14983 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
14984 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
14985 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14986 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14987 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14988 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14989 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14990 UNSPEC_LOONGSON_PSADBH)
14991 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14992 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14993 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
14994 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14995 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14996 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14997 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
14998 (cpu): Update comment.
14999 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
15000 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
15001 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
15002 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
15003 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
15004 UNSPEC_LOONGSON_PCMPEQ)
15005 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
15006 UNSPEC_LOONGSON_PINSR_0)
15007 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
15008 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
15009 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
15010 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
15011 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
15012 UNSPEC_LOONGSON_PSADBH)
15013 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
15014 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
15015 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
15016 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
15017 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
15018 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
15019 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
15020 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
15021 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
15022 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
15023 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
15024 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
15025 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
15026 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
15027 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
15028 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
15029 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
15030 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
15031 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
15032 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
15033 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
15034 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
15035 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
15036 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
15037 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
15038 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
15039 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
15040 (UNSPEC_RDDSP): Moved from mips.md.
15041 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
15042 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
15043 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
15044 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
15045 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
15046 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
15047 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
15048 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
15049 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
15050 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
15051 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
15052 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
15053 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
15054 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
15055 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
15056 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
15057 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
15058 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
15059 (UNSPEC_SCC): Moved from mips.md.
15060 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
15061 "processor_type" to "processor".
15062 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
15063 * config/mips/mips.h (processor_type): Delete.
15064 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
15065 "processor_type" to "processor".
15066
15067 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15068
15069 * configure.ac (tm_include_list): Add insn-constants.h.
15070 * configure: Regenerate.
15071 * Makefile.in (GTM_H): Move insn-constants.h here from...
15072 (TM_H): ...here.
15073 * mkconfig.sh: Remove special handling for insn-constants.h.
15074
15075 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15076
15077 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
15078 (BUILD_MD): ...this new variable.
15079 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
15080 that include the old contents of simple_generated_h and
15081 simple_generated_c.
15082 (simple_generated_h, simple_generated_c): Include them. Add
15083 insn-constants.h.
15084 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
15085 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
15086 Remove these dependencies from the main rule and include
15087 insn-conditions.md in the command line only if it appears
15088 in the dependency list.
15089 (insn-constants.h, s-constants): Delete.
15090 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
15091 or gensupport.h.
15092 (build/genmddeps.o): Likewise.
15093 (genprogrtl): New variable that contains everything from genprogmd
15094 except mddeps and constants.
15095 (genprogmd): Redefine in terms of genprogrtl. Make these programs
15096 depend on $(BUILD_MD)
15097 (genprog): New variable. Make these programs depend on
15098 $(BUILD_ERRORS).
15099 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
15100 (main): Use read_md_files instead of init_rtx_reader_args.
15101 * genconstants.c: As for genmddeps.c.
15102 * read-md.h (read_skip_construct): Declare.
15103 * read-md.c (read_skip_construct): New function.
15104 (handle_file): Allow a null handle_directive, skipping the
15105 construct if so.
15106 (parse_include): Update the comment accordingly.
15107
15108 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15109
15110 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
15111 * genmddeps.c: Include read-md.h.
15112 (main): Call init_rtx_reader_args instead of init_md_reader_args.
15113 * genattr.c (main): Likewise.
15114 * genattrtab.c (main): Likewise.
15115 * genautomata.c (main): Likewise.
15116 * gencodes.c (main): Likewise.
15117 * genconditions.c (main): Likewise.
15118 * genconfig.c (main): Likewise.
15119 * genconstants.c (main): Likewise.
15120 * genemit.c (main): Likewise.
15121 * genextract.c (main): Likewise.
15122 * genflags.c (main): Likewise.
15123 * genopinit.c (main): Likewise.
15124 * genoutput.c (main): Likewise.
15125 * genpeep.c (main): Likewise.
15126 * genrecog.c (main): Likewise.
15127 * genpreds.c (main): Likewise.
15128 * gensupport.h (in_fname): Move to read-md.h.
15129 (init_md_reader_args_cb): Rename to...
15130 (init_rtx_reader_args_cb): ...this and return a bool.
15131 (init_md_reader_args): Rename to...
15132 (init_rtx_reader_args): ...this and return a bool.
15133 (include_callback): Move to read-md.h.
15134 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
15135 (file_name_list, first_dir_md_include): Move to read-md.c
15136 (first_bracket_include): Delete unused variable.
15137 (last_dir_md_include): Move to read-md.c.
15138 (process_include): Delete, moving code to read-md.c:handle_include.
15139 (process_rtx): Don't handle INCLUDE.
15140 (save_string): Delete.
15141 (rtx_handle_directive): New function.
15142 (init_md_reader_args_cb): Rename to...
15143 (init_rtx_reader_args_cb): ...this and return a boolean success value.
15144 Use read_md_args.
15145 (init_md_reader_args): Rename to...
15146 (init_rtx_reader_args): ...this and return a boolean success value.
15147 * rtl.def (INCLUDE): Delete.
15148 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
15149 argument.
15150 * read-rtl.c (read_conditions): Don't gobble ')' here.
15151 (read_mapping): Likewise.
15152 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
15153 Handle top-level non-rtx constructs here rather than in read_rtx_1.
15154 Store the whole queue in *X. Remove call to init_md_reader.
15155 (read_rtx_1): Rename to...
15156 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
15157 Don't handle top-level non-rtx constructs here. Don't handle (nil)
15158 here.
15159 (read_nested_rtx): New function. Handle (nil) here rather than
15160 in read_rtx_code.
15161 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
15162 gobble ')' here.
15163 * read-md.h (directive_handler_t): New type.
15164 (in_fname, include_callback): Moved from read-md.h.
15165 (read_constants, init_md_reader): Delete.
15166 (read_md_files): Declare.
15167 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
15168 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
15169 from gensupport.c.
15170 (read_constants): Rename to...
15171 (handle_constants): ...this. Don't gobble ')' here.
15172 (handle_include, handle_file, handle_toplevel_file)
15173 (parse_include): New functions, mostly taken from gensupport.c.
15174 (init_md_reader): Subsume into...
15175 (read_md_files): ...this new function.
15176
15177 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15178
15179 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
15180 (unread_char): Decrement read_md_lineno after putting back '\n'.
15181 * read-md.c (fatal_with_file_and_line): Push back any characters
15182 that we decide not to add to the context.
15183 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
15184 fatal_expected_char in cases where '/' ends a line (for example).
15185 (read_name): Don't increment read_md_lineno here.
15186 (read_escape): Likewise.
15187 (read_quoted_string): Likewise.
15188 (read_braced_string): Likewise.
15189
15190 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15191
15192 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
15193 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
15194 * genconstants.c: Include read-md.h.
15195 * read-rtl.c (md_constants): Move to read-md.c.
15196 (md_name): Move to read-md.h.
15197 (initialize_iterators): Use leading_string_hash instead of def_hash
15198 and leading_string_eq_p instead of def_name_eq_p.
15199 (read_name): Move to read-md.c.
15200 (def_hash, def_name_eq_p): Delete.
15201 (read_constants, traverse_md_constants): Move to read-md.c.
15202 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
15203 * read-md.h: Include hashtab.h.
15204 (md_name): Moved from read-rtl.c.
15205 (md_constant): Moved from read-md.h.
15206 (leading_string_hash, leading_string_eq_p, read_name)
15207 (read_constants, traverse_md_constants): Declare.
15208 * read-md.c (md_constants): Moved from read-rtl.c.
15209 (leading_string_hash, leading_string_eq_p): New functions.
15210 (read_name, read_constants, traverse_md_constants): Moved from
15211 read-rtl.c.
15212
15213 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15214
15215 * read-rtl.c (md_name): New structure.
15216 (read_name): Take an md_name instead of a buffer pointer.
15217 Use the "string" field instead of strcpy when expanding constants.
15218 (read_constants): Remove the tmp_char argument. Update the calls
15219 to read_name, using two local name buffers instead of the tmp_char
15220 argument. Merge the constant-creation code.
15221 (read_conditions): Remove the tmp_char argument. Update the calls
15222 to read_name, using a local name buffer instead of the tmp_char
15223 argument.
15224 (read_mapping): Replace tmp_char variable with a local name buffer.
15225 Update the calls to read_name.
15226 (read_rtx_1): Likewise. Update the calls to read_constants and
15227 read_conditions.
15228
15229 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15230
15231 * Makefile.in (build/read-md.o): Depend on errors.h.
15232 * read-md.h (error_with_line): Declare.
15233 * read-md.c: Include errors.h.
15234 (message_with_line_1): New function, extracted from...
15235 (message_with_line): ...here.
15236 (error_with_line): New function.
15237 * genattrtab.c: If a call to message_with_line is followed by
15238 "have_error = 1;", replace both statements with a call to
15239 error_with_line.
15240 * genoutput.c: Likewise.
15241 * genpreds.c: Likewise.
15242 * genrecog.c: If a call to message_with_line is followed by
15243 "error_count++;", replace both statements with a call to
15244 error_with_line.
15245 (errorcount): Delete.
15246 (main): Don't check it.
15247 * gensupport.c: If a call to message_with_line is followed by
15248 "errors = 1;", replace both statements with a call to error_with_line.
15249 (errors): Delete.
15250 (process_define_cond_exec): Check have_error instead of errors.
15251 (init_md_reader_args_cb): Likewise. Don't set errors.
15252
15253 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15254
15255 * read-md.h (read_md_file): Declare.
15256 (read_char, unread_char): New functions.
15257 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
15258 (read_quoted_string, read_string): Remove FILE * argument.
15259 * read-md.c (read_md_file): New variable.
15260 (read_md_filename, read_md_lineno): Update comments and remove
15261 unnecessary initialization.
15262 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
15263 (read_escape, read_quoted_string, read_braced_string, read_string):
15264 Remove FILE * argument. Update calls accordingly, using read_char
15265 and unread_char instead of getc and ungetc.
15266 * rtl.h (read_rtx): Remove FILE * argument.
15267 * read-rtl.c (iterator_group): Remove FILE * argument from
15268 "find_builtin".
15269 (iterator_traverse_data): Remove "infile" field.
15270 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
15271 (add_mapping, read_name, read_constants, read_conditions)
15272 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
15273 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
15274 Remove file arguments from all calls, using read_char and unread_char
15275 instead of getc and ungetc.
15276 * gensupport.c (process_include): Preserve read_md_file around
15277 the include. Set read_md_file to the handle of the included file.
15278 Update call to read_rtx.
15279 (init_md_reader_args_cb): Set read_md_file to the handle of the file
15280 and remove local FILE *. Update calls to read_rtx.
15281
15282 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15283
15284 * read-md.h (read_rtx_lineno): Rename to...
15285 (read_md_lineno): ...this.
15286 (read_rtx_filename): Rename to...
15287 (read_md_filename): ...this.
15288 (copy_rtx_ptr_loc): Rename to...
15289 (copy_md_ptr_loc): ...this.
15290 (print_rtx_ptr_loc): Rename to...
15291 (print_md_ptr_loc): ...this.
15292 * read-md.c: Likewise. Update references after renaming.
15293 (string_obstack): Replace RTL with MD in comment.
15294 (set_rtx_ptr_loc): Rename to...
15295 (set_md_ptr_loc): ...this.
15296 (get_rtx_ptr_loc): Rename to...
15297 (get_md_ptr_loc): ...this.
15298 * genconditions.c: Update references after renaming.
15299 * genemit.c: Likewise.
15300 * genoutput.c: Likewise.
15301 * genpreds.c: Likewise.
15302 * gensupport.c: Likewise.
15303 * read-rtl.c: Likewise.
15304
15305 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
15306
15307 * Makefile.in (READ_MD_H): New variable.
15308 (BUILD_RTL): Add build/read-md.o.
15309 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
15310 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
15311 (build/genattrtab.o, build/genconditions.o build/genemit.o)
15312 (build/genextract.o, build/genflags.o, build/genoutput.o)
15313 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
15314 (build/read-md.o): New rule.
15315 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
15316 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
15317 * coretypes.h: ...here.
15318 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
15319 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
15320 * genattr.c: Include read-md.h.
15321 * genattrtab.c: Likewise.
15322 * genconditions.c: Likewise.
15323 * genemit.c: Likewise.
15324 * genextract.c: Likewise.
15325 * genflags.c: Likewise.
15326 * genoutput.c: Likewise.
15327 * genpreds.c: Likewise.
15328 * genrecog.c: Likewise.
15329 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
15330 (join_c_conditions, print_c_condition, read_rtx_filename)
15331 (read_rtx_lineno): Move to read-md.h.
15332 * read-rtl.c: Include read-md.h.
15333 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
15334 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
15335 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
15336 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
15337 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
15338 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
15339 (read_braced_string, read_string): Move to read-md.c.
15340 (read_rtx): Move some initialization to init_md_reader and call
15341 init_md_reader here.
15342 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
15343 Move to read-md.h.
15344 * gensupport.c: Include read-md.h.
15345 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
15346 * read-md.h, read-md.c: New files.
15347
15348 2010-06-10 Anatoly Sokolov <aesok@post.ru>
15349
15350 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15351 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15352 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
15353 * config/moxie/moxie.c (moxie_function_value): Make static.
15354 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
15355 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15356
15357 2010-06-10 Martin Jambor <mjambor@suse.cz>
15358
15359 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
15360 * dbgcnt.def (tree_sra): New counter.
15361 * tree-sra.c: Include dbgcnt.h.
15362 (gate_intra_sra): Check tree_sra debug counter.
15363
15364 2010-06-10 Martin Jambor <mjambor@suse.cz>
15365
15366 PR tree-optimization/44258
15367 * tree-sra.c (build_access_subtree): Return false iff there is a
15368 partial overlap.
15369 (build_access_trees): Likewise.
15370 (analyze_all_variable_accesses): Disqualify candidates if
15371 build_access_trees returns true for them.
15372
15373 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
15374
15375 PR debug/41371
15376 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
15377 tail-recurse into canonical node. Fast-forward over
15378 non-canonical VALUEs.
15379
15380 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
15381
15382 PR boostrap/44470
15383 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
15384 (*addsi_1_zext) <TYPE_LEA>: Likewise.
15385 (add lea splitter): Likewise.
15386 (add_zext lea splitter): Likewise.
15387
15388 2010-06-10 Joseph Myers <joseph@codesourcery.com>
15389
15390 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
15391
15392 2010-06-10 Jan Hubicka <jh@suse.cz>
15393
15394 * df-problems.c (df_live_problem_data): Add live_bitmaps.
15395 (df_live_alloc): Initialize problem data and live_osbtacks.
15396 (df_live_finalize): Remove obstack, problem data; do not
15397 clear all bitmaps.
15398 (df_live_top_dump, df_live_bottom_dump): Do not dump old
15399 data when not allocated.
15400 (df_live_verify_solution_start): Do not allocate problem data.
15401 (df_live_verify_solution_end): Check if out is allocated.
15402 (struct df_md_problem_data): New structure.
15403 (df_md_alloc): Allocate problem data.
15404 (df_md_free): Free problem data; do not clear bitmaps.
15405
15406 2010-06-10 Jan Beulich <jbeulich@novell.com>
15407
15408 PR bootstrap/37304
15409 * configure.ac: Replace $() with ${} when intending to expand
15410 variables rather than invoking commands.
15411 * configure: Re-generate.
15412
15413 2010-06-10 Jan Hubicka <jh@suse.cz>
15414
15415 PR rtl-optimization/44460
15416 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
15417 TYPE_NEEDS_CONSTRUCTING sanity check.
15418
15419 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
15420
15421 * doc/include/fdl.texi: Move to GFDL version 1.3.
15422
15423 * doc/cpp.texi: Move to GFDL version 1.3.
15424 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
15425 * doc/gccint.texi: Move to GFDL version 1.3.
15426 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
15427 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
15428 * doc/invoke.texi: Move to GFDL version 1.3.
15429
15430 2010-06-09 Jan Hubicka <jh@suse.cz>
15431
15432 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
15433 Break out from ...
15434 (propagate) ... here; swap the order.
15435
15436 2010-06-09 Jan Hubicka <jh@suse.cz>
15437
15438 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
15439 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
15440 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
15441 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
15442
15443 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
15444
15445 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
15446 Do not the gather memory reference in the outer loop if the step
15447 is not a constant.
15448
15449 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
15450
15451 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
15452 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
15453 8 to 4. Minor change of the related comments.
15454
15455 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
15456
15457 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
15458 the scev analysis when the variable is not used outside the loop
15459 in a close phi node: call compute_overall_effect_of_inner_loop.
15460
15461 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
15462
15463 * graphite-sese-to-poly.c (single_pred_cond): Renamed
15464 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
15465 (build_sese_conditions_before): Renamed call to single_pred_cond.
15466 (build_sese_conditions_after): Same.
15467
15468 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
15469
15470 * graphite-poly.h: Fix comments and indentation.
15471 * graphite-sese-to-poly.c: Same.
15472 (build_sese_conditions_before): Compute stmt and gbb only when needed.
15473 * tree-chrec.c: Fix comments and indentation.
15474 (tree-ssa-loop-niter.c): Same.
15475
15476 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
15477
15478 PR rtl-optimization/42461
15479 * dce.c (deletable_insn_p): Return true for const or pure calls again.
15480 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
15481
15482 2010-06-09 Jan Hubicka <jh@suse.cz>
15483
15484 * bitmap.c (bitmap_and): Walk array forward.
15485 (bitmap_and_compl_into): Likewise.
15486 (bitmap_xor): Likewise.
15487 (bitmap_xor_into): Likewise.
15488 (bitmap_equal_p): Likewise.
15489 (bitmap_intersect_p): Likewise.
15490 (bitmap_intersect_compl_p): Likewise.
15491 (bitmap_ior_and_into): Likewise.
15492 (bitmap_elt_copy): Likewise.
15493 (bitmap_and_compl): Likewise.
15494 (bitmap_elt_ior): Likewise.
15495
15496 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
15497
15498 * opts-common.c (prune_options): Ensure replacement argv array
15499 is correctly terminated by a NULL entry.
15500
15501 2010-06-09 Jan Hubicka <jh@suse.cz>
15502
15503 * cgraph.h (varpool_first_static_initializer,
15504 varpool_next_static_initializer): Make checking only when
15505 checking enabled.
15506 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
15507 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
15508 gcc_assert to gcc_checking_assert.
15509 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
15510 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
15511 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
15512 op_iter_init_phiuse, op_iter_init_phidef,
15513 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
15514 gcc_checking_assert.
15515 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
15516 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
15517 partition_is_global, live_on_entry, live_on_exit,
15518 live_merge_and_clear): Likewise.
15519 * system.h (gcc_checking_assert): New macro.
15520 * gimple.h (set_bb_seq): Use gcc_checking_assert.
15521
15522 2010-06-09 Jason Merrill <jason@redhat.com>
15523
15524 * Makefile.in (TAGS): Collect tags info from c-family.
15525
15526 2010-06-09 Jan Hubicka <jh@suse.cz>
15527
15528 * gimple.h (gcc_gimple_checking_assert): New macro.
15529 (gimple_set_def_ops, gimple_set_use_ops,
15530 gimple_set_vuse, gimple_set_vdef,
15531 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
15532 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
15533 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
15534 gimple_asm_output_op, gimple_asm_output_op_ptr,
15535 gimple_asm_set_output_op, gimple_asm_clobber_op,
15536 gimple_asm_set_clobber_op, gimple_asm_label_op,
15537 gimple_asm_set_label_op, gimple_try_set_kind,
15538 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
15539 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
15540 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
15541 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
15542 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
15543 gimple_omp_for_set_initial, gimple_omp_for_final,
15544 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
15545 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
15546 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
15547 conditional with ENABLE_GIMPLE_CHECKING.
15548 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
15549
15550 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
15551
15552 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
15553 (get_computation_cost_at): Use it.
15554 (determine_use_iv_cost_condition): Likewise.
15555 (determine_iv_cost): Likewise.
15556
15557 2010-06-09 Richard Guenther <rguenther@suse.de>
15558
15559 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
15560 replace constants.
15561
15562 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
15563
15564 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
15565
15566 2010-06-09 Martin Jambor <mjambor@suse.cz>
15567
15568 PR tree-optimization/44423
15569 * tree-sra.c (dump_access): Dump also grp_assignment_read.
15570 (analyze_access_subtree): Pass negative allow_replacements to children
15571 if the current type is scalar.
15572
15573 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
15574
15575 PR testsuite/42843
15576 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
15577 * doc/plugins.texi (Plugin license check): Update information
15578 on type of plugin_is_GPL_compatible.
15579 * Makefile.in (PLUGINCC): Define as $(COMPILER).
15580 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
15581
15582 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
15583
15584 * config/arm/arm.c (thumb2_reorg): New function.
15585 (arm_reorg): Call it.
15586 * config/arm/thumb2.md (define_peephole2 for flag clobbering
15587 arithmetic operations): Delete.
15588
15589 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
15590
15591 PR target/44067
15592 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
15593 e500v2 target.
15594
15595 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
15596
15597 PR plugins/44459
15598 * gcc-plugin.h: Encapsulate all declarations in extern "C".
15599
15600 2010-06-08 Jan Hubicka <jh@suse.cz>
15601
15602 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
15603 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
15604
15605 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
15606
15607 PR tree-optimization/39874
15608 PR middle-end/28685
15609 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
15610 Declare.
15611 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
15612 same_bool_result_p): New.
15613 (and_var_with_comparison, and_var_with_comparison_1,
15614 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
15615 (or_var_with_comparison, or_var_with_comparison_1,
15616 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
15617 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
15618 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
15619 of combine_comparisons.
15620 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
15621
15622 2010-06-08 Anatoly Sokolov <aesok@post.ru>
15623
15624 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15625 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15626 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
15627 pdp11_function_value_regno_p): New functions.
15628 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15629 TARGET_FUNCTION_VALUE_REGNO_P): Define.
15630
15631 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
15632
15633 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
15634 Thumb-2 in the MINUS case.
15635
15636 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
15637
15638 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
15639
15640 * doc/gty.texi (GTY Options): Document typed GC allocation and
15641 variable_size GTY option.
15642
15643 * ggc-internal.h: New.
15644
15645 * ggc.h: Update copyright year.
15646 (digit_string): Move to stringpool.c.
15647 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
15648 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
15649 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
15650 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
15651 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
15652 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
15653 (ggc_force_collect, ggc_get_size, ggc_statistics)
15654 (ggc_print_common_statistics): Move to ggc-internal.h.
15655 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
15656 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
15657 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
15658 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
15659 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
15660 (ggc_alloc_zone_pass_stat): Remove.
15661 (ggc_internal_alloc_stat, ggc_internal_alloc)
15662 (ggc_internal_cleared_alloc_stat): New.
15663 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
15664 (ggc_internal_vec_alloc_stat)
15665 (ggc_internal_cleared_vec_alloc_stat)
15666 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
15667 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
15668 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
15669 (ggc_cleared_alloc_ptr_array_two_args): New.
15670 (htab_create_ggc, splay_tree_new_ggc): Redefine.
15671 (ggc_splay_alloc): Change the type of the first argument to
15672 enum gt_types_enum.
15673 (ggc_alloc_string): Make macro.
15674 (ggc_alloc_string_stat): New.
15675 (ggc_strdup): Redefine.
15676 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
15677 (ggc_alloc_rtvec_sized): New.
15678 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
15679 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
15680 (ggc_internal_cleared_alloc_zone_stat)
15681 (ggc_internal_zone_alloc_stat)
15682 (ggc_internal_zone_cleared_alloc_stat)
15683 (ggc_internal_zone_vec_alloc_stat)
15684 (ggc_alloc_zone_rtx_def_stat)
15685 (ggc_alloc_zone_tree_node_stat)
15686 (ggc_alloc_zone_cleared_tree_node_stat)
15687 (ggc_alloc_cleared_gimple_statement_d_stat): New.
15688
15689 * ggc-common.c: Include ggc-internal.h.
15690 (ggc_internal_cleared_alloc_stat): Rename from
15691 ggc_alloc_cleared_stat.
15692 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
15693 (ggc_calloc): Remove.
15694 (ggc_cleared_alloc_htab_ignore_args): New.
15695 (ggc_cleared_alloc_ptr_array_two_args): New.
15696 (ggc_splay_alloc): Add obj_type parameter.
15697 (init_ggc_heuristics): Formatting fixes.
15698
15699 * ggc-none.c: Update copyright year.
15700 (ggc_alloc_stat): Rename to ggc_alloc_stat.
15701 (ggc_alloc_cleared_stat): Rename to
15702 ggc_internal_cleared_alloc_stat.
15703 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15704
15705 * ggc-page.c: Update copyright year. Include ggc-internal.h.
15706 Remove references to ggc_alloc in comments.
15707 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
15708 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
15709 (new_ggc_zone, destroy_ggc_zone): Remove.
15710 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15711
15712 * ggc-zone.c: Include ggc-internal.h. Remove references to
15713 ggc_alloc in comments.
15714 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
15715 (ggc_internal_alloc_zone_pass_stat): New.
15716 (ggc_internal_cleared_alloc_zone_stat): New.
15717 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
15718 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
15719 (new_ggc_zone, destroy_ggc_zone): Remove.
15720
15721 * stringpool.c: Update copyright year. Include ggc-internal.h
15722 (digit_vector): Make static.
15723 (digit_string): Moved from ggc.h.
15724 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
15725 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
15726
15727 * Makefile.in (GGC_INTERNAL_H): New.
15728 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
15729 $(GGC_INTERNAL_H) to dependencies.
15730
15731 * gentype.c: Update copyright year.
15732 (walk_type): Accept variable_size GTY option.
15733 (USED_BY_TYPED_GC_P): New macro.
15734 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
15735 whitespace at the end of strings.
15736 (get_type_specifier, variable_size_p): New functions.
15737 (alloc_quantity, alloc_zone): New enums.
15738 (write_typed_alloc_def): New function.
15739 (write_typed_struct_alloc_def): Likewise.
15740 (write_typed_typed_typedef_alloc_def): Likewise.
15741 (write_typed_alloc_defns): Likewise.
15742 (output_typename, write_splay_tree_allocator_def): Likewise.
15743 (write_splay_tree_allocators): Likewise.
15744 (main): Call write_typed_alloc_defns and
15745 write_splay_tree_allocators.
15746
15747 * lto-streamer.h (lto_file_decl_data_ptr): New.
15748
15749 * passes.c (order): Define using cgraph_node_ptr.
15750
15751 * strinpool.c (struct string_pool_data): Declare nested_ptr using
15752 ht_identifier_ptr.
15753
15754 * gimple.h (union gimple_statement_d): Likewise.
15755
15756 * rtl.h (struct rtx_def): Likewise.
15757 (struct rtvec_def): Likewise.
15758
15759 * tree.h (union tree_node): Likewise.
15760
15761 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
15762
15763 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
15764
15765 * tree-scalar-evolution.c (scev_initialize): Likewise.
15766
15767 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
15768
15769 * dwarf2asm.c (dw2_force_const_mem): Likewise.
15770
15771 * omp-low.c (lower_omp_critical): Likewise.
15772
15773 * bitmap.h (struct bitmap_head_def): Update comment to not
15774 reference ggc_alloc.
15775
15776 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
15777
15778 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
15779
15780 * ipa-prop.c (duplicate_ggc_array): Rename to
15781 duplicate_ipa_jump_func_array. Use typed GC allocation.
15782 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
15783
15784 * gimple.c (gimple_alloc_stat): Use
15785 ggc_alloc_cleared_gimple_statement_d_stat.
15786
15787 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
15788
15789 * tree.c (make_node_stat): Use
15790 ggc_alloc_zone_cleared_tree_node_stat.
15791 (make_tree_vec_stat): Likewise.
15792 (build_vl_exp_stat): Likewise.
15793 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
15794 (make_tree_binfo_stat): Likewise.
15795 (tree_cons_stat): Likewise.
15796
15797 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
15798 (shallow_copy_rtx_stat): Likewise.
15799 (make_node_stat): Likewise.
15800
15801 * lto-symtab.c: Fix comment.
15802
15803 * tree-cfg.c (create_bb): Update comment to not reference
15804 ggc_alloc_cleared.
15805 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
15806
15807 * varpool.c (varpool_node): Use typed GC allocation.
15808 (varpool_extra_name_alias): Likewise.
15809
15810 * varasm.c (emutls_decl): Likewise.
15811 (get_unnamed_section): Likewise.
15812 (get_noswitch_section): Likewise.
15813 (get_section): Likewise.
15814 (get_block_for_section): Likewise.
15815 (build_constant_desc): Likewise.
15816 (create_constant_pool): Likewise.
15817 (force_const_mem): Likewise.
15818
15819 * tree.c (build_vl_exp_stat): Likewise.
15820 (build_real): Likewise.
15821 (build_string): Likewise.
15822 (decl_debug_expr_insert): Likewise.
15823 (decl_value_expr_insert): Likewise.
15824 (type_hash_add): Likewise.
15825 (build_omp_clause): Likewise.
15826
15827 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
15828
15829 * tree-ssa.c (init_tree_ssa): Likewise.
15830
15831 * tree-ssa-structalias.c (heapvar_insert): Likewise.
15832
15833 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
15834
15835 * tree-ssa-loop-niter.c (record_estimate): Likewise.
15836
15837 * tree-ssa-alias.c (get_ptr_info): Likewise.
15838
15839 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
15840
15841 * tree-phinodes.c (allocate_phi_node): Likewise.
15842
15843 * tree-iterator.c (tsi_link_before): Likewise.
15844 (tsi_link_after): Likewise.
15845
15846 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
15847
15848 * tree-dfa.c (create_var_ann): Likewise.
15849
15850 * tree-cfg.c (create_bb): Likewise.
15851
15852 * toplev.c (alloc_for_identifier_to_locale): Likewise.
15853 (general_init): Likewise.
15854
15855 * stringpool.c (stringpool_ggc_alloc): Likewise.
15856 (gt_pch_save_stringpool): Likewise.
15857
15858 * sese.c (if_region_set_false_region): Likewise.
15859
15860 * passes.c (do_per_function_toporder): Likewise.
15861
15862 * optabs.c (set_optab_libfunc): Likewise.
15863 (set_conv_libfunc): Likewise.
15864
15865 * lto-symtab.c (lto_symtab_register_decl): Likewise.
15866
15867 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
15868 (input_eh_region): Likewise.
15869 (input_eh_lp): Likewise.
15870 (make_new_block): Likewise.
15871 (unpack_ts_real_cst_value_fields): Likewise.
15872
15873 * lto-section-in.c (lto_new_in_decl_state): Likewise.
15874
15875 * lto-cgraph.c (input_node_opt_summary): Likewise.
15876
15877 * loop-init.c (loop_optimizer_init): Likewise.
15878
15879 * lambda.h (lambda_vector_new): Likewise.
15880
15881 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
15882
15883 * ira.c (update_equiv_regs): Likewise.
15884
15885 * ipa.c (cgraph_node_set_new): Likewise.
15886 (cgraph_node_set_add): Likewise.
15887 (varpool_node_set_new): Likewise.
15888 (varpool_node_set_add): Likewise.
15889
15890 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
15891 (duplicate_ipa_jump_func_array): Likewise.
15892 (ipa_read_node_info): Likewise.
15893
15894 * ipa-cp.c (ipcp_create_replace_map): Likewise.
15895
15896 * integrate.c (get_hard_reg_initial_val): Likewise.
15897
15898 * gimple.c (gimple_alloc_stat): Likewise.
15899 (gimple_build_omp_for): Likewise.
15900 (gimple_seq_alloc): Likewise.
15901 (gimple_copy): Likewise.
15902
15903 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
15904 (gsi_insert_after_without_update): Likewise.
15905
15906 * function.c (add_frame_space): Likewise.
15907 (insert_temp_slot_address): Likewise.
15908 (assign_stack_temp_for_type): Likewise.
15909 (allocate_struct_function): Likewise.
15910 (types_used_by_var_decl_insert): Likewise.
15911
15912 * except.c (init_eh_for_function): Likewise.
15913 (gen_eh_region): Likewise.
15914 (gen_eh_region_catch): Likewise.
15915 (gen_eh_landing_pad): Likewise.
15916 (add_call_site): Likewise.
15917
15918 * emit-rtl.c (get_mem_attrs): Likewise.
15919 (get_reg_attrs): Likewise.
15920 (start_sequence): Likewise.
15921 (init_emit): Likewise.
15922
15923 * dwarf2out.c (new_cfi): Likewise.
15924 (queue_reg_save): Likewise.
15925 (dwarf2out_frame_init): Likewise.
15926 (new_loc_descr): Likewise.
15927 (find_AT_string): Likewise.
15928 (new_die): Likewise.
15929 (add_var_loc_to_decl): Likewise.
15930 (clone_die): Likewise.
15931 (clone_as_declaration): Likewise.
15932 (break_out_comdat_types): Likewise.
15933 (new_loc_list): Likewise.
15934 (loc_descriptor): Likewise.
15935 (add_loc_descr_to_each): Likewise.
15936 (add_const_value_attribute): Likewise.
15937 (tree_add_const_value_attribute): Likewise.
15938 (add_comp_dir_attribute): Likewise.
15939 (add_name_and_src_coords_attributes): Likewise.
15940 (lookup_filename): Likewise.
15941 (store_vcall_insn): Likewise.
15942 (dwarf2out_init): Likewise.
15943
15944 * dbxout.c (dbxout_init): Likewise.
15945
15946 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15947
15948 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15949
15950 * config/score/score7.c (score7_output_external): Likewise.
15951
15952 * config/score/score3.c (score3_output_external): Likewise.
15953
15954 * config/s390/s390.c (s390_init_machine_status): Likewise.
15955
15956 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
15957 (rs6000_init_machine_status): Likewise.
15958 (output_toc): Likewise.
15959
15960 * config/pa/pa.c (pa_init_machine_status): Likewise.
15961 (get_deferred_plabel): Likewise.
15962
15963 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
15964
15965 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
15966
15967 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
15968
15969 * config/mep/mep.c (mep_init_machine_status): Likewise.
15970 (mep_note_pragma_flag): Likewise.
15971
15972 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
15973
15974 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
15975
15976 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
15977
15978 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
15979 (i386_pe_maybe_record_exported_symbol): Likewise.
15980
15981 * config/i386/i386.c (get_dllimport_decl): Likewise.
15982 (ix86_init_machine_status): Likewise.
15983 (assign_386_stack_local): Likewise.
15984
15985 * config/frv/frv.c (frv_init_machine_status): Likewise.
15986
15987 * config/darwin.c (machopic_indirection_name): Likewise.
15988
15989 * config/cris/cris.c (cris_init_machine_status): Likewise.
15990
15991 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
15992
15993 * config/avr/avr.c (avr_init_machine_status): Likewise.
15994
15995 * config/arm/arm.c (arm_init_machine_status): Likewise.
15996
15997 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
15998 (alpha_need_linkage): Likewise.
15999 (alpha_use_linkage): Likewise.
16000
16001 * cgraph.c (cgraph_allocate_node): Likewise.
16002 (cgraph_create_edge_1): Likewise.
16003 (cgraph_create_indirect_edge): Likewise.
16004 (cgraph_add_asm_node): Likewise.
16005
16006 * cfgrtl.c (init_rtl_bb_info): Likewise.
16007
16008 * cfgloop.c (alloc_loop): Likewise.
16009 (rescan_loop_exit): Likewise.
16010
16011 * cfg.c (init_flow): Likewise.
16012 (alloc_block): Likewise.
16013 (unchecked_make_edge): Likewise.
16014
16015 * c-parser.c (c_parse_init): Likewise.
16016 (c_parse_file): Likewise.
16017
16018 * c-decl.c (bind): Likewise.
16019 (record_inline_static): Likewise.
16020 (push_scope): Likewise.
16021 (make_label): Likewise.
16022 (lookup_label_for_goto): Likewise.
16023 (finish_struct): Likewise.
16024 (finish_enum): Likewise.
16025 (c_push_function_context): Likewise.
16026
16027 * bitmap.c (bitmap_element_allocate): Likewise.
16028 (bitmap_gc_alloc_stat): Likewise.
16029
16030 * alias.c (record_alias_subset): Likewise.
16031 (init_alias_analysis): Likewise.
16032
16033 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
16034
16035 * fold-const.c (fold_comparison): Remove redundant parenthesis.
16036 * tree-inline.c (expand_call_inline): Pass translated return value of
16037 cgraph_inline_failed_string to diagnostic function.
16038
16039 2010-06-08 Andrew Pinski <pinskia@gmail.com>
16040 Shujing Zhao <pearly.zhao@oracle.com>
16041
16042 PR c/37724
16043 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
16044 implicit bad conversions is initialization.
16045 (error_init): Use gmsgid instead of msgid for argument name and change
16046 the call for error.
16047 (pedwarn_init): Use gmsgid instead of msgid for argument name and
16048 change the call for pedwarn.
16049 (warning_init): Use gmsgid instead of msgid for argument name and
16050 change the call for warning.
16051
16052 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
16053
16054 * config/mips/mips-protos.h (mips_print_operand): Delete.
16055 (mips_print_operand_address): Delete.
16056 * config/mips/mips.h (mips_print_operand_punct): Delete.
16057 (PRINT_OPERAND): Delete.
16058 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16059 (PRINT_OPERAND_ADDRESS): Delete.
16060 * config/mips/mips.c (mips_print_operand_punct): Make static.
16061 (mips_print_operand_address): Make static.
16062 (mips_print_operand): Make static. Call
16063 mips_print_operand_punct_valid_p.
16064 (mips_print_operand_punct_valid_p): New function.
16065 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16066 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16067
16068 2010-06-07 Jan Hubicka <jh@suse.cz>
16069
16070 PR middle-end/44454
16071 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
16072 are allocated.
16073
16074 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
16075
16076 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
16077 name of RECORD.
16078
16079 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16080
16081 * doc/sourcebuild.texi (Effective-Target Keywords, Other
16082 attributes): Document gas.
16083
16084 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
16085
16086 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
16087 <TYPE_LEA>: Split instruction.
16088 <default>: Remove alternative 2 handling.
16089 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
16090 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
16091 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
16092
16093 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
16094 (ashift_zext lea splitter): Use DImode for multiplication.
16095
16096 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
16097 to generate addition.
16098
16099 2010-06-07 Joseph Myers <joseph@codesourcery.com>
16100
16101 * common.opt (fira-verbose): Use Var.
16102 (fpcc-struct-return): Use Init instead of VarExists.
16103 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
16104 toplev.c.
16105 * flags.h (flag_signed_char, flag_short_enums,
16106 flag_pcc_struct_return, flag_ira_verbose,
16107 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
16108 * toplev.c (flag_detailed_statistics, flag_signed_char,
16109 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
16110 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
16111 * toplev.h (flag_crossjumping, flag_if_conversion,
16112 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
16113 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
16114 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
16115 flag_cprop_registers, time_report, flag_ira_loop_pressure,
16116 flag_ira_coalesce, flag_ira_move_spills,
16117 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
16118
16119 2010-06-07 Jan Hubicka <jh@suse.cz>
16120
16121 * df-core.c (df_analyze_problem): Do verification after allocation.
16122
16123 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
16124 (df_lr_alloc): Initialize problem data; move bitmaps to
16125 lr_bitmaps obstack.
16126 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
16127 (df_lr_verify_solution_start): Do not initialize problem data;
16128 allocate bitmaps in lr_bitmaps.
16129 (df_lr_verify_solution_end): Do not free problem data.
16130
16131 2010-06-07 Jan Hubicka <jh@suse.cz>
16132
16133 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
16134 if caller is noreturn.
16135 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
16136 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
16137 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
16138 * ipa-pure-const.c (check_decl): Add IPA parameter.
16139 (state_from_flags): New function.
16140 (better_state, worse_state): New functions.
16141 (check_call): When in IPA mode, do not care about callees.
16142 (check_load, check_store): Update.
16143 (check_ipa_load, check_ipa_store): New.
16144 (check_stmt): When in IPA mode, use IPA checkers.
16145 (analyze_function): Use state_from_flags.
16146 (propagate): Check indirect edges and references.
16147
16148 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
16149
16150 PR rtl-optimization/44404
16151 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
16152 of count_occurrences to see if it's safe to modify mem_insn.
16153
16154 2010-06-07 Richard Guenther <rguenther@suse.de>
16155
16156 * gimplify.c (gimplify_cleanup_point_expr): For empty body
16157 and EH-only cleanup drop the cleanup instead of inserting it
16158 unconditionally.
16159
16160 2010-06-07 Ira Rosen <irar@il.ibm.com>
16161
16162 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
16163 documentation.
16164 * targhooks.c (default_builtin_vectorization_cost): New function.
16165 * targhooks.h (default_builtin_vectorization_cost): Declare.
16166 * target.h (enum vect_cost_for_stmt): Define.
16167 (builtin_vectorization_cost): Change argument and comment.
16168 * tree-vectorizer.h: Remove cost model macros.
16169 * tree-vect-loop.c: Include target.h.
16170 (vect_get_cost): New function.
16171 (vect_estimate_min_profitable_iters): Replace cost model macros with
16172 calls to vect_get_cost.
16173 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
16174 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
16175 default implementation.
16176 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
16177 calls to target hook builtin_vectorization_cost.
16178 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
16179 Likewise.
16180 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
16181 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
16182 implementation to return costs.
16183 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
16184 * config/spu/spu.h: Remove vectorizer cost model macros.
16185 * config/i386/i386.h: Likewise.
16186 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
16187 a call to target hook builtin_vectorization_cost.
16188
16189 2010-06-06 Sriraman Tallam <tmsriram@google.com>
16190
16191 PR target/44319
16192 * config/i386/i386.c (override_options): Turn zee pass on for level 2
16193 and above and defer till target is known.
16194 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
16195 turn off otherwise.
16196
16197 2010-05-25 Jan Hubicka <jh@suse.cz>
16198
16199 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
16200 (df_compact_blocks): Likewise.
16201 * df.h (struct df): Turn hardware_regs_used,
16202 regular_block_artificial_uses, eh_block_artificial_uses,
16203 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
16204 bitmap_head.
16205 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
16206 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
16207 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
16208 df_scan_blocks, df_insn_delete, df_insn_rescan,
16209 df_insn_rescan_debug_internal, df_insn_rescan_all,
16210 df_process_deferred_rescans, df_process_deferred_rescans,
16211 df_notes_rescan, df_get_call_refs, df_get_call_refs,
16212 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
16213 df_record_entry_block_defs, df_record_exit_block_uses,
16214 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
16215 df_scan_verify): Update.
16216
16217 2010-05-25 Dodji Seketeli <dodji@redhat.com>
16218
16219 PR c++/44188
16220 * c-common.c (is_typedef_decl): Move this definition ...
16221 * tree.c (is_typedef_decl): ... here.
16222 (typdef_variant_p): Move definition here from cp/tree.c.
16223 * c-common.h (is_typedef_decl): Move this declaration ...
16224 * tree.h (is_typedef_decl): ... here.
16225 (typedef_variant_p): Move declaration here from cp/cp-tree.h
16226 * dwarf2out.c (is_naming_typedef_decl): New function.
16227 (gen_tagged_type_die): Split out of ...
16228 (gen_type_die_with_usage): ... this function. When an anonymous
16229 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
16230 is emitted for the typedef.
16231 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
16232 anonymous tagged types.
16233
16234 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
16235
16236 PR c/20000
16237 * c-decl.c (grokdeclarator): Delete warning.
16238
16239 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
16240
16241 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
16242 newly built CALL_EXPR.
16243 * tree-profile.c (tree_profiling): Don't profile functions produced
16244 for built-in stuff.
16245
16246 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
16247
16248 PR bootstrap/44427
16249 PR bootstrap/44428
16250 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
16251 endianness-independent.
16252
16253 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
16254
16255 * c-common.c: Move to c-family/.
16256 * c-common.def: Likewise.
16257 * c-common.h: Likewise.
16258 * c-cppbuiltin.c: Likewise.
16259 * c-dump.c: Likewise.
16260 * c-format.c: Likewise.
16261 * c-format.h : Likewise.
16262 * c-gimplify.c: Likewise.
16263 * c-lex.c: Likewise.
16264 * c-omp.c: Likewise.
16265 * c.opt: Likewise.
16266 * c-opts.c: Likewise.
16267 * c-pch.c: Likewise.
16268 * c-ppoutput.c: Likewise.
16269 * c-pragma.c: Likewise.
16270 * c-pragma.h: Likewise.
16271 * c-pretty-print.c: Likewise.
16272 * c-pretty-print.h: Likewise.
16273 * c-semantics.c: Likewise.
16274 * stub-objc.c: Likewise.
16275
16276 * gengtype.c (get_file_langdir): Special-case files in c-family/.
16277 (get_output_file_with_visibility): Fix name for c-common.h.
16278 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
16279
16280 * c-tree.h: Update include path for moved files.
16281 * c-lang.c: Likewise.
16282 * c-lang.h: Likewise.
16283 * c-parser.c: Likewise.
16284 * c-convert.c: Likewise.
16285 * c-decl.c: Likewise.
16286 * c-objc-common.c: Likewise.
16287 * configure.ac: Make sure c-family/ exists in the build directory.
16288 * configure: Regenerate.
16289 * Makefile.in: Update paths for moved files. Regroup files per
16290 location and update dependencies. Move generated_files down after
16291 ALL_GTFILES_H.
16292
16293 * config/spu/spu-c.c: Update paths for moved files.
16294 * config/mep/mep-pragma.c: Likewise.
16295 * config/darwin-c.c: Likewise.
16296 * config/i386/msformat-c.c: Likewise.
16297 * config/i386/i386-c.c: Likewise.
16298 * config/avr/avr-c.c: Likewise.
16299 * config/sol2-c.c: Likewise.
16300 * config/ia64/ia64-c.c: Likewise.
16301 * config/rs6000/rs6000-c.c: Likewise.
16302 * config/arm/arm.c: Likewise.
16303 * config/arm/arm-c.c: Likewise.
16304 * config/h8300/h8300.c: Likewise.
16305 * config/v850/v850-c.c: Likewise.
16306
16307 * config/t-darwin: Fix dependencies for moved files.
16308 * config/t-sol2: Fix dependencies for moved files.
16309 * config/mep/t-mep: Fix dependencies for moved files.
16310 * config/ia64/t-ia64: Fix dependencies for moved files.
16311 * config/rs6000/t-rs6000: Fix dependencies for moved files.
16312 * config/v850/t-v850: Fix dependencies for moved files.
16313 * config/v850/t-v850e: Fix dependencies for moved files.
16314
16315 * config/m32c/m32c-pragma.c
16316
16317 * po/exgettext: Look in c-family/ also.
16318
16319 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
16320
16321 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
16322 (mark_control_dependent_edges_necessary): Call it instead of marking
16323 the last statement manually.
16324 (propagate_necessity): Likewise.
16325
16326 2010-06-05 Jan Hubicka <jh@suse.cz>
16327
16328 * basic-block.h (compute_dominance_frontiers): Updated.
16329 (compute_idf): Likewise.
16330
16331 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
16332 for dominance frontiers.
16333 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
16334 (insert_updated_phi_nodes_for): Likewise.
16335 (update_ssa): Likewise.
16336 * cfganal.c (compute_dominance_frontiers_1): Likewise.
16337 (compute_dominance_frontiers): Likewise.
16338 (compute_idf): Likewise.
16339 * df-problems.c (df_md_local_compute): Likewise.
16340
16341 2010-06-05 Anatoly Sokolov <aesok@post.ru>
16342
16343 * target.h (struct gcc_target): Add memory_move_cost field.
16344 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
16345 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
16346 * targhooks.c (default_memory_move_cost): New function.
16347 * targhooks.h (default_memory_move_cost): Declare function.
16348 * reload.h (memory_move_cost): Declare.
16349 (memory_move_secondary_cost): Change type of 'in' argument to bool.
16350 * reginfo.c (memory_move_cost): New function.
16351 (memory_move_secondary_cost): Change type of 'in' argument to bool.
16352 * ira.h (ira_memory_move_cost): Update comment.
16353 * ira.c (ira_memory_move_cost): Update comment.
16354 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
16355 with memory_move_cost.
16356 * postreload.c (reload_cse_simplify_set): (Ditto.).
16357 * reload1.c (choose_reload_regs): (Ditto.).
16358 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
16359 (MEMORY_MOVE_COST): Revise documentation.
16360
16361 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16362 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16363 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
16364 type of 'in' argument to bool.
16365 (TARGET_MEMORY_MOVE_COST): Define.
16366
16367 2010-06-05 Jan Hubicka <jh@suse.cz>
16368
16369 * ipa-pure-const.c (propagate): Fix typo in handling of functions
16370 that cannot return. Be more careful when merging the results with
16371 previously known ones.
16372
16373 2010-06-05 Matthias Klose <doko@ubuntu.com>
16374
16375 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
16376 function to add the -iplugindir option.
16377 (find_plugindir_spec_function): Add new declaration and function.
16378 (static_spec_func): Use it for "find-plugindir".
16379
16380 2010-06-05 Jakub Jelinek <jakub@redhat.com>
16381
16382 PR c++/44361
16383 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
16384 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
16385 statement expression.
16386
16387 2010-06-05 Jan Hubicka <jh@suse.cz>
16388
16389 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
16390 (df_rd_problem_data): Convert sparse_invalidated_by_call,
16391 dense_invalidated_by_call to bitmap head.
16392 (df_rd_alloc, df_rd_bb_local_compute_process_def,
16393 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
16394 df_rd_start_dump, df_lr_verify_transfer_functions,
16395 df_live_verify_transfer_functions, df_chain_create_bb,
16396 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
16397 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
16398 df_simulate_one_insn_forwards, df_md_alloc,
16399 df_md_bb_local_compute_process_def,
16400 df_md_bb_local_compute_process_def, df_md_local_compute,
16401 df_md_transfer_function df_md_free): Update.
16402
16403 2010-06-05 Joseph Myers <joseph@codesourcery.com>
16404
16405 PR c/44322
16406 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
16407 target type for ADDR_EXPR; require no changes to qualifiers except
16408 for function types.
16409 * c-tree.h (c_build_type_variant): Remove.
16410
16411 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
16412
16413 * genautomata.c (get_excl_set): Do work per element, not per char.
16414 (check_presence_pattern_sets): Similar.
16415 (check_absence_pattern_sets): Similar.
16416
16417 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
16418
16419 * genautomata.c (curr_state_pass_num): Delete.
16420 (min_issue_delay_pass_states): Delete.
16421 (min_issue_delay): Delete.
16422 (initiate_min_issue_delay_pass_states): Delete.
16423 (output_min_issue_delay_table): Compute min_issue_delay_vect
16424 using a breadth-first search variant.
16425 (output_tables): Don't call initiate_min_issue_delay_pass_states.
16426
16427 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
16428
16429 PR boostrap/44421
16430 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
16431 (df_byte_lr_bb_local_compute): Likewise.
16432
16433 2010-06-03 Jason Merrill <jason@redhat.com>
16434
16435 Implement noexcept operator (5.3.7)
16436 * c-common.c (c_common_reswords): Add noexcept.
16437 * c-common.h (enum rid): Add RID_NOEXCEPT.
16438
16439 2010-06-04 Joseph Myers <joseph@codesourcery.com>
16440
16441 * config/darwin-driver.c (darwin_default_min_version): Use
16442 GCC-specific formats in diagnostics.
16443 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
16444 diagnostics.
16445 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
16446 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
16447 eval_spec_function, handle_braces, process_brace_body, main,
16448 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
16449 getenv_spec_function, compare_version_strings,
16450 version_compare_spec_function): Use GCC-specific formats in
16451 diagnostics.
16452
16453 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
16454
16455 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
16456 that operand 0 and operand 1 are equal.
16457 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
16458 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
16459 and operand 1 are equal.
16460 <default>: Ditto. Remove ??? comment.
16461 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
16462 and operand 1 are equal.
16463 <default>: Ditto. Remove ??? comment.
16464 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
16465 are equal.
16466 (*add<mode>_4) <default>: Ditto.
16467 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
16468
16469 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
16470
16471 * config/i386/i386-protos.h (ix86_print_operand): Declare.
16472 * config/i386/i386.c (ix86_print_operand): Make non-static.
16473 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
16474 * output.h (output_operand): Declare.
16475 * final.c (output_operand): Make non-static.
16476
16477 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
16478
16479 PR rtl-optimization/44013
16480 * sched-deps.c (add_dependence_list_and_free): Don't free lists
16481 when processing debug insns.
16482
16483 PR debug/41371
16484 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
16485 recursing. Check that recursion is bounded. Rename inner var
16486 to avoid hiding incoming argument.
16487
16488 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
16489
16490 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
16491 operands[2] == 255.
16492 (*addqi_3): Ditto.
16493 (*addqi_4): Ditto.
16494 (*addqi_5): Ditto.
16495 (*addqi_ext_1_rex64): Ditto.
16496 (*addqi_ext_1): Ditto.
16497
16498 (*addqi_4): Check for incdec_operand in QImode.
16499
16500 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
16501 using SWI mode iterator.
16502 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
16503 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
16504 mode iterator.
16505 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
16506 using SWI mode iterator.
16507
16508 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
16509
16510 PR c/25880
16511 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
16512 * c-format.c (gcc_diag_flag_specs): Add hash.
16513 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
16514 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
16515 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
16516 pp_c_cv_qualifiers. Handle qualifiers spelling here.
16517 (pp_c_type_qualifier_list): Call the function above.
16518 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
16519 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
16520 (WARN_FOR_QUALIFIERS): New macro.
16521 (convert_for_assignment): Use it.
16522
16523 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
16524
16525 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
16526
16527 2010-06-04 Jan Hubicka <jh@suse.cz>
16528
16529 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
16530 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
16531 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
16532 DF_BYTE_LR_OUT): Update for embedded bitmaps.
16533 * fwprop.c (single_def_use_enter_block): Likewise.
16534 * ddg.c (create_ddg_dep_from_intra_loop_link,
16535 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
16536 * loop-iv.c (latch_dominating_def): Likewise.
16537 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
16538 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
16539 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
16540 df_rd_transfer_function, df_rd_top_dump,
16541 df_rd_bottom_dump): Update.
16542 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
16543 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
16544 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
16545 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
16546 df_lr_verify_solution_start, df_lr_verify_solution_end,
16547 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
16548 df_live_free_bb_info, df_live_alloc, df_live_reset,
16549 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
16550 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
16551 df_live_verify_solution_start, df_live_verify_solution_end,
16552 df_live_verify_transfer_functions, df_chain_create_bb,
16553 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
16554 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16555 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16556 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
16557 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
16558 df_byte_lr_transfer_function, df_byte_lr_top_dump,
16559 df_byte_lr_bottom_dump, df_create_unused_note,
16560 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
16561 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
16562 df_md_transfer_function, df_md_init, df_md_confluence_0,
16563 df_md_confluence_n,
16564 df_md_top_dump, df_md_bottom_dump): Update.
16565 (struct df_lr_problem_data): Embedd bitmap headers.
16566
16567 2010-06-04 Jan Hubicka <jh@suse.cz>
16568
16569 * dce.c (dce_process_block): Do not re-scan already marked
16570 instructions.
16571
16572 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
16573
16574 PR rtl-optimization/39871
16575 PR rtl-optimization/40615
16576 PR rtl-optimization/42500
16577 PR rtl-optimization/42502
16578 * ira.c (init_reg_equiv_memory_loc: New function.
16579 (ira): Call it twice.
16580 * reload.h (calculate_elim_costs_all_insns): Declare.
16581 * ira-costs.c: Include "reload.h".
16582 (regno_equiv_gains): New static variable.
16583 (init_costs): Allocate it.
16584 (finish_costs): Free it.
16585 (ira_costs): Call calculate_elim_costs_all_insns.
16586 (find_costs_and_classes): Take estimated elimination costs
16587 into account.
16588 (ira_adjust_equiv_reg_cost): New function.
16589 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
16590 * reload1.c (init_eliminable_invariants, free_reg_equiv,
16591 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
16592 (elim_bb): New static variable.
16593 (reload): Move code out of here into init_eliminable_invariants and
16594 free_reg_equiv. Call them.
16595 (calculate_elim_costs_all_insns): New function.
16596 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
16597 all callers changed. If FOR_COSTS is true, don't call alter_reg,
16598 but call note_reg_elim_costly if we turned a valid memory address
16599 into an invalid one.
16600 * Makefile.in (ira-costs.o): Depend on reload.h.
16601
16602 2010-06-04 Julian Brown <julian@codesourcery.com>
16603
16604 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
16605 for pool ranges.
16606
16607 2010-06-04 Richard Guenther <rguenther@suse.de>
16608
16609 PR lto/41584
16610 * cgraph.h (struct varpool_node): Add lto_file_data field.
16611 * lto-cgraph.c (input_varpool_node): Initialize it.
16612
16613 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
16614
16615 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
16616 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
16617 predicate in "type" attribute calculation.
16618 (*addsi_1_zext): Ditto.
16619 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
16620 (*addsi_2_zext): Ditto.
16621 (*add<mode>_3): Ditto.
16622 (*addsi_3_zext): Ditto.
16623 (*add<mode>_5): Ditto.
16624
16625 2010-06-03 Jan Hubicka <jh@suse.cz>
16626
16627 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
16628 of bitmap_bit_p.
16629 * cfganal.c (compute_dominance_frontiers_1): Likewise.
16630
16631 2010-06-03 Jan Hubicka <jh@suse.cz>
16632
16633 * df-problems.c (df_create_unused_note, df_note_bb_compute):
16634 micro-optimize the checks when to add new note.
16635
16636 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
16637
16638 * final.c (output_asm_insn): Call
16639 targetm.asm_out.print_operand_punct_valid_p. Update comments.
16640 (output_operand): Call targetm.asm_out.print_operand. Update comments.
16641 (output_address): Call targetm.asm_out.print_operand_address.
16642 Update comments.
16643 * target.h (struct gcc_target): Add print_operand,
16644 print_operand_address, and print_operand_punct_valid_p fields.
16645 * targhooks.h (default_print_operand): Declare.
16646 (default_print_operand_address): Declare.
16647 (default_print_operand_punct_valid_p): Declare.
16648 * targhooks.c (default_print_operand): Define.
16649 (default_print_operand_address): Define.
16650 (default_print_operand_punct_valid_p): Define.
16651 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
16652 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
16653 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
16654 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
16655 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
16656 * vmsdbgout.c (addr_const_to_string): Update comment.
16657 * config/i386/i386.c (print_operand): Rename to...
16658 (ix86_print_operand): ...this. Make static.
16659 (print_operand_address): Rename to...
16660 (ix86_print_operand_address): ...this. Make static. Call
16661 ix86_print_operand instead of PRINT_OPERAND.
16662 (ix86_print_operand_punct_valid_p): New function.
16663 (TARGET_PRINT_OPERAND): Define.
16664 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16665 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16666 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
16667 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16668 (PRINT_OPERAND): Delete.
16669 (PRINT_OPERAND_ADDRESS): Delete.
16670 * config/i386/i386-protos.h (print_operand): Delete prototype.
16671 (print_operand_address): Delete prototype.
16672
16673 2010-06-03 Richard Guenther <rguenther@suse.de>
16674
16675 PR tree-optimization/44403
16676 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16677 Preserve pointer qualifiers.
16678 (vect_create_data_ref_ptr): Likewise.
16679
16680 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
16681
16682 PR c++/44294
16683 * defaults.h (MAX_FIXED_MODE_SIZE): New.
16684
16685 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
16686
16687 2010-06-03 Jakub Jelinek <jakub@redhat.com>
16688
16689 PR debug/44375
16690 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
16691 return false if merging the bbs would lead to goto_locus
16692 location being lost from the IL.
16693
16694 2010-06-03 Jan Hubicka <jh@suse.cz>
16695 Jakub Jelinek <jakub@redhat.com>
16696
16697 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
16698 set->regs[i] is NULL or has just one entry.
16699
16700 2010-06-03 Jan Hubicka <jh@suse.cz>
16701
16702 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
16703 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
16704
16705 2010-06-03 Paul Brook <paul@codesourcery.com>
16706
16707 * config/arm/arm.c (FL_TUNE): Define.
16708 (arm_default_cpu, arm_cpu_select): Remove.
16709 (all_cores): Populate core field.
16710 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
16711 (arm_find_cpu): New function.
16712 (arm_handle_option): Lookup cpu/architecture names.
16713 (arm_override_options): Cleanup mcpu/march/mtune handling.
16714 (arm_file_start): Ditto.
16715
16716 2010-06-03 Alan Modra <amodra@gmail.com>
16717
16718 PR target/44169
16719 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
16720 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
16721 rtx to gen_load_toc_v4_PIC_1b. Tidy.
16722 (rs6000_emit_load_toc_table): Likewise.
16723
16724 2010-06-02 Jan Hubicka <jh@suse.cz>
16725
16726 * passes.c (init_optimization_passes): Put ipa reference
16727 after ipa pure-const.
16728
16729 2010-06-02 Jan Hubicka <jh@suse.cz>
16730
16731 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
16732 calls_read_all and calls_write_all.
16733 (get_reference_optimization_summary): Fix formatting.
16734 (is_proper_for_analysis): Check that decl is not readonly.
16735 (propagate_bits): Check CONST/PURE/noreturn flags.
16736 (ipa_init): Move all_module_statics to optimization_summary_obstack.
16737 (analyze_function): Ignore indirect edges.
16738 (copy_global_bitmap): For all module statics, do nothing.
16739 (generate_summary): Do not print calls_read_all/calls_write_all.
16740 (read_write_all_from_decl): Take node as argument; check
16741 cgraph_node_cannot_return.
16742 (propagate): Reorganize read_all/write_all computation;
16743 check indirect edges; check ecf flags; use all_module_statics
16744 in the results; do not free all_module_statics.
16745 (stream_out_bitmap): Handle all_module_statics.
16746 (ipa_reference_write_optimization_summary): Likewise; use
16747 varpool/cgraph encoders to get boundaries.
16748 (ipa_reference_read_optimization_summary): Read in all_module_statics;
16749 use it when possible.
16750
16751 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16752
16753 PR target/44218
16754 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
16755 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
16756
16757 * doc/extend.texi (powerpc builtins): Document vec_recip,
16758 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
16759
16760 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
16761 (rs6000_emit_swrsqrt): Ditto.
16762 (rs6000_emit_swdivsf): Delete.
16763 (rs6000_emit_swdivdf): Ditto.
16764 (rs6000_emit_swrsqrtsf): Ditto.
16765
16766 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
16767 describe the reciprocal estimate support for each type.
16768 (recip_options): Map -mrecip=<opt> into option bits.
16769 (gen_2arg_fn_t): New typedef for binary rtx gen function.
16770 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
16771 reciprocal estimate instructions.
16772 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
16773 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
16774 Set up rs6000_recip_bits based on the -mrecip* options. Print the
16775 cost information if -mdebug=cost or -mdebug=reg.
16776 (rs6000_override_options): Set -mrecip-precision for power6, and
16777 power7 machines. If -mvsx or -mdfp, enable various options that
16778 came in previous instruction set ISAs, unless the option was
16779 explicitly disabled by the command line option. Parse
16780 -mrecip=<opt> options.
16781 (rs6000_builtin_vectorized_function): Add support for vectorizing
16782 the reciprocal estimate builtins and expansions.
16783 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
16784 (bdesc_2arg): Add reciprocal estimate builtins.
16785 (bdesc_1arg): Add reciprocal square root estimate builtins.
16786 (rs6000_expand_builtin): Rewrite to use a switch statement,
16787 instead of multiple if/then/elses. Add reciprocal estimate builtins.
16788 (rs6000_init_builtins): Create declarations for reciprocal
16789 estimate builtins.
16790 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
16791 sized, prefer traditional floating point registers, if integer
16792 vector types, prefer altivec registers. Don't actually look at
16793 the memory address any more.
16794 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
16795 builtins.
16796 (rs6000_load_constant_and_splat): New helper function to load up
16797 the constant for reciprocal estimate instructions.
16798 (rs6000_emit_madd): New helper function for generating
16799 multiply/add type instructions, based on the current switches.
16800 (rs6000_emit_msub): Ditto.
16801 (rs6000_emit_mnsub): Ditto.
16802 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
16803 replace a divide with a reciprocal estimate and fixup, adding
16804 support for machines with high precision and vectors.
16805 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
16806 low precision machines.
16807 (rs6000_emit_swdiv): New common function to be called to replace a
16808 division with reciprocal estimate and fixup.
16809 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
16810 for double and vector types. Add support for high precision machines.
16811
16812 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
16813 the reciprocal estimate instructions can be generated.
16814 (TARGET_FRE): Ditto.
16815 (TARGET_FRSQRTES): Ditto.
16816 (TARGET_FRSQRTE): Ditto.
16817 (RS6000_RECIP_*): New macros for reciprocal estimate support.
16818
16819 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
16820 square root estimate on vectors.
16821 (re<mode>2): New insn for reciprocal division estimate on vectors.
16822
16823 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
16824 New builtin.
16825 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
16826 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
16827 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
16828 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
16829 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
16830 (RS6000_BUILTIN_RSQRT): Ditto.
16831 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
16832 floating point builtin.
16833
16834 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16835 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
16836 __RECIP_PRECISION__ based on the command line switches.
16837 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
16838
16839 * config/rs6000/rs6000.opt (-mrecip): Document add support for
16840 replacing division instructions with reciprocal estimate and fixup.
16841 (-mrecip=<opt>): New option.
16842 (-mrecip-precision): Ditto.
16843
16844 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
16845 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
16846 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
16847 precision scalar.
16848
16849 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
16850 (UNSPEC_VREFP): Ditto.
16851 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
16852 conterparts with regard to support of -mno-fused-madd and -ffast-math.
16853 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
16854 reciprocal estimate instructions to be generated.
16855 (altivec_vrefp): Ditto.
16856
16857 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
16858 estimate support.
16859 (rreg): New mode attribute for reciprocal estimate support.
16860 (recip<mode>3): New insn for division using reciprocal estimate
16861 and fixup builtins.
16862 (divide define_split): New define_split to convert floating point
16863 division to use reciprocal estimate if the user used the
16864 appropriate options and the split is run when we can add new
16865 pseudo registers for the fixup.
16866 (rsqrt<mode>2): New insn for reciprocal square root support.
16867 (recipsf3): Move into recip<mode>3.
16868 (recipdf3): Ditto.
16869 (fres): Use TARGET_FRES.
16870 (rsqrtsf2): Move into rsqrt<mode>2.
16871 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
16872 (copysignsf3): Add support for VSX.
16873 (fred): Use TARGET_FRE.
16874 (fred_fpr): Ditto.
16875 (rsqrtdf_internal1): New function for frsqrte instruciton.
16876
16877 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
16878 (vec_rsqrt): Ditto.
16879
16880 2010-06-03 Richard Guenther <rguenther@suse.de>
16881
16882 PR middle-end/44291
16883 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
16884 (set_user_assembler_libfunc): Likewise.
16885
16886 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
16887
16888 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
16889 defaults.h.
16890 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
16891 to defaults.h
16892 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
16893 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
16894 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
16895 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
16896 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
16897 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
16898 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
16899 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
16900 * defaults.h: Updated for above mentioned changes.
16901
16902 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
16903
16904 * c-common.c: Remove header include of tm_p.h.
16905 * Makefile.in (c-common.o): Remove TM_P_H dependency.
16906
16907 2010-06-02 Jakub Jelinek <jakub@redhat.com>
16908
16909 * tree.h (struct tree_decl_map): New type.
16910 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
16911 (tree_decl_map_hash): New prototype.
16912 (debug_expr_for_decl, value_expr_for_decl): Change into
16913 tree_decl_map hashtab from tree_map.
16914 (init_ttree): Adjust initialization.
16915 (tree_decl_map_hash): New function.
16916 (decl_debug_expr_lookup, decl_debug_expr_insert,
16917 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
16918
16919 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16920
16921 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
16922 linker emulations.
16923 * configure: Regenerate.
16924 * config.in: Regenerate.
16925
16926 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
16927 (X86_64_EMULATION): Define.
16928 (TARGET_LD_EMULATION): Use them.
16929
16930 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
16931 (SPARC64_EMULATION): Define.
16932 (LINK_ARCH_SPEC): Use them.
16933
16934 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
16935
16936 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
16937 smallest_mode_for_size for computing the precision types of new
16938 graphite IVs. Do not call lang_hooks.types.type_for_size.
16939
16940 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
16941
16942 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
16943 information.
16944 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
16945
16946 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
16947
16948 PR middle-end/44363
16949 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
16950 return false instead.
16951
16952 2010-06-02 Jan Hubicka <jh@suse.cz>
16953
16954 PR middle-end/44295
16955 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
16956 create new cgraph node to check callee.
16957
16958 2010-06-02 Richard Guenther <rguenther@suse.de>
16959
16960 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
16961
16962 2010-06-02 Richard Guenther <rguenther@suse.de>
16963
16964 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
16965 (lto_wrapper_cleanup): ... this. Do not exit.
16966 (fatal): Adjust. Exit here.
16967 (fatal_perror): Likewise.
16968 (fatal_signal): New function.
16969 (main): Set up signal handlers to cleanup temporary files.
16970 * Makefile.in (lto-wrapper.o): Adjust dependencies.
16971
16972 2010-06-02 Richard Guenther <rguenther@suse.de>
16973
16974 PR tree-optimization/44377
16975 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
16976
16977 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16978
16979 * config/s390/2097.md (z10_fhex): Remove insn reservation.
16980 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
16981 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
16982 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
16983 instruction.
16984 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
16985
16986 2010-06-02 Jan Hubicka <jh@suse.cz>
16987
16988 * bitmap.c (bitmap_descriptor): Add search_iter.
16989 (bitmap_find_bit): Increment it.
16990 (print_statistics): Print it.
16991
16992 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
16993
16994 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
16995 instead of gimple_build_call_vec. Delete unnecessary local variable.
16996
16997 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
16998
16999 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
17000 change from yesterday.
17001
17002 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
17003
17004 * c-ada-spec.c: Clean up redundant includes.
17005
17006 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
17007
17008 * gimplify.c: Do not include except.h and optabs.h.
17009 (gimplify_body): Do not initialize RTL profiling.
17010 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
17011 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
17012 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
17013 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
17014 langhooks.h.
17015
17016 * tree-pretty-print.h: Include pretty-print.h.
17017 * gimple-pretty-print.h: Include pretty-print.h.
17018
17019 * tree-pretty-print.c: Do not include diagnostic.h.
17020 * tree-vrp.c: Likewise.
17021 * tree-tailcall.c: Likewise
17022 * tree-scalar-evolution.c: Likewise
17023 * tree-ssa-dse.c: Likewise
17024 * tree-chrec.c: Likewise
17025 * tree-ssa-sccvn.c: Likewise
17026 * tree-ssa-copyrename.c: Likewise
17027 * tree-nomudflap.c: Likewise
17028 * tree-call-cdce.c: Likewise
17029 * tree-stdarg.c: Likewise
17030 * tree-ssa-math-opts.c: Likewise
17031 * tree-nrv.c: Likewise
17032 * tree-ssa-sink.c: Likewise
17033 * tree-browser.c: Likewise
17034 * tree-ssa-loop-ivcanon.c: Likewise
17035 * tree-ssa-loop.c: Likewise
17036 * tree-parloops.c: Likewise
17037 * tree-ssa-address.c: Likewise
17038 * tree-ssa-ifcombine.c: Likewise
17039 * tree-if-conv.c: Likewise
17040 * tree-data-ref.c: Likewise
17041 * tree-affine.c: Likewise
17042 * tree-ssa-phiopt.c: Likewise
17043 * tree-ssa-coalesce.c: Likewise
17044 * tree-ssa-pre.c: Likewise
17045 * tree-ssa-live.c: Likewise
17046 * tree-predcom.c: Likewise
17047 * tree-ssa-forwprop.c: Likewise
17048 * tree-ssa-dce.c: Likewise
17049 * tree-ssa-ter.c: Likewise
17050 * tree-ssa-loop-prefetch.c: Likewise
17051 * tree-optimize.c: Likewise
17052 * tree-ssa-phiprop.c: Likewise
17053 * tree-object-size.c: Likewise
17054 * tree-outof-ssa.c: Likewise
17055 * tree-ssa-structalias.c: Likewise
17056 * tree-switch-conversion.c: Likewise
17057 * tree-ssa-reassoc.c: Likewise
17058 * tree-ssa-operands.c: Likewise
17059 * tree-vectorizer.c: Likewise
17060 * tree-vect-data-refs.c: Likewise
17061 * tree-vect-generic.c: Likewise
17062 * tree-vect-stmts.c: Likewise
17063 * tree-vect-patterns.c: Likewise
17064 * tree-vect-slp.c: Likewise
17065 * tree-vect-loop.c: Likewise
17066 * tree-ssa-loop-ivopts.c: Likewise
17067 * tree-ssa-loop-im.c: Likewise
17068 * tree-ssa-loop-niter.c: Likewise
17069 * tree-ssa-loop-unswitch.c: Likewise
17070 * tree-ssa-loop-manip.c: Likewise
17071 * tree-ssa-loop-ch.c: Likewise
17072 * tree-dump.c: Likewise
17073 * tree-complex.c: Likewise
17074
17075 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
17076 * tree-ssa-uninit.c: Likewise
17077 * tree-ssa-threadupdate.c: Likewise
17078 * tree-ssa-uncprop.c: Likewise
17079 * tree-ssa-ccp.c: Likewise
17080 * tree-ssa-dom.c: Likewise
17081 * tree-ssa-propagate.c: Likewise
17082 * tree-ssa-alias.c: Likewise
17083 * tree-dfa.c: Likewise
17084 * tree-cfgcleanup.c: Likewise
17085 * tree-sra.c: Likewise
17086 * tree-ssa-copy.c: Likewise
17087 * tree-ssa.c: Likewise
17088 * tree-profile.c: Likewise
17089 * tree-cfg.c: Likewise
17090 * tree-ssa-threadedge.c: Likewise
17091 * tree-vect-loop-manip.c: Likewise
17092
17093 * tree-inline.c: Do not include diagnostic.h and expr.h.
17094 Include rtl.h.
17095 (copy_decl_for_dup_finish): Do not use NULL_RTX.
17096
17097 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
17098 * tree-loop-distribution.c: Likewise.
17099
17100 2010-06-01 Jan Hubicka <jh@suse.cz>
17101
17102 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
17103
17104 2010-06-01 Jan Hubicka <jh@suse.cz>
17105
17106 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
17107 remove return value.
17108 (split_bbs_on_noreturn_calls) .... here.
17109 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
17110 * tree-flow.h (fixup_noreturn_call): New.
17111
17112 2010-06-01 Jan Hubicka <jh@suse.cz>
17113
17114 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
17115
17116 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
17117
17118 * tree.h (build_nt_call_list): Delete.
17119 * tree.c (build_nt_call_list): Delete.
17120
17121 2010-06-01 Jan Hubicka <jh@suse.cz>
17122
17123 * fwprop.c: Make emit-rtl.h include last.
17124 * rtlanal.c: Include emit-rtl.h.
17125 * genautomata.c: Output emit-rtl include into insn-automata.c
17126 * df-scan.c: Include emit-rtl.h.
17127 * haifa-sched.c: Indlude emit-rtl.h.
17128 * mode-switching.c: Indlude emit-rtl.h.
17129 * graph.c: Indlude emit-rtl.h.
17130 * sel-sched.c: Include emit-rtl.h.
17131 * sel-sched-ir.c: Include emit-rtl.h.
17132 * ira-build.c: Include emit-rtl.h.
17133 * emit-rtl.c (first_insn, last_insn): Remove defines.
17134 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
17135 Move to emit-rtl.h.
17136 (set_new_first_and_last_insn, get_last_insn_anywhere,
17137 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
17138 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
17139 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
17140 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
17141 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
17142 Use accessor functions.
17143 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
17144 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
17145 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
17146 mem_expr_equal_p): Move here from rtl.h.
17147 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
17148 Move here from emit-rtl.c; make inline.
17149 * cfglayout.h: Include emit-rtl.h.
17150 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
17151 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
17152 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
17153 mem_expr_equal_p, get_insns, set_first-insn,
17154 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
17155 * reg-stack.c: Include emit-rtl.h.
17156 * dce.c: Likewise.
17157
17158 2010-06-01 Jan Hubicka <jh@suse.cz>
17159
17160 * cgraph.h (tree_function_versioning): Update prototype.
17161 (cgraph_function_versioning): Update prototype.
17162 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
17163 bitmap.
17164 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
17165 (cgraph_materialize_clone, save_inline_function_body): Update use of
17166 tree_function_versioning.
17167 * tree-inline.c (copy_bb): Look for previous copied block to link
17168 after; fix debug output.
17169 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
17170 (copy_body): Likewise.
17171 (expand_call_inline): Update use of copy_body.
17172 (tree_function_versioning): Update use of copy body; accept
17173 blocks_to_copy and new_entry.
17174
17175 2010-06-01 Jan Hubicka <jh@suse.cz>
17176
17177 * gegenrtl.c: Remove unnecesary prototypes.
17178 (gendecl): Remove.
17179 (gendef): Produce static inline.
17180 (gencode): Remove.
17181 (main): Do not decode parameters; generate header only.
17182 * Makefile.in (genrtl.c): Remove.
17183
17184 2010-06-01 Jan Hubicka <jh@suse.cz>
17185
17186 * tree-switch-conversion.c (build_one_array): Make it readonly.
17187
17188 2010-06-01 Richard Guenther <rguenther@suse.de>
17189
17190 * optabs.c (init_optabs): Guard all accesses to reinit.
17191 * ipa-pure-const.c (propagate): Fix another typo.
17192 * opts.c (common_handle_option): Split assignment to bool.
17193 * c-opts.c (c_common_handle_option): Likewise.
17194
17195 2010-06-01 Arnaud Charlet <charlet@adacore.com>
17196 Matthew Gingell <gingell@adacore.com>
17197
17198 * doc/invoke.texi: Mention -fdump-ada-spec.
17199 * tree-dump.c (dump_files): Add ada-spec.
17200 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
17201 * tree-pass.h (tree_dump_index): Add TDI_ada.
17202 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
17203 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
17204 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
17205 * c-decl.c: Include c-ada-spec.h.
17206 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
17207 functions.
17208 (c_write_global_declarations): Add handling of -fdump-ada-spec.
17209 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
17210 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
17211 * c-ada-spec.h, c-ada-spec.c: New files.
17212
17213 2010-06-01 Richard Guenther <rguenther@suse.de>
17214
17215 PR lto/43853
17216 * ipa-pure-const.c (get_function_state): Hand back varying state
17217 if we do not have one.
17218 (has_function_state): New function.
17219 (duplicate_node_data): Adjust.
17220 (remove_node_data): Likewise.
17221 (pure_const_write_summary): Likewise.
17222 (propagate): Likewise. Fix typo.
17223
17224 2010-06-01 Jan Hubicka <jh@suse.cz>
17225
17226 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
17227 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
17228 (execute_all_ipa_transforms): Do not play with the states.
17229
17230 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
17231
17232 * config/arm/t-linux-androideabi: New.
17233 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
17234
17235 2010-06-01 Jan Hubicka <jh@suse.cz>
17236
17237 * tree-inline.c (estimate_num_insns): For stdarg functions look
17238 into call statement to count cost of argument passing.
17239
17240 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
17241
17242 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
17243 argument for fprintf.
17244 (ix86_output_addr_diff_elt): Likewise.
17245 (x86_function_profiler): Likewise.
17246 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
17247 (LPREFIX): Likewise.
17248 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
17249
17250 2010-05-31 Jakub Jelinek <jakub@redhat.com>
17251
17252 PR target/44338
17253 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
17254 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
17255 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
17256 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
17257 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
17258 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
17259 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
17260 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
17261 TARGET_FUSED_MADD.
17262
17263 2010-05-31 Jan Hubicka <jh@suse.cz>
17264
17265 * tree.h (tree_range_check_failed): Declare noreturn.
17266
17267 2010-05-31 Jan Hubicka <jh@suse.cz>
17268
17269 * gimple.c (gimple_call_builtin_p): New function.
17270 * gimple.h (gimple_call_builtin_p): Declare.
17271 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
17272 to exit.
17273 (execute_warn_function_return): BUILT_IN_RETURN is return.
17274 (split_critical_edges): Return edges are not critical.
17275 (is_ctrl_altering_stmt): Builtin_in_return is altering.
17276 (gimple_verify_flow_info): Handle built_in_return.
17277 (execute_warn_function_return): Handle built_in_return.
17278 * ipa-pure-const.c (check_call): Ignore builtin_return.
17279
17280 2010-05-31 Jakub Jelinek <jakub@redhat.com>
17281
17282 PR middle-end/44337
17283 * expr.c (expand_assignment): Don't store anything for out-of-bounds
17284 array accesses with non-MEM.
17285
17286 PR tree-optimization/44182
17287 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
17288 newly needs to end a bb is followed by debug stmts, instead return
17289 true from the function at the end.
17290 (maybe_move_debug_stmts_to_successors): New function.
17291 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
17292
17293 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
17294
17295 PR target/44161
17296 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
17297
17298 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
17299
17300 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
17301 for nested functions in non-optimized compilation.
17302
17303 2010-05-31 Richard Guenther <rguenther@suse.de>
17304
17305 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
17306
17307 2010-05-30 Jan Hubicka <jh@suse.cz>
17308
17309 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
17310
17311 2010-05-30 Richard Guenther <rguenther@suse.de>
17312
17313 PR lto/42975
17314 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
17315 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
17316 no longer needed.
17317
17318 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
17319
17320 * config/darwin.c (output_objc_section_asm_op): Add comment.
17321 (name_needs_quotes): Add '_' to list of valid comment chars.
17322 (machopic_output_function_base_name): Remove unneeded quotes.
17323 (darwin_encode_section_info): Adjust asm whitespace.
17324 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
17325 (ASM_OUTPUT_LOCAL): Ditto.
17326 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
17327 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
17328 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
17329
17330 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
17331
17332 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
17333 RS6000_OUTPUT_BASENAME unconditionally.
17334 (rs6000_output_function_epilogue): Likewise.
17335
17336 2010-05-30 Jan Hubicka <jh@suse.cz>
17337
17338 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
17339 nodes.
17340
17341 2010-05-30 Richard Guenther <rguenther@suse.de>
17342
17343 * tree-cfg.c (verify_gimple_assign_single): Implement
17344 verification for COND_EXPR rhs.
17345
17346 2010-05-30 Jan Hubicka <jh@suse.cz>
17347
17348 * cgraph.h (cgraph_dump_file): Declare.
17349 * cgraphunit.c (cgraph_dump_file): Export.
17350 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
17351
17352 2010-05-30 Jan Hubicka <jh@suse.cz>
17353
17354 * dwarf2out.c (reference_to_unused,
17355 premark_types_used_by_global_vars_helper): Avoid creation of new
17356 varpool nodes.
17357
17358 2010-05-30 Jan Hubicka <jh@suse.cz>
17359
17360 * cgraph.h (cgraph_node_cannot_return,
17361 cgraph_edge_cannot_lead_to_return): New functions.
17362 * cgraph.c (cgraph_node_cannot_return,
17363 cgraph_edge_cannot_lead_to_return): Use them.
17364 * ipa-pure-const.c (pure_const_names): New static var.
17365 (check_call): Handle calls not leading to return.
17366 (pure_const_read_summary): Dump info read.
17367 (propagate): Dump info about propagation process; ignore side effects
17368 of functions not leading to exit; fix handling of pure functions.
17369
17370 2010-05-30 Jan Hubicka <jh@suse.cz>
17371
17372 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
17373 for tail call epilogues.
17374
17375 2010-05-30 Jan Hubicka <jh@suse.cz>
17376
17377 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
17378 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
17379 dump files.
17380
17381 2010-05-29 Jan Hubicka <jh@suse.cz>
17382
17383 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
17384 node; remove references in node we no longer keep in cgrpah but need
17385 body of.
17386
17387 2010-05-29 Jan Hubicka <jh@suse.cz>
17388
17389 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
17390
17391 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17392
17393 PR target/44165
17394 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
17395
17396 2010-05-29 Jan Hubicka <jh@suse.cz>
17397
17398 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
17399 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
17400 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
17401 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
17402 debug_names_replaced_by, debug_update_ssa): Likewise.
17403 * sbitmap.c (debug_sbitmap): Likewise.
17404 * genrecog.c (debug_decision, debug_decision_list): Likewise.
17405 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
17406 debug_tree_chain): Likewise.
17407 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
17408 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
17409 * optabs.c (debug_optab_libfuncs): Likewise.
17410 (verify_loop_closed_ssa): Likewise.
17411 * value-prof.c (verify_histograms): Likewise.
17412 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
17413 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
17414 * cfghooks.c (verify_flow_info): Likewise.
17415 * fold-const.c (debug_fold_checksum): Likewise.
17416 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
17417 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
17418 Likewise.
17419 * omega.c (debug_omega_problem): Likewise.
17420 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
17421 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
17422 * dominance.c (verify_dominators, debug_dominance_info,
17423 debug_dominance_tree): Likewise.
17424 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
17425 * df_regno_debug, df_ref_debug,
17426 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
17427 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
17428 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
17429 * sel-sched.c (debug_state): Likewise.
17430 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
17431 Likewise.
17432 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
17433 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
17434 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
17435 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
17436 Likewise.
17437 * c-pretty-print.c (debug_c_tree): Likewise.
17438 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
17439 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
17440 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
17441 * ebitmap.c (debug_ebitmap): Likewise.
17442 * function.c (debug_find_var_in_block_tree): Likewise.
17443 * print-rtl.c (debug_rtx): Likewise.
17444 (debug_rtx_count): Likewise.
17445 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
17446 * stor-layout.c (debug_rli): Likewise.
17447 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
17448 * tree-data-ref.c (debug_data_references,
17449 debug_data_dependence_relations, debug_data_reference,
17450 debug_data_dependence_relation, debug_rdg_vertex,
17451 debug_rdg_component, debug_rdg): Likewise.
17452 * tree-affine.c (debug_aff): Likewise.
17453 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
17454 Likewise.
17455 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
17456 * emit-rtl.c (verify_rtl_sharing): Likewise.
17457 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
17458 debug_value_expressions): Likewise.
17459 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
17460 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
17461 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
17462 * cfglayout.c (verify_insn_chain): Likewise.
17463 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
17464 debug_clast_stmt, debug_generated_program): Likewise.
17465 * ggc-page.c (debug_print_page_list): Likewise.
17466 * tree-ssa-ter.c (debug_ter): Likewise.
17467 * graphite-dependences.c (debug_pddr): Likewise.
17468 * sched-deps.c (debug_ds): Likewise.
17469 * tree-ssa.c (verify_ssa): Likewise.
17470 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
17471 debug_scattering_functions, debug_iteration_domains, debug_pdr,
17472 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
17473 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
17474 * tree-inline.c (debug_find_tree): Likewise.
17475 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
17476 debug_ppl_powerset_matrix): Likewise.
17477 * var-tracking.c (debug_dv): Likewise.
17478 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
17479 * cfgloop.c (verify_loop_structure): Likewise.
17480 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
17481 * c-common.c (verify_sequence_points): Likewise.
17482 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
17483 debug_candidates, debug_rgn_dependencies): Likewise.
17484 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
17485 * debug_constraint_graph, debug_solution_for_var,
17486 debug_sa_points_to_info): Likewise.
17487 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
17488 Likewie.
17489 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
17490 debug_loops, debug_loop, debug_loop_num): Likewise.
17491 * passes.c (debug_pass): Likewise.
17492 (dump_properties): Likewise; add cfglayout property.
17493 (debug_properties): Likewise.
17494 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
17495 * varpool.c (debug_varpool): Likewise.
17496 * regcprop.c (debug_value_data): Likewise.
17497 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
17498 debug_immediate_uses_for): Likewise.
17499
17500 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
17501
17502 PR bootstrap/44315
17503 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
17504 Filter out insn-flags.h.
17505
17506 2010-05-29 Jan Hubicka <jh@suse.cz>
17507
17508 * cgraph.h (struct varpool_node_set_def,
17509 struct cgraph_node_set_def): Remove unused AUX pointer.
17510 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
17511 VEC_empty macro.
17512
17513 2010-05-29 Jan Hubicka <jh@suse.cz>
17514
17515 PR middle-end/44324
17516 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
17517
17518 2010-05-29 Richard Guenther <rguenther@suse.de>
17519
17520 * lto-streamer.c (cached_bp): New global variable.
17521 (bitpack_create): Return the cached bitpack, if available.
17522 (bitpack_delete): Clear and cache the bitpack, if appropriate.
17523 (bp_pack_value): Remove redundant asserts.
17524
17525 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
17526
17527 PR middle-end/44306
17528 * tree-if-conv.c (is_true_predicate): New.
17529 (is_predicated): Use is_true_predicate.
17530 (add_to_predicate_list): Same. Do not use unshare_expr.
17531 (add_to_dst_predicate_list): Same.
17532
17533 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
17534
17535 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
17536 field on edges.
17537 (predicate_bbs): Same.
17538 (clean_predicate_lists): Same.
17539 (find_phi_replacement_condition): Do not AND the predicate from
17540 edge->aux.
17541
17542 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
17543
17544 PR bootstrap/44315
17545 * Makefile.in (build/gencondmd.o): Add a missing `\'.
17546
17547 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17548
17549 PR target/44261
17550 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
17551 (negdf2): Adjust expander pattern and use negdf2_slow.
17552 (negsf2): Likewise.
17553
17554 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
17555
17556 * basic-block.h (struct control_flow_graph): Move last_label_uid field
17557 up.
17558 * df.h (struct df_base_ref): Move regno field up.
17559 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
17560 * expr.h (struct separate_ops): Move location field up.
17561 * optabs.h (struct optab_d): Move libcall_basename field down.
17562 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
17563 * config/i386/i386.h (struct machine_function): Convert call_abi field
17564 into a bitfield. Move cfa field to the end of the structure.
17565
17566 2010-05-29 Jan Hubicka <jh@suse.cz>
17567
17568 * varpool.c (varpool_get_node): Fix lookup.
17569
17570 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
17571
17572 * config/spu/spu-protos.h: Do not include rtl.h. Protect
17573 RTL specific prototypes with #ifdef RTX_CODE.
17574 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
17575 * config/spu/t-spu-elf: Fix dependencies.
17576
17577 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
17578
17579 2010-05-29 Mike Stump <mikestump@comcast.net>
17580
17581 PR bootstrap/44315
17582 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
17583 TM_H when building to avoid dependency loops.
17584
17585 2010-05-29 Jan Hubicka <jh@suse.cz>
17586
17587 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
17588 refs and body; not the whole node for masters of materialized clones.
17589
17590 2010-05-29 Mike Stump <mikestump@comcast.net>
17591
17592 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
17593
17594 2010-05-29 Jan Hubicka <jh@suse.cz>
17595
17596 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
17597 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
17598 use of clone_function_name.
17599 * cgraph.h (cgraph_create_virtual_clone,
17600 cgraph_function_versioning): update prototypes.
17601 (clone_function_name): Declare.
17602 * ipa-cp.c (ipcp_insert_stage): Update call of
17603 cgraph_create_virtual_clone.
17604 * omp-low.c (create_omp_child_function_name): Use
17605 cgraph_create_virtual_clone.
17606 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
17607 (cgraph_function_versioning): Take SUFFIX argument; produce new name
17608 and make decl local.
17609
17610 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
17611
17612 * vec.h: Include statistics.h
17613 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
17614 with VEC_H.
17615
17616 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
17617
17618 * c-lex.c: Do not include c-tree.h.
17619 * c-pretty-print.c: Likewise.
17620 * c-opts.c: Likewise.
17621 * c-gimplify.c: Likewise.
17622 * c-common.c: Likewise.
17623 * c-dump.c: Likewise. Include c-common.h.
17624
17625 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
17626
17627 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
17628 before including diagnostic-core.h.
17629 (c_cpp_error): New prototype moved from c-tree.h.
17630 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
17631 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
17632 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
17633 (c_cpp_error): Prototype moved to c-common.h.
17634 * Makefile.in: Update dependency for C_COMMON_H.
17635
17636 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
17637
17638 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
17639 * c-common.c (c_register_addr_space): Remove here.
17640 * c-decl.c (c_register_addr_space): Re-add here.
17641
17642 2010-05-28 Mike Stump <mikestump@comcast.net>
17643
17644 * config/darwin-c.c: Remove c-tree.h include.
17645
17646 2010-05-28 Joseph Myers <joseph@codesourcery.com>
17647
17648 * gcc.c: Include diagnostic.h.
17649 (error_count): Remove. All users changed to use errorcount.
17650 (programname): Remove. All users changed to use progname.
17651 (fancy_abort, internal_error, fatal_error, error, warning, inform,
17652 fnotice): Remove.
17653 (execute): Don't include "Internal error" and bug reporting
17654 information in argument of internal_error call.
17655 (process_command): Don't increment error_count after calling
17656 perror_with_name.
17657 (input_filename): Rename to gcc_input_filename. All users
17658 changed.
17659 (main): Call diagnostic_initialize. Register delete_temp_files
17660 with atexit. Use seen_error to test for errors.
17661 * gcc.h: Include diagnostic-core.h.
17662 (fatal_error, error, warning): Remove.
17663 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
17664 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
17665 (gcc.o): Update dependencies.
17666
17667 2010-05-28 Jeff Law <law@redhat.com>
17668
17669 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
17670 functions.
17671 * ira.h (ira_bad_reload_regno): Declare
17672 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
17673
17674 * ira-color.c (update_curr_costs): Free updated hard reg costs.
17675 (ira_reassign_conflict_allocnos): Remove bogus asserts.
17676 (allocno_reload_assign): Likewise.
17677
17678 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
17679
17680 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
17681 build1_stat.
17682
17683 2010-05-28 Richard Guenther <rguenther@suse.de>
17684
17685 PR lto/44312
17686 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
17687 Stream fixed-point constants mode.
17688 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
17689 and TYPE_PRECISION.
17690 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
17691 Stream fixed-point constants mode.
17692 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
17693 and TYPE_PRECISION.
17694
17695 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
17696
17697 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
17698 only place it was called from.
17699 (number_of_latch_executions): Do not return chrec_dont_know when the
17700 may_be_zero is a runtime condition: instead, return a COND_EXPR
17701 including the may_be_zero condition.
17702 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
17703 of nb_iterations.
17704 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
17705 COND_EXPRs.
17706
17707 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
17708
17709 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
17710 generate COND_EXPRs for degenerate_phi_result.
17711
17712 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
17713
17714 PR middle-end/44293
17715 * tree-if-conv.c (if_convertible_loop_p): Check the
17716 if-convertibility of phi nodes in non predicated BBs.
17717
17718 2010-05-28 Joseph Myers <joseph@codesourcery.com>
17719
17720 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
17721
17722 2010-05-28 Joseph Myers <joseph@codesourcery.com>
17723
17724 PR driver/15303
17725 * gcc.c (inform, warning, inform): New functions.
17726 (fatal_ice): Rename to internal_error; change cmsgid parameter to
17727 gmsgid. All callers changed.
17728 (notice): Rename to fnotice; add parameter fp. All callers changed.
17729 (fatal_error): Rename to fatal_signal. All users changed.
17730 (fatal): Rename to fatal_error; change cmsgid parameter to
17731 gmsgid. All callers changed.
17732 (process_command): Use warning instead of error for warnings.
17733 (end_going_arg): Don't use _() around argument of error.
17734 (do_spec_1): Use inform for message from %n specs. Use warning
17735 instead of error for warnings.
17736 (main): Use inform for comparison messages. Use warning for
17737 message about unused linker input.
17738 (error): Increment error_count. Print "error: ".
17739 * gcc.h (fatal): Change to fatal_error.
17740 (warning): Declare.
17741 * config/darwin-driver.c (darwin_default_min_version): Use warning
17742 instead of fprintf for warnings.
17743 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
17744
17745 2010-05-28 Julian Brown <julian@codesourcery.com>
17746
17747 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
17748 (*thumb2_addsi3_compare0_scratch): New.
17749 * config/arm/constraints.md (Pv): New.
17750 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
17751 for ARM mode only.
17752 (*addsi3_compare0_scratch): Likewise.
17753
17754 2010-05-28 Jan Hubicka <jh@suse.cz>
17755
17756 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
17757 check.
17758 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
17759 only on local statics.
17760
17761 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
17762
17763 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
17764
17765 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
17766
17767 PR bootstrap/44314
17768 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
17769 (OPTION_GLIBC): Define.
17770
17771 2010-05-28 Jakub Jelinek <jakub@redhat.com>
17772
17773 PR debug/41048
17774 * dwarf2out.c (double_int_type_size_in_bits): New function.
17775 (round_up_to_align): Change first argument and return value to
17776 double_int.
17777 (field_byte_offset): Work internally on double_ints.
17778
17779 PR target/43636
17780 * builtins.c (expand_movstr): Use a temporary pseudo instead
17781 of target even when target is not NULL and not const0_rtx, but
17782 fails movstr predicate.
17783 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
17784
17785 2010-05-28 Joseph Myers <joseph@codesourcery.com>
17786
17787 * final.c (rest_of_clean_state): Use %m in errors instead of
17788 strerror (errno).
17789 * gengtype.c (read_input_list, close_output_files): Use xstrerror
17790 instead of strerror.
17791 * toplev.c (process_options): Use %m in errors instead of strerror
17792 (errno).
17793 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
17794 (errno).
17795
17796 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
17797
17798 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
17799 (ix86_canonical_va_list_type): Make static. Add declaration.
17800 (ix86_enum_va_list): Make static. Reindent.
17801 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
17802 (ix86_canonical_va_list_type): Ditto.
17803 (ix86_enum_va_list): Ditto.
17804
17805 2010-05-28 Richard Guenther <rguenther@suse.de>
17806
17807 * lto-wrapper.c (run_gcc): With -save-temps generate a
17808 user-visible ltrans filename. Fixup ltrans unit numbering.
17809
17810 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
17811
17812 * c-common.c (c_common_nodes_and_builtins): Replace use
17813 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
17814 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
17815 to ix86_enum_va_list.
17816 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
17817 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
17818 (TARGET_ENUM_VA_LIST_P): Add hook description.
17819 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
17820 * target.h (gcc_target): Add enum_va_list hook.
17821
17822 PR bootstrap/44299
17823 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
17824 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
17825 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
17826
17827 2010-05-28 Alan Modra <amodra@gmail.com>
17828
17829 PR target/44266
17830 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17831 emit_library_call machinery to set up __tls_get_addr calls.
17832
17833 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17834
17835 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
17836
17837 2010-05-28 Dodji Seketeli <dodji@redhat.com>
17838
17839 Revert fix for PR c++/44188
17840 * c-common.c (is_typedef_decl): Revert the moving of this
17841 definition ...
17842 * tree.c (is_typedef_decl): ... here.
17843 (typdef_variant_p): Revert the moving of this definition
17844 here from cp/tree.c.
17845 * c-common.h (is_typedef_decl): Revert the moving of this
17846 declaration ...
17847 * tree.h (is_typedef_decl): ... here.
17848 (typedef_variant_p): Revert the moving of this declaration here
17849 from cp/cp-tree.h
17850 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
17851 (gen_tagged_type_die): Revert the splitting out of ...
17852 (gen_type_die_with_usage): ... this function. Revert the anonymous
17853 tagged type handling.
17854 (gen_typedef_die): Revert emitting DW_TAG_typedef for
17855 typedefs naming anonymous tagged types.
17856
17857 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
17858
17859 * config/rs6000/rs6000-modes.def (PSImode): Delete.
17860
17861 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
17862
17863 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
17864 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
17865 throughout.
17866 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
17867 "xer" to "ca".
17868 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
17869 XER_REGS to CA_REGS throughout.
17870 * config/rs6000/rs6000.h: Same.
17871 (ADDITIONAL_REGISTER_NAMES): Add "xer".
17872 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
17873 that mode_iterator "P" is the size for arithmetic carries as well.
17874 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
17875
17876 2010-05-28 Jakub Jelinek <jakub@redhat.com>
17877
17878 PR bootstrap/44255
17879 * combine.c (struct rtx_subst_pair): Define unconditionally.
17880 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
17881 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
17882 Call make_compound_operation on pair->to.
17883 (propagate_for_debug): Don't call make_compound_operation here.
17884 Always use simplify_replace_fn_rtx.
17885
17886 2010-05-27 Sterling Augustine <sterling@tensilica.com>
17887
17888 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
17889 * config/xtensa/xtensa.c (override_options): Check
17890 TARGET_FORCE_NO_PIC and set flag_pic.
17891 * config/xtensa/xtensa.opt: Document -mforce-no-pic
17892
17893 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
17894
17895 PR bootstrap/44299
17896 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
17897 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
17898
17899 2010-05-27 Joseph Myers <joseph@codesourcery.com>
17900
17901 * diagnostic-core.h: New. Contents moved from diagnostic.h and
17902 toplev.h.
17903 * diagnostic.c: Don't include toplev.h.
17904 (progname): Define. Moved from toplev.c.
17905 (seen_error): New function.
17906 * diagnostic.h: Include diagnostic-core.h.
17907 (diagnostic_t, emit_diagnostic): Don't declare here.
17908 * toplev.c (progname): Move to toplev.c.
17909 (emit_debug_global_declarations, compile_file, finalize,
17910 do_compile, toplev_main): Use seen_error.
17911 * toplev.h: Include diagnostic-core.h.
17912 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
17913 internal_error, warning, warning_at, error, error_n, error_at,
17914 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
17915 verbatim, fnotice, progname): Move to diagnostic-core.h.
17916 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
17917 (expand_builtin_expect): Use seen_error.
17918 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
17919 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
17920 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
17921 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
17922 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
17923 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
17924 errorcount for errors.
17925 * c-opts.c (c_common_finish): Use seen_error.
17926 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17927 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
17928 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
17929 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
17930 (get_coverage_counts): Use seen_error.
17931 * dwarf2out.c (dwarf2out_finish): Use seen_error.
17932 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
17933 gimplify_body): Use seen_error.
17934 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
17935 * ipa-pure-const.c (gate_pure_const): Use seen_error.
17936 * ipa-reference.c (gate_reference): Use seen_error.
17937 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
17938 * lambda-code.c: Include diagnostic-core.h instead of
17939 diagnostic.h.
17940 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17941 * lto-compress.c: Include diagnostic-core.h instead of
17942 diagnostic.h.
17943 * lto-section-in.c: Include diagnostic-core.h instead of
17944 diagnostic.h.
17945 * lto-streamer-out.c: Include diagnostic-core.h instead of
17946 diagnostic.h.
17947 * lto-streamer.c: Include diagnostic-core.h instead of
17948 diagnostic.h.
17949 (gate_lto_out): Use seen_error.
17950 * matrix-reorg.c: Include diagnostic-core.h instead of
17951 diagnostic.h.
17952 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
17953 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
17954 (gate_expand_omp, lower_omp_1): Use seen_error.
17955 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
17956 (rest_of_decl_compilation, rest_of_type_compilation,
17957 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
17958 * tree-cfg.c (label_to_block_fn): Use seen_error.
17959 * tree-inline.c (optimize_inline_calls): Use seen_error.
17960 * tree-mudflap.c (mudflap_finish_file): Use
17961 seen_error.
17962 * tree-optimize.c (gate_all_optimizations,
17963 gate_all_early_local_passes, gate_all_early_optimizations): Use
17964 seen_error.
17965 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
17966 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
17967 (varpool_remove_unreferenced_decls,
17968 varpool_assemble_pending_decls): Use seen_error.
17969 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
17970 (TOPLEV_H, DIAGNOSTIC_H): Update.
17971 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
17972 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
17973 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
17974 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
17975 coverage.o, lambda-code.o): Update dependencies.
17976
17977 2010-05-25 Dodji Seketeli <dodji@redhat.com>
17978
17979 PR c++/44188
17980 * c-common.c (is_typedef_decl): Move this definition ...
17981 * tree.c (is_typedef_decl): ... here.
17982 (typdef_variant_p): Move definition here from cp/tree.c.
17983 * c-common.h (is_typedef_decl): Move this declaration ...
17984 * tree.h (is_typedef_decl): ... here.
17985 (typedef_variant_p): Move declaration here from cp/cp-tree.h
17986 * dwarf2out.c (is_naming_typedef_decl): New function.
17987 (gen_tagged_type_die): Split out of ...
17988 (gen_type_die_with_usage): ... this function. When an anonymous
17989 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
17990 is emitted for the typedef.
17991 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
17992 anonymous tagged types.
17993
17994 2010-05-27 Jason Merrill <jason@redhat.com>
17995
17996 * print-tree.c (debug_vec_tree): New fn.
17997 (print_vec_tree): New fn.
17998 * tree.h: Declare them.
17999 * gdbinit.in (pvt): New command.
18000
18001 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
18002
18003 * gdbinit.in (pdd): New command.
18004
18005 2010-05-27 Jan Hubicka <jh@suse.cz>
18006
18007 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
18008 (update_caller_keys): Return early if there are no callers;
18009 only update fibheap when decresing the key.
18010 (update_callee_keys): Avoid recursion.
18011 (decide_inlining_of_small_functions): When badness does not match;
18012 re-insert into fibheap.
18013
18014 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
18015
18016 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
18017 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
18018 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
18019 (ALL_HOST_OBJS): Now a union of the above two.
18020 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
18021 all files in ALL_HOST_FRONTEND_OBJS.
18022 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
18023
18024 * c-common.c: Pretend to be a backend file by undefining
18025 IN_GCC_FRONTEND (still need rtl.h here).
18026
18027 2010-05-27 Jan Hubicka <jh@suse.cz>
18028
18029 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
18030 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
18031
18032 2010-05-27 Jan Hubicka <jh@suse.cz>
18033
18034 * sched-ebb.c: Rename struct deps to struct deps_desc.
18035 * ddg.c: Likewise.
18036 * sel-sched-ir.c: Likewise.
18037 * sched-deps.c: Likewise.
18038 * sched-int.h: Likewise.
18039 * sched-rgn.c: Likewise.
18040
18041 2010-05-27 Jon Beniston <jon@beniston.com>
18042
18043 PR 43726
18044 * config/lm32/lm32.h: Remove definition of
18045 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
18046
18047 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
18048
18049 PR lto/44230
18050 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
18051
18052 2010-05-27 Richard Guenther <rguenther@suse.de>
18053
18054 PR tree-optimization/44284
18055 * tree-vect-stmts.c (vectorizable_assignment): Handle
18056 sign-changing conversions as simple copy.
18057
18058 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
18059
18060 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
18061 Bionic C library.
18062 (__gthread_active_p): Check for pthread_create if compiling against
18063 Bionic C library.
18064
18065 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
18066
18067 Support compilation for Android platform. Reimplement -mandroid.
18068
18069 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
18070 (*android*): Set ANDROID_DEFAULT.
18071 (arm*-*-linux*): Include linux-android.h.
18072 (arm*-*-eabi*): Don't include previous -mandroid implementation.
18073 * config/arm/eabi.h: Remove, move Android-specific parts ...
18074 * config/linux-android.h: ... here. New file.
18075 * config/arm/eabi.opt: Rename to ...
18076 * config/linux-android.opt: ... this.
18077 (mandroid): Allow -mno-android option. Initialize based on
18078 ANDROID_DEFAULT.
18079 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
18080 Move logic to corresponding LINUX_TARGET_* macros.
18081 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
18082 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
18083 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
18084 Android definitions.
18085 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
18086 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
18087 Document.
18088
18089 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
18090
18091 Add support for Bionic C library
18092
18093 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
18094 macro.
18095 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
18096 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
18097
18098 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
18099 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
18100 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
18101 to support multiple C libraries. Handle Bionic.
18102 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
18103 (BIONIC_DYNAMIC_LINKER64): Define.
18104 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
18105 Update.
18106 (TARGET_HAS_SINCOS): Enable for Bionic.
18107
18108 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
18109 the last option specified on command line take effect.
18110 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
18111 (mbionic): New.
18112 (mglibc, muclibc): Update.
18113
18114 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
18115 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
18116 DEFAULT_LIBC.
18117
18118 * doc/invoke.texi (-mglibc, -muclibc): Update.
18119 (-mbionic): Document.
18120
18121 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18122
18123 * c-common.h (c_register_addr_space): Add prototype.
18124 (ADDR_SPACE_KEYWORD): Remove.
18125 * c-common.c (c_register_addr_space): New function.
18126 (c_addr_space_name): Reimplement.
18127 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
18128
18129 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
18130 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
18131
18132 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
18133 Remove TARGET_ADDR_SPACE_KEYWORDS.
18134
18135 2010-05-27 Joseph Myers <joseph@codesourcery.com>
18136
18137 * input.c: New file.
18138 * input.h (main_input_filename): Move declaration to toplev.h.
18139 * toplev.c (input_location, line_table): Move to input.c
18140 * toplev.h (main_input_filename): Move declaration from input.h.
18141 * tree.c (expand_location): Move to input.c.
18142 * Makefile.in (OBJS-common): Add input.o.
18143 (input.o): Add dependencies.
18144
18145 2010-05-27 Richard Guenther <rguenther@suse.de>
18146
18147 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
18148 for non-existant files.
18149 (fork_execute): Mark args_name file as deleted.
18150
18151 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
18152
18153 PR bootstrp/44287
18154 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
18155 (narrow_signed_type): Likewise.
18156
18157 2010-05-26 Jan Hubicka <jh@suse.cz>
18158
18159 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
18160 edge only when checking is enabled; check using former_clone_of;
18161 check inline clones too.
18162 (cgraph_materialize_clone): Record former_clone_of pointer.
18163 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
18164 combining redirections; dump args_to_skip bitmap
18165 (cgraph_materialize_all_clones): Do no redirection here.
18166 * ipa-inline.c (inline_transform): Do redirection here.
18167 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
18168 cheking only).
18169
18170 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
18171
18172 * config/avr/avr-c.c: Do not include regs.h.
18173 Include cpplib.h for cpp_define and tree.h for c-common.h.
18174 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
18175 * config/avr/t-avr: Fix dependencies for avr-c.o.
18176
18177 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
18178
18179 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
18180 string instead of SYMBOL_REF rtx.
18181 * rtl.h (set_stack_check_libfunc): Move prototype from here...
18182 * libfuncs.h: ...to here. Adjust for explow.c change.
18183
18184 2010-05-26 Joseph Myers <joseph@codesourcery.com>
18185
18186 * pretty-print.c: Don't include ggc.h.
18187 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
18188 (identifier_to_locale): Use them for allocation.
18189 * pretty-print.h (identifier_to_locale_alloc,
18190 identifier_to_locale_free): Declare.
18191 * toplev.c (alloc_for_identifier_to_locale): New.
18192 (general_init): Set identifier_to_locale_alloc and
18193 identifier_to_locale_free.
18194 * Makefile.in (pretty-print.o): Update dependencies.
18195
18196 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
18197
18198 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
18199 pointer types if they have different alignment or mode.
18200
18201 2010-05-26 Anatoly Sokolov <aesok@post.ru>
18202
18203 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18204 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18205 * config/sparc/sparc-protos.h (function_value): Remove declaration.
18206 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
18207 sparc_function_value_regno_p): New functions.
18208 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18209 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18210 (function_value): Rename to...
18211 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
18212 argument to 'outgoing'.
18213 (function_arg_record_value, function_arg_union_value,
18214 function_arg_vector_value): Update comment.
18215
18216 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
18217
18218 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
18219 (fde_needed_for_eh_p): New predicate.
18220 (output_call_frame_info): Use it throughout to decide whether FDEs
18221 are needed for EH purpose.
18222 (dwarf2out_begin_prologue): Reorder assignments.
18223
18224 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18225
18226 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
18227 special case loop->header.
18228 (is_predicated): New.
18229 (if_convertible_loop_p): Call it.
18230
18231 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18232
18233 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
18234 iterator in parameter. Do not generate code during the analysis.
18235 (tree_if_convert_cond_stmt): Removed.
18236 (tree_if_convert_stmt): Removed.
18237 (predicate_bbs): New.
18238 (if_convertible_loop_p): Call predicate_bbs.
18239 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
18240 now contains all the analysis part.
18241
18242 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18243
18244 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
18245 statements in the analysis part.
18246 (tree_if_convert_stmt): Update comment.
18247 (remove_conditions_and_labels): New.
18248 (combine_blocks): Call remove_conditions_and_labels.
18249 (tree_if_conversion): Update comment.
18250
18251 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18252
18253 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
18254 than 2 predecessors or more than 2 successors.
18255
18256 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18257
18258 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
18259 of loops in which the data dependence analysis fails.
18260
18261 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18262
18263 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
18264 CDI_POST_DOMINATORS.
18265 (tree_if_conversion): Same.
18266
18267 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18268
18269 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
18270
18271 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
18272
18273 * tree-if-conv.c: Update copyright years. Fix comments.
18274 Fix indentation.
18275
18276 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
18277
18278 * builtin-types.def (BT_INT128): New primitive type.
18279 (BT_UINT128): Likewise.
18280 * c-common.c (c_common_r): Add __int128 keyword.
18281 (c_common_type_for_size): Handle __int128.
18282 (c_common_type_for_mode): Likewise.
18283 (c_common_signed_or_unsigned_type): Likewise.
18284 (c_common_nodes_and_builtins): Add builtin type
18285 if target supports 128-bit integer scalar.
18286 * c-common.h (enum rid): Add RID_INT128.
18287 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
18288 if target supports 128-bit integer scalar.
18289 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
18290 (finish_declspecs): Likewise.
18291 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
18292 (c_token_starts_declspecs): Likewise.
18293 (c_parser_declspecs): Likewise.
18294 (c_parser_attributes): Likewise.
18295 (c_parser_objc_selector): Likewise.
18296 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
18297 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
18298 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
18299 * tree.c (make_or_reuse_type): Likewise.
18300 (make_unsigned_type): Likewise.
18301 (build_common_tree_nodes_2): Likewise.
18302 * tree.h (enum integer_type_kind): Add itk_int128 and
18303 itk_unsigned_int128.
18304 (int128_integer_type_node): New define.
18305 (int128_unsigned_type_node): New define.
18306 * doc/extend.texi: Add documentation about __int128 type.
18307
18308 2010-05-26 Richard Guenther <rguenther@suse.de>
18309
18310 * tree-ssa-sccvn.c (copy_nary): Adjust.
18311 (copy_phis): Rename to ...
18312 (copy_phi): ... this. Adjust.
18313 (copy_references): Rename to ...
18314 (copy_reference): ... this. Adjust.
18315 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
18316 result into the valid table.
18317
18318 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
18319
18320 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
18321 insn-config.h, insn-codes.h, recog.h, and optabs.h.
18322
18323 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18324
18325 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
18326
18327 2010-05-26 Richard Guenther <rguenther@suse.de>
18328
18329 * opts.c (common_handle_option): Handle OPT_Ofast.
18330
18331 2010-05-26 Joseph Myers <joseph@codesourcery.com>
18332
18333 * diagnostic.c: Don't include opts.h.
18334 (permissive_error_option): Define.
18335 (diagnostic_initialize): Take n_opts parameter. Allocate memory
18336 for classify_diagnostic. Don't use memset for
18337 classify_diagnostic. Initialize new and recently added fields.
18338 (diagnostic_classify_diagnostic): Use context->n_opts instead of
18339 N_OPTS.
18340 (diagnostic_report_diagnostic): Pass context parameter to
18341 diagnostic_report_warnings_p. Use option_enabled and option_name
18342 hooks from context.
18343 (emit_diagnostic): Use permissive_error_option.
18344 (permerror): Likewise.
18345 * diagnostic.h: Don't include options.h.
18346 (struct diagnostic_context): Add n_opts, opt_permissive,
18347 inhibit_warnings, warn_system_headers, option_enabled and
18348 option_name fields. Change classify_diagnostic to a pointer.
18349 * opts-diagnostic.h: New file.
18350 * opts.c: Include opts-diagnostic.h.
18351 (common_handle_option): Set global_dc fields for -Wfatal-errors,
18352 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
18353 (option_name): New function.
18354 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
18355 (c_common_handle_option): Set global_dc->permissive for
18356 -fpermissive.
18357 * c-common.c (c_cpp_error): Save and restore
18358 global_dc->warn_system_headers, not variable warn_system_headers.
18359 * toplev.c: Include opts-diagnostic.h.
18360 (general_init): Update call to diagnostic_initialize. Set
18361 global_dc->show_column, global_dc->option_enabled and
18362 global_dc->option_name.
18363 (process_options): Don't set global_dc fields here.
18364 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
18365 (diagnostic.o, opts.o, toplev.o): Update dependencies.
18366
18367 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
18368
18369 * config/picochip/picochip.md (movsi): Split a movsi from a
18370 const after reload.
18371
18372 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18373
18374 * ggc-zone.c: Update copyright year.
18375 (poison_region): Mark memory for Valgrind as undefined before
18376 memset () call and inaccessible afterwards.
18377 (ggc_pch_total_size): Change type of i to int.
18378
18379 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18380
18381 * ggc-common.c (ggc_free_overhead): Allow empty slot.
18382
18383 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18384
18385 * ggc-common.c: Update copyright year.
18386 (ggc_rlimit_bound): Remove prototype. Compile only if
18387 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
18388 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
18389 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
18390 (ggc_min_heapsize_heuristic): Likewise.
18391
18392 2010-05-26 Richard Guenther <rguenther@suse.de>
18393
18394 PR rtl-optimization/44164
18395 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
18396 no-common access-path disambiguation.
18397 (indirect_ref_may_alias_decl_p): Adjust.
18398 (indirect_refs_may_alias_p): Likewise.
18399 (refs_may_alias_p_1): Likewise.
18400
18401 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
18402
18403 * c-typeck.c: Do not include expr.h.
18404
18405 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
18406
18407 * rtl.h (decl_default_tls_model): Move prototype from here...
18408 * output.h: ...to here.
18409 * c-decl.c: Do not include rtl.h.
18410 * c-pragma.c: Likewise.
18411 * c-parser.c: Likewise.
18412 * c-gimplify.c: Likewise. And also not hard-reg-set.
18413 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
18414 FIXME note for it. Add a FIXME note for expr.h.
18415 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
18416 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
18417 defined.
18418
18419 2010-05-26 Jakub Jelinek <jakub@redhat.com>
18420
18421 PR target/44199
18422 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
18423 or total_size is larger than red zone size for non-V4 ABI, emit a
18424 stack_tie resp. frame_tie insn before stack pointer restore.
18425 * config/rs6000/rs6000.md (frame_tie): New insn.
18426
18427 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
18428
18429 * function.h (struct function): Add can_throw_non_call_exceptions bit.
18430 * lto-streamer-in.c (input_function): Stream it in.
18431 * lto-streamer-out.c (output_function): Stream it out.
18432 * function.c (allocate_struct_function): Set it.
18433 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
18434 for flag_non_call_exceptions.
18435 * cfgbuild.c (control_flow_insn_p): Likewise.
18436 (make_edges): Likewise.
18437 * cfgexpand.c (expand_stack_alignment): Likewise.
18438 * combine.c (distribute_notes): Likewise.
18439 * cse.c (cse_extended_basic_block): Likewise.
18440 * except.c (insn_could_throw_p): Likewise.
18441 * gcse.c (simple_mem): Likewise.
18442 * ipa-pure-const.c (check_call): Likewise.
18443 (check_stmt ): Likewise.
18444 * lower-subreg.c (lower-subreg.c): Likewise.
18445 * optabs.c (emit_libcall_block): Likewise.
18446 (prepare_cmp_insn): Likewise.
18447 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
18448 * postreload.c (rest_of_handle_postreload): Likewise.
18449 * reload1.c (reload_as_needed): Likewise.
18450 (emit_input_reload_insns): Likewise.
18451 (emit_output_reload_insns): Likewise.
18452 (fixup_abnormal_edges): Likewise.
18453 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
18454 * store-motion.c (find_moveable_store): Likewise.
18455 * tree-eh.c (stmt_could_throw_p): Likewise.
18456 (tree_could_throw_p): Likewise.
18457 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
18458 * config/arm/arm.c (arm_expand_prologue): Likewise.
18459 (thumb1_expand_prologue): Likewise.
18460 * config/rx/rx.md (cbranchsf4): Likewise.
18461 (cmpsf): Likewise.
18462 * config/s390/s390.c (s390_emit_prologue): Likewise.
18463 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
18464 (inline_forbidden_into_p): New predicate.
18465 (expand_call_inline): Use it to forbid inlining.
18466 (tree_can_inline_p): Likewise.
18467
18468 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
18469
18470 * config/i386/i386-c.c: Do not include rtl.h.
18471 * config/i386/t-i386: Update dependencies.
18472
18473 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
18474
18475 * attribs.c: Do not include rtl.h.
18476 * Makefile.in: Update dependencies.
18477
18478 2010-05-25 Anatoly Sokolov <aesok@post.ru>
18479
18480 * double-int.h (double_int_and): New.
18481 * combine.c (try_combine): Clean up, use double_int_* and
18482 immed_double_int_const functions.
18483
18484 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18485
18486 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
18487 stderr to /dev/null instead of grep -q.
18488 * configure: Regenerate.
18489
18490 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
18491
18492 * Makefile.in (EXCEPT_H): Fix typo.
18493
18494 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
18495
18496 * ira-build.c (update_conflict_hard_reg_costs): New.
18497 (ira_build): Call update_conflict_hard_reg_costs.
18498
18499 2010-05-25 Jakub Jelinek <jakub@redhat.com>
18500
18501 PR debug/41371
18502 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
18503 ENABLE_CHECKING.
18504 (intersect_loc_chains): Walk the s2var's loc_chain together
18505 with s1node chain as long as the locations are equal, don't
18506 call find_loc_in_1pdv in that case.
18507
18508 PR debug/42801
18509 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
18510 (copy_bind_expr): ... instead of here.
18511 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
18512 if the block hasn't been remapped.
18513 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
18514 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
18515
18516 2010-05-25 Richard Guenther <rguenther@suse.de>
18517
18518 PR middle-end/44069
18519 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
18520 out-of-bounds array accesses.
18521
18522 2010-05-25 Richard Guenther <rguenther@suse.de>
18523
18524 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
18525 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
18526 (run_gcc): Re-organize to make cleanup easier.
18527
18528 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18529
18530 * config/s390/s390.c (optimization_options): Fix and move the
18531 flag_prefetch_loop_arrays override ...
18532 (override_options): ... here.
18533
18534 2010-05-25 Joseph Myers <joseph@codesourcery.com>
18535
18536 * diagnostic.c: Don't include plugin.h.
18537 (diagnostic_report_diagnostic): Don't handle plugins specially
18538 here. Pass context to internal_error callback.
18539 * diagnostic.h (struct diagnostic_context): Add context parameter
18540 to internal_error callback.
18541 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
18542 * plugin.h (struct diagnostic_context): Declare.
18543 (warn_if_plugins, plugins_internal_error_function): Declare.
18544 * toplev.c (general_init): Set global_dc->internal_error.
18545 * Makefile.in (diagnostic.o): Update dependencies.
18546
18547 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
18548
18549 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
18550 * config/rs6000/t-darwin64: New.
18551 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
18552 build crt2.
18553
18554 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
18555
18556 PR 44203
18557 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
18558 match the original (and intended) behaviour before r159557. This
18559 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
18560 in two ways.
18561
18562 2010-05-25 Richard Guenther <rguenther@suse.de>
18563
18564 * doc/invoke.texi: Document -Ofast.
18565 * target.h (struct gcc_target): Add handle_ofast.
18566 * target-def.h (TARGET_HANDLE_OFAST): Add.
18567 (TARGET_INITIALIZER): Adjust.
18568 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
18569 * common.opt (Ofast): Add.
18570
18571 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
18572
18573 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
18574 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
18575
18576 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
18577
18578 PR target/43610
18579 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
18580 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
18581 false_rtx. Use false_rtx to compute the correct *ptest for reversed
18582 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
18583
18584 2010-05-25 Jakub Jelinek <jakub@redhat.com>
18585
18586 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
18587 DW_OP_minus with negated offset instead of DW_OP_plus.
18588 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
18589
18590 2010-05-25 Wei Guozhi <carrot@google.com>
18591
18592 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
18593 tst instruction and a new alternative.
18594 * config/arm/constraints.md (Pu): New constraint.
18595
18596 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
18597
18598 * function.c (assign_stack_local_1): Initialize variable
18599 to avoid warning when bootstrapping at -O3.
18600
18601 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
18602
18603 * configure.ac (all_lang_makefiles): Remove everything related to it.
18604 * configure: Regenerate.
18605 * Makefile.in: Fix reference to ada Make-lang.in.
18606 Remove support for LANG_MAKEFILES.
18607
18608 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
18609 Sandra Loosemore <sandra@codesourcery.com>
18610
18611 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
18612 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
18613 description. Add arm_neon_fp16_ok.
18614 (Add Options): Add arm_neon and arm_neon_fp16.
18615
18616 2010-05-24 Joseph Myers <joseph@codesourcery.com>
18617
18618 * diagnostic.c: Don't include flags.h.
18619 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
18620 context parameters. Check flags in the context passed as a parameter.
18621 (diagnostic_build_prefix): Add context parameter. Check
18622 show_column flag in context.
18623 (diagnostic_action_after_output): Check fatal_errors flag in context.
18624 (diagnostic_report_current_module): Check show_column flag in context.
18625 (default_diagnostic_starter): Update call to
18626 diagnostic_build_prefix.
18627 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
18628 (emit_diagnostic): Pass context to permissive_error_kind.
18629 (permerror): Pass context to permissive_error_kind.
18630 * diagnostic.h (struct diagnostic_context): Add show_column,
18631 pedantic_errors, permissive and fatal_errors fields.
18632 (diagnostic_build_prefix): Update prototype.
18633 * langhooks.c
18634 * toplev.c (process_options): Set flags in global_dc from
18635 flag_show_column, flag_pedantic_errors, flag_permissive,
18636 flag_fatal_errors.
18637 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
18638 to diagnostic_build_prefix.
18639 * Makefile.in (diagnostic.o): Update dependencies.
18640
18641 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
18642
18643 * config/i386/ia32intrin.h (__crc32q): Define only if
18644 __SSE4_2__ is defined.
18645
18646 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
18647
18648 PR target/44132
18649 PR middle-end/43602
18650 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
18651 DECL_VISIBILITY_SPECIFIED.
18652 (emutls_decl): Set DECL_PRESERVE_P and copy
18653 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
18654 (emutls_finalize_control_var): New callback.
18655 (emutls_finish): Finalize emutls control variables.
18656 * toplev.c (compile_file): Move the call to emutls_finish ()
18657 before varpool_assemble_pending_decls ().
18658
18659 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
18660
18661 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
18662 added to the preprocessor condition.
18663
18664 2010-05-24 Paul Brook <paul@codesourcery.com>
18665
18666 * gengtype-lex.l: Add HARD_REG_SET.
18667 * expr.c (expand_expr_real_1): Record writes to hard registers.
18668 * function.c (rtl_data): Add asm_clobbers.
18669 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
18670 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
18671 Use crtl->asm_clobbers.
18672
18673 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18674
18675 * doc/makefile.texi (Makefile): Mention stages 'profile'
18676 and 'feedback' for profiledbootstrap.
18677
18678 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
18679
18680 PR target/44245
18681 * config/i386/i386.c (def_builtin): Properly check
18682 OPTION_MASK_ISA_64BIT.
18683
18684 2010-05-23 Joseph Myers <joseph@codesourcery.com>
18685
18686 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
18687 typedefs with different but compatible types. Allow duplicate
18688 typedefs with the same type except for pedantic non-C1X, but give
18689 warning for variably modified types.
18690 * c-typeck.c (tagged_types_tu_compatible_p,
18691 function_types_compatible_p, type_lists_compatible_p,
18692 comptypes_internal): Add parameter different_types_p; set
18693 *different_types_p for different but compatible types. All
18694 callers changed.
18695 (comptypes_check_different_types): New.
18696 * c-tree.h (comptypes_check_different_types): Declare.
18697
18698 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
18699
18700 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
18701 * jump.c: Include basic-block.h.
18702 * profile.c: Likewise.
18703 * tree-profile.c: Likewise.
18704 * coverage.c: Likewise.
18705 * basic-block.h (optimize_function_for_size_p): Move to function.h.
18706 (optimize_function_for_speed_p): Likewise.
18707 * function.h (optimize_function_for_size_p,
18708 optimize_function_for_speed_p): Moved here from basic-block.h.
18709 * Makefile.in: Update dependencies.
18710
18711 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18712
18713 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
18714 before calling make; allow override through $MAKE.
18715 * doc/invoke.texi (Optimize Options): Document override.
18716
18717 2010-05-23 Anatoly Sokolov <aesok@post.ru>
18718
18719 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
18720 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18721 (rs6000_mode_dependent_address_ptr): Make static.
18722 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18723 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
18724 Remove.
18725
18726 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
18727
18728 PR target/43869
18729 * config/i386/i386.c: Make sure that the correct regparm is passed.
18730
18731 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
18732
18733 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
18734 * sbitmap.c: ...to here to internalize sbitmap element access.
18735 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
18736 Explain why basic-block.h is included.
18737 * function.h: Include tm.h for CUMULATIVE_ARGS.
18738 * Makefile.in: Update dependencies.
18739
18740 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
18741
18742 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
18743 New core types.
18744 * sbitmap.h (struct sbitmap_def): Do not typedef here.
18745 * sbitmap.c: Include sbitmap.h.
18746 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
18747 hard-reg-set.h. Split everything related to regsets out from here...
18748 * regset.h: ...to here. New file.
18749 * df.h: Include regset.h and sbitmap.h.
18750 * tree-flow.h: Likewise.
18751 * cfgloop.h: Likewise.
18752 * except.h: Do not include sbitmap.h. Include hashtab.h.
18753 * cgraph.h: Include vec.h and function.h.
18754 * reload.h (struct insn_chain): Change types of live_throughout
18755 and dead_or_set from regset_head to bitmap_head.
18756 (compute_use_by_pseudos): Be defined also if regset.h is not included.
18757 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
18758 spilled_regs from regset_head to bitmap_head to avoid dependency
18759 in regset.h.
18760 * sel-sched-ir.h: Include regset.h.
18761 * reload.c: Include df.h before reload.h.
18762 * caller-save.c: Likewise.
18763 * reload1.c: Likewise.
18764 * ira.c: Likewise.
18765 (mark_elimination): Update type of r to bitmap, consistent with
18766 DF_LR_IN.
18767 * dominance.c: Include bitmap.h.
18768 * modulo-sched.c: Include df.h.
18769 * cfganal.c: Include bitmap.h and sbitmap.h.
18770 * cfgbuild.c: Include sbitmap.h.
18771 * lcm.c: Include sbitmap.h.
18772 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
18773 * domwalk.c: Include sbitmap.h, exclude ggc.h.
18774 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
18775 * cselib.c: Include bitmap.h.
18776 * tree-optimize.c: Include regset.h.
18777 * stmt.c: Include bitmap.h.
18778 * Makefile.in: Update dependencies.
18779
18780 2010-05-22 Jan Hubicka <jh@suse.cz>
18781
18782 * cgraph.h (struct varpool_node): Add same_comdat_group.
18783 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
18784 pointer.
18785 (output_varpool): Update call of lto_output_varpool_node.
18786 (input_varpool): Read same_comdat_group pointer.
18787 (input_varpool_1): Fixup same_comdat_group pointer.
18788 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
18789 group is needed, all are.
18790 * varpool.c (varpool_remove_node): Remove node from same comdat group
18791 linklist too.
18792 (varpool_analyze_pending_decls): Walk same comdat groups.
18793
18794 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
18795
18796 * rtl.h (union rtunion_def): Remove rt_bit member.
18797 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
18798 * print-rtl (print_rtx): Do not print the member.
18799 * gengtype.c (adjust_field_rtx_def): Do not handle it.
18800 * gengenrtl.c (type_from_format): Likewise.
18801 (accessor_from_format): Likewise.
18802
18803 2010-05-22 Joseph Myers <joseph@codesourcery.com>
18804
18805 * dbgcnt.c: Include toplev.h instead of errors.h.
18806 * ira-emit.c: Don't include errors.h.
18807 * ira.c: Include toplev.h instead of errors.h.
18808 * lto-compress.c: Include toplev.h instead of errors.h.
18809 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
18810 ira.o, dbgcnt.o): Update dependencies.
18811
18812 2010-05-22 Richard Guenther <rguenther@suse.de>
18813
18814 * gimple.c (gimple_types_compatible_p): Check type qualifications
18815 before merging pointer to complete and pointer to incomplete type.
18816 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
18817 we use our own resolution algorithm. The gold linker plugin
18818 doesn't do the job we want it to do here.
18819
18820 2010-05-22 Anatoly Sokolov <aesok@post.ru>
18821
18822 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18823 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18824 (sparc_mode_dependent_address_p): New function.
18825
18826 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
18827
18828 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
18829
18830 * timevar.c: Do not include any core headers.
18831 (timevar_print): De-i18n-ize.
18832 (print_time): Likewise.
18833 * timevar.h (timevar_push, timevar_pop): Make inline functions.
18834
18835 2010-05-21 Joseph Myers <joseph@codesourcery.com>
18836
18837 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
18838 langhooks-def.h.
18839 (diagnostic_initialize): Initialize x_data not last_function.
18840 (diagnostic_report_current_function): Move to tree-diagnostic.c.
18841 (default_diagnostic_starter): Call
18842 diagnostic_report_current_module not
18843 diagnostic_report_current_function.
18844 (diagnostic_report_diagnostic): Initialize x_data not
18845 abstract_origin.
18846 (verbatim): Likewise.
18847 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
18848 x_data.
18849 (struct diagnostic_context): Change last_function to x_data.
18850 (diagnostic_auxiliary_data): Replace with
18851 diagnostic_context_auxiliary_data and
18852 diagnostic_info_auxiliary_data.
18853 (diagnostic_last_function_changed, diagnostic_set_last_function,
18854 diagnostic_report_current_function): Move to tree-diagnostic.h.
18855 (print_declaration, dump_generic_node, print_generic_stmt,
18856 print_generic_stmt_indented, print_generic_expr,
18857 print_generic_decl, debug_c_tree, dump_omp_clauses,
18858 print_call_name, debug_generic_expr, debug_generic_stmt,
18859 debug_tree_chain, default_tree_printer): Move to
18860 tree-pretty-print.h.
18861 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
18862 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
18863 gimple-pretty-print.h.
18864 * pretty-print.c: Don't include tree.h
18865 (pp_base_format): Don't handle %K here.
18866 (pp_base_tree_identifier): Move to tree-pretty-print.c.
18867 * pretty-print.h (text_info): Change abstract_origin to x_data.
18868 (pp_tree_identifier, pp_unsupported_tree,
18869 pp_base_tree_identifier): Move to tree-pretty-print.h.
18870 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
18871 tree-pretty-print.h: New files.
18872 * tree-pretty-print.c: Include tree-pretty-print.h.
18873 (percent_K_format): New. Moved from pretty-print.c.
18874 (pp_base_tree_identifier): Move from pretty-print.c.
18875 * c-objc-common.c: Include tree-pretty-print.h.
18876 (c_tree_printer): Handle %K here.
18877 * langhooks.c: Include tree-diagnostic.h.
18878 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
18879 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
18880 (default_tree_printer): Handle %K using percent_K_format.
18881 (general_init): Use default_tree_diagnostic_starter.
18882 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
18883 (free_lang_data): Use default_tree_diagnostic_starter.
18884 * c-pretty-print.c: Include tree-pretty-print.h.
18885 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18886 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18887 * dwarf2out.c: Include tree-pretty-print.h.
18888 * except.c: Include tree-pretty-print.h.
18889 * gimple-pretty-print.c: Include tree-pretty-print.h and
18890 gimple-pretty-print.h.
18891 * gimplify.c: Include tree-pretty-print.h.
18892 * graphite-poly.c: Include tree-pretty-print.h and
18893 gimple-pretty-print.h.
18894 * ipa-cp.c: Include tree-pretty-print.h.
18895 * ipa-inline.c: Include gimple-pretty-print.h.
18896 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18897 * ipa-pure-const.c: Include gimple-pretty-print.h.
18898 * ipa-struct-reorg.c: Include tree-pretty-print.h and
18899 gimple-pretty-print.h.
18900 * ipa-type-escape.c: Include tree-pretty-print.h.
18901 * print-rtl.c: Include tree-pretty-print.h.
18902 * print-tree.c: Include gimple-pretty-print.h.
18903 * sese.c: Include tree-pretty-print.h.
18904 * tree-affine.c: Include tree-pretty-print.h.
18905 * tree-browser.c: Include tree-pretty-print.h.
18906 * tree-call-cdce.c: Include gimple-pretty-print.h.
18907 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18908 * tree-chrec.c: Include tree-pretty-print.h.
18909 * tree-data-ref.c: Include tree-pretty-print.h and
18910 gimple-pretty-print.h.
18911 * tree-dfa.c: Include tree-pretty-print.h.
18912 * tree-if-conv.c: Include tree-pretty-print.h and
18913 gimple-pretty-print.h.
18914 * tree-inline.c: Include tree-pretty-print.h.
18915 * tree-into-ssa.c: Include tree-pretty-print.h and
18916 gimple-pretty-print.h.
18917 * tree-nrv.c: Include tree-pretty-print.h.
18918 * tree-object-size.c: Include tree-pretty-print.h and
18919 gimple-pretty-print.h.
18920 * tree-outof-ssa.c: Include tree-pretty-print.h and
18921 gimple-pretty-print.h.
18922 * tree-parloops.c: Include tree-pretty-print.h and
18923 gimple-pretty-print.h.
18924 * tree-predcom.c: Include tree-pretty-print.h and
18925 gimple-pretty-print.h.
18926 * tree-scalar-evolution.c: Include tree-pretty-print.h and
18927 gimple-pretty-print.h.
18928 * tree-sra.c: Include tree-pretty-print.h.
18929 * tree-ssa-address.c: Include tree-pretty-print.h.
18930 * tree-ssa-alias.c: Include tree-pretty-print.h.
18931 * tree-ssa-ccp.c: Include tree-pretty-print.h and
18932 gimple-pretty-print.h.
18933 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
18934 * tree-ssa-copy.c: Include tree-pretty-print.h and
18935 gimple-pretty-print.h.
18936 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
18937 * tree-ssa-dce.c: Include tree-pretty-print.h and
18938 gimple-pretty-print.h.
18939 * tree-ssa-dom.c: Include tree-pretty-print.h and
18940 gimple-pretty-print.h.
18941 * tree-ssa-dse.c: Include gimple-pretty-print.h.
18942 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
18943 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
18944 * tree-ssa-live.c: Include tree-pretty-print.h and
18945 gimple-pretty-print.h.
18946 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
18947 gimple-pretty-print.h.
18948 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
18949 gimple-pretty-print.h.
18950 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
18951 gimple-pretty-print.h.
18952 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
18953 gimple-pretty-print.h.
18954 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
18955 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
18956 * tree-ssa-operands.c: Include tree-pretty-print.h and
18957 gimple-pretty-print.h.
18958 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
18959 gimple-pretty-print.h.
18960 * tree-ssa-pre.c: Include tree-pretty-print.h and
18961 gimple-pretty-print.h.
18962 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
18963 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
18964 gimple-pretty-print.h.
18965 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
18966 gimple-pretty-print.h.
18967 * tree-ssa-sink.c: Include gimple-pretty-print.h.
18968 * tree-ssa-ter.c: Include tree-pretty-print.h and
18969 gimple-pretty-print.h.
18970 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
18971 * tree-ssa.c: Include tree-pretty-print.h and
18972 gimple-pretty-print.h.
18973 * tree-stdarg.c: Include gimple-pretty-print.h.
18974 * tree-switch-conversion.c: Include gimple-pretty-print.h.
18975 * tree-tailcall.c: Include tree-pretty-print.h and
18976 gimple-pretty-print.h.
18977 * tree-vect-data-refs.c: Include tree-pretty-print.h and
18978 gimple-pretty-print.h.
18979 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
18980 gimple-pretty-print.h.
18981 * tree-vect-loop.c: Include tree-pretty-print.h and
18982 gimple-pretty-print.h.
18983 * tree-vect-patterns.c: Include gimple-pretty-print.h.
18984 * tree-vect-slp.c: Include tree-pretty-print.h and
18985 gimple-pretty-print.h.
18986 * tree-vect-stmts.c: Include tree-pretty-print.h and
18987 gimple-pretty-print.h.
18988 * tree-vectorizer.c: Include tree-pretty-print.h.
18989 * tree-vrp.c: Include tree-pretty-print.h and
18990 gimple-pretty-print.h.
18991 * value-prof.c: Include tree-pretty-print.h and
18992 gimple-pretty-print.h.
18993 * var-tracking.c: Include tree-pretty-print.h.
18994 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
18995 (tree-diagnostic.o): New dependencies.
18996 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
18997 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
18998 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
18999 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
19000 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
19001 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
19002 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
19003 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
19004 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
19005 tree-ssa-address.o, tree-ssa-loop-niter.o,
19006 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
19007 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
19008 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
19009 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
19010 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
19011 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
19012 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
19013 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
19014 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
19015 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
19016 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
19017 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
19018 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
19019 tree-switch-conversion.o, var-tracking.o, value-prof.o,
19020 cfgexpand.o, pretty-print.o): Update dependencies.
19021
19022 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
19023
19024 * tree-ssa-structalias.c: Remove tm_p.h from include.
19025
19026 2010-05-21 Jeff Law <law@redhat.com>
19027
19028 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
19029
19030 2010-05-21 Jason Merrill <jason@redhat.com>
19031
19032 * tree-eh.c (cleanup_is_dead_in): New.
19033 (lower_try_finally): Don't generate a dead cleanup region.
19034 (lower_cleanup): Likewise.
19035
19036 2010-05-21 Jakub Jelinek <jakub@redhat.com>
19037
19038 PR debug/44223
19039 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
19040 unchain each use from the cyclic next_regno_use chain first.
19041
19042 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
19043
19044 * real: Do not include gmp.h, mpfr.h, and mpc.h.
19045 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
19046 (real_value_negate, real_value_abs): New prototypes.
19047 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
19048 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
19049 new include file for interface between MPFR and REAL_VALUE_TYPE.
19050 * real.c: Include realmpfr.h.
19051 (real_arithmetic2): Remove legacy function.
19052 (real_value_negate): New.
19053 (real_value_abs): New.
19054 (mfpr_from_real, real_from_mpfr): Move from here...
19055 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
19056 * builtins.c: Include realmpfr.h.
19057 * fold-const.c: Include realmpfr.h.
19058 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
19059 (fold_negate_const): Likewise.
19060 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
19061 * toplev.c: Include realmpfr.h.
19062 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
19063 and real_value_negate.
19064 * fixed-value.c (check_real_for_fixed_mode): Likewise.
19065 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
19066 (vfp3_const_double_index): Likewise.
19067 (arm_print_operand): Likewise.
19068 * Makefile.in: Update dependencies.
19069
19070 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19071
19072 * config/s390/s390.c (override_options): Increase the default
19073 of max-completely-peel-times.
19074
19075 2010-05-21 Julian Brown <julian@codesourcery.com>
19076 Mark Mitchell <mark@codesourcery.com>
19077
19078 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
19079 sibling calls for Thumb-1.
19080 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
19081 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
19082 Thumb-2.
19083 (*call_insn, *call_value_insn): Don't use for Thumb-2.
19084 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
19085 for Thumb-2.
19086 (return): New expander.
19087 (*arm_return): New name for ARM return insn.
19088 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
19089
19090 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
19091
19092 * config.gcc (sparc64-*-rtems*): New target.
19093
19094 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
19095
19096 * tree.c (build_function_decl_skip_args): Fix grammar.
19097 (build_function_type_list_1): Fix typos, adjust formatting.
19098
19099 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
19100
19101 * tree.h: Include real.h and fixed-value.h as basic datatypes.
19102 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
19103 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
19104 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
19105 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
19106 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
19107 tree-pretty-print.c, tree-loop-distribution.c,
19108 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
19109 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
19110 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
19111 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
19112 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
19113 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
19114 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
19115 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
19116 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
19117 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
19118 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
19119 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
19120 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
19121 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
19122 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
19123 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
19124 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
19125 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
19126 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
19127 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
19128 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
19129 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
19130 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
19131 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
19132 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
19133 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
19134 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
19135 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
19136 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
19137 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
19138 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
19139 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
19140 config/score/score7.c, config/score/score.c, config/arm/arm.c,
19141 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
19142 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
19143 config/bfin/bfin.c: Clean up redundant includes.
19144 * Makefile.in: Update accordingly.
19145
19146 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
19147
19148 PR middle-end/44204
19149 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
19150 statement has no arguments.
19151
19152 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
19153
19154 PR/44139
19155 * varasm.c (emutls_decl): Merge attributes to new decl.
19156
19157 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
19158
19159 PR middle-end/44101
19160 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
19161 around the uniquized constructor if its type requires a conversion.
19162
19163 2010-05-21 Jakub Jelinek <jakub@redhat.com>
19164
19165 PR debug/44205
19166 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
19167 at -O0 goto_locus of any of the incoming edges differs from
19168 goto_locus of outgoing edge, or gimple_location of any of the
19169 labels differs.
19170
19171 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
19172
19173 * ira.c (ira_non_ordered_class_hard_regs): Define.
19174 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
19175 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
19176 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
19177 cost of unaligned hard regs when allocating multi-reg pseudos.
19178
19179 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
19180
19181 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
19182 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
19183 for TARGET_NO_FLOAT.
19184 * config/mips/mips.c (mips_file_start): Expand conditional expression
19185 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
19186 (mips_override_options): Move -mno-float override -msoft-float and
19187 -mhard-float.
19188 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
19189 Condition(TARGET_SUPPORTS_NO_FLOAT).
19190 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
19191 __mips_no_float here.
19192 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
19193 (TARGET_SUPPORTS_NO_FLOAT): Define.
19194 * config/mips/sdemtk.opt: Delete.
19195
19196 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
19197
19198 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
19199
19200 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
19201
19202 PR target/43733
19203 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
19204 * configure: Regenerate.
19205 * config.in: Regenerate.
19206 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
19207 instead of sahf only for 64bit targets.
19208
19209 2010-05-20 Jakub Jelinek <jakub@redhat.com>
19210
19211 PR debug/44178
19212 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
19213 setup_ref_regs for DEBUG_INSNs.
19214
19215 2010-05-20 Jan Hubicka <jh@suse.cz>
19216
19217 PR middle-end/44197
19218 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
19219
19220 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
19221
19222 PR bootstrap/43870
19223 * df-scan.c (df_ref_compare): Stabilize sort.
19224
19225 2010-05-20 Jakub Jelinek <jakub@redhat.com>
19226
19227 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
19228 argument. Don't use DW_OP_piece if offset is non-zero,
19229 put offset into second DW_OP_bit_piece argument.
19230 (dw_sra_loc_expr): Adjust callers. For memory expressions
19231 compute offset.
19232
19233 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
19234
19235 PR target/44202
19236 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
19237 settings for 16-bit-constant "addo" alternative.
19238
19239 2010-05-19 James E. Wilson <wilson@codesourcery.com>
19240
19241 * config/mips/mips-dsp.md (add<DSPV:mode>3,
19242 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
19243
19244 PR target/43764
19245 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
19246 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
19247 Use it.
19248
19249 2010-05-19 Joseph Myers <joseph@codesourcery.com>
19250
19251 * diagnostic.c (FLOAT, FFS): Don't undefine.
19252 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
19253 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
19254 include ordering.
19255
19256 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
19257
19258 * combine.c (propagate_for_debug): Call make_compound_operation
19259 on the source value.
19260 (try_combine): When implementing a split chosen by find_split_point,
19261 either copy i2src or set it to null. Assert that i2src is not null
19262 before substituting into CALL_INSN_FUNCTION_USAGE.
19263
19264 2010-05-19 Anatoly Sokolov <aesok@post.ru>
19265
19266 * double-int.h (double_int_ior): New function.
19267 * tree.h (build_int_cst_wide_type): Remove.
19268 * tree.c (build_int_cst_wide_type): Remove.
19269 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
19270 of build_int_cst_wide_type.
19271 * stor-layout.c (set_sizetype): (Ditto.).
19272 * dojump.c (do_jump): Use build_int_cstu instead of
19273 build_int_cst_wide_type.
19274
19275 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
19276
19277 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
19278 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
19279 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
19280 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
19281 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
19282 propagate the 'data' argument to copy_tree_r.
19283 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
19284 Propagate 'data' argument to walk_tree.
19285 (copy_if_shared): New function.
19286 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
19287 (unmark_visited): New function.
19288 (unshare_body): Call copy_if_shared instead of doing it manually.
19289 (unvisit_body): Call unmark_visited instead of doing it manually.
19290
19291 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
19292
19293 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
19294 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
19295 * hooks.c: Likewise.
19296 * target-def.h (TARGET_FOLD_BUILTIN): Define to
19297 hook_tree_tree_int_treep_bool_null.
19298 * target.h (struct gcc_target): Update signature of fold_builtin
19299 field.
19300 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
19301 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
19302 instead of the call expression.
19303 (fold_builtin_call_array): Pass n and argarray directly.
19304 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
19305 consing a list.
19306 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
19307 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
19308 `i' and use it in place of `arity'.
19309 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
19310 Dereference `args' directly.
19311 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
19312
19313 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19314
19315 * doc/sourcebuild.texi (Effective-Target Keywords): Document
19316 3dnow, sse3, sse2.
19317 (Directives): Document optional dg-require-effective-target
19318 selector.
19319
19320 2010-05-19 Richard Guenther <rguenther@suse.de>
19321
19322 PR lto/44196
19323 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
19324
19325 2010-05-19 Richard Guenther <rguenther@suse.de>
19326
19327 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
19328 * common.opt (fwhopr=): New.
19329 * opts.c (common_handle_option): Handle OPT_fwhopr.
19330 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
19331 * collect2.c (main): Match -fwhopr*.
19332 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
19333 Execute ltrans stage in parallel when jobs is bigger than 1.
19334
19335 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19336
19337 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19338 pentiumpro on Solaris 8/x86 with Sun as.
19339 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
19340 hidden alias bug.
19341 (gcc_cv_as_ix86_quad): Check for .quad directive.
19342 * configure: Regenerate.
19343 * config.in: Regenerate.
19344 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
19345
19346 2010-05-19 Martin Jambor <mjambor@suse.cz>
19347
19348 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
19349 also for indirect edges. Actual printing moved...
19350 (ipa_print_node_jump_functions_for_edge): ...here.
19351 (ipa_compute_jump_functions): Renamed to
19352 ipa_compute_jump_functions_for_edge and made static.
19353 (ipa_compute_jump_functions): New function.
19354 (make_edge_direct_to_target): Check if the number of arguments on
19355 the newly direct edge is the same as the number of parametrs of
19356 the callee.
19357 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
19358 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
19359 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
19360 analysis functions unconditionally, call the new
19361 ipa_analyze_params_uses on the node instead of every edge.
19362
19363 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
19364
19365 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
19366 to tree.
19367 (dump_mem_ref): Adopt debug code to handle a tree as step. This
19368 also checks for a constant int vs. non-constant but
19369 loop-invariant steps.
19370 (find_or_create_group): Change the sort algorithm to only consider
19371 steps that are constant ints.
19372 (idx_analyze_ref): Adopt code to handle a tree instead of a
19373 HOST_WIDE_INT for step.
19374 (gather_memory_references_ref): Handle tree instead of int and be
19375 prepared to see a NULL_TREE.
19376 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
19377 prefetches if the step cannot be calculated at compile time.
19378 (issue_prefetch_ref): Issue prefetches for non-constant but
19379 loop-invariant steps.
19380
19381 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
19382
19383 Revert:
19384 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
19385
19386 * tree.h (build_call_list): Remove.
19387 * tree.c (build_call_list): Remove.
19388
19389 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
19390
19391 * tree.h (build_call_list): Remove.
19392 * tree.c (build_call_list): Remove.
19393
19394 2010-05-18 Jan Hubicka <jh@suse.cz>
19395
19396 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
19397
19398 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
19399
19400 PR rtl-optimization/43332
19401 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
19402
19403 2010-05-18 Anatoly Sokolov <aesok@post.ru>
19404
19405 * tree.h (build_int_cstu): Implement as static inline.
19406 * tree.c (build_int_cstu): Remove function.
19407 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
19408 sign extended.
19409
19410 2010-05-18 Richard Guenther <rguenther@suse.de>
19411
19412 PR lto/44143
19413 * lto-wrapper.c (verbose): New variable. Initialize from -v.
19414 (debug): Initialize from -save-temps.
19415 (collect_execute): Print command-line when verbose.
19416 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
19417 for ltrans invocation. Produce -dumpbase flag again.
19418 (process_args): Remove.
19419 (main): Simplify.
19420 * collect2.c (maybe_run_lto_and_relink): Only pass object
19421 files to lto-wrapper.
19422 * gcc.c (LINK_COMMAND_SPEC): Likewise.
19423
19424 2010-05-18 Jan Hubicka <jh@suse.cz>
19425
19426 * opts.c (decode_options): Do not disable whopr at ipa_cp.
19427 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
19428
19429 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
19430
19431 PR lto/44184
19432 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
19433 in a GIMPLE_ASM.
19434 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
19435 in a GIMPLE_ASM.
19436
19437 2010-05-18 Jakub Jelinek <jakub@redhat.com>
19438
19439 PR debug/41371
19440 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
19441 rtx_equal_p inline.
19442
19443 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
19444
19445 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
19446 lto-macho as lto_binary_reader.
19447
19448 * darwin.c (darwin_asm_named_section): Do not add assembler comment
19449 after .section directive; just print it before the directive instead.
19450
19451 2010-05-17 Jan Hubicka <jh@suse.cz>
19452
19453 * cgraph.c (cgraph_create_virtual_clone): Only check
19454 versionable_function_p when not in wpa and checking is enabled.
19455 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
19456 there are no more functions to materialize.
19457
19458 2010-05-17 Jan Hubicka <jh@suse.cz>
19459
19460 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
19461 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
19462 New functions.
19463 (output_cgraph): Call output_cgraph_opt_summary.
19464 (input_cgrpah): Call input_cgraph_opt_summary.
19465 (output_cgraph_opt_summary_p, output_node_opt_summary,
19466 input_node_opt_summary, input_cgraph_opt_section): New functions.
19467 * lto-section-in.c (lto_section_name): Add cgraphopt.
19468 * tree-inline.c (tree_function_versioning): Handle parm_num.
19469 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
19470 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
19471
19472 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
19473
19474 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
19475 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
19476 the insn to prefetch ratio heuristic to loops with known trip count.
19477
19478 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
19479
19480 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
19481 (schedule_prefetches): Do not generate a prefetch if the unroll factor
19482 is far from what is required by the prefetch.
19483
19484 2010-05-17 Jan Hubicka <jh@suse.cz>
19485
19486 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
19487 (ipcp_estimate_growth): Likewise.
19488 (ipcp_const_param_count): Likewise.
19489 (ipcp_insert_stage): Likewise.
19490 * ipa-prop.c (visit_load_for_mod_analysis): New function.
19491 (visit_store_addr_for_mod_analysis): Set used flag.
19492 (ipa_detect_param_modifications): Set used flag for SSE params;
19493 update use of walk_stmt_load_store_addr_ops.
19494 (ipa_print_node_params): Print used flag.
19495 (ipa_write_node_info): Stream used flag.
19496 (ipa_read_node_info): Likewise.
19497 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
19498 (ipa_is_param_used): New function.
19499 (lto_ipa_fixup_call_notes): Remove unused declaration.
19500
19501 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19502
19503 PR target/44074
19504 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
19505 * configure: Regenerate.
19506 * config.in: Regenerate.
19507 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
19508 !HAVE_AS_IX86_REP_LOCK_PREFIX.
19509 Don't emit whitespace.
19510 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
19511 (*rep_movsi): Likewise.
19512 (*rep_movsi_rex64): Likewise.
19513 (*rep_movqi): Likewise.
19514 (*rep_movqi_rex64): Likewise.
19515 (*rep_stosdi_rex64): Likewise.
19516 (*rep_stossi): Likewise.
19517 (*rep_stossi_rex64): Likewise.
19518 (*rep_stosqi): Likewise.
19519 (*rep_stosqi_rex64): Likewise.
19520 (*cmpstrnqi_nz_1): Use {%;} after repz.
19521 (*cmpstrnqi_nz_rex_1): Likewise.
19522 (*cmpstrnqi_1): Likewise.
19523 (*cmpstrnqi_rex_1): Likewise.
19524 (*strlenqi_1): Use {%;} after repnz.
19525 (*strlenqi_rex_1): Likewise.
19526 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
19527 (*sync_compare_and_swap<mode>): Likewise.
19528 (sync_double_compare_and_swap<mode>): Likewise.
19529 (*sync_double_compare_and_swapdi_pic): Likewise.
19530 (sync_old_add<mode>): Likewise.
19531 (sync_add<mode>): Likewise.
19532 (sync_sub<mode>): Likewise.
19533 (sync_<code><mode>): Likewise.
19534
19535 2010-05-17 Martin Jambor <mjambor@suse.cz>
19536
19537 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
19538 otr_token and polymorphic.
19539 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
19540 (cgraph_clone_edge): Copy the above fields.
19541 * tree.c (get_binfo_at_offset): New function.
19542 * tree.h (get_binfo_at_offset): Declare.
19543 * ipa-prop.h (enum jump_func_type): Added known_type jump function
19544 type, reordered items, updated comments.
19545 (union jump_func_value): Added base_type field, reordered fields.
19546 (enum ipa_lattice_type): Moved down in the file.
19547 (struct ipa_param_descriptor): New field polymorphic.
19548 (ipa_is_param_polymorphic): New function.
19549 * ipa-prop.c: Include gimple.h and gimple-fold.h.
19550 (ipa_print_node_jump_functions): Print known type jump functions.
19551 (compute_complex_pass_through): Renamed to...
19552 (compute_complex_assign_jump_func): this.
19553 (compute_complex_ancestor_jump_func): New function.
19554 (compute_known_type_jump_func): Likewise.
19555 (compute_scalar_jump_functions): Create known type and complex ancestor
19556 jump functions.
19557 (ipa_note_param_call): New parameter polymorphic, set the corresponding
19558 flag in the call note accordingly.
19559 (ipa_analyze_call_uses): Renamed to...
19560 (ipa_analyze_indirect_call_uses): this. New parameter target, define
19561 variable var only in the block where it is used.
19562 (ipa_analyze_virtual_call_uses): New function.
19563 (ipa_analyze_call_uses): Likewise.
19564 (combine_known_type_and_ancestor_jfs): Likewise.
19565 (update_jump_functions_after_inlining): Implemented handling of a
19566 number of new jump function types combination.
19567 (print_edge_addition_message): Removed.
19568 (make_edge_direct_to_target): New function.
19569 (try_make_edge_direct_simple_call): Likewise.
19570 (try_make_edge_direct_virtual_call): Likewise.
19571 (update_call_notes_after_inlining): Renamed to...
19572 (update_indirect_edges_after_inlining): this. Moved edge creation for
19573 indirect calls to try_make_edge_direct_simple_call, also calls
19574 try_make_edge_direct_virtual_call for virtual calls.
19575 (ipa_print_node_params): Changed the header message.
19576 (ipa_write_jump_function): Stream also known type jump functions.
19577 (ipa_read_jump_function): Likewise.
19578 (ipa_write_indirect_edge_info): Stream new fields in
19579 cgraph_indirect_call_info.
19580 (ipa_read_indirect_edge_info): Likewise.
19581 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
19582 GIMPLE_FOLD_H.
19583
19584 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19585
19586 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
19587
19588 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
19589
19590 * tree.h (CALL_EXPR_ARGS): Delete.
19591 (call_expr_arglist): Delete.
19592 * tree.c (call_expr_arglist): Delete.
19593 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
19594 targetm.fold_builtin.
19595 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
19596 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
19597 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
19598 arglist parameter. Use CALL_EXPR_ARG.
19599 (picochip_expand_builtin_3op): Likewise.
19600 (picochip_expand_builtin_2opvoid): Likewise.
19601 (picochip_expand_array_get): Likewise.
19602 (picochip_expand_array_put): Likewise.
19603 (picochip_expand_array_testport): Likewise.
19604 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
19605 rather than arglist.
19606 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
19607 CALL_EXPR_ARGS.
19608 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
19609 than TREE_VALUE and TREE_CHAIN.
19610 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
19611 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
19612 the arglist.
19613
19614 2010-05-17 Jakub Jelinek <jakub@redhat.com>
19615
19616 PR bootstrap/42347
19617 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
19618 to have no fallthru edge.
19619
19620 PR middle-end/44102
19621 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
19622 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
19623 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
19624 add BARRIER after previous bb if needed.
19625
19626 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
19627
19628 * tree.c (build_function_type_list_1): Remove bogus assert condition.
19629
19630 2010-05-17 Alan Modra <amodra@gmail.com>
19631
19632 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
19633 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
19634 with copy_reg rtx param.
19635 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
19636 Correct cases where code for ABI_V4 did not initialise the reg
19637 used to access frame. Also leave frame_reg_rtx as sp for large
19638 frames that save no regs.
19639
19640 2010-05-17 Martin Jambor <mjambor@suse.cz>
19641
19642 PR middle-end/44133
19643 * tree-sra.c (create_access_replacement): New parameter rename, mark
19644 the replaement for renaming only when it is true.
19645 (get_access_replacement): Pass true in the rename parameter of
19646 create_access_replacement.
19647 (get_unrenamed_access_replacement): New function.
19648 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
19649 replacement declaration from it.
19650
19651 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
19652
19653 * function.c (try_fit_stack_local, add_frame_space): New static
19654 functions.
19655 (assign_stack_local_1): Use them. Look for opportunities to use
19656 space previously wasted on alignment.
19657 * function.h (struct frame_space): New.
19658 (struct rtl_data): Add FRAME_SPACE_LIST member.
19659 * reload1.c (something_was_spilled): New static variable.
19660 (alter_reg): Set it.
19661 (reload): Test it in addition to testing if the frame size changed.
19662
19663 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
19664
19665 * config/s390/s390.c: Define sane prefetch settings and activate
19666 flag_prefetch_loop_arrays on -O3.
19667 * config/s390/s390.h: Declare that read can use write prefetch.
19668
19669 2010-05-17 Jakub Jelinek <jakub@redhat.com>
19670
19671 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
19672 build.
19673
19674 2010-05-16 Jan Hubicka <jh@suse.cz>
19675
19676 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
19677 function body; do not check stdarg field of struct function.
19678
19679 2010-05-16 Jan Hubicka <jh@suse.cz>
19680
19681 * cgraph.c (dump_cgraph_node): Dump versionable flag.
19682 * cgraph.h (cgraph_local_info): Add versionable flag.
19683 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
19684 (ipcp_versionable_function_p): Use it.
19685 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
19686 versionable flag.
19687
19688 2010-05-16 Jan Hubicka <jh@suse.cz>
19689
19690 * cgraph.c (cgraph_clone_node): Take decl argument and insert
19691 clone into hash when it is different from orig.
19692 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
19693 * cgraph.h (cgraph_clone_node): Update prototype.
19694 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
19695 (lto_cgraph_encoder_delete): Delete body map.
19696 (lto_cgraph_encoder_size): Move to header.
19697 (lto_cgraph_encoder_encode_body_p,
19698 lto_set_cgraph_encoder_encode_body): New.
19699 (lto_output_node): Do not take written_decls argument; output clone_of
19700 pointer.
19701 (add_node_to): Add include_body_argument; call
19702 lto_set_cgraph_encoder_encode_body on master of the clone.
19703 (add_references): Update use of add_node_to.
19704 (compute_ltrans_boundary): Likewise.
19705 (output_cgraph): Do not create written_decls bitmap.
19706 (input_node): Take nodes argument; stream in clone_of correctly.
19707 (input_cgraph_1): Update use of input_node.
19708 * lto-streamer-out.c (lto_output): Use encoder info to decide
19709 what bodies to output.
19710 * ipa-inline.c (cgraph_clone_inlined_nodes,
19711 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
19712 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
19713 (lto_cgraph_encoder_size): Define here.
19714 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
19715 Declare.
19716
19717 2010-05-16 Richard Guenther <rguenther@suse.de>
19718
19719 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
19720 -fipa-type-escape.
19721 * ipa-type-escape.c (gate_type_escape_vars): Run when
19722 -fipa-struct-reorg runs.
19723 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
19724 * common.opt (fipa-type-escape): Remove.
19725
19726 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
19727
19728 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
19729 (decode_options): Likewise.
19730 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
19731
19732 2010-05-16 Jan Hubicka <jh@suse.cz>
19733
19734 * ipa.c (function_and_variable_visibility): Also bring local all
19735 aliases.
19736
19737 2010-05-16 Richard Guenther <rguenther@suse.de>
19738
19739 * alias.c (nonoverlapping_memrefs_p): Remove use of
19740 IPA type-escape information.
19741
19742 2010-05-16 Joseph Myers <joseph@codesourcery.com>
19743
19744 * c-common.c (c_common_reswords): Add _Static_assert for C.
19745 * c-parser.c (c_token_starts_declaration,
19746 c_parser_next_token_starts_declaration,
19747 c_parser_static_assert_declaration_no_semi,
19748 c_parser_static_assert_declaration): New.
19749 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
19750 Handle static assertions if static_assert_ok.
19751 (c_parser_external_declaration, c_parser_declaration_or_fndef,
19752 c_parser_compound_statement_nostart, c_parser_label,
19753 c_parser_for_statement, c_parser_objc_methodprotolist,
19754 c_parser_omp_for_loop): All callers of
19755 c_parser_declaration_or_fndef changed.
19756 (c_parser_struct_declaration): Handle static assertions.
19757 (c_parser_compound_statement_nostart): Use
19758 c_parser_next_token_starts_declaration and
19759 c_token_starts_declaration to detect start of declarations.
19760 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
19761 Likewise.
19762
19763 2010-05-16 Anatoly Sokolov <aesok@post.ru>
19764
19765 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19766 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19767 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19768 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19769 (mmix_function_outgoing_value): Rename to...
19770 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
19771 (mmix_function_value_regno_p): Make static.
19772 (mmix_libcall_value): New function.
19773 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
19774 mmix_function_value_regno_p): Remove declaration.
19775
19776 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
19777
19778 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
19779 BUILT_IN_ALLOCA if stack checking is enabled.
19780
19781 2010-05-16 Richard Guenther <rguenther@suse.de>
19782
19783 * var-tracking.c (vars_copy_1): Inline ...
19784 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
19785 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
19786 (variable_merge_over_cur): Adjust. Merge asserts.
19787 (variable_merge_over_src): Likewise.
19788 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
19789 (variable_post_merge_new_vals): Merge asserts.
19790 (variable_post_merge_perm_vals): Likewise.
19791 (find_mem_expr_in_1pdv): Likewise.
19792 (dataflow_set_different_value): Remove.
19793 (onepart_variable_different_p): Merge asserts.
19794 (variable_different_p): Likewise.
19795 (dataflow_set_different_1): Inline ...
19796 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
19797 (emit_notes_for_differences_1): Merge asserts.
19798
19799 2010-05-16 Richard Guenther <rguenther@suse.de>
19800
19801 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
19802 * optabs.c (libfunc_decl_hash): Likewise.
19803 * varasm.c (emutls_decl): Likewise.
19804
19805 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
19806
19807 * c-decl.c: Don't include gimple.h.
19808 (merge_decls): Do not copy gimple_body.
19809
19810 2010-05-15 Jason Merrill <jason@redhat.com>
19811
19812 * c.opt: Add -fnothrow-opt.
19813
19814 2010-05-15 Jan Hubicka <jh@suse.cz>
19815
19816 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
19817 analyzed.
19818 * passes.c (ipa_write_summaries): Write all analyzed nodes.
19819
19820 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
19821
19822 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
19823 * Makefile.in: Add it.
19824 Fix all other Makefile dependencies for changes below.
19825 * tree.h: Include it instead of defining VEC primitives here.
19826 * gimple.h: Likewise.
19827 * rtl.h: Likewise.
19828 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
19829 * except.h: Include vecir.h, break dependence on tree.h.
19830
19831 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
19832 Move from here...
19833 * tree-iterator.c: ...to here.
19834 * tree-iterator.h: Fix file introduction comment. Add extern markers.
19835
19836 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
19837 tm_p.h.
19838 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
19839 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
19840 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
19841 tree-mudflap.h, and target.h.
19842 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
19843 predict.h, tree-inline.h, gimple.h, and langhooks.h.
19844 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
19845 Add FIXME for why gimple.h is still included (should be unnecessary
19846 since GCC 4.5 gimplification unit-at-a-time).
19847 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
19848 * c-pragma.c: Add FIXME for why function.h needs to be included just
19849 for cfun, at front-end level.
19850 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
19851 Do not include ggc.h, but include vecprim.h for VEC(char).
19852 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
19853 Explain why target.h is included.
19854 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
19855 Explain why gimple.h is included.
19856 * c-ppoutput.c: Do not include tm.h.
19857 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
19858 * c-parses.c: Explain why rtl.h is included, and that this (and only
19859 this) is also why tm.h must be included.
19860 Do not include except.h.
19861 * c-lang.c: Do not include ggc.h.
19862
19863 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
19864
19865 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
19866
19867 2010-05-15 Joseph Myers <joseph@codesourcery.com>
19868
19869 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
19870 unions by default if those structs and unions have no tags. Do
19871 not condition anonymous struct and unions handling on flag_iso.
19872 Allow anonymous structs and unions for C1X.
19873 (finish_struct): Do not diagnose lack of named fields when
19874 anonymous structs and unions present for C1X. Accept flexible
19875 array members in structure with anonymous structs or unions but no
19876 directly named fields.
19877 * doc/extend.texi (Unnamed Fields): Update.
19878
19879 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
19880
19881 * gimple.h (compare_field_offset): Rename into...
19882 (gimple_compare_field_offset): ...this.
19883 * gimple.c (compare_field_offset): Rename into...
19884 (gimple_compare_field_offset): ...this. Compare the full access if
19885 the offset is self-referential.
19886 (gimple_types_compatible_p): Adjust for above renaming.
19887 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
19888 DECL_NONADDRESSABLE_P flag of fields before merging them.
19889
19890 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
19891
19892 * tree.h (ctor_to_list): Delete.
19893 * tree.c (ctor_to_list): Delete.
19894
19895 2010-05-15 Jan Hubicka <jh@suse.cz>
19896
19897 * ipa-reference.c: Include toplev.h
19898 (is_proper_for_analysis): Only add to all_module_statics
19899 if it is allocated.
19900 (write_node_summary_p, stream_out_bitmap,
19901 ipa_reference_write_optimization_summary,
19902 ipa_reference_read_optimization_summary): New.
19903 (struct ipa_opt_pass_d pass_ipa_reference): Add
19904 optimization summary streaming.
19905 * lto-cgraph.c (referenced_from_this_partition_p,
19906 reachable_from_this_partition_p): New functions.
19907 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
19908 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
19909 * opts.c (decode_options): Enable ipa_reference.
19910 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
19911 * lto-streamer.h (referenced_from_this_partition_p,
19912 reachable_from_this_partition_p): Declare.
19913
19914 2010-05-15 Richard Guenther <rguenther@suse.de>
19915
19916 PR tree-optimization/44038
19917 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
19918 taking the address of a V_C_E of a constant.
19919
19920 2010-05-14 Jan Hubicka <jh@suse.cz>
19921
19922 * tree.h (memory_identifier_string): Remove.
19923 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
19924 (ipa_reference_global_vars_info_d): Remove statics_not_read and
19925 statics_not_written.
19926 (ipa_reference_optimization_summary_d): New structure.
19927 (ipa_reference_optimization_summary_t): New type and vector.
19928 (ipa_reference_vars_info_d): Embedd structures instead of using
19929 pointers.
19930 (reference_vars_to_consider): Remove out of GGC space.
19931 (module_statics_escape): Remove.
19932 (global_info_obstack): Rename to ...
19933 (optimization_summary_obstack): ... this one.
19934 (initialization_status_t): Remove.
19935 (memory_identifier_string): Remove.
19936 (get_reference_vars_info): Fix indenting.
19937 (set_reference_vars_info): Likewise.
19938 (get_reference_optimization_summary): New.
19939 (set_reference_optimization_summary): New.
19940 (get_global_reference_vars_info): Remove.
19941 (ipa_reference_get_read_global): Remove.
19942 (ipa_reference_get_written_global): Remove.
19943 (ipa_reference_get_not_read_global): Update.
19944 (ipa_reference_get_not_written_global): Update.
19945 (is_proper_for_analysis): Outlaw addressable.
19946 (propagate_bits): Update for new datastructures.
19947 (analyze_variable): Remove.
19948 (init_function_info): Update for new datastructures.
19949 (clean_function_local_data): Remove.
19950 (clean_function): Remove.
19951 (copy_global_bitmap): Use optimizations_summary_obstack.
19952 (duplicate_node_data): Duplicate optimization summary only.
19953 (remove_node_data): Remove optimization summary only.
19954 (generate_summary): Do not analyze variables; do not compute
19955 module_statics_escape; do not prune solutions by it.
19956 (read_write_all_from_decl): Fix typos in comments.
19957 (propagate): Doscover readonly and nonaddressable first;
19958 update for new datastructures; share global bitmaps.
19959 * ipa-reference.h (ipa_reference_get_read_global,
19960 ipa_reference_get_written_global): Remove.
19961 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
19962 * Makefile.in: Remove ipa-refereference from GT files.
19963
19964 2010-05-14 Jakub Jelinek <jakub@redhat.com>
19965
19966 PR debug/44112
19967 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
19968 for all SYMBOL_REF_DECLs.
19969
19970 2010-05-14 Jan Hubicka <jh@suse.cz>
19971
19972 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
19973 (varpool_all_refs_explicit_p): New inline function.
19974 * ipa-reference.c: Update comment.
19975 (module_statics_written): Remove.
19976 (get_static_decl): Remove.
19977 (ipa_init): Do not initialize module_statics_written.
19978 (analyze_function): Likewise.
19979 (generate_summary): Likewise; do not compute module_statics_readonly
19980 and do not update variable flags.
19981 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
19982 * ipa.c: Inlucde flags.h
19983 (cgraph_local_node_p): New.
19984 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
19985 promote functions to local.
19986 (ipa_discover_readonly_nonaddressable_vars): New function.
19987 (function_and_variable_visibility): Use cgraph_local_node_p.
19988 * varpool.c (varpool_finalize_decl): Set force_output for
19989 DECL_PRESERVE_P vars.
19990
19991 2010-05-14 Jan Hubicka <jh@suse.cz>
19992
19993 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
19994
19995 2010-05-14 Richard Guenther <rguenther@suse.de>
19996
19997 PR tree-optimization/44119
19998 * tree-ssa-pre.c (eliminate): Properly mark replacement of
19999 a PHI node necessary.
20000
20001 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
20002
20003 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
20004
20005 2010-05-14 Jason Merrill <jason@redhat.com>
20006
20007 PR c++/44127
20008 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
20009 (gimple_call_set_nothrow): New.
20010 * gimple.c (gimple_build_call_from_tree): Call it.
20011 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
20012
20013 PR c++/44127
20014 * gimplify.c (gimplify_seq_add_stmt): No longer static.
20015 * gimple.h: Declare it.
20016 * gimple.c (gimple_build_eh_filter): No ops.
20017
20018 2010-05-14 Jan Hubicka <jh@suse.cz>
20019
20020 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
20021 nodes already in queue.
20022 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
20023 re-enqueueing node.
20024
20025 2010-05-14 Jakub Jelinek <jakub@redhat.com>
20026
20027 PR debug/44136
20028 * cfgexpand.c (expand_debug_expr): If non-memory op0
20029 has BLKmode, return NULL.
20030
20031 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
20032
20033 * config.gcc: Add support for --with-cpu option for bdver1.
20034 * config/i386/i386.h (TARGET_BDVER1): New macro.
20035 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
20036 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
20037 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
20038 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
20039 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
20040 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
20041 (processor_type): Add PROCESSOR_BDVER1.
20042 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
20043 processor_type in config/i386/i386.h.
20044 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
20045 movaps <reg, reg> instead of movapd <reg, reg> when replacing
20046 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
20047 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
20048 to emit packed xor instead of packed double/packed integer
20049 xor for SSE and AVX when moving a zero value.
20050 * config/i386/sse.md: Add check for
20051 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
20052 movapd/movdqa for SSE and AVX.
20053 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
20054 single logical operations i.e and, or and xor instead of packed double
20055 logical operations for SSE and AVX.
20056 * config/i386/i386-c.c (ix86_target_macros_internal):
20057 Add PROCESSOR_BDVER1.
20058 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
20059 (has_fma4, has_xop): New.
20060 * config/i386/i386.c (bdver1_cost): New variable.
20061 (m_BDVER1): New macro.
20062 (m_AMD_MULTIPLE): Add m_BDVER1.
20063 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
20064 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
20065 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
20066 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
20067 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
20068 x86_tune_sse_partial_reg_dependency,
20069 x86_tune_sse_unaligned_load_optimal,
20070 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
20071 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
20072 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
20073 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
20074 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
20075 Enable/disable for bdver1.
20076 (processor_target_table): Add bdver1_cost.
20077 (cpu_names): Add bdver1.
20078 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
20079 processor_alias_table.
20080 (ix86_expand_vector_move_misalign): Change.
20081 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
20082 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
20083 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
20084 of movupd/movdqu for SSE and AVX.
20085 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
20086 (ix86_tune_adjust_cost): Add code for bdver1.
20087 (standard_sse_constant_opcode): Add check for
20088 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
20089 of packed double xor for SSE and AVX.
20090
20091 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
20092
20093 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
20094 result to unsigned.
20095
20096 2010-05-14 Tristan Gingold <gingold@adacore.com>
20097
20098 * toplev.c (default_debug_hooks): Remove this variable.
20099 (process_options): Remove assignments to default_debug_hooks.
20100
20101 2010-05-14 Martin Jambor <mjambor@suse.cz>
20102
20103 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
20104 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
20105 * langhooks.h (struct lang_hooks_for_decls): Removed field
20106 fold_obj_type_ref.
20107 * tree.c (free_lang_data): Remove assignment to
20108 lang_hooks.fold_obj_type_ref.
20109 * tree.def (OBJ_TYPE_REF): Update comment.
20110
20111 2010-05-14 Richard Guenther <rguenther@suse.de>
20112
20113 PR tree-optimization/44124
20114 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
20115
20116 2010-05-14 Alan Modra <amodra@gmail.com>
20117
20118 PR target/44075
20119 * config/rs6000/rs6000.c (struct machine_function): Reorder
20120 fields for better packing. Add lr_save_state.
20121 (rs6000_ra_ever_killed): Return lr_save_state if set.
20122 (rs6000_emit_eh_reg_restore): Set lr_save_state.
20123
20124 2010-05-13 Jan Hubicka <jh@suse.cz>
20125
20126 * varpool.c (decide_is_variable_needed): Drop code checking
20127 TREE_SYMBOL_REFERENCED.
20128
20129 2010-05-13 Jan Hubicka <jh@suse.cz>
20130
20131 * final.c (output_addr_const): Do not call mark_decl_referenced.
20132 * cgraphunit.c (process_function_and_variable_attributes): Use
20133 mark_needed_node dirrectly.
20134 (assemble_thunk): Do not call mark_decl_referenced.
20135
20136 2010-05-13 Anatoly Sokolov <aesok@post.ru>
20137
20138 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
20139
20140 2010-05-13 Jeff Law <law@redhat.com>
20141
20142 * ira-conflicts.c (print_allocno_conflicts): New function broken out
20143 from...
20144 (print_conflicts): Call print_allocno_conflicts.
20145
20146 2010-05-13 Jakub Jelinek <jakub@redhat.com>
20147
20148 PR debug/44104
20149 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
20150 if it is NULL.
20151
20152 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
20153
20154 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
20155 t-mingw-w64 or t-mingw-w32 for multilib configuration.
20156 * config/i386/t-mingw-w32: New.
20157 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
20158
20159 2010-05-13 Martin Jambor <mjambor@suse.cz>
20160
20161 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
20162 gimple-fold.c).
20163 * gimple-fold.c (get_base_binfo_for_type): New function.
20164 (gimple_get_relevant_ref_binfo): Likewise.
20165 (gimple_fold_obj_type_ref_known_binfo): Likewise.
20166 (gimple_fold_obj_type_ref): Likewise.
20167 (fold_gimple_call): Simplify condition for folding virtual calls
20168 and call gimple_fold_obj_type_ref.
20169 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
20170 (gimple_fold_obj_type_ref_known_binfo): Likewise.
20171
20172 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
20173
20174 * config/rs6000/rs6000-protos.h
20175 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
20176 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
20177 (rs6000_debug_mode_dependent_address)
20178 (rs6000_mode_dependent_address_ptr): Likewise.
20179
20180 2010-05-13 Jakub Jelinek <jakub@redhat.com>
20181
20182 PR debug/43983
20183 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
20184 by SRA.
20185 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
20186 * tree-sra.c (create_access_replacement): Call unshare_expr before
20187 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
20188 * dwarf2out.c: Include tree-flow.h.
20189 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
20190 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
20191 Handle DW_OP_bit_piece.
20192 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
20193 construct_piece_list, adjust_piece_list): New functions.
20194 (add_var_loc_to_decl): Handle SRA optimized variables.
20195 Adjust for var_loc_note to loc field renaming.
20196 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
20197 in VAR_LOCATION note.
20198 (new_loc_descr_op_bit_piece): New function.
20199 (dw_sra_loc_expr): New function.
20200 (dw_loc_list): Use it. Don't handle the last range after the
20201 loop, handle it inside of the loop. Adjust for var_loc_note
20202 to loc field renaming.
20203 (add_location_or_const_value_attribute): Only special case
20204 single entry loc lists if loc is NOTE_P. Adjust for
20205 var_loc_note to loc field renaming.
20206 (dwarf2out_var_location): Don't set newloc->var_loc_note
20207 and newloc->next here.
20208
20209 2010-05-12 Jan Hubicka <jh@suse.cz>
20210
20211 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
20212 flag.
20213 * cgraph.h (cgraph_only_called_directly_p,
20214 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
20215 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
20216 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
20217 (assemble
20218 * ipa.c (cgraph_remove_unreachable_nodes): Use
20219 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
20220 flags.
20221 * tree-inline.c (copy_bb): Check address_taken flag.
20222 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
20223 externally_visible flag.
20224
20225 2010-05-12 Jason Merrill <jason@redhat.com>
20226
20227 PR bootstrap/44048
20228 PR target/44099
20229 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
20230 * sdbout.c (plain_type_1): Likewise.
20231 * dwarf2out.c (is_base_type): Likewise.
20232 (gen_type_die_with_usage): Likewise. Generate
20233 DW_TAG_unspecified_type for any LANG_TYPE.
20234
20235 2010-05-12 Jan Hubicka <jh@suse.cz>
20236
20237 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
20238 indrect edges too.
20239 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
20240 (cgraph_clone_edge): Update.
20241 (cgraph_node_remove_callees): Remove indirect calls too.
20242 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
20243 (cgraph_create_indirect_edge): Update prototype.
20244 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
20245 is_proper_for_analysis.
20246 (add_new_function, visited_nodes, function_insertion_hook_holder,
20247 get_local_reference_vars_info, mark_address_taken, mark_address,
20248 mark_load, mark_store, check_asm_memory_clobber, check_call,
20249 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
20250 (ipa_init): Do not initialize visited_nodes;
20251 function_insertion_hook_holder.
20252 (analyze_variable): Rewrite.
20253 (analyze_function): Rewrite.
20254 (copy_local_bitmap): Remove.
20255 (duplicate_node_dat): Do not duplicate local info.
20256 (generate_summary): Simplify to only walk cgraph.
20257 (write_node_summary_p, ipa_reference_write_summary,
20258 ipa_reference_read_summary): Remove.
20259 (propagate): Do not remove function insertion;
20260 generate summary.
20261 (pass_ipa_reference): NULLify summary handling fields.
20262 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
20263 (input_edge): Input ecf_flags.
20264 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
20265 (update_indirect_edges_after_inlining): Ignore edges with unknown
20266 param.
20267
20268 2010-05-12 Sriraman Tallam <tmsriram@google.com>
20269
20270 * implicit-zee.c: New file.
20271 * tree-pass.h (pass_implicit_zee): Declare.
20272 * passes.c (init_optimization_passes): Add zee pass.
20273 * common.opt (fzee): New flag.
20274 * timevar.def (TV_ZEE): Define.
20275 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
20276 and beyond.
20277 * Makefile.in (implicit-zee.o): Add new build file.
20278
20279 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
20280 Nathan Froyd <froydnj@codesourcery.com>
20281
20282 * c-common.c (sync_resolve_params): Remove write-only variable.
20283
20284 2010-05-12 Anatoly Sokolov <aesok@post.ru>
20285
20286 * target.h (struct gcc_target): Add mode_dependent_address_p field.
20287 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
20288 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
20289 * targhooks.c (default_mode_dependent_address_p): New function.
20290 * targhooks.h (default_mode_dependent_address_p): Declare function.
20291 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
20292 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
20293 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
20294 target hook. Change return type to bool.
20295 * recog.h (mode_dependent_address_p): Change return type to bool.
20296
20297 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
20298 Nathan Froyd <froydnj@codesourcery.com>
20299
20300 * tree-mudflap.c (build_function_type_0, build_function_type_1,
20301 build_function_type_2, build_function_type_3): Remove.
20302 (mudflap_init): Use build_function_type_list.
20303
20304 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
20305 Nathan Froyd <froydnj@codesourcery.com>
20306
20307 * coverage.c (build_fn_info_value): Call build_constructor instead of
20308 build_constructor_from_list.
20309 (build_ctr_info_value): Likewise.
20310 (build_gcov_info): Likewise.
20311
20312 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
20313
20314 * tree.c (build_constructor): Compute TREE_CONSTANT for the
20315 resultant constructor.
20316 (build_constructor_single): Don't set TREE_CONSTANT.
20317 (build_constructor_from_list): Don't compute TREE_CONSTANT.
20318
20319 2010-05-12 Jan Hubicka <jh@suse.cz>
20320
20321 * cgraph.h (struct varpool_node): Add aux.
20322 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
20323 * varpool.c (varpool_remove_node): Do not remove initializer.
20324 (varpool_reset_queue): Export.
20325 (varpool_finalize_decl): Volatile vars are forced to be output.
20326 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
20327 replaced decl.
20328 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
20329 process_references, varpool_can_remove_if_no_refs): New functions.
20330 (cgraph_remove_unreachable_nodes): Handle variables too.
20331
20332 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
20333
20334 PR target/44088
20335 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
20336
20337 2010-05-12 Jakub Jelinek <jakub@redhat.com>
20338
20339 PR middle-end/44085
20340 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
20341 change value of ORT_TASK.
20342 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
20343 (omp_notice_threadprivate_variable): New function.
20344 (omp_notice_variable): Call it for threadprivate variables.
20345 If enclosing ctx is a task, print enclosing task rather than
20346 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
20347 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
20348 if task has untied clause.
20349
20350 PR debug/42278
20351 * dwarf2out.c (base_type_die): Don't add name attribute here.
20352 (modified_type_die): Instead of sizetype use
20353 its underlying original type. If a DW_TAG_base_type doesn't
20354 have name added, add __unknown__.
20355 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
20356 always call force_type_die instead.
20357
20358 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
20359
20360 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
20361 for __stack_chk_guard.
20362
20363 2010-05-11 Jakub Jelinek <jakub@redhat.com>
20364
20365 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
20366 don't call start_source_file debug hook here...
20367 (finish_options): ... but here, after outputting predefined and
20368 command line defines and undefs.
20369
20370 PR middle-end/44071
20371 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
20372 no fallthru edge.
20373 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
20374 optimizing away empty bb with no successors, move over its
20375 footer chain to fallthru predecessor.
20376 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
20377 (rtl_split_edge): For asm goto call patch_jump_insn even if
20378 splitting fallthru edge.
20379
20380 PR c++/44059
20381 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
20382 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
20383 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
20384 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
20385 on DW.ref.* decls.
20386
20387 PR c++/44062
20388 * c-parser.c (c_parser_expression): Mark LHS of a comma
20389 expression as read if it is a decl, handled component or
20390 COMPOUND_EXPR with that on the RHS.
20391 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
20392 if it is a decl or handled component.
20393
20394 2010-05-11 Jan Hubicka <jh@suse.cz>
20395
20396 * lto-symtab.c (lto_symtab_free): New function.
20397 * lto-streamer.h (lto_symtab_free): Declare.
20398
20399 2010-05-11 Jan Hubicka <jh@suse.cz>
20400
20401 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
20402 that if function is needed it is reachable.
20403 (lto_output_node): See if it the function is reachable or referenced.
20404 (output_cgraph): Update call of lto_output_node.
20405 * lto-streamer.h (reachable_from_other_partition_p): Declare.
20406
20407 2010-05-11 Jan Hubicka <jh@suse.cz>
20408
20409 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
20410 Mark as used.
20411
20412 2010-05-11 Jan Hubicka <jh@suse.cz>
20413
20414 PR tree-optimize/44063
20415 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
20416 queue.
20417 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
20418 limits.
20419 (estimate_function_body_sizes): Compute sizes even when disregarding.
20420
20421 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
20422
20423 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
20424
20425 2010-05-11 Jan Hubicka <jh@suse.cz>
20426
20427 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
20428 into every boundary.
20429
20430 2010-05-11 Jan Hubicka <jh@suse.cz>
20431
20432 * matrix-reorg.c (matrix_reorg): Rebuild edges.
20433
20434 2010-05-11 Jan Hubicka <jh@suse.cz>
20435
20436 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
20437 lto_streamer_cache_delete): Put nodes into heap.
20438 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
20439 heap.
20440
20441 2010-05-11 Jan Hubicka <jh@suse.cz>
20442
20443 * cgraphbuild.c (cgraph_rebuild_references): New.
20444 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
20445 out extern inlines.
20446 * cgraph.h (cgraph_rebuild_references): Declare.
20447 * tree-inline.c (tree_function_versioning): Use it.
20448 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
20449
20450 2010-05-11 Jan Hubicka <jh@suse.cz>
20451
20452 * cgraph.c: Include ipa-utils.h
20453 (cgraph_create_virtual_clone): Update references.
20454 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
20455
20456 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
20457
20458 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
20459 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
20460 cache size.
20461
20462 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
20463
20464 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
20465
20466 2010-05-11 Jakub Jelinek <jakub@redhat.com>
20467
20468 * gcc.c (execute): For -### don't quote arguments that
20469 contain just alphanumerics and _/-. characters.
20470 * doc/invoke.texi: Document that change for -###.
20471
20472 PR debug/44023
20473 * df-problems.c (struct dead_debug): Add to_rescan field.
20474 (dead_debug_init): Clear to_rescan field.
20475 (dead_debug_finish): Rescan all debug insns in to_rescan
20476 bitmap and free the bitmap.
20477 (dead_debug_insert_before): Instead of rescanning debug insns
20478 immediately queue their rescanning until dead_debug_finish.
20479 (df_note_bb_compute): After dead_debug_add do continue instead
20480 of break.
20481
20482 2010-05-10 Jakub Jelinek <jakub@redhat.com>
20483
20484 PR debug/44028
20485 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
20486 clear also INSN_REG_USE_LIST.
20487
20488 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20489
20490 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
20491
20492 2010-05-10 Jan Hubicka <jh@suse.cz>
20493
20494 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
20495 commited change.
20496
20497 2010-05-10 Jan Hubicka <jh@suse.cz>
20498
20499 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
20500 Allocate encoders.
20501 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
20502 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
20503 (lto_streamer_cache_create): Init alloc pool.
20504 (lto_streamer_cache_delete): Free alloc pool.
20505 * lto-streamer.h: Include alloc pool.
20506 (lto_streamer_cache_d): Use alloc pool.
20507 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
20508
20509 2010-05-10 Jan Hubicka <jh@suse.cz>
20510
20511 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
20512 * cgraphbuild.c: Include except.h
20513 (record_type_list, record_eh_tables): New function.
20514 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
20515
20516 2010-05-10 Jan Hubicka <jh@suse.cz>
20517
20518 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
20519 __frame_dummy_init_array_entry, force_to_data): Attribute as used
20520 rather than unused.
20521
20522 2010-05-10 Michael Matz <matz@suse.de>
20523
20524 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
20525 (can_reassociate_p): Use FLOAT_TYPE_P.
20526 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
20527 (vect_force_simple_reduction): ... this.
20528 * tree-parloops.c (gather_scalar_reductions): Use
20529 vect_force_simple_reduction.
20530 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
20531 vect_is_simple_reduction, add modify argument, if true rewrite
20532 "a-b" into "a+(-b)".
20533 (vect_is_simple_reduction, vect_force_simple_reduction): New
20534 functions.
20535 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
20536
20537 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
20538 Vladimir Makarov <vmakarov@redhat.com>
20539
20540 PR rtl-optimization/44012
20541 * ira-build.c (remove_unnecessary_allocnos): Nullify
20542 regno_allocno_map of the removed allocno.
20543
20544 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20545
20546 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
20547 to /dev/null.
20548 * configure: Regenerate.
20549
20550 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20551
20552 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
20553 unused.
20554 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
20555 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
20556 support in Sun ld.
20557 * configure: Regenerate.
20558
20559 2010-05-10 Richard Guenther <rguenther@suse.de>
20560
20561 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
20562 marked if the entry identifier is marked.
20563
20564 2010-05-10 Richard Guenther <rguenther@suse.de>
20565
20566 * c-common.c (struct c_common_attributes): Add fnspec attribute.
20567 (handle_fnspec_attribute): New function.
20568 * gimple.h (gimple_call_return_flags): Declare.
20569 (gimple_call_arg_flags): Likewise.
20570 * gimple.c (gimple_call_arg_flags): New function.
20571 (gimple_call_return_flags): Likewise.
20572 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
20573 New argument flags.
20574 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
20575 return value flags.
20576 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
20577 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
20578 main work to ...
20579 (make_heapvar_for): ... this new function.
20580 (handle_rhs_call): Handle fnspec attribute argument specifiers.
20581 (handle_lhs_call): Likewise.
20582 (find_func_aliases): Adjust.
20583
20584 2010-05-10 Richard Guenther <rguenther@suse.de>
20585
20586 PR tree-optimization/44050
20587 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
20588
20589 2010-05-10 Wei Guozhi <carrot@google.com>
20590
20591 PR target/42879
20592 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
20593
20594 2010-05-09 Joseph Myers <joseph@codesourcery.com>
20595
20596 PR c/10676
20597 * c-typeck.c (lookup_field): Take a type directly. Update
20598 recursive calls.
20599 (build_component_ref): Update call to lookup_field.
20600 (set_init_label): Use lookup_field to find initialized field.
20601 Handle returned list of fields like a sequence of designators.
20602
20603 2010-05-09 Richard Guenther <rguenther@suse.de>
20604
20605 PR middle-end/44024
20606 * fold-const.c (tree_single_nonzero_warnv_p): Properly
20607 handle &FUNCTION_DECL.
20608
20609 2010-05-09 Joseph Myers <joseph@codesourcery.com>
20610
20611 PR c/4784
20612 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
20613 structures and unions recursively.
20614 (detect_field_duplicates): Move duplicate detection with a hash to
20615 detect_field_duplicates_hash. Always use a hash if anonymous
20616 structures or unions are present.
20617 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
20618 give errors.
20619
20620 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
20621
20622 PR target/44046
20623 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
20624 detect Atom, Core 2 and Core i7.
20625
20626 2010-05-09 Richard Guenther <rguenther@suse.de>
20627
20628 * gcc.c (store_arg): Handle temporary file deletion for
20629 joined arguments.
20630
20631 2010-05-09 Richard Guenther <rguenther@suse.de>
20632
20633 PR middle-end/44043
20634 * ipa-inline.c (estimate_function_body_sizes): Return after
20635 disregarding inline limits.
20636
20637 2010-05-09 Richard Guenther <rguenther@suse.de>
20638
20639 * gcc.c (store_arg): Revert last change.
20640
20641 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
20642
20643 PR middle-end/28685
20644 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
20645 (optimize_ops_list): Call it.
20646
20647 2010-05-08 Richard Guenther <rguenther@suse.de>
20648
20649 PR tree-optimization/44030
20650 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
20651 NECESSARY flag if we propagate from a inserted expression.
20652
20653 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
20654
20655 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
20656 domain types as equal if they are both PLACEHOLDER_EXPRs.
20657
20658 2010-05-08 Richard Guenther <rguenther@suse.de>
20659
20660 * lto-wrapper.c (run_gcc): Remove linker output from
20661 command line for LTRANS invocation.
20662
20663 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
20664
20665 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
20666 lto-macho as lto_binary_reader.
20667 * target.h (struct gcc_target): New hooks lto_start and lto_end.
20668 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
20669 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
20670 in lto_start and lto_end calls.
20671 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
20672 magic numbers.
20673 (scan_prog_file): Update is_elf_or_coff call.
20674 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
20675
20676 * collect2.c (main): Fix enum comparison.
20677
20678 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
20679 Add prototypes.
20680 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
20681 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
20682 and TARGET_ASM_LTO_END.
20683 * darwin.c: Include obstack.h and lto-streamer.h.
20684 (lto_section_names_offset, lto_section_names_obstack,
20685 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
20686 global variables.
20687 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
20688 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
20689 to a temporary file.
20690 (darwin_asm_lto_end): New function. Restore asm_out_file.
20691 (darwin_asm_named_section): For LTO sections, replace the name with
20692 the offset of the section name in a string table, and build this
20693 table.
20694 (darwin_file_start): Initialize global vars for LTO support.
20695 (darwin_file_end): If output to asm_out_file was redirected, append it
20696 to the proper asm_out_file here. Add the section names section.
20697
20698 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
20699
20700 * c-pragma.c (pending_weak_d, pending_weak): New.
20701 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
20702 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
20703 handle_pragma_weak): Update the uses of pending_weaks.
20704
20705 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20706
20707 PR documentation/44016
20708 * doc/standards.texi (Standards): Link to unversioned
20709 cxx0x_status.html page.
20710
20711 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
20712
20713 PR target/43708
20714 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
20715 in addition to TREE_USED, to avoid "set but unused" warnings.
20716
20717 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
20718
20719 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
20720 (is_loop_prefetching_profitable): Do not insert prefetches
20721 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
20722 times the prefetch ahead distance.
20723
20724 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
20725
20726 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
20727 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
20728 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
20729 the unroll_factor.
20730
20731 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
20732
20733 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
20734 a diagnostic info when the insn-to-mem ratio is too small.
20735
20736 2010-05-07 Richard Guenther <rguenther@suse.de>
20737
20738 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
20739 the linker plugin.
20740 (store_arg): Queue temp_filename for deletion instead of
20741 the whole argument.
20742
20743 2010-05-07 Richard Guenther <rguenther@suse.de>
20744
20745 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
20746 (run_gcc): Handle LTRANS phase invocation.
20747 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
20748
20749 2010-05-07 Jakub Jelinek <jakub@redhat.com>
20750
20751 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
20752 this is also meaningful on PARM_DECLs and RESULT_DECLs.
20753
20754 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20755
20756 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
20757
20758 2010-05-07 Richard Guenther <rguenther@suse.de>
20759
20760 PR tree-optimization/44020
20761 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
20762 code when PRE is not yet initialized.
20763
20764 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20765
20766 * config/mips/dbxmdebug.h: Remove.
20767 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
20768
20769 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
20770
20771 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
20772 with null pointer and also warn about ordered comparison of zero with
20773 pointer if -Wextra.
20774
20775 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
20776
20777 * graphite-blocking.c
20778 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
20779 * graphite-clast-to-gimple.c
20780 (clast_to_gcc_expression): Same.
20781 (precision_for_value): Same.
20782 (precision_for_interval): Same.
20783 (gcc_type_for_interval): Same.
20784 (graphite_create_new_guard): Same.
20785 (compute_bounds_for_level): Same.
20786 (graphite_create_new_loop_guard): Same.
20787 * graphite-interchange.c
20788 (build_linearized_memory_access): Same.
20789 (pdr_stride_in_loop): Same.
20790 (memory_strides_in_loop_1): Same.
20791 (memory_strides_in_loop): Same.
20792 (extend_scattering): Same.
20793 (psct_scattering_dim_for_loop_depth): Same.
20794 (pbb_number_of_iterations): Same.
20795 * graphite-poly.h
20796 (debug_iteration_domains): Same.
20797 * graphite-ppl.c
20798 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
20799 (ppl_set_inhomogeneous_gmp): Same.
20800 (ppl_strip_loop): Same.
20801 (ppl_lexico_compare_linear_expressions): Same.
20802 (ppl_read_polyhedron_matrix): Same.
20803 (ppl_max_for_le_pointset): Same.
20804 * graphite-ppl.h
20805 (ppl_read_polyhedron_matrix): Same.
20806 (tree_int_to_gmp): Same.
20807 (gmp_cst_to_tree): Same.
20808 (ppl_set_inhomogeneous): Same.
20809 (ppl_set_inhomogeneous_tree): Same.
20810 (ppl_set_coef): Same.
20811 (ppl_set_coef_tree): Same.
20812 * graphite-sese-to-poly.c
20813 (build_pbb_scattering_polyhedrons): Same.
20814 (build_scop_scattering): Same.
20815 (scan_tree_for_params_right_scev): Same.
20816 (scan_tree_for_params): Same.
20817 (find_params_in_bb): Same.
20818 (find_scop_parameters): Same.
20819 (add_upper_bounds_from_estimated_nit): Same.
20820 (build_loop_iteration_domains): Same.
20821 (add_condition_to_domain): Same.
20822 (pdr_add_memory_accesses): Same.
20823
20824 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
20825
20826 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
20827 CLooG's value_* macros to their respective mpz_* counterparts.
20828 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
20829 (graphite_create_new_loop_guard): Same.
20830 * graphite-interchange.c (build_linearized_memory_access): Same.
20831 (pdr_stride_in_loop): Same.
20832 (memory_strides_in_loop_1): Same.
20833 (1st_interchange_profitable_p): Same.
20834 * graphite-poly.c (extend_scattering): Same.
20835 (psct_scattering_dim_for_loop_depth): Same.
20836 (pbb_number_of_iterations): Same.
20837 (pbb_number_of_iterations_at_time): Same.
20838 * graphite-poly.h (new_1st_loop): Same.
20839 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
20840 (oppose_constraint): Same.
20841 (insert_constraint_into_matrix): Same.
20842 (ppl_set_inhomogeneous_gmp): Same.
20843 (ppl_set_coef_gmp): Same.
20844 (ppl_strip_loop): Same.
20845 (ppl_lexico_compare_linear_expressions): Same.
20846 (ppl_max_for_le_pointset): Same.
20847 (ppl_min_for_le_pointset): Same.
20848 (ppl_build_realtion): Same.
20849 * graphite-ppl.h (gmp_cst_to_tree): Same.
20850 (ppl_set_inhomogeneous): Same.
20851 (ppl_set_inhomogeneous_tree): Same.
20852 (ppl_set_coef): Same.
20853 (ppl_set_coef_tree): Same.
20854 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20855 (build_scop_scattering): Same.
20856 (add_value_to_dim): Same.
20857 (scan_tree_for_params_right_scev): Same.
20858 (scan_tree_for_params_int): Same.
20859 (scan_tree_for_params): Same.
20860 (find_params_in_bb): Same.
20861 (find_scop_parameters): Same.
20862 (add_upper_bounds_from_estimated_nit): Same.
20863 (build_loop_iteration_domains): Same.
20864 (create_linear_expr_from_tree): Same.
20865 (add_condition_to_domain): Same.
20866 (pdr_add_memory_accesses): Same.
20867
20868 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
20869 Jason Merrill <jason@redhat.com>
20870
20871 * c-common.c (c_common_reswords): Add nullptr.
20872 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
20873 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
20874 (gen_type_die_with_usage): Likewise.
20875 * dbxout.c (dbxout_type): Likewise.
20876 * sdbout.c (plain_type_1): Likewise.
20877
20878 2010-05-06 Jason Merrill <jason@redhat.com>
20879
20880 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
20881 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
20882 ret appropriately.
20883 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
20884
20885 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
20886 stripping WITH_SIZE_EXPR.
20887 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
20888 change.
20889
20890 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20891
20892 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
20893 list of obsolete configurations.
20894 Disabled check for obsolete configurations.
20895 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
20896 Removed support for previous versions.
20897 * config/mips/iris.h: Removed.
20898 * config/mips/iris5.h: Removed.
20899 * config/mips/iris6.h: Merged old iris.h contents.
20900 (TARGET_IRIX): Removed.
20901 (DRIVER_SELF_SPECS): Removed mabi=32.
20902 (IDENT_ASM_OP): Removed undef.
20903 (STARTFILE_SPEC): Removed mabi=32.
20904 (ENDFILE_SPEC): Likewise.
20905 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
20906 (MACHINE_TYPE): Update for IRIX 6.5.
20907 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
20908 TARGET_IRIX by TARGET_IRIX6.
20909 (mips_file_start): Likewise.
20910 (mips_output_external): Remove IRIX 5/6 O32 support.
20911 (mips_output_function_prologue): Likewise.
20912 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
20913 TARGET_IRIX6.
20914 (TARGET_CPU_CPP_BUILTINS): Likewise.
20915 (TARGET_IRIX): Removed.
20916 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
20917 (MULTILIB_DIRNAMES): Removed 32.
20918 (MULTILIB_OSDIRNAMES): Removed ../lib.
20919 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
20920 (Specific, mips-sgi-irix5): Document removal.
20921 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
20922 Remove references to older IRIX 6 releases and the O32 ABI.
20923
20924 2010-05-06 Jakub Jelinek <jakub@redhat.com>
20925
20926 PR bootstrap/43994
20927 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
20928 instead of DF_REF_REAL_REG.
20929
20930 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
20931
20932 PR target/43888
20933 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
20934 handling to still return true for x64 targets.
20935
20936 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
20937
20938 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
20939
20940 2010-05-06 Jan Hubicka <jh@suse.cz>
20941
20942 PR tree-optimization/43791
20943 * ipa-inline.c (update_caller_keys): Remove bogus
20944 disregard_inline_limits check.
20945
20946 2010-05-06 Michael Matz <matz@suse.de>
20947
20948 PR tree-optimization/43984
20949 * tree-ssa-pre.c (inserted_phi_names): Remove.
20950 (inserted_exprs): Change to bitmap.
20951 (create_expression_by_pieces): Set bits, don't append to vector.
20952 (insert_into_preds_of_block): Don't handle inserted_phi_names.
20953 (eliminate): Don't look at inserted_phi_names, remove deleted
20954 insns from inserted_exprs.
20955 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
20956 (init_pre, fini_pre): Allocate and free bitmaps.
20957 (execute_pre): Insert insns on edges before elimination.
20958
20959 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
20960
20961 * tree.c (initializer_zerop): Handle STRING_CST.
20962
20963 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
20964
20965 PR 40989
20966 * doc/invoke.texi (Wimplicit): Document as C only.
20967 * opts.c (common_handle_option): Add argument kind.
20968 (handle_option): Rename as read_cmdline_option. Factor out code to...
20969 (handle_option): ... here. New.
20970 (handle_options): Rename as read_cmdline_options.
20971 (decode_options): Update call.
20972 (set_option): Use option index instead of option pointer. Classify
20973 diagnostics correctly.
20974 (enable_warning_as_error): Call handle_option.
20975 * opts.h (set_option): Update declaration.
20976 (handle_option): Declare.
20977 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
20978 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
20979 * c-opts.c (set_Wimplicit): Delete.
20980 (c_family_lang_mask): New static constant.
20981 (c_common_handle_option): Add argument kind. Use handle_option
20982 instead of set_Wimplicit.
20983 (c_common_post_options): warn_implicit and warn_implicit_int
20984 are disabled by default.
20985 * c-common.c (warn_implicit): Do not define here.
20986 * c-common.h (warn_implicit): Do not declare here.
20987 (c_common_handle_option): Update declaration.
20988 * lto-opts.c (lto_reissue_options): Update call to set_option.
20989
20990 2010-05-06 Richard Guenther <rguenther@suse.de>
20991
20992 PR tree-optimization/43571
20993 * domwalk.c (walk_dominator_tree): Walk the dominator
20994 sons in more optimal order.
20995
20996 2010-05-06 Richard Guenther <rguenther@suse.de>
20997
20998 PR tree-optimization/43934
20999 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
21000 (stmt_cost): Likewise.
21001 (extract_true_false_args_from_phi): New helper.
21002 (determine_max_movement): For PHI nodes verify we can hoist them
21003 and compute their cost.
21004 (determine_invariantness_stmt): Handle PHI nodes.
21005 (move_computations_stmt): Likewise. Hoist PHI nodes in
21006 if-converted form using COND_EXPRs.
21007 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
21008 (tree_ssa_lim): Likewise.
21009 * tree-flow.h (tree_ssa_lim): Adjust prototype.
21010 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
21011
21012 2010-05-06 Richard Guenther <rguenther@suse.de>
21013
21014 PR tree-optimization/43987
21015 * tree-ssa-structalias.c (could_have_pointers): For possibly
21016 address-taken variables force pointers to be recorded.
21017 (create_variable_info_for_1): Likewise.
21018 (push_fields_onto_fieldstack): Pass in wheter all fields
21019 must have pointers.
21020 (find_func_aliases): Query types instead of vars whether
21021 they contain pointers where appropriate.
21022
21023 2010-05-06 Jan Hubicka <jh@suse.cz>
21024
21025 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
21026 (record_reference, mark_address, mark_load, mark_store): Record
21027 references.
21028 (record_references_in_initializer): Update call of record_references.
21029 (rebuild_cgraph_edges): Remove all references before rebuiding.
21030 * cgraph.c (cgraph_create_node): Clear ref list.
21031 (cgraph_remove_node): Remove references.
21032 (dump_cgraph_node): Dump references.
21033 (cgraph_clone_node): Clone references.
21034 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
21035 (struct cgraph_node, varpool_node): Add ref_lst.
21036 * ipa-ref.c: New file.
21037 * ipa-ref.h: New file.
21038 * ipa-ref-inline.h: New file.
21039 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
21040 (referenced_from_other_partition_p): New function.
21041 (lto_output_varpool_node): Take set arugment; call
21042 referenced_from_other_partition.
21043 (lto_output_ref): New.
21044 (add_references): New.
21045 (output_refs): New.
21046 (output_cgraph): Compute boundary based on references; output refs.
21047 (output_varpool): Accept cgraph_node_set argument.
21048 (input_ref): New.
21049 (input_refs): New.
21050 (input_cgraph): Call input_refs.
21051 * lto-section-in.c (lto_section_name): Add refs.
21052 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
21053 (ipa-ref.o): New file.
21054 * varpool.c (varpool_node): Clear ipa ref list.
21055 (varpool_remove_node): Remove references.
21056 (dump_varpool_node): Dump references.
21057 (varpool_assemble_decl): Only compile finalized ones.
21058 (varpool_extra_name_alias): Initialize ref list.
21059 * lto-streamer.c (lto-get_section_name): Add .refs section.
21060 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
21061 (referenced_from_other_partition_p): Declared.
21062
21063 2010-05-06 Ira Rosen <irar@il.ibm.com>
21064
21065 PR tree-optimization/43901
21066 * tree-vect-stmts.c (vectorizable_call): Assert that vector
21067 type is not NULL if it's transformation phase, and return
21068 FALSE if it's analysis.
21069 (vectorizable_conversion, vectorizable_operation,
21070 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
21071
21072 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
21073
21074 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
21075 Delete.
21076 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
21077 New define.
21078 * config/mips/mips-protos.h
21079 (mips_small_register_classes_for_mode_p): Delete prototype.
21080
21081 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
21082
21083 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
21084 * config/arm/arm.c (multiple_operation_profitable_p,
21085 compute_offset_order): New static functions.
21086 (load_multiple_sequence, store_multiple_sequence): Use them.
21087 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
21088 memory offsets, not register numbers.
21089 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
21090
21091 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
21092
21093 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
21094 (get_pending_sizes, put_pending_size, put_pending_sizes):
21095 Update the uses of pending_sizes.
21096 * c-decl.c (store_parm_decls): Likewise.
21097 * c-tree.h (struct c_arg_info): Likewise.
21098 * tree.h: Update the prototype for get_pending_sizes and
21099 put_pending_sizes.
21100
21101 2010-05-05 Jason Merrill <jason@redhat.com>
21102
21103 PR debug/43370
21104 * c-common.c (handle_aligned_attribute): Respect
21105 ATTR_FLAG_TYPE_IN_PLACE.
21106
21107 PR testsuite/43758
21108 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
21109 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
21110 (TARGET_INITIALIZER): Use it.
21111 * c-common.c (attribute_takes_identifier_p): Call it.
21112 * c-common.h: Update prototype.
21113 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
21114 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
21115
21116 2010-05-05 Jakub Jelinek <jakub@redhat.com>
21117
21118 PR debug/43950
21119 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
21120 DW_ID_down_case for Fortran compilation units.
21121
21122 2010-05-05 Jan Hubicka <jh@suse.cz>
21123
21124 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
21125 handle aliases.
21126
21127 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
21128
21129 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
21130 a variable-sized RESULT_DECL.
21131
21132 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
21133
21134 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
21135
21136 2010-05-05 Jason Merrill <jason@redhat.com>
21137
21138 PR c++/43787
21139 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
21140 returns GS_OK.
21141 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
21142
21143 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
21144 Jakub Jelinek <jakub@redhat.com>
21145
21146 PR debug/43478
21147 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
21148 (dead_debug_init, dead_debug_finish): New functions.
21149 (dead_debug_add, dead_debug_insert_before): Likewise.
21150 (df_note_bb_compute): Initialize a dead_debug object, add dead
21151 debug uses to it, insert debug bind insns before death insns,
21152 reset debug insns that refer to pending uses at the end.
21153 * rtl.h (make_debug_expr_from_rtl): New prototype.
21154 * varasm.c (make_debug_expr_from_rtl): New function.
21155
21156 2010-05-05 Jan Hubicka <jh@suse.cz>
21157
21158 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
21159 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
21160 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
21161 lto_varpool_encoder_deref, lto_varpool_encoder_size,
21162 lto_varpool_encoder_encode_initializer_p,
21163 lto_set_varpool_encoder_encode_initializer): New functions.
21164 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
21165 call output_varpool.
21166 (input_varpool_node): Do not always set analyzed.
21167 (input_cgraph_1): Return vector of cgraph nodes.
21168 (input_varpool_1): Return vector of varpools.
21169 (input_cgraph): Free the vectors.
21170 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21171 output only initializers needed.
21172 (lto_output): Only call output_cgraph.
21173 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
21174 * lto-section-out.c (lto_new_out_decl_state): Initialize
21175 state->varpool_node_encoder.
21176 * lto-streamer.h (lto_varpool_encoder_d): New.
21177 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
21178 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
21179 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
21180 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
21181 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
21182 Declare.
21183 (output_varpool, input_varpool): Remove declarations.
21184
21185 2010-05-05 Jan Hubicka <jh@suse.cz>
21186
21187 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
21188 with body can prevail.
21189
21190 2010-05-05 Jan Hubicka <jh@suse.cz>
21191
21192 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
21193 size.
21194
21195 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21196
21197 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
21198
21199 * gengtype.h (erro_at_line): Constify pos argument.
21200
21201 * gengtype.c: Include hashtab.h.
21202 (enum gc_used): Document GC_MAYBE_POINTED_TO.
21203 (error_at_line): Constify pos argument.
21204 (do_typedef): Initialize p->opt field.
21205 (get_file_gtfilename): Fix comment typo.
21206 (struct walk_type_data): Constify line field.
21207 (get_output_file_for_structure): New function.
21208 (write_local_func_for_structure): Constify orig_s argument.
21209 Use get_output_file_for_structure.
21210 (write_func_for_structure): Use get_output_file_for_structure.
21211 (INDENT): New define.
21212 (dump_pair, dump_type, dump_type_list, dump_typekind)
21213 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
21214 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
21215 functions.
21216 (seen_types): New variable.
21217 (main): New variable do_dump. Process "-d" command line option.
21218 Call dump_everything if dump requested.
21219
21220 2010-05-05 Jakub Jelinek <jakub@redhat.com>
21221
21222 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
21223 in a temporary instead of invoking the macro multiple times.
21224 (track_expr_p): Likewise.
21225
21226 2010-05-04 Neil Vachharajani <nvachhar@google.com>
21227
21228 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
21229 per new semantics.
21230 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
21231 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
21232 conditions for printing notes.
21233 * common.opt (-Wcoverage-mismatch): Allow negative, default to
21234 true, update documentation.
21235 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
21236
21237 2010-05-04 Jakub Jelinek <jakub@redhat.com>
21238
21239 PR c/43981
21240 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
21241 on dimen.
21242
21243 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
21244
21245 PR target/43799
21246 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
21247 (*sse_prologue_save_insn1): Likewise.
21248 (SSE prologue save splitter): Likewise.
21249
21250 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
21251
21252 * tree.c (free_lang_data_in_one_sizepos): New inline function.
21253 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
21254 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
21255 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
21256 all decls. Call it on DECL_FIELD_OFFSET of fields.
21257 (find_decls_types_r): Follow DECL_VALUE_EXPR.
21258 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
21259
21260 2010-05-04 Martin Jambor <mjambor@suse.cz>
21261
21262 * tree-sra.c (build_access_from_expr_1): The first parameter type
21263 changed to simple tree.
21264 (build_access_from_expr): Likewise, gsi parameter was eliminated.
21265 (scan_assign_result): Renamed to assignment_mod_result, enum elements
21266 renamed as well.
21267 (build_accesses_from_assign): Removed all parameters except for a
21268 simple gimple statement. Now returns a simple bool.
21269 (scan_function): All non-analysis parts moved to separate functions
21270 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
21271 parameters and updated both callers.
21272 (sra_modify_expr): Removed parameter data.
21273 (sra_modify_function_body): New function.
21274 (perform_intra_sra): Call sra_modify_function_body to modify the
21275 function body.
21276 (replace_removed_params_ssa_names): Parameter data changed into
21277 adjustments vector.
21278 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
21279 changed the parameter dont_convert to convert with the opposite
21280 meaning.
21281 (sra_ipa_modify_assign): Parameter data changed into adjustments
21282 vector, return value changed to bool.
21283 (ipa_sra_modify_function_body): New function.
21284 (sra_ipa_reset_debug_stmts): Updated a comment.
21285 (modify_function): Use ipa_sra_modify_function_body to modify function
21286 body.
21287
21288 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
21289
21290 PR middle-end/43671
21291 * alias.c (true_dependence): Handle the same VALUE in x and mem.
21292 (canon_true_dependence): Likewise.
21293 (write_dependence_p): Likewise.
21294
21295 2010-05-04 Jan Hubicka <jh@suse.cz>
21296
21297 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
21298 * cgraphbuild.c: Include ipa-utils.h
21299 (record_reference_ctx): New struct.
21300 (record_reference): Simplify to work on initializers; not statements.
21301 (mark_address, mark_load, mark_store): New.
21302 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
21303 walk PHI nodes too.
21304 (record_references_in_initializer): Update use of record_reference.
21305 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
21306 walk PHI nodes too.
21307
21308 2010-05-04 Jan Hubicka <jh@suse.cz>
21309
21310 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
21311 node will be removed anyway.
21312 (lto_varpool_replace_node): Allow also unanalyzed nodes;
21313 relink aliases of node into prevailing node.
21314 * varpool.c (varpool_remove_node): Remove aliases properly;
21315 when removing node, remove all its aliases too; remove DECL_INITIAL
21316 of removed node; ggc_free the varpool node.
21317
21318 2010-05-04 Richard Guenther <rguenther@suse.de>
21319
21320 PR tree-optimization/43879
21321 * tree-ssa-structalias.c (alias_get_name): Use
21322 DECL_ASSEMBLER_NAME if available.
21323 (create_function_info_for): Return the varinfo node.
21324 (ipa_pta_execute): Associate same-body aliases and extra names
21325 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
21326
21327 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
21328
21329 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
21330
21331 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
21332
21333 PR bootstrap/43964
21334 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
21335 only if HONOR_REG_ALLOC_ORDER is not defined.
21336
21337 2010-05-04 Richard Guenther <rguenther@suse.de>
21338
21339 PR tree-optimization/43949
21340 * tree-vrp.c (extract_range_from_binary_expr): Only handle
21341 TRUNC_MOD_EXPR.
21342
21343 2010-04-26 Jason Merrill <jason@redhat.com>
21344
21345 * c.opt (-fstrict-enums): New.
21346 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
21347
21348 2010-05-03 David Ung <davidu@mips.com>
21349 James E. Wilson <wilson@codesourcery.com>
21350
21351 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
21352 emit the trap instruction before the divide for TUNE_74K.
21353
21354 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
21355
21356 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
21357 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
21358 based on the above, for new target hook.
21359
21360 * hooks.c (hook_bool_mode_true): New generic hook.
21361 * hooks.h (hook_bool_mode_true): Add prototype.
21362
21363 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
21364 target hook.
21365 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
21366 target hook, set to hook_bool_mode_false.
21367 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
21368 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
21369 with targetm.small_register_classes_for_mode_p.
21370 (find_reusable_reload): Likewise.
21371 (combine_reloads): Likewise.
21372 * reload1.c (reload_as_needed): Likewise.
21373 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
21374 * ifcvt.c (noce_process_if_block, check_cond_move_block,
21375 dead_or_predicable): Likewise.
21376 * regmove.c (optimize_reg_copy_1): Likewise.
21377 * calls.c (prepare_call_address): Likewise.
21378 (precompute_register_parameters): Likewise.
21379
21380 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
21381 hook definition.
21382 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
21383 implementation of the hook that considers all register classes
21384 small except for SH64.
21385 (sh_override_options): Use the new hook.
21386 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
21387 Add prototype.
21388
21389 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
21390 hook definition.
21391 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
21392 implementation of the hook that considers all register classes
21393 small for THUMB1.
21394 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
21395 Add prototype.
21396
21397 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
21398 hook definition.
21399 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
21400 implementation of the hook that considers all register classes
21401 small for MIPS16.
21402 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
21403 Add prototype.
21404
21405 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
21406 hook definition.
21407 * config/m32c/m32c.h: Likewise.
21408 * config/pdp11/pdp11.h: Likewise.
21409 * config/avr/avr.h: Likewise.
21410 * config/xtensa/xtensa.h: Likewise.
21411 * config/m68hc11/m68hc11.h: Likewise.
21412 * config/mn10300/mn10300.h: Likewise.
21413 * config/mcore/mcore.h: Likewise.
21414 * config/h8300/h8300.h: Likewise.
21415 * config/bfin/bfin.h: Likewise.
21416
21417 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
21418 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
21419
21420 2010-05-03 Anatoly Sokolov <aesok@post.ru>
21421
21422 * double-int.h (tree_to_double_int): Remove macro.
21423 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
21424 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
21425 (tree_to_double_int): New function.
21426 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
21427 Move ...
21428 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
21429
21430 2010-05-03 Richard Guenther <rguenther@suse.de>
21431
21432 PR tree-optimization/43971
21433 * tree-ssa-structalias.c (get_constraint_for_1): Fix
21434 constraints in the !flag_delete_null_pointer_checks case.
21435
21436 2010-05-03 Jakub Jelinek <jakub@redhat.com>
21437
21438 PR debug/43972
21439 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
21440 result mode matches original rtl mode.
21441
21442 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
21443
21444 PR target/43888
21445 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
21446
21447 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
21448
21449 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
21450 when processing flag options.
21451
21452 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
21453
21454 * gcov-iov.c (main): Change format string placeholder
21455 from %#08x to 0x%08x.
21456 * genchecksum.c (dosum): Change format string placeholder
21457 from %#02x to 0x%02x.
21458
21459 2010-05-02 Richard Guenther <rguenther@suse.de>
21460
21461 PR tree-optimization/43879
21462 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
21463
21464 2010-05-02 Bruno Haible <bruno@clisp.org>
21465
21466 * doc/extend.texi (Function Attributes): Fix a typo.
21467
21468 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
21469
21470 Revert:
21471 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
21472 placeholder from 0x%x to %#x.
21473 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21474 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21475 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21476 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21477 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21478 * config/i386/i386.c (ix86_target_string): Ditto.
21479 * config/i386/i386.c (output_pic_addr_const): Ditto.
21480 (print_operand): Ditto.
21481
21482 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
21483
21484 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
21485 placeholder from 0x%x to %#x.
21486 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
21487 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
21488 (ASM_OUTPUT_DEBUG_DATA): Ditto.
21489 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
21490 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
21491 * optc-gen.awk: Ditto.
21492 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
21493 (HOST_WIDE_INT_PRINT_HEX): Ditto.
21494 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
21495 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21496
21497 2010-05-01 Anatoly Sokolov <aesok@post.ru>
21498
21499 * target.h (struct calls): Add function_value_regno_p field.
21500 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
21501 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
21502 * targhooks.c (default_function_value_regno_p): New function.
21503 * targhooks.h (default_function_value_regno_p): Declare function.
21504 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
21505 * builtins.c. (apply_result_size): (Ditto.).
21506 * combine.c. (likely_spilled_retval_p): (Ditto.).
21507 * mode-switching.c. Include 'target.h'.
21508 (create_pre_exit): Use function_value_regno_p hook.
21509 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
21510 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
21511 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
21512
21513 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
21514 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
21515 (ix86_function_value_regno_p): Declare as static, change argument
21516 type to const unsigned int.
21517 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
21518
21519 2010-05-01 Richard Guenther <rguenther@suse.de>
21520
21521 PR tree-optimization/43949
21522 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
21523 types.
21524 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
21525
21526 2010-05-01 Anatoly Sokolov <aesok@post.ru>
21527
21528 * rtl.h (CONST_DOUBLE_P): Define.
21529 (rtx_to_double_int): Declare.
21530 * emit-rtl.c (rtx_to_double_int): New function.
21531 * dwarf2out.c (insert_double): New function.
21532 (loc_descriptor, add_const_value_attribute): Clean up, use
21533 rtx_to_double_int and insert_double functions.
21534
21535 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
21536
21537 * doc/extend.texi (Inline): Add missing return keyword to examples.
21538 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
21539 "command-line".
21540
21541 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
21542
21543 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
21544 the variable part of the offset as well. Use highest_pow2_factor for
21545 all alignment checks.
21546
21547 2010-04-30 Richard Guenther <rguenther@suse.de>
21548
21549 PR tree-optimization/43879
21550 * tree-ssa-structalias.c (type_could_have_pointers): Functions
21551 can have pointers.
21552
21553 2010-04-30 Jan Hubicka <jh@suse.cz>
21554
21555 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
21556 varpool.
21557 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
21558
21559 2010-04-30 Jan Hubicka <jh@suse.cz>
21560
21561 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
21562 New.
21563 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
21564 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
21565 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
21566 cgraph_node_set_needs_ltrans_p): Remove.
21567
21568 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
21569
21570 * sdbout.c: Include vec.h, do not include varray.h.
21571 (deferred_global_decls, sdbout_global_decl,
21572 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
21573 * toplev.c: Do not include varray.h.
21574 (dump_memory_report): Do not dump VARRAY statistics.
21575 * gengtype.c (open_base_file): Ignore varray.h.
21576 * Makefile.in: Update for abovementioned changes.
21577 Remove all traces of varray.c and varray.h.
21578 * varray.c: Remove file.
21579 * varray.h: Remove file.
21580
21581 2010-04-30 Jan Hubicka <jh@suse.cz>
21582
21583 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
21584 references.
21585
21586 2010-04-30 Jan Hubicka <jh@suse.cz>
21587
21588 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
21589 needed.
21590
21591 2010-04-30 Richard Guenther <rguenther@suse.de>
21592
21593 * tree-ssa-structalias.c (get_constraint_for_1): Generate
21594 constraints for CONSTRUCTOR.
21595
21596 2010-04-30 Richard Guenther <rguenther@suse.de>
21597
21598 PR lto/43946
21599 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
21600 first after all lowering passes.
21601
21602 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
21603
21604 * toplev.c: Include varray.h for statistics dumping.
21605 * tree.h: Do not declare varray_head_tag.
21606 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
21607 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
21608 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
21609 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
21610 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
21611 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
21612 c-common.c, c-common.h, reg-stack.c, basic-block.h,
21613 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
21614 include varray.h.
21615 * Makefile.in: Update for abovementioned changes.
21616
21617 2010-04-30 Jakub Jelinek <jakub@redhat.com>
21618
21619 PR debug/43942
21620 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
21621
21622 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
21623
21624 * config/picochip/picochip.c (picochip_legitimize_address): Define.
21625 Use this function to do machine-specific conversion.
21626 (picochip_legitimize_reload_address): Likewise.
21627 (picochip_legitimate_address_p): Check valid base register only if
21628 strict.
21629 (picochip_check_conditional_copy): Check for modw only if opnd is
21630 register.
21631 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
21632 to call the function in c.
21633 * config/picochip/picochip-protos.h
21634 (picochip_legitimize_reload_address): Define.
21635 * config/picochip/picochip.md (supported_compare1): Define.
21636
21637 2010-04-30 Jan Hubicka <jh@suse.cz>
21638
21639 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
21640 (cgraph_global_info): Remove inlined.
21641 (LTO_cgraph_tag_names): Remove.
21642 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
21643 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
21644 simplify cgraph tags and document.
21645 (lto_output_node): Use only LTO_cgraph_unavail_node and
21646 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
21647 for_functions_valid, global info, process and output flags.
21648 (input_overwrite_node): Initialize estimated stack size and
21649 estimated growth. Do not read flags we no longer store.
21650 (input_node): Likewise do not read info no longer stored.
21651 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
21652 flag.
21653
21654 2010-04-30 Richard Guenther <rguenther@suse.de>
21655
21656 PR tree-optimization/43879
21657 * tree-ssa-structalias.c (get_constraint_for_1): Properly
21658 handle non-zero initializers.
21659
21660 2010-04-30 Richard Guenther <rguenther@suse.de>
21661
21662 * builtins.c (fold_builtin_1): Delete free (0).
21663
21664 2010-04-29 Jan Hubicka <jh@suse.cz>
21665
21666 * gengtype.c (open_base_files): Add lto-streamer.h
21667 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
21668 (pass_ipa_cp): GGC collect.
21669 * toplev. (compile_file): Do not output symbols.
21670 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
21671 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
21672 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
21673 * lto-section-in.c: Include ggc.h
21674 (lto_new_in_decl_state): Alloc in GGC.
21675 (lto_delete_in_decl_state): Likewise.
21676 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
21677 Collect.
21678
21679 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
21680
21681 PR target/42895
21682 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
21683 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
21684 (HONOR_REG_ALLOC_ORDER): Describe new macro.
21685 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
21686 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
21687 account only if HONOR_REG_ALLOC_ORDER is not defined.
21688 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
21689 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
21690
21691 2010-04-29 Jon Grant <04@jguk.org>
21692
21693 * collect2.c (vflag): Change type from int to bool.
21694 (debug): Likewise.
21695 (helpflag): New global bool.
21696 (main): Set vflag and debug with boolean, not integer truth values.
21697 Accept new "--help" option and output usage text if found.
21698 * collect2.h (vflag): Update prototype.
21699 (debug): Likewise.
21700
21701 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
21702
21703 PR bootstrap/43936
21704 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
21705
21706 2010-04-29 Richard Guenther <rguenther@suse.de>
21707
21708 PR bootstrap/43935
21709 * plugin.h (invoke_plugin_callbacks): Annotate arguments
21710 with ATTRIBUTE_UNUSED.
21711
21712 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
21713
21714 PR target/43921
21715 * config/i386/i386.c (get_some_local_dynamic_name): Replace
21716 INSN_P with NONDEBUG_INSN_P.
21717 (distance_non_agu_define): Likewise.
21718 (distance_agu_use): Likewise.
21719
21720 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
21721
21722 From Dominique d'Humieres <dominiq@lps.ens.fr>
21723 PR bootstrap/43858
21724 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
21725 test_set.
21726
21727 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
21728
21729 * plugin.h (invoke_plugin_callbacks): New inline function.
21730 * plugin.c (flag_plugin_added): New global flag.
21731 (add_new_plugin): Initialize above flag.
21732 (invoke_plugin_callbacks): Rename to ...
21733 (invoke_plugin_callbacks_full): ... this.
21734
21735 2010-04-28 Jan Hubicka <jh@suse.cz>
21736
21737 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
21738 (lto_varpool_replace_node): New.
21739 (lto_symtab_resolve_symbols): Resolve varpool nodes.
21740 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
21741 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
21742 * cgraph.h (varpool_node_ptr): New type.
21743 (varpool_node_ptr): New vector.
21744 (varpool_node_set_def): New structure.
21745 (varpool_node_set): New type.
21746 (varpool_node_set): New vector.
21747 (varpool_node_set_element_def): New structure.
21748 (varpool_node_set_element, const_varpool_node_set_element): New types.
21749 (varpool_node_set_iterator): New type.
21750 (varpool_node): Add prev pointers, add used_from_other_partition,
21751 in_other_partition.
21752 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
21753 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
21754 varpool_get_node, varpool_remove_node): Declare.
21755 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
21756 varpool_node_set_size): New inlines.
21757 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
21758 * tree-pass.h (varpool_node_set_def): Forward declare.
21759 (ipa_opt_pass_d): Summary writting takes vnode sets too.
21760 (ipa_write_optimization_summaries): Update prototype.
21761 * ipa-cp.c (ipcp_write_summary): Update.
21762 * ipa-reference.c (ipa_reference_write_summary): Update.
21763 * lto-cgraph.c (lto_output_varpool_node): New static function.
21764 (output_varpool): New function.
21765 (input_varpool_node): New static function.
21766 (input_varpool_1): New function.
21767 (input_cgraph): Input varpool.
21768 * ipa-pure-const.c (pure_const_write_summary): Update.
21769 * lto-streamer-out.c (lto_output): Update, output varpool too.
21770 (write_global_stream): Kill WPA hack.
21771 (produce_asm_for_decls): Update.
21772 (output_alias_pair_p): Handle variables.
21773 (output_unreferenced_globals): Output only needed partition of varpool.
21774 * ipa-inline.c (inline_write_summary): Update.
21775 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
21776 cgraph.
21777 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
21778 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
21779 varpool_node_set_new, varpool_node_set_add,
21780 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
21781 debug_varpool_node_set): New functions.
21782 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
21783 (execute_one_pass): Process new decls too.
21784 (ipa_write_summaries_2): Pass around vsets.
21785 (ipa_write_summaries_1): Likewise.
21786 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
21787 to add.
21788 (ipa_write_optimization_summaries_1): Pass around vsets.
21789 (ipa_write_optimization_summaries): Likewise.
21790 * varpool.c (varpool_get_node): New.
21791 (varpool_node): Update doubly linked lists.
21792 (varpool_remove_node): New.
21793 (dump_varpool_node): More dumping.
21794 (varpool_enqueue_needed_node): Update doubly linked lists.
21795 (decide_is_variable_needed): Kill ltrans hack.
21796 (varpool_finalize_decl): Kill lto hack.
21797 (varpool_assemble_decl): Skip decls in other partitions.
21798 (varpool_assemble_pending_decls): Update doubly linkes lists.
21799 (varpool_empty_needed_queue): Likewise.
21800 (varpool_extra_name_alias): Likewise.
21801 * lto-streamer.c (lto_get_section_name): Add vars section.
21802 * lto-streamer.h (lto_section_type): Update.
21803 (output_varpool, input_varpool): Declare.
21804
21805 2010-04-28 Mike Stump <mikestump@comcast.net>
21806
21807 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
21808
21809 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
21810
21811 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
21812 record or union type with RECORD_OR_UNION_TYPE_P predicate.
21813 (lto_input_ts_type_tree_pointers): Likewise.
21814 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
21815 (lto_output_ts_type_tree_pointers): Likewise.
21816
21817 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
21818
21819 Uniquization of constants at the Tree level
21820 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
21821 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
21822 bit to the end.
21823 (tree_output_constant_def): Declare.
21824 * gimplify.c (gimplify_init_constructor): When using block copy, first
21825 uniquize the constant constructor on the RHS.
21826 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
21827 DECL_IN_CONSTANT_POOL flag.
21828 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
21829 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
21830 constant pool.
21831 (assemble_variable): Deal with symbols belonging to the tree constant
21832 pool.
21833 (get_constant_section): Add ALIGN parameter and simplify.
21834 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
21835 (assemble_constant_contents): Use the expression of the VAR_DECL.
21836 (output_constant_def_contents): Use the alignment of the VAR_DECL.
21837 (tree_output_constant_def): New global function.
21838 (mark_constant): Use the expression of the VAR_DECL.
21839 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
21840 its expression.
21841 (output_object_block): Likewise and assemble the expression.
21842
21843 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
21844
21845 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
21846 hash_tree, eq_tree): New tree hash table.
21847 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
21848 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
21849 lto_orig_address_remove): Reimplement.
21850
21851 2010-04-28 Xinliang David Li <davidxl@google.com>
21852
21853 PR c/42643
21854 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
21855 (compute_uninit_opnds_pos): New function.
21856 (is_non_loop_exit_postdominating): New function.
21857 (compute_control_dep_chain): New function.
21858 (find_pdom): New function.
21859 (convert_control_dep_chain_into_preds): New function.
21860 (find_predicates): New function.
21861 (find_control_equiv_block): New function.
21862 (collect_phi_def_edges): New function.
21863 (find_def_preds): New function.
21864 (find_dom): New function.
21865 (dump_predicates): New function.
21866 (get_cmp_code): New function.
21867 (is_value_included_in): New function.
21868 (find_matching_predicate_in_rest_chains): New function.
21869 (use_pred_not_overlap_with_undef_path_pred): New function.
21870 (is_use_properly_guarded): New function.
21871 (normalize_cond_1): New function.
21872 (is_and_or_or): New function.
21873 (normalize_cond): New function.
21874 (is_gcond_subset_of): New function.
21875 (is_subset_of_any): New function.
21876 (is_or_set_subset_of): New function.
21877 (is_and_set_subset_of): New function.
21878 (is_norm_cond_subset_of): New function.
21879 (is_pred_expr_subset_of): New function.
21880 (is_pred_chain_subset_of): New function.
21881 (is_included_in): New function.
21882 (is_superset_of): New function.
21883 (find_uninit_use): New function.
21884 (warn_uninitialized_phi): New function.
21885 (compute_possibly_undefined_names): New function.
21886 (ssa_undefined_value_p): New function.
21887 (execute_late_warn_uninitialized): New function.
21888 * tree-ssa.c (ssa_undefined_value_p): Removed.
21889 (warn_uninit): Changed to extern.
21890 (warn_uninitialized_phi): Removed.
21891 (warn_uninitialized_vars): Changed to extern.
21892 (execute_late_warn_uninitialized): Removed
21893 * tree-flow.h: Add new prototypes.
21894 * timevar.def: Add new time variable.
21895 * Makefile.in: Add new build file.
21896
21897 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
21898
21899 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
21900 type if available.
21901
21902 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21903
21904 PR target/22224
21905 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
21906
21907 2010-04-28 Martin Jambor <mjambor@suse.cz>
21908
21909 * cgraph.h (struct cgraph_node): New field indirect_calls.
21910 (struct cgraph_indirect_call_info): New type.
21911 (struct cgraph_edge): Removed field indirect_call. New fields
21912 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
21913 (cgraph_create_indirect_edge): Declare.
21914 (cgraph_make_edge_direct): Likewise.
21915 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
21916 * ipa-prop.h (struct ipa_param_call_note): Removed.
21917 (struct ipa_node_params): Removed field param_calls.
21918 (ipa_create_all_structures_for_iinln): Declare.
21919 * cgraph.c: Described indirect edges and uids in initial comment.
21920 (cgraph_add_edge_to_call_site_hash): New function.
21921 (cgraph_edge): Search also among the indirect edges, use
21922 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
21923 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
21924 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
21925 site hash.
21926 (initialize_inline_failed): Assign a reason to indirect edges.
21927 (cgraph_create_edge_1): New function.
21928 (cgraph_create_edge): Moved some functionality to
21929 cgraph_create_edge_1.
21930 (cgraph_create_indirect_edge): New function.
21931 (cgraph_edge_remove_callee): Add an assert checking for
21932 non-indirectness.
21933 (cgraph_edge_remove_caller): Special-case indirect edges.
21934 (cgraph_remove_edge): Likewise.
21935 (cgraph_set_edge_callee): New function.
21936 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
21937 (cgraph_make_edge_direct): New function.
21938 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
21939 the declaration of the call statement matches.
21940 (cgraph_node_remove_callees): Special-case indirect edges.
21941 (cgraph_clone_edge): Likewise.
21942 (cgraph_clone_node): Clone also the indirect edges.
21943 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
21944 indirect_call, dump count of indirect_calls edges.
21945 * ipa-prop.c (iinlining_processed_edges): New variable.
21946 (ipa_note_param_call): Create indirect edges instead of
21947 creating notes. New parameter node.
21948 (ipa_analyze_call_uses): New parameter node, pass it on to
21949 ipa_note_param_call.
21950 (ipa_analyze_stmt_uses): Likewise.
21951 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
21952 (print_edge_addition_message): Work on edges rather than on notes.
21953 (update_call_notes_after_inlining): Likewise, renamed to
21954 update_indirect_edges_after_inlining.
21955 (ipa_create_all_structures_for_iinln): New function.
21956 (ipa_free_node_params_substructures): Do not free notes.
21957 (ipa_edge_duplication_hook): Propagate bits within
21958 iinlining_processed_edges bitmap.
21959 (ipa_node_duplication_hook): Do not duplicate notes.
21960 (free_all_ipa_structures_after_ipa_cp): Renamed to
21961 ipa_free_all_structures_after_ipa_cp.
21962 (free_all_ipa_structures_after_iinln): Renamed to
21963 ipa_free_all_structures_after_iinln.
21964 (ipa_write_param_call_note): Removed.
21965 (ipa_read_param_call_note): Removed.
21966 (ipa_write_indirect_edge_info): New function.
21967 (ipa_read_indirect_edge_info): Likewise.
21968 (ipa_write_node_info): Do not stream notes, do stream information
21969 in indirect edges.
21970 (ipa_read_node_info): Likewise.
21971 (lto_ipa_fixup_call_notes): Removed.
21972 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
21973 * ipa-inline.c (pass_ipa_inline): Likewise.
21974 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
21975 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
21976 * tree-inline.c (copy_bb): Removed an unnecessary double check for
21977 is_gimple_call.
21978 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
21979 edges.
21980 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
21981 (output_cgraph): Stream also indirect edges.
21982 (lto_output_edge): Added capability to stream indirect edges.
21983 (input_edge): Likewise.
21984 (input_cgraph_1): Likewise.
21985 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
21986 of indirect edges.
21987
21988 2010-04-28 Richard Guenther <rguenther@suse.de>
21989
21990 PR tree-optimization/43879
21991 PR tree-optimization/43909
21992 * tree-ssa-structalias.c (struct variable_info): Add
21993 only_restrict_pointers flag.
21994 (new_var_info): Initialize it. Increment stats.total_vars here.
21995 (create_function_info_for): Do not increment stats.total_vars here.
21996 (get_function_part_constraint): Fix build with C++.
21997 (insert_into_field_list): Remove.
21998 (push_fields_onto_fieldstack): Properly merge fields.
21999 (create_variable_info_for): Split and simplify.
22000 (create_variable_info_for_1): New piece.
22001 (intra_create_variable_infos): Properly make restrict constraints
22002 from parameters.
22003
22004 2010-04-28 Richard Guenther <rguenther@suse.de>
22005
22006 PR c++/43880
22007 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
22008
22009 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
22010 Jan Hubicka <hubicka@ucw.cz>
22011
22012 * doc/invoke.texi (-Wsuggest-attribute=const,
22013 -Wsuggest-attribute=pure): Document.
22014 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
22015 (function_always_visible_to_compiler_p,
22016 suggest_attribute, warn_function_pure, warn_function_const):
22017 New functions.
22018 (check_call): Improve debug info.
22019 (analyze_function): Do not check availability.
22020 (add_new_function): Check availability.
22021 (propagate): Output warnings.
22022 (skip_function_for_local_pure_const): New function.
22023 (local_pure_const): Use it; output warnings.
22024 * common.opt (Wsuggest-attribute=const,
22025 Wsuggest-attribute=pure): New.
22026
22027 2010-04-27 Jakub Jelinek <jakub@redhat.com>
22028
22029 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
22030 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
22031 or DW_CFA_def_cfa_offset{,_sf}.
22032
22033 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
22034
22035 * tree.h: Fix truncated long macros.
22036
22037 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
22038
22039 * collect2.c (TARGET_64BIT): Redefine to target's default.
22040 * tlink.c: Likewise.
22041 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
22042 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
22043 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
22044 for underscoring __USER_LABEL_PREFIX__.
22045 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
22046 (SUB_LINK_ENTRY32): New.
22047 (SUB_LINK_ENTRY64): New.
22048 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
22049 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
22050 (SUB_LINK_ENTRY64): New.
22051 (SUB_LINK_ENTRY): New.
22052 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
22053 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
22054 x64 target is choosen.
22055 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
22056 * configure: Regenerated.
22057 * configure.ac (leading-mingw64-underscores): Option added.
22058
22059 2010-04-27 Jan Hubicka <jh@suse.cz>
22060
22061 * doc/invoke.texi (-fipa-profile): Document.
22062 * opts.c (decode_options): Enable ipa-profile at -O1.
22063 * timevar.def (TV_IPA_PROFILE): Define.
22064 * common.opt (fipa-profile): Add.
22065 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
22066 flag for clones.
22067 (cgraph_propagate_frequency): Handle only local ones.
22068 * tree-pass.h (pass_ipa_profile): Declare.
22069 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
22070 (pass_ipa_profile): Use TV_IPA_PROFILE.
22071 * ipa.c (ipa_profile): New function.
22072 (gate_ipa_profile): Likewise.
22073 (pass_ipa_profile): New global variable.
22074 * passes.c (pass_ipa_profile): New.
22075
22076 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
22077
22078 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
22079
22080 2010-04-27 Martin Jambor <mjambor@suse.cz>
22081
22082 PR middle-end/43812
22083 * ipa.c (dissolve_same_comdat_group_list): New function.
22084 (function_and_variable_visibility): Call
22085 dissolve_same_comdat_group_list when comdat group contains external or
22086 newly local nodes.
22087 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
22088 lists are circular and that they contain only DECL_ONE_ONLY nodes.
22089
22090 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
22091
22092 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
22093 (const_hash_1) <VECTOR_CST>: New case.
22094 (compare_constant) <VECTOR_CST>: Likewise.
22095 <ADDR_EXPR>: Deal with LABEL_REFs.
22096 (copy_constant) <VECTOR_CST>: New case.
22097
22098 2010-04-27 Jan Hubicka <jh@suse.cz>
22099
22100 * cgraph.c (cgraph_propagate_frequency): New function.
22101 * cgraph.h (cgraph_propagate_frequency): Declare.
22102 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
22103 cgraph_propagate_frequency.
22104
22105 2010-04-27 Jakub Jelinek <jakub@redhat.com>
22106
22107 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
22108
22109 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
22110
22111 PR target/40657
22112 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
22113 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
22114 here to determine which regs to push and how much stack to reserve.
22115
22116 2010-04-27 Jie Zhang <jie@codesourcery.com>
22117
22118 * doc/gimple.texi (gimple_statement_with_ops): Remove
22119 addresses_taken field.
22120 (gimple_statement_with_memory_ops): Likewise.
22121
22122 2010-04-27 Jan Hubicka <jh@suse.cz>
22123
22124 * tree-inline.c (eni_inlining_weights): Remove.
22125 (estimate_num_insns): Special case more builtins.
22126
22127 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
22128
22129 PR c/32207
22130 * c-typeck.c (build_binary_op): Move forward check for comparison
22131 pointer with null pointer constant and adjust the diagnostic message.
22132
22133 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
22134
22135 PR lto/42776
22136 * configure.ac (gcc_cv_as_section_has_align): Set if installed
22137 binutils supports extended .section directive needed by LTO, or
22138 warn if older binutils found.
22139 (LTO_BINARY_READER): New AC_SUBST'd variable.
22140 (LTO_USE_LIBELF): Likewise.
22141 * config.gcc (lto_binary_reader): New target-specific configure
22142 variable.
22143 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
22144 (LTO_USE_LIBELF): Likewise.
22145 * configure: Regenerate.
22146
22147 * collect2.c (is_elf): Rename from this ...
22148 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
22149 object files in addition to ELF-formatted ones.
22150 (scan_prog_file): Caller updated. Also allow for LTO info marker
22151 symbol to be prefixed or not by an extra underscore.
22152
22153 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
22154 * config/i386/winnt.c: Also #include lto-streamer.h
22155 (i386_pe_asm_named_section): Specify 1-byte section alignment for
22156 LTO named sections.
22157 (i386_pe_asm_output_aligned_decl_common): Add comment.
22158 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
22159
22160 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
22161
22162 PR target/43889
22163 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
22164 Add missing earlyclobber for second alternative.
22165
22166 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
22167
22168 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
22169 bits for artificial defs at the top of the block.
22170 * fwprop.c (single_def_use_enter_block): Don't call it.
22171
22172 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
22173
22174 PR 43715
22175 * configure.ac: Use "$gcc_cv_nm -g" on darwin
22176 instead of "$gcc_cv_objdump -T".
22177 Use "-undefined dynamic_lookup" on darwin.
22178 * configure: Regenerate.
22179
22180 2010-04-26 Jakub Jelinek <jakub@redhat.com>
22181
22182 PR c/43893
22183 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
22184
22185 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
22186
22187 * c-parser.c (struct c_token): Move location field up.
22188 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
22189 (struct c_declspecs): Convert typespec_word, storage_class, and
22190 default_int_p into bitfields.
22191 (struct c_declarator): Move loc field up.
22192
22193 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
22194
22195 * cfgloop.h (struct loop): Move can_be_parallel field up.
22196 * ipa-prop.h (struct ip_node_params): Move bitfields up.
22197 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
22198 down.
22199 (struct iv_cand): Convert pos field into a bitfield.
22200 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
22201 field up.
22202 (struct _stmt_vec_info): Shuffle fields for better packing.
22203
22204 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
22205
22206 * varasm.c (IN_NAMED_SECTION): Remove guard.
22207 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
22208 (IN_NAMED_SECTION_P): ...this.
22209 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
22210 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
22211
22212 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
22213
22214 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
22215 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
22216 of shadowing it. Fix comments.
22217
22218 2010-04-26 Jan Hubicka <jh@suse.cz>
22219
22220 * cgraph.c (cgraph_create_node): Set node frequency to normal.
22221 (cgraph_clone_node): Copy function frequency.
22222 * cgraph.h (node_frequency): New enum
22223 (struct cgraph_node): Add.
22224 * final.c (rest_of_clean_state): Update.
22225 * lto-cgraph.c (lto_output_node): Output node frequency.
22226 (input_overwrite_node): Input node frequency.
22227 * tre-ssa-loop-ivopts (computation_cost): Update.
22228 * lto-streamer-out.c (output_function): Do not output function
22229 frequency.
22230 * predict.c (maybe_hot_frequency_p): Update and handle functions
22231 executed once.
22232 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
22233 attribute lookup.
22234 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
22235 (compute_function_frequency): Set noreturn functions to be executed
22236 once.
22237 (choose_function_section): Update.
22238 * lto-streamer-in.c (input_function): Do not input function frequency.
22239 * function.c (allocate_struct_function): Do not initialize function
22240 frequency.
22241 * function.h (function_frequency): Remove.
22242 (struct function): Remove function frequency.
22243 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
22244 (try_update): Update.
22245 * tree-inline.c (initialize_cfun): Do not update function frequency.
22246 * passes.c (pass_init_dump_file): Update.
22247 * i386.c (ix86_compute_frame_layout): Update.
22248 (ix86_pad_returns): Update.
22249
22250 2010-04-26 Jie Zhang <jie@codesourcery.com>
22251
22252 PR tree-optimization/43833
22253 * tree-vrp.c (range_int_cst_p): New.
22254 (range_int_cst_singleton_p): New.
22255 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
22256 when both operands are constants. Use range_int_cst_p in
22257 BIT_IOR_EXPR case.
22258
22259 2010-04-26 Jan Hubicka <jh@suse.cz>
22260
22261 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
22262
22263 2010-04-26 Richard Guenther <rguenther@suse.de>
22264
22265 PR lto/43080
22266 * gimple.c (gimple_decl_printable_name): Deal gracefully
22267 with a NULL DECL_NAME.
22268
22269 2010-04-26 Richard Guenther <rguenther@suse.de>
22270
22271 PR lto/42425
22272 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
22273 if emitting debug information and it is either a function
22274 or a namespace decl.
22275
22276 2010-04-26 Ira Rosen <irar@il.ibm.com>
22277
22278 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
22279 determine if the statement is vectorizable, and a macro to access it.
22280 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
22281 Skip statements that can't be vectorized. If the analysis fails,
22282 mark the statement as unvectorizable if vectorizing basic block.
22283 (vect_compute_data_refs_alignment): Likewise.
22284 (vect_verify_datarefs_alignment): Skip statements marked as
22285 unvectorizable. Add print.
22286 (vect_analyze_group_access): Skip statements that can't be
22287 vectorized. If the analysis fails, mark the statement as
22288 unvectorizable if vectorizing basic block.
22289 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
22290 * tree-vect-stmts.c (vectorizable_store): Fix the number of
22291 generated stmts for SLP.
22292 (new_stmt_vec_info): Initialize the new field.
22293 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
22294 statements marked as unvectorizable.
22295
22296 2010-04-25 Joseph Myers <joseph@codesourcery.com>
22297
22298 * c-common.c (flag_isoc1x): New.
22299 (flag_isoc99): Update comment.
22300 * c-common.h (flag_isoc1x): New.
22301 (flag_isoc99): Update comment.
22302 * c-cppbuiltin.c (builtin_define_float_constants): Also define
22303 __<type>_DECIMAL_DIG__.
22304 * c-opts.c (set_std_c1x): New.
22305 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
22306 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
22307 * c.opt (-std=c1x, -std=gnu1x): New options.
22308 * doc/cpp.texi: Mention -std=c1x.
22309 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
22310 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
22311 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
22312 * doc/standards.texi: Mention C1X.
22313 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
22314 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
22315 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
22316 Define for C1X.
22317
22318 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
22319
22320 * config/i386/gmon-sol2.c (_mcleanup): Change format string
22321 placeholder from 0x%x to %#x.
22322 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
22323 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
22324 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
22325 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
22326 * config/i386/i386.c (ix86_target_string): Ditto.
22327 (output_pic_addr_const): Ditto.
22328 (print_operand): Ditto.
22329
22330 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
22331
22332 * combine.c (find_split_point): Add third argument. Use it
22333 to find nested multiply-accumulate instructions. Adjust calls.
22334 (try_combine): Adjust call to find_split_point.
22335
22336 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
22337
22338 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
22339
22340 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
22341
22342 PR tree-optimization/41442
22343 * fold-const.c (merge_truthop_with_opposite_arm): New function.
22344 (fold_binary_loc): Call it.
22345
22346 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
22347
22348 * toplev.c (general_init): Set default for fdiagnostics-show-option.
22349 * opts.c (common_handle_option): Allow disabling it.
22350 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
22351
22352 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
22353
22354 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
22355 between modes if both types are integral.
22356
22357 2010-04-23 Richard Guenther <rguenther@suse.de>
22358
22359 PR tree-optimization/43572
22360 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
22361
22362 2010-04-23 Richard Guenther <rguenther@suse.de>
22363
22364 PR lto/43455
22365 * tree-inline.c (tree_can_inline_p): Also check compatibility
22366 of return types.
22367
22368 2010-04-23 Martin Jambor <mjambor@suse.cz>
22369
22370 PR tree-optimization/43846
22371 * tree-sra.c (struct access): New flag grp_assignment_read.
22372 (build_accesses_from_assign): Set grp_assignment_read.
22373 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
22374 (enum mark_read_status): New type.
22375 (analyze_access_subtree): Propagate grp_assignment_read, create
22376 accesses also if both direct_read and root->grp_assignment_read.
22377
22378 2010-04-23 Martin Jambor <mjambor@suse.cz>
22379
22380 PR middle-end/43835
22381 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
22382 function does not have type attributes.
22383
22384 2010-04-23 Richard Guenther <rguenther@suse.de>
22385
22386 PR lto/42653
22387 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
22388 of FUNCTION_DECLs.
22389
22390 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22391
22392 * sese.h (create_if_region_on_edge): Remove.
22393
22394 * sese.c (create_if_region_on_edge): Make static.
22395
22396 * tree-inline.c: Do not include ggc.h.
22397
22398 * expr.c: Do not include ggc.h.
22399
22400 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
22401 dependencies.
22402
22403 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
22404
22405 PR target/43744
22406 * config/sh/sh.c (find_barrier): Don't emit a constant pool
22407 in the middle of insns for casesi_worker_2.
22408
22409 2010-04-22 David Edelsohn <edelsohn@gnu.org>
22410
22411 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
22412
22413 2010-04-22 Ira Rosen <irar@il.ibm.com>
22414
22415 PR tree-optimization/43842
22416 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
22417 loop unrolling in update of exit phis. Fix comment.
22418 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
22419 least two reduction statements in the loop before starting SLP
22420 analysis.
22421
22422 2010-04-22 Nick Clifton <nickc@redhat.com>
22423
22424 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
22425
22426 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
22427
22428 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
22429 to simplify a + ~a.
22430
22431 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22432
22433 * tree-parloops.c (loop_parallel_p): New argument
22434 parloop_obstack. Pass it down.
22435 (parallelize_loops): New variable parloop_obstack. Initialize it,
22436 pass it down, free it.
22437
22438 * tree-loop-linear.c (linear_transform_loops): Pass down
22439 lambda_obstack.
22440
22441 * tree-data-ref.h (lambda_compute_access_matrices): New argument
22442 of type struct obstack *.
22443
22444 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
22445 scratch_obstack. Initialize it, pass down, free it.
22446
22447 * lambda.h (lambda_loop_new): Remove.
22448 (lambda_matrix_new, lambda_matrix_inverse)
22449 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
22450 argument of type struct obstack *.
22451
22452 * lambda-trans.c (lambda_trans_matrix_new): New argument
22453 lambda_obstack. Pass it down, use obstack allocation for ret.
22454 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
22455 it down.
22456
22457 * lambda-mat.c (lambda_matrix_get_column)
22458 (lambda_matrix_project_to_null): Remove.
22459 (lambda_matrix_new): New argument lambda_obstack. Use obstack
22460 allocation for mat.
22461 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
22462 lambda_obstack.
22463
22464 * lambda-code.c (lambda_loop_new): New function.
22465 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
22466 (lambda_compute_auxillary_space, lambda_compute_target_space)
22467 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
22468 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
22469 (build_access_matrix): New argument lambda_obstack. Use obstack
22470 allocation for am.
22471 (lambda_compute_step_signs, lambda_compute_access_matrices): New
22472 argument lambda_obstack. Pass it down.
22473
22474 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
22475
22476 * optabs.h (expand_widening_mult): Declare.
22477
22478 2010-04-22 Richard Guenther <rguenther@suse.de>
22479
22480 PR tree-optimization/43845
22481 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
22482 lookup the CALL_EXPR function and arguments.
22483
22484 2010-04-22 Nick Clifton <nickc@redhat.com>
22485
22486 * config/stormy16/stormy16.c
22487 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
22488 * config/stormy16/stormy16.h: Tidy up formatting.
22489 (DONT_USE_BUILTIN_SETJMP): Remove definition.
22490 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
22491 (ineqbranchsi): Delete pattern.
22492 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
22493 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
22494 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
22495 stormy16-lib2-ucmpsi2.c.
22496
22497 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
22498
22499 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
22500 df_simulate_find_noclobber_defs as appropriate. Keep track of an
22501 extra set merge_set_noclobber, and use it to relax the final test
22502 slightly.
22503 * df.h (df_simulate_find_noclobber_defs): Declare.
22504 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
22505 conditional defs.
22506 (df_simulate_find_noclobber_defs): New function.
22507
22508 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
22509
22510 * config/i386/i386.md: Use {} around multi-line preparation statements.
22511
22512 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22513
22514 * c-tree.h (push_init_level, pop_init_level, set_init_index)
22515 (process_init_element): New argument of type struct obstack *.
22516
22517 * c-typeck.c (push_init_level, pop_init_level, set_designator)
22518 (set_init_index, set_init_label, set_nonincremental_init)
22519 (set_nonincremental_init_from_string, find_init_member)
22520 (output_init_element, output_pending_init_elements)
22521 (process_init_element): New argument braced_init_obstack. Pass it
22522 down.
22523 (push_range_stack, add_pending_init): New argument
22524 braced_init_obstack. Use obstack allocation.
22525
22526 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
22527 braced_init_obstack. Pass it down.
22528 (c_parser_braced_init): New variables ret, braced_init_obstack.
22529 Initialize obstack, pass it down and finally free it.
22530
22531 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
22532
22533 PR middle-end/29274
22534 * tree-pass.h (pass_optimize_widening_mul): Declare.
22535 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
22536 gate_optimize_widening_mul): New static functions.
22537 (pass_optimize_widening_mul): New.
22538 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
22539 <case MULT_EXPR>: Remove support for widening multiplies.
22540 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
22541 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
22542 simplify_gen_unary rather than directly building extensions.
22543 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
22544 WIDEN_MULT_EXPR.
22545 * expmed.c (expand_widening_mult): New function.
22546 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
22547
22548 2010-04-21 Jan Hubicka <jh@suse.cz>
22549
22550 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
22551 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
22552 * lto-wpa-fixup.c: Remove.
22553 * Makefile.in (lto-wpa-fixup.o): Remove.
22554 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
22555 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
22556 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
22557
22558 2010-04-21 Jan Hubicka <jh@suse.cz>
22559
22560 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
22561 add write_optimization_summary, read_optimization_summary.
22562 (ipa_write_summaries_of_cgraph_node_set): Remove.
22563 (ipa_write_optimization_summaries): Declare.
22564 (ipa_read_optimization_summaries): Declare.
22565 * ipa-cp.c (pass_ipa_cp): Update.
22566 * ipa-reference.c (pass_ipa_reference): Update.
22567 * ipa-pure-const.c (pass_ipa_pure_const): Update.
22568 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
22569 Update.
22570 * ipa-inline.c (pass_ipa_inline): Update.
22571 * ipa.c (pass_ipa_whole_program): Update.
22572 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
22573 * passes.c (ipa_write_summaries_1): Do not test wpa.
22574 (ipa_write_optimization_summaries_1): New.
22575 (ipa_write_optimization_summaries): New.
22576 (ipa_read_summaries): Do not test ltrans.
22577 (ipa_read_optimization_summaries_1): New.
22578 (ipa_read_optimization_summaries): New.
22579
22580 2010-04-21 Jan Hubicka <jh@suse.cz>
22581
22582 * lto-cgraph.c (lto_output_node): Do not output comdat groups
22583 for boundary nodes.
22584 (output_cgraph): Do not arrange comdat groups for boundary nodes.
22585
22586 2010-04-21 Jakub Jelinek <jakub@redhat.com>
22587
22588 PR debug/40040
22589 * dwarf2out.c (add_name_and_src_coords_attributes): Add
22590 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
22591
22592 2010-04-21 Jan Hubicka <jh@suse.cz>
22593
22594 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
22595
22596 2010-04-21 Jan Hubicka <jh@suse.cz>
22597
22598 * varpool.c (decide_is_variable_needed): Variable is always needed
22599 during ltrans.
22600
22601 2010-04-21 Jan Hubicka <jh@suse.cz>
22602
22603 * opts.c (decode_options): Enable pure-const pass for whopr.
22604
22605 2010-04-21 Jan Hubicka <jh@suse.cz>
22606
22607 * cgraph.c (dump_cgraph_node): Dump also assembler name.
22608 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
22609 at WPA dumping.
22610 (cgraph_decide_inlining): Do not expect callee to be removed in all
22611 cases.
22612
22613 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
22614
22615 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
22616
22617 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
22618
22619 * config/i386/i386.md (x86_shrd): Add athlon_decode and
22620 amdfam10_decode attributes.
22621
22622 2010-04-21 Jakub Jelinek <jakub@redhat.com>
22623
22624 PR middle-end/43570
22625 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
22626 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
22627 (lower_copyprivate_clauses): Use private var in outer
22628 context instead of original var. Make sure the types
22629 are correct for VLAs.
22630
22631 2010-04-21 Richard Guenther <rguenther@suse.de>
22632
22633 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
22634 to non-pointer objects.
22635
22636 2010-04-21 Jakub Jelinek <jakub@redhat.com>
22637
22638 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
22639 last chain entry if it starts with the still current label.
22640 (add_location_or_const_value_attribute): Check that
22641 loc_list->first->next is NULL instead of comparing ->first with ->last.
22642 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
22643 to add_var_loc_to_decl.
22644
22645 * dwarf2out.c (output_call_frame_info): For dw_cie_version
22646 >= 4 add also address size and segment size fields into CIE header.
22647
22648 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
22649 long as address size is the same as sizeof (void *) and
22650 segment size is 0.
22651 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
22652 address size or segment size is unexpected, return DW_EH_PE_omit.
22653 (classify_object_over_fdes): If get_cie_encoding returned
22654 DW_EH_PE_omit, return -1.
22655 (init_object): If classify_object_over_fdes returned -1,
22656 pretend there were no FDEs at all.
22657
22658 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
22659
22660 * config/i386/i386.md (bswap<mode>2): Macroize expander from
22661 bswap{si,di}2 using SWI48 mode iterator.
22662 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
22663 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
22664 set modrm attribute of bswap insn to 0 and remove length attribute.
22665 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
22666 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
22667 set mode attribute to <MODE> and remove length attribute.
22668
22669 2010-04-20 James E. Wilson <wilson@codesourcery.com>
22670
22671 PR rtl-optimization/43520
22672 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
22673 zero available registers.
22674
22675 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22676
22677 * builtins.c (fold_builtin_cproj): Fold more cases.
22678
22679 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22680
22681 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
22682 (fold_builtin_1): Fold builtin cproj.
22683 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
22684 Use ATTR_CONST_NOTHROW_LIST.
22685
22686 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
22687
22688 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
22689 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
22690 ffsi2_no_cmove for !TARGET_CMOVE.
22691 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
22692 (ffssi2): Remove expander.
22693 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
22694 mode iterator.
22695 (ctz<mode>2): Ditto from ctz{si,di}2.
22696 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
22697 mode iterator.
22698 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
22699 mode iterator.
22700
22701 2010-04-20 Jakub Jelinek <jakub@redhat.com>
22702
22703 * dwarf2out.c (AT_linkage_name): Define.
22704 (clone_as_declaration): Handle DW_AT_linkage_name.
22705 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
22706 of DW_AT_MIPS_linkage_name.
22707 (move_linkage_attr): Likewise.
22708 (dwarf2out_finish): Likewise.
22709
22710 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
22711
22712 PR middle-end/41952
22713 * fold-const.c (fold_comparison): New folding rule.
22714
22715 2010-04-20 Anatoly Sokolov <aesok@post.ru>
22716
22717 * double-int.h (double_int_setbit): Declare.
22718 * double-int.c (double_int_setbit): New function.
22719 * rtl.h (immed_double_int_const): Declare.
22720 * emit-rtl.c (immed_double_int_const): New function.
22721 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
22722 and immed_double_int_const functions.
22723 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
22724 expand_copysign_bit): (Ditto.).
22725 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
22726 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
22727 * dojump.c (prefer_and_bit_test): (Ditto.).
22728 * expr.c (convert_modes, reduce_to_bit_field_precision,
22729 const_vector_from_tree): (Ditto.).
22730 * expmed.c (mask_rtx, lshift_value): (Ditto.).
22731
22732 2010-04-20 Jan Hubicka <jh@suse.cz>
22733
22734 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
22735 (dump_cgraph_node): Dump new flags.
22736 * cgraph.h (struct cgraph_node): Add flags
22737 reachable_from_other_partition and in_other_partition.
22738 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
22739 other partition can not be removed.
22740 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
22741 the other partition must be output; silence sanity checking on
22742 leaking functions bodies from other paritition.
22743 * lto-cgraph.c (reachable_from_other_partition_p): New function.
22744 (lto_output_node): Output new flags; do not sanity check that inline
22745 clones are output; drop lto_forced_extern_inline_p code; do not mock
22746 visibility flags at partition boundaries.
22747 (add_node_to): New function.
22748 (output_cgraph): Use it to sort functions so masters appear before
22749 clones.
22750 (input_overwrite_node): Input new flags.
22751 * passes.c (ipa_write_summaries): Do not call
22752 lto_new_extern_inline_states.
22753 * lto-section-out.c (forced_extern_inline,
22754 lto_new_extern_inline_states lto_delete_extern_inline_states,
22755 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
22756 * lto-streamer.h (lto_new_extern_inline_states,
22757 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
22758 lto_forced_extern_inline_p): Kill.
22759
22760 2010-04-20 Richard Guenther <rguenther@suse.de>
22761
22762 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
22763 from vars that can have pointers.
22764 (process_constraint): Dump useless constraints.
22765
22766 2010-04-20 Richard Guenther <rguenther@suse.de>
22767
22768 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
22769 (dump_sa_points_to_info): Remove asserts.
22770 (init_base_vars): nothing_id isn't an escape point nor does it
22771 have pointers.
22772
22773 2010-04-20 Jakub Jelinek <jakub@redhat.com>
22774
22775 * tree.h (TYPE_REF_IS_RVALUE): Define.
22776 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
22777 should_move_die_to_comdat, prune_unused_types_walk): Handle
22778 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
22779 (modified_type_die, gen_reference_type_die): Emit
22780 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
22781 if TYPE_REF_IS_RVALUE and -gdwarf-4.
22782
22783 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22784
22785 PR target/43635
22786 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
22787 calls for -fpic -m31 if they have been sibcall optimized.
22788
22789 2010-04-19 James E. Wilson <wilson@codesourcery.com>
22790
22791 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
22792 ar.lc fixed and call-used.
22793
22794 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
22795
22796 2010-04-19 Jan Hubicka <jh@suse.cz>
22797
22798 * opts.c (decode_options): Disable whpr incompatible passes.
22799 * lto/lto.c (lto_1_to_1_map): Skip clones.
22800 (read_cgraph_and_symbols): Do not mark everything as needed.
22801 (do_whole_program_analysis): Do map only after optimizing;
22802 set proper cgraph_state; use passmanager.
22803
22804 2010-04-19 DJ Delorie <dj@redhat.com>
22805
22806 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
22807 POINTER_PLUS_EXPR and fix them.
22808
22809 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
22810
22811 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
22812 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
22813 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
22814 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
22815 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
22816 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
22817 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
22818 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
22819 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
22820 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
22821 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
22822
22823 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
22824
22825 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
22826 (check_cond_move_block): Likewise.
22827 (cond_move_process_if_block): Likewise.
22828 (noce_find_if_block): Improve formatting.
22829 (find_if_header): Pass 0 to memset and tweak conditions.
22830 (cond_exec_find_if_block): Fix long lines and tweak conditions.
22831
22832 2010-04-19 Jakub Jelinek <jakub@redhat.com>
22833
22834 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
22835 for -gdwarf-4.
22836
22837 PR middle-end/43337
22838 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
22839 with non-local decl doesn't need chain.
22840
22841 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
22842
22843 * ira-color.c (allocno_reload_assign): Avoid accumulating
22844 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
22845
22846 2010-04-19 Martin Jambor <mjambor@suse.cz>
22847
22848 * gimple.h (create_tmp_reg): Declare.
22849 * gimplify.c (create_tmp_reg): New function.
22850 (gimplify_return_expr): Use create_tmp_reg.
22851 (gimplify_omp_atomic): Likewise.
22852 (gimple_regimplify_operands): Likewise.
22853 * tree-dfa.c (make_rename_temp): Likewise.
22854 * tree-predcom.c (predcom_tmp_var): Likewise.
22855 (reassociate_to_the_same_stmt): Likewise.
22856 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
22857 (get_replaced_param_substitute): Likewise.
22858 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
22859 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
22860 * tree-ssa-pre.c (get_representative_for): Likewise.
22861 (create_expression_by_pieces): Likewise.
22862 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
22863 (create_tailcall_accumulator): Likewise.
22864
22865 2010-04-19 Martin Jambor <mjambor@suse.cz>
22866
22867 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
22868 new_stmt.
22869 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
22870
22871 2010-04-19 Richard Guenther <rguenther@suse.de>
22872
22873 PR tree-optimization/43796
22874 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
22875 from SCEV in the lattice.
22876 (vrp_visit_phi_node): Dump change.
22877
22878 2010-04-19 Richard Guenther <rguenther@suse.de>
22879
22880 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
22881 * configure: Re-generated.
22882
22883 2010-04-19 Richard Guenther <rguenther@suse.de>
22884
22885 PR tree-optimization/43783
22886 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
22887 constant ARRAY_REF operands two and three if possible.
22888
22889 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
22890
22891 PR target/43766
22892 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
22893
22894 2010-04-19 Jie Zhang <jie@codesourcery.com>
22895
22896 PR target/43662
22897 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
22898
22899 2010-04-19 Ira Rosen <irar@il.ibm.com>
22900
22901 PR tree-optimization/37027
22902 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
22903 and macro to access it.
22904 (vectorizable_reduction): Add argument.
22905 (vect_get_slp_defs): Likewise.
22906 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
22907 statements for possible use in SLP.
22908 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
22909 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
22910 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
22911 add new argument.
22912 (vectorizable_reduction): Likewise.
22913 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
22914 vect_get_slp_defs.
22915 (vectorizable_type_demotion, vectorizable_type_promotion,
22916 vectorizable_store): Likewise.
22917 (vect_analyze_stmt): Update call to vectorizable_reduction.
22918 (vect_transform_stmt): Likewise.
22919 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
22920 (vect_build_slp_tree): Fix indentation. Check that there are no loads
22921 from different interleaving chains in same node.
22922 (vect_slp_rearrange_stmts): New function.
22923 (vect_supported_load_permutation_p): Allow load permutations for
22924 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
22925 inside SLP nodes if necessary.
22926 (vect_analyze_slp_instance): Handle reductions.
22927 (vect_analyze_slp): Try to build SLP instances originating from groups
22928 of reductions.
22929 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
22930 (vect_get_constant_vectors): Create initial vectors for reductions
22931 according to reduction code. Add new argument.
22932 (vect_get_slp_defs): Add new argument, pass it to
22933 vect_get_constant_vectors.
22934 (vect_schedule_slp_instance): Remove SLP tree root statements.
22935
22936 2010-04-19 Jakub Jelinek <jakub@redhat.com>
22937
22938 * tree.h (ENUM_IS_SCOPED): Define.
22939 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
22940 for ENUM_IS_SCOPED enums.
22941
22942 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
22943
22944 * fold-const.c (fold_comparison): Use ssizetype.
22945 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
22946 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
22947 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
22948 * tree-object-size.c (compute_object_sizes): Use size_type_node.
22949
22950 * tree.h (initialize_sizetypes): Remove parameter.
22951 (build_common_tree_nodes): Remove second parameter.
22952 * stor-layout.c (initialize_sizetypes): Remove parameter.
22953 Always create an unsigned type.
22954 (set_sizetype): Assert that the passed type is unsigned and simplify.
22955 * tree.c (build_common_tree_nodes): Remove second parameter.
22956 Adjust call to initialize_sizetypes.
22957 * c-decl.c (c_init_decl_processing): Remove second argument in call to
22958 build_common_tree_nodes.
22959
22960 2010-04-18 Matthias Klose <doko@ubuntu.com>
22961
22962 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
22963
22964 2010-04-18 Ira Rosen <irar@il.ibm.com>
22965
22966 PR tree-optimization/43771
22967 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
22968 load permutation doesn't have gaps.
22969
22970 2010-04-18 Jan Hubicka <jh@suse.cz>
22971
22972 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
22973 (sse_prologue_save_insn expander): Use new pattern.
22974 (sse_prologue_save_insn1): New pattern and splitter.
22975 (sse_prologue_save_insn): Update to deal also with 64bit aligned
22976 blocks.
22977 * i386.c (setup_incoming_varargs_64): Do not compute jump
22978 destination here.
22979 (ix86_gimplify_va_arg): Update alignment needed.
22980 (ix86_local_alignment): Do not align all local arrays to 128bit.
22981
22982 2010-04-17 Jan Hubicka <jh@suse.cz>
22983
22984 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
22985
22986 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
22987
22988 * arm.md (negdi2): Remove redundant code to force values into a
22989 register.
22990
22991 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
22992
22993 * arm/bpabi.S: Add EABI alignment attributes to objects.
22994 * arm/bpabi-v6m.S: Likewise.
22995 * arm/crti.asm: Likewise.
22996 * arm/crtn.asm: Likewise.
22997 * arm/lib1funcs.asm: Likewise.
22998 * arm/libunwind.S: Likewise.
22999
23000 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
23001
23002 * arm-protos.h (tune_params): New structure.
23003 * arm.c (current_tune): New variable.
23004 (arm_constant_limit): Delete.
23005 (struct processors): Add pointer to the tune parameters.
23006 (arm_slowmul_tune): New tuning option.
23007 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
23008 (all_cores): Adjust to pick up the tuning model.
23009 (arm_constant_limit): New function.
23010 (arm_override_options): Select the appropriate tuning model. Delete
23011 initialization of arm_const_limit.
23012 (arm_split_constant): Use the new constant-limit model.
23013 (arm_rtx_costs): Pick up the current tuning model.
23014 * arm.md (is_strongarm, is_xscale): Delete.
23015 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
23016 for Xscale variant architectures.
23017 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
23018
23019 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23020
23021 * config/arm/arm.c (arm_gen_constant): Remove unused variable
23022 can_shift.
23023 (arm_rtx_costs_1): Remove unused variable extra_cost.
23024 (arm_unwind_emit_set): Use variable offset.
23025 (thumb1_output_casesi): Remove unused variable flags.
23026
23027 2010-04-16 Jeff Law <law@redhat.com>
23028
23029 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
23030 needing assignment rather than doing a two-phase assignment. Remove
23031 unused variable 'm'.
23032
23033 2010-04-16 Jakub Jelinek <jakub@redhat.com>
23034
23035 PR bootstrap/43767
23036 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
23037
23038 2010-04-16 Doug Kwan <dougkwan@google.com>
23039
23040 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
23041 (next_operand_entry_id): New static variable.
23042 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
23043 (add_to_ops_vec): Assigned unique ID to operand entry.
23044 (struct oecount_s): New field ID.
23045 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
23046 (undistribute_ops_list): Assign unique IDs to oecounts.
23047 (init_reassoc): reset next_operand_entry_id.
23048
23049 2010-04-16 Doug Kwan <dougkwan@google.com>
23050
23051 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
23052 missing left parenthesis.
23053
23054 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
23055
23056 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
23057 *btdi_rex64 using SWI48 mode iterator.
23058 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
23059 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
23060 *jcc_btdi_mask_rex64.
23061
23062 2010-04-16 Anatoly Sokolov <aesok@post.ru>
23063
23064 * double-int.h (tree_to_double_int): Convert to macro.
23065 * double-int.c (tree_to_double_int): Remove.
23066
23067 2010-04-16 Jakub Jelinek <jakub@redhat.com>
23068
23069 PR debug/43762
23070 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
23071 with want_address 2 and in case a single element list might be
23072 possible, call it again with want_address 0.
23073
23074 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
23075
23076 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
23077 case 'W' print operands for HI mode.
23078 * config/h8300/h8300.h (Y0, Y2) : New constraints.
23079 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
23080 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
23081 * config/h8300/predicate.md (bit_register_indirect_operand): New.
23082
23083 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
23084
23085 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
23086 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
23087 #xx:3 and #xx:4 mode.
23088
23089 * config/h8300/h8300.md (inverted load with HImode dest): Add
23090 support for H8300SX.
23091
23092 * config/h8300/predicate.md (bit_operand): Allow immediate values that
23093 satisfy 'U' constraint.
23094
23095 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23096
23097 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
23098 * configure: Regenerate.
23099 * config.in: Regenerate.
23100 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
23101 works.
23102
23103 2010-04-16 Richard Guenther <rguenther@suse.de>
23104
23105 * tree.h (struct tree_decl_minimal): Move pt_uid ...
23106 (struct tree_decl_common): ... here.
23107 (DECL_PT_UID): Adjust.
23108 (SET_DECL_PT_UID): Likewise.
23109 (DECL_PT_UID_SET_P): Likewise.
23110
23111 2010-04-16 Richard Guenther <rguenther@suse.de>
23112
23113 PR tree-optimization/43572
23114 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
23115 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
23116 * tree-flow.h (is_call_clobbered): Remove.
23117 * tree-flow-inline.h (is_call_clobbered): Likewise.
23118 * tree-dfa.c (dump_variable): Do not dump call clobber state.
23119 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
23120 (execute_return_slot_opt): Adjust.
23121 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
23122 check for call clobbered vars here.
23123 (find_tail_calls): Move tailcall verification to the
23124 proper place.
23125
23126 2010-04-16 Diego Novillo <dnovillo@google.com>
23127
23128 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
23129
23130 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
23131
23132 PR target/40603
23133 * config/arm/arm.md (cbranchqi4): New pattern.
23134 * config/arm/predicates.md (const0_operand,
23135 cbranchqi4_comparison_operator): New predicates.
23136
23137 2010-04-16 Richard Guenther <rguenther@suse.de>
23138
23139 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
23140 (dump_gimple_stmt): Likewise.
23141
23142 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
23143
23144 * recog.h (struct recog_data): New field is_operator.
23145 (struct insn_operand_data): New field is_operator.
23146 * recog.c (extract_insn): Set recog_data.is_operator.
23147 * genoutput.c (output_operand_data): Emit code to set the
23148 is_operator field.
23149 * reload.c (find_reloads): Use it rather than testing for an
23150 empty constraint string.
23151
23152 PR target/41514
23153 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
23154 If the previous insn is a cbranchsi4_insn with the same arguments,
23155 omit the compare instruction.
23156
23157 * config/arm/arm.md (addsi3_cbranch): If destination is a high
23158 register, inputs must be low registers and we need a low register
23159 scratch. Handle alternative 2 like alternative 3.
23160
23161 2010-04-16 Jakub Jelinek <jakub@redhat.com>
23162
23163 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
23164 don't call get_addr on both. If one expression is a VALUE and
23165 the other a REG, check VALUE's locs if the REG isn't among them.
23166
23167 2010-04-16 Christian Bruel <christian.bruel@st.com>
23168
23169 * config/sh/sh.h (sh_frame_pointer_required): New function.
23170 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
23171 (flag_omit_frame_pointer) Set.
23172 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
23173 (rounded_frame_size): Adjust size with outgoing_args_size.
23174 (sh_set_return_address): Must return from stack pointer.
23175 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
23176 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
23177 (ACCUMULATE_OUTGOING_ARGS): Define.
23178 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
23179 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
23180
23181 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
23182
23183 PR target/43471
23184 * config/sh/sh.c (sh_legitimize_reload_address): Use
23185 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
23186 Remove a unneeded check for offset_base.
23187
23188 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
23189
23190 * configure: Regenerated.
23191
23192 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23193
23194 * config/s390/s390.c (s390_call_save_register_used): Switch back
23195 to HARD_REGNO_NREGS.
23196
23197 2010-04-15 Richard Guenther <rguenther@suse.de>
23198
23199 * alias.c (alias_set_subset_of): Handle alias-set zero
23200 child properly.
23201
23202 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
23203 Julian Brown <julian@codesourcery.com>
23204
23205 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
23206 alternatives according to use of high and low regs.
23207 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
23208 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
23209 optimizing for size on Thumb-2.
23210
23211 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
23212
23213 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
23214
23215 2010-04-15 Richard Guenther <rguenther@suse.de>
23216
23217 * tree-ssa-structalias.c (struct variable_info): Add
23218 is_fn_info flag.
23219 (new_var_info): Initialize it.
23220 (dump_constraints): Support printing last added constraints.
23221 (debug_constraints): Adjust.
23222 (dump_constraint_graph): Likewise.
23223 (make_heapvar_for): Check for NULL cfun.
23224 (get_function_part_constraint): New function.
23225 (get_fi_for_callee): Likewise.
23226 (find_func_aliases): Properly implement IPA PTA constraints.
23227 (process_ipa_clobber): New function.
23228 (find_func_clobbers): Likewise.
23229 (insert_into_field_list_sorted): Remove.
23230 (create_function_info_for): Properly allocate vars for IPA mode.
23231 Do not use insert_into_field_list_sorted.
23232 (create_variable_info_for): Properly generate constraints for
23233 global vars in IPA mode.
23234 (dump_solution_for_var): Always dump the solution.
23235 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
23236 (find_what_var_points_to): Adjust.
23237 (pt_solution_set): Change.
23238 (pt_solution_ior_into): New function.
23239 (pt_solution_empty_p): Export.
23240 (pt_solution_includes_global): Adjust.
23241 (pt_solution_includes_1): Likewise.
23242 (pt_solutions_intersect_1): Likewise.
23243 (dump_sa_points_to_info): Check some invariants.
23244 (solve_constraints): Move constraint dumping ...
23245 (compute_points_to_sets): ... here.
23246 (ipa_pta_execute): ... and here.
23247 (compute_may_aliases): Do not re-compute points-to info
23248 locally if IPA info is available.
23249 (ipa_escaped_pt): New global var.
23250 (ipa_pta_execute): Properly implement IPA PTA.
23251 * tree-into-ssa.c (dump_decl_set): Support dumping
23252 decls not in referenced-vars.
23253 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
23254 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
23255 (dump_points_to_solution): Likewise.
23256 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
23257 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
23258 (remap_gimple_stmt): Reset call clobber/use information if necessary.
23259 (copy_decl_to_var): Copy DECL_PT_UID.
23260 (copy_result_decl_to_var): Likewise.
23261 * tree.c (make_node_stat): Initialize DECL_PT_UID.
23262 (copy_node_stat): Copy it.
23263 * tree.h (DECL_PT_UID): New macro.
23264 (SET_DECL_PT_UID): Likewise.
23265 (DECL_PT_UID_SET_P): Likewise.
23266 (struct tree_decl_minimal): Add pt_uid member.
23267 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
23268 (pt_solution_empty_p): Declare.
23269 (pt_solution_set): Adjust.
23270 (ipa_escaped_pt): Declare.
23271 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
23272 * gimple-pretty-print.c (pp_points_to_solution): New function.
23273 (dump_gimple_call): Dump call clobber/use information.
23274 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
23275 * tree-pass.h (TDF_ALIAS): New dump option.
23276 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
23277 * doc/invoke.texi (-fipa-pta): Update documentation.
23278
23279 2010-04-15 Richard Guenther <rguenther@suse.de>
23280
23281 * Makefile.in (OBJS-common): Add gimple-fold.o.
23282 (gimple-fold.o): New rule.
23283 * tree.h (maybe_fold_offset_to_reference,
23284 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
23285 prototypes ...
23286 * gimple.h: ... here.
23287 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
23288 may_propagate_address_into_dereference): Move prototypes ...
23289 * gimple.h: ... here.
23290 * tree-ssa-ccp.c (get_symbol_constant_value,
23291 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
23292 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
23293 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
23294 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
23295 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
23296 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
23297 gimplify_and_update_call_from_tree): Move ...
23298 * gimple-fold.c: ... here. New file.
23299 (ccp_fold_builtin): Rename to ...
23300 (gimple_fold_builtin): ... this.
23301 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
23302
23303 2010-04-15 Richard Guenther <rguenther@suse.de>
23304
23305 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
23306 fit_double_type, force_fit_type_double, add_double_with_sign,
23307 neg_double, mul_double_with_sign, lshift_double, rshift_double,
23308 lrotate_double, rrotate_double, div_and_round_double): Move ...
23309 * double-int.c: ... here.
23310 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
23311 add_double, neg_double, mul_double_with_sign, mul_double,
23312 lshift_double, rshift_double, lrotate_double, rrotate_double,
23313 div_and_round_double): Move prototypes ...
23314 * double-int.h: ... here.
23315
23316 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
23317
23318 PR target/43742
23319 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
23320 matching constraints to ensure inputs match the output.
23321
23322 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
23323
23324 PR target/43742
23325 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
23326 in an input-only operand.
23327
23328 2010-04-15 Anatoly Sokolov <aesok@post.ru>
23329
23330 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
23331 (double_int_not, double_int_lshift, double_int_rshift): Declare.
23332 (double_int_negative_p): Convert to static inline function.
23333 * double-int.c (double_int_lshift, double_int_lshift): New functions.
23334 (double_int_negative_p): Remove.
23335 * tree.h (lshift_double, rshift_double):
23336 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
23337 * fold-const.c (fold_convert_const_int_from_real,
23338 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
23339 (lshift_double): Change type of arith argument to bool.
23340 (rshift_double): Change type of arith argument to bool. Correct
23341 comment.
23342 * expmed.c (mask_rtx, lshift_value): (Ditto.).
23343
23344 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
23345
23346 PR target/21803
23347 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
23348 at the start and end of the then/else blocks, and omit them from the
23349 conversion.
23350 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
23351 argument; all callers changed. Pass zero to old_insns_match_p instead.
23352 (flow_find_head_matching_sequence): New function.
23353 (old_insns_match_p): Check REG_EH_REGION notes for calls.
23354 * basic-block.h (flow_find_cross_jump,
23355 flow_find_head_matching_sequence): Declare functions.
23356
23357 2010-04-14 Jason Merrill <jason@redhat.com>
23358
23359 PR c++/36625
23360 * c-common.c (attribute_takes_identifier_p): New fn.
23361 * c-common.h: Declare it.
23362
23363 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
23364
23365 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
23366 splitter condition.
23367 (*udivmod<mode>4): Ditto.
23368
23369 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
23370
23371 * config/i386/i386.md (maxmin_int): Rename code attribute from
23372 maxminiprefix and update all users.
23373 (maxmin_float): Ditto from maxminfprefix.
23374 (logic): Ditto from logicprefix.
23375 (absneg_mnemonic): Ditto from absnegprefix.
23376 * config/i386/mmx.md: Update all users of maxminiprefix,
23377 maxminfprefix and logicprefix for rename.
23378 * config/i386/sse.md: Ditto.
23379 * config/i386/sync.md (sync_<code><mode>): Update for
23380 logicprefix rename.
23381
23382 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
23383
23384 PR 42966
23385 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
23386 warnings converted to errors.
23387
23388 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
23389
23390 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
23391 used insn_type variable.
23392 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
23393 to avoid set-but-not-used warning.
23394
23395 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
23396
23397 * df-core.c (df_ref_debug): Change format string placeholder
23398 from 0x%x to %#x.
23399 * dwarf2asm.c (dw2_asm_output_data_raw,
23400 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
23401 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
23402 * dwarf2out.c (output_cfi, output_cfi_directive,
23403 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
23404 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
23405 Ditto.
23406 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
23407 * print-rtl.c (print_rtx): Ditto.
23408
23409 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
23410
23411 PR middle-end/42694
23412 * builtins.c (expand_builtin_pow_root): New function to expand pow
23413 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
23414 series of sqrt and cbrt calls under -ffast-math.
23415 (expand_builtin_pow): Call it.
23416
23417 2010-04-14 Michael Matz <matz@suse.de>
23418
23419 PR tree-optimization/42963
23420 * tree-cfg.c (touched_switch_bbs): New static variable.
23421 (group_case_labels_stmt): New function broken out from ...
23422 (group_case_labels): ... here, use the above.
23423 (start_recording_case_labels): Allocate touched_switch_bbs.
23424 (end_recording_case_labels): Deallocate it, call
23425 group_case_labels_stmt.
23426 (gimple_redirect_edge_and_branch): Remember index of affected BB.
23427
23428 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
23429
23430 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
23431 from insn template.
23432
23433 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
23434
23435 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
23436
23437 2010-04-13 Jan Hubicka <jh@suse.cz>
23438
23439 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
23440 of optimized out static functions.
23441 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
23442 cost computation. Also sanity check for overflows.
23443 (update_caller_keys): Update cgraph_edge_badness call; properly
23444 update fibheap and sanity check that it is up to date.
23445 (add_new_edges_to_heap): Update cgraph_edge_badness.
23446 (cgraph_decide_inlining_of_small_function): Likewise;
23447 add sanity checking that badness in heap is up to date;
23448 improve dumping of reason; Update badness of calls to the
23449 offline copy of function currently inlined; dump badness
23450 of functions not inlined because of unit growth limits.
23451
23452 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
23453
23454 PR middle-end/32628
23455 * c-common.c (pointer_int_sum): Disregard overflow that occured only
23456 because of sign-extension change when converting to sizetype here...
23457 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
23458
23459 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
23460 the folding to constants. Remove redundant final conversion.
23461 (fold_binary) <associate>: Do not associate if the re-association of
23462 constants alone overflows.
23463 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
23464 to the end of the list.
23465 (multiple_of_p) <COND_EXPR>: New case.
23466
23467 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
23468
23469 * opt-functions.awk (opt_sanitized_name): New.
23470 (opt_enum): New.
23471 * optc-gen.awk: Use it
23472 * opth-gen.awk: Use it.
23473
23474 2010-04-13 Martin Jambor <mjambor@suse.cz>
23475
23476 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
23477 (sra_modify_assign): Delete stmts loading dead data even if racc has no
23478 children. Call replace_uses_with_default_def_ssa_name to handle
23479 SSA_NAES on lhs.
23480
23481 2010-04-13 Michael Matz <matz@suse.de>
23482
23483 PR middle-end/43730
23484 * builtins.c (expand_builtin_interclass_mathfn): Also create
23485 a register if the predicate doesn't match.
23486
23487 2010-04-13 Diego Novillo <dnovillo@google.com>
23488
23489 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
23490 * c-pch.c: Include timevar.h.
23491 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
23492 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
23493 * ggc-common.c: Include timevar.h.
23494 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
23495 * timevar.def (TV_PCH_SAVE): Define.
23496 (TV_PCH_CPP_SAVE): Define.
23497 (TV_PCH_PTR_REALLOC): Define.
23498 (TV_PCH_PTR_SORT): Define.
23499 (TV_PCH_RESTORE): Define.
23500 (TV_PCH_CPP_RESTORE): Define.
23501
23502 2010-04-13 Michael Matz <matz@suse.de>
23503
23504 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
23505 into MINUS_EXPRs.
23506 (can_reassociate_p): New function.
23507 (break_up_subtract_bb, reassociate_bb): Use it.
23508
23509 2010-04-13 Richard Guenther <rguenther@suse.de>
23510
23511 PR bootstrap/43737
23512 * builtins.c (c_readstr): Fix assert.
23513
23514 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
23515
23516 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
23517 when generating cltd insn.
23518
23519 (*ashl<mode>3_1): Remove special handling for register operand 2.
23520 (*ashlsi3_1_zext): Ditto.
23521 (*ashlhi3_1): Ditto.
23522 (*ashlhi3_1_lea): Ditto.
23523 (*ashlqi3_1): Ditto.
23524 (*ashlqi3_1_lea): Ditto.
23525 (*<shiftrt_insn><mode>3_1): Ditto.
23526 (*<shiftrt_insn>si3_1_zext): Ditto.
23527 (*<shiftrt_insn>qi3_1_slp): Ditto.
23528 (*<rotate_insn><mode>3_1): Ditto.
23529 (*<rotate_insn>si3_1_zext): Ditto.
23530 (*<rotate_insn>qi3_1_slp): Ditto.
23531
23532 2010-04-13 Richard Guenther <rguenther@suse.de>
23533
23534 * tree-ssa-structalias.c (callused_id): Remove.
23535 (call_stmt_vars): New.
23536 (get_call_vi): Likewise.
23537 (lookup_call_use_vi): Likewise.
23538 (lookup_call_clobber_vi): Likewise.
23539 (get_call_use_vi): Likewise.
23540 (get_call_clobber_vi): Likewise.
23541 (make_transitive_closure_constraints): Likewise.
23542 (handle_const_call): Adjust to do per-call call-used handling.
23543 (handle_pure_call): Likewise.
23544 (find_what_var_points_to): Remove general callused handling.
23545 (init_base_vars): Likewise.
23546 (init_alias_vars): Initialize call_stmt_vars.
23547 (compute_points_to_sets): Process call-used and call-clobbered
23548 vars for call statements.
23549 (delete_points_to_sets): Free call_stmt_vars.
23550
23551 2010-04-13 Richard Guenther <rguenther@suse.de>
23552
23553 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
23554 Only add RW dependence for dependence distance zero.
23555 Adjust maximal vectorization factor according to dependences.
23556 Move alignment handling ...
23557 (vect_find_same_alignment_drs): ... here. New function.
23558 (vect_analyze_data_ref_dependences): Adjust.
23559 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
23560 (vect_analyze_data_refs): Adjust minimal vectorization factor
23561 according to data references.
23562 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
23563 dependences before determining the vectorization factor.
23564 Analyze alignment after determining the vectorization factor.
23565 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
23566 dependences before alignment.
23567 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
23568 Adjust prototype.
23569 (vect_analyze_data_refs): Likewise.
23570 (MAX_VECTORIZATION_FACTOR): New define.
23571
23572 2010-04-13 Duncan Sands <baldrick@free.fr>
23573
23574 * except.h (lang_eh_type_covers): Remove.
23575 * except.c (lang_eh_type_covers): Likewise.
23576
23577 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23578 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23579
23580 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
23581 * config/s390/s390.c: Replace UNTIS_PER_WORD with
23582 UNITS_PER_LONG where it is ABI relevant.
23583 (s390_return_addr_rtx): Likewise.
23584 (s390_back_chain_rtx): Likewise.
23585 (s390_frame_area): Likewise.
23586 (s390_frame_info): Likewise.
23587 (s390_initial_elimination_offset): Likewise.
23588 (save_gprs): Likewise.
23589 (s390_emit_prologue): Likewise.
23590 (s390_emit_epilogue): Likewise.
23591 (s390_function_arg_advance): Likewise.
23592 (s390_function_arg): Likewise.
23593 (s390_va_start): Likewise.
23594 (s390_gimplify_va_arg): Likewise.
23595 (s390_function_profiler): Likewise.
23596 (s390_optimize_prologue): Likewise.
23597 (s390_rtx_costs): Likewise.
23598 (s390_secondary_reload): Likewise.
23599 (s390_promote_function_mode): Likewise.
23600 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
23601 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
23602 registers available.
23603 (s390_unwind_word_mode): New function.
23604 (s390_function_value): Split 64 bit values into register pair if
23605 used as return value.
23606 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
23607 function call parameters. Handle parallels.
23608 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
23609 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
23610 (DWARF_CIE_DATA_ALIGNMENT): New macro.
23611 (s390_expand_setmem): Remove unused variable src_addr.
23612 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
23613 deal with 64 bit registers.
23614 * config/s390/s390.h: Define __zarch__ predefined macro.
23615 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
23616 (UNITS_PER_LONG): New macro.
23617 * libjava/include/s390-signal.h: Define extended ucontext
23618 structure containing the upper halfs of the 64 bit registers.
23619
23620 2010-04-13 Simon Baldwin <simonb@google.com>
23621
23622 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
23623
23624 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
23625
23626 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
23627 rvalue on the RHS if the LHS is of a non-renamable type.
23628 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
23629
23630 2010-04-13 Matthias Klose <doko@ubuntu.com>
23631
23632 * gcc.c (cc1_options): Handle -iplugindir before processing
23633 the cc1 spec. Only add -iplugindir once.
23634 (cpp_unique_options): Add -iplugindir option if -fplugin* options
23635 found.
23636 * common.opt (iplugindir): Remove `Separate' property, initialize.
23637 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
23638 option.
23639 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
23640 (distclean): Remove plugin dir.
23641 * doc/invoke.texi: Document -iplugindir.
23642
23643 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
23644
23645 * doc/plugins.texi (Loading Plugins): Document short
23646 -fplugin=foo option.
23647 (Plugin API): Mention default_plugin_dir_name function.
23648
23649 * gcc.c (find_file_spec_function): Add new declaration.
23650 (static_spec_func): Use it for "find-file".
23651 (find_file_spec_function): Add new function.
23652 (cc1_options): Add -iplugindir option if -fplugin* options found.
23653
23654 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
23655
23656 * plugin.c (add_new_plugin): Updated comment, and handle short
23657 plugin name.
23658 (default_plugin_dir_name): Added new function.
23659
23660 * common.opt (iplugindir): New option to set the plugin directory.
23661
23662 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
23663
23664 * config/i386/i386.md (any_rotate): New code iterator.
23665 (rotate_insn): New code attribute.
23666 (rotate): Ditto.
23667 (SWIM124): New mode iterator.
23668 (<rotate_insn>ti3): New expander.
23669 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
23670 any_rotate code iterator.
23671 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
23672 using any_rotate code iterator and SWIM124 mode iterator.
23673 (ix86_rotlti3): New insn_and_split pattern.
23674 (ix86_rotrti3): Ditto.
23675 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
23676 ix86_rotl{di,ti}3 patterns.
23677 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
23678 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
23679 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
23680 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
23681 code iterator and SWI mode iterator.
23682 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
23683 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
23684 code iterator.
23685 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
23686 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
23687 (bswap rotatert splitter): Add splitter.
23688 (bswap splitter): Macroize splitter using any_rotate code iterator.
23689 Add insn predicate to split only for TARGET_USE_XCHGB or when
23690 optimizing function for size.
23691
23692 2010-04-12 Steve Ellcey <sje@cup.hp.com>
23693
23694 * config/pa/pa.c (emit_move_sequence): Remove use of
23695 deleted variable flag_argument_noalias.
23696
23697 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23698
23699 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
23700 configurations.
23701 Add to unsupported targets list.
23702 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
23703 sparc*-sun-solaris2.[567]* from target lists.
23704 * configure: Regenerate.
23705 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
23706 removal.
23707 Remove Solaris 7 patch references.
23708 (Specific, sparc-sun-solaris2.7): Removed.
23709 (sparc-sun-solaris2*): Update Solaris 7 example.
23710 (sparc64-*-solaris2*): Likewise.
23711
23712 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23713
23714 * config.build (alpha*-dec-osf4*): Remove.
23715 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
23716 of obsolete configurations.
23717 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
23718 support.
23719 * config/alpha/t-osf4: Renamed to ...
23720 * config/alpha/t-osf5: ... this.
23721 * config/alpha/osf.h: Renamed to ...
23722 * config/alpha/osf5.h: ... this.
23723 Merged old osf5.h contents.
23724 Update comments.
23725 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
23726 (EXTRA_SPECS): Removed.
23727 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
23728 reflect removal of Tru64 UNIX V4.0/V5.0 support.
23729 Document that.
23730
23731 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23732
23733 * doc/contrib.texi (Contributors, Rainer Orth): Update.
23734
23735 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
23736
23737 PR/43702
23738 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
23739 __thiscall convention.
23740
23741 2010-04-12 Steve Ellcey <sje@cup.hp.com>
23742
23743 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
23744 orig_base.
23745 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
23746
23747 2010-04-12 Steve Ellcey <sje@cup.hp.com>
23748
23749 * function.c (assign_parms_initialize_all): Add unused attribute
23750 to fntype.
23751
23752 2010-04-12 Richard Guenther <rguenther@suse.de>
23753
23754 * gsstruct.def (GSS_CALL): New.
23755 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
23756 * gimple.h: Include tree-ssa-alias.h.
23757 (struct gimple_statement_call): New.
23758 (union gimple_statement_struct_d): Add gimple_call member.
23759 (gimple_call_reset_alias_info): Declare.
23760 (gimple_call_use_set): New function.
23761 (gimple_call_clobber_set): Likewise.
23762 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
23763 * gimple.c (gimple_call_reset_alias_info): New function.
23764 (gimple_build_call_1): Call it.
23765 * lto-streamer-in.c (input_gimple_stmt): Likewise.
23766 * tree-inline.c (remap_gimple_stmt): Likewise.
23767 (expand_call_inline): Remove callused handling.
23768 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
23769 * tree-dfa.c (dump_variable): Likewise.
23770 * tree-parloops.c (parallelize_loops): Likewise.
23771 * tree-ssa.c (init_tree_ssa): Likewise.
23772 (delete_tree_ssa): Likewise.
23773 * tree-flow-inline.h (is_call_used): Remove.
23774 * tree-flow.h (struct gimple_df): Remove callused member.
23775 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
23776 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
23777 (ref_maybe_used_by_call_p_1): Simplify.
23778 (call_may_clobber_ref_p_1): Likewise.
23779 * tree-ssa-structalias.c (compute_points_to_sets): Set
23780 the call stmt used and clobbered sets.
23781 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
23782 (find_tail_calls): Verify the tail call.
23783
23784 2010-04-12 Richard Guenther <rguenther@suse.de>
23785
23786 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
23787 single-iteration always-inline inlining.
23788 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
23789 (cgraph_decide_inlining): Do not handle always-inline specially.
23790 (try_inline): Remove always-inline cycle detection special case.
23791 Do not recurse on always-inlines.
23792 (cgraph_early_inlining): Do not iterate if not optimizing.
23793 (cgraph_gate_early_inlining): remove.
23794 (pass_early_inline): Run unconditionally.
23795 (gate_cgraph_decide_inlining): New function.
23796 (pass_ipa_inline): Use it. Do not run the IPA inliner if
23797 not inlining or optimizing.
23798 (cgraph_decide_inlining_of_small_functions): Also consider
23799 always-inline functions.
23800 (cgraph_default_inline_p): Return true for nodes which should
23801 disregard inline limits.
23802 (estimate_function_body_sizes): Assume zero size and time for
23803 nodes which are marked as disregarding inline limits.
23804 (cgraph_decide_recursive_inlining): Do not perform recursive
23805 inlining on always-inline nodes.
23806
23807 2010-04-12 Jakub Jelinek <jakub@redhat.com>
23808
23809 PR bootstrap/43699
23810 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
23811 for exprs satisfying handled_component_p.
23812
23813 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
23814
23815 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
23816 non-constant aggregate elements.
23817
23818 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
23819 is a real initialization.
23820
23821 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
23822
23823 PR c/36774
23824 * c-decl.c (start_function): Move forward check for nested function.
23825
23826 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
23827
23828 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
23829 * config/sh/sh.c: Include reload.h.
23830 (sh_legitimize_reload_address): New.
23831 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
23832 sh_legitimize_reload_address.
23833
23834 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
23835
23836 * config/sh/sh.md (*movqi_pop): New insn pattern.
23837 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
23838
23839 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
23840
23841 * config/i386/i386.md (any_shiftrt): New code iterator.
23842 (shiftrt_insn): New code attribute.
23843 (shiftrt): Ditto.
23844 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
23845 using any_shiftrt code iterator.
23846 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
23847 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
23848 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
23849 pattern from corresponding peephole2 patterns.
23850 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
23851 using any_shiftrt code iterator.
23852 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
23853 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
23854 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
23855 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
23856 *{ashr,lshr}<mode>3_cmp_zext.
23857 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
23858
23859 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
23860
23861 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
23862 scratch register.
23863 (*lshr<mode>3_cconly): Ditto.
23864
23865 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
23866
23867 * config/i386/i386.md (lshr<mode>3): Macroize expander from
23868 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23869 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
23870 pattern from *lshr{di,ti}3_1 and corresponding splitters using
23871 DWI mode iterator.
23872 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23873 from corresponding peephole2 patterns.
23874 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
23875 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
23876 and *lshrdi3_1_rex64 using SWI mode iterator.
23877 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
23878 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
23879 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
23880 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
23881 and *lshrdi3_cmp_rex64 using SWI mode iterator.
23882 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
23883 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
23884 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
23885 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
23886 SWI mode iterator.
23887
23888 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
23889
23890 * config/i386/i386.md (ashr<mode>3): Macroize expander from
23891 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23892 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
23893 pattern from *ashr{di,ti}3_1 and corresponding splitters using
23894 DWI mode iterator.
23895 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23896 from corresponding peephole2 patterns.
23897 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
23898 (ashrsi3_cvt): Rename from ashrsi3_31.
23899 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
23900 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
23901 and x86_64_shift_adj_3 using SWI48 mode iterator.
23902 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
23903 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
23904 and *ashrdi3_1_rex64 using SWI mode iterator.
23905 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
23906 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
23907 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
23908 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
23909 and *ashrdi3_cmp_rex64 using SWI mode iterator.
23910 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
23911 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
23912 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
23913 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
23914 SWI mode iterator.
23915 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
23916 * config/i386/i386.c (ix86_split_ashr): Update for renamed
23917 x86_shift<mode>_adj_3 expanders.
23918
23919 2010-04-10 Wei Guozhi <carrot@google.com>
23920
23921 PR target/42601
23922 * config/arm/arm.c (arm_pic_static_addr): New function.
23923 (legitimize_pic_address): Call arm_pic_static_addr when it detects
23924 a static symbol.
23925 (arm_output_addr_const_extra): Output expression for new pattern.
23926 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
23927
23928 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
23929
23930 * ira-costs.c (record_reg_classes): Ignore alternatives that are
23931 not enabled.
23932
23933 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
23934 * web.c: Include "insn-config.h" and "recog.h".
23935 (union_match_dups): New function.
23936 (web_main): Call it.
23937 (union_defs): Don't try to recognize match_dups.
23938
23939 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
23940 if doing so would replace the entire pattern.
23941
23942 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
23943
23944 PR target/43707
23945 PR target/43709
23946 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
23947 and splitter pattern. Change splitter operand 1 predicate to
23948 nonmemory_operand.
23949
23950 2010-04-09 Martin Jambor <mjambor@suse.cz>
23951
23952 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
23953 lattices are addresses of CONST_DECLs with the same initial value.
23954 (ipcp_print_all_lattices): Print values of CONST_DECLs.
23955 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
23956
23957 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
23958 Bernd Schmidt <bernds@codesourcery.com>
23959
23960 * loop-invariant.c (replace_uses): New static function.
23961 (move_invariant_reg): Use it to ensure we can replace the uses.
23962
23963 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
23964
23965 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
23966 function template.
23967 (picochip_override_options): Enable section anchors only above -O1.
23968 (picochip_reorg): Fixed a couple of build warnings.
23969
23970 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23971
23972 * configure.ac (plugin -rdynamic test): Log result.
23973 * configure: Regenerate.
23974 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
23975 (RDYNAMIC_SPEC): Define.
23976 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
23977
23978 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23979
23980 * configure.ac: Determine Sun ld version numbers.
23981 (comdat_group): Restrict GNU ld version checks to gld.
23982 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
23983 (enable_comdat): Support --enable-comdat.
23984 * configure: Regenerate.
23985 * doc/install.texi (Configuration): Document --enable-comdat.
23986
23987 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23988
23989 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
23990 * config/sol2-gld.h: ... here.
23991 * config.gcc (sparc*-*-solaris2*): Reflect this.
23992 (i[34567]86-*-solaris2*): Use it.
23993
23994 2010-04-09 Steve Ellcey <sje@cup.hp.com>
23995
23996 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
23997 setup_clocks_p.
23998 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
23999
24000 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
24001
24002 PR 42965
24003 * diagnostic.c (diagnostic_initialize): Initialize
24004 some_warnings_are_errors.
24005 (diagnostic_finish): New.
24006 (diagnostic_action_after_output): Call it before exiting.
24007 (diagnostic_report_diagnostic): Do not print message here. Set
24008 some_warnings_are_errors.
24009 * diagnostic.h (diagnostic_context): Delete
24010 issue_warnings_are_errors_message. Add some_warnings_are_errors.
24011 (diagnostic_finish): Declare.
24012 * toplev.c (toplev_main): Call it before exit.
24013
24014 2010-04-09 Jason Merrill <jason@redhat.com>
24015
24016 PR c++/42623
24017 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
24018 for incomplete type.
24019
24020 PR c++/41788
24021 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
24022 based on a warning flag.
24023
24024 2010-04-09 Richard Guenther <rguenther@suse.de>
24025
24026 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
24027
24028 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
24029
24030 PR bootstrap/43684
24031 * varasm.c (default_assemble_visibility): Wrap vars that are
24032 set, but unused, by targets without GAS.
24033 * config/rs6000/rs6000.c (paired_emit_vector_compare):
24034 Remove set, but unused, vars.
24035 (rs6000_legitimize_tls_address): Likewise.
24036 (altivec_expand_dst_builtin): Likewise.
24037 * config/darwin.c (machopic_classify_symbol): Likewise.
24038 (machopic_indirection_name): Likewise.
24039
24040 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
24041
24042 * config/i386/i386.md (DWI): New mode iterator.
24043 (S): New mode attribute.
24044 (shift_operand): Ditto.
24045 (shift_immediate_operand): Ditto.
24046 (ashl_input_operand): Ditto.
24047 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
24048 using SDWIM mode iterator.
24049 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
24050 pattern from *ashl{di,ti}3_1 and corresponding splitters using
24051 DWI mode iterator.
24052 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
24053 from corresponding peephole2 patterns.
24054 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
24055 and x86_64_shift_adj_1 using SWI48 mode iterator.
24056 (x86_shift<mode>_adj_2): Ditto.
24057 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
24058 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
24059 using SWI48 mode iterator.
24060 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
24061 *ashldi3_cmp_rex64 using SWI mode iterator.
24062 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
24063 *ashldi3_cconly_rex64 using SWI mode iterator.
24064 * config/i386/i386.c (ix86_split_ashl): Update for renamed
24065 x86_shift<mode>_adj_{1,2}.
24066 (ix86_split_ashr): Ditto.
24067 (ix86_split_lshr): Ditto.
24068
24069 2010-04-09 Richard Guenther <rguenther@suse.de>
24070
24071 * target.h (builtin_conversion): Pass in input and output types.
24072 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
24073 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
24074 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
24075 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
24076
24077 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
24078 Handle AVX modes.
24079 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
24080
24081 2010-04-09 Richard Guenther <rguenther@suse.de>
24082
24083 PR target/43152
24084 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
24085
24086 2010-04-09 Richard Guenther <rguenther@suse.de>
24087
24088 * tree-vectorizer.h (struct _stmt_vec_info): Document
24089 that vectype is the type of the LHS.
24090 (supportable_widening_operation, supportable_narrowing_operation):
24091 Get both input and output vector types as arguments.
24092 (vect_is_simple_use_1): Declare.
24093 (get_same_sized_vectype): Likewise.
24094 * tree-vect-loop.c (vect_determine_vectorization_factor):
24095 Set STMT_VINFO_VECTYPE to the vector type of the def.
24096 (vectorizable_reduction): Adjust.
24097 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
24098 Adjust. Specify the output vector type.
24099 (vect_pattern_recog_1): Adjust.
24100 * tree-vect-stmts.c (get_same_sized_vectype): New function.
24101 (vectorizable_call): Adjust.
24102 (vectorizable_conversion): Likewise.
24103 (vectorizable_operation): Likewise.
24104 (vectorizable_type_demotion): Likewise.
24105 (vectorizable_type_promotion): Likewise.
24106 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
24107 the def.
24108 (vect_is_simple_use_1): New function.
24109 (supportable_widening_operation): Get both input and output
24110 vector types.
24111 (supportable_narrowing_operation): Likewise.
24112 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
24113
24114 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
24115
24116 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
24117 __thiscall and _thiscall as predefined macros.
24118 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
24119 thiscall attribute handling.
24120 (ix86_comp_type_attributes): Likewise.
24121 (ix86_function_regparm): Likewise.
24122 (ix86_return_pops_args): Likewise.
24123 (init_cumulative_args): Likewise.
24124 (find_drap_reg): Likewise.
24125 (ix86_static_chain): Likewise.
24126 (x86_this_parameter): Likewise.
24127 (x86_output_mi_thunk): Likewise.
24128 (ix86_attribute_table): Add description for thiscall attribute.
24129 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
24130 * doc/extend.texi: Add documentation for thiscall.
24131
24132 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
24133
24134 PR c++/28584
24135 * c.opt (Wint-to-pointer-cast): Available in C++.
24136 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
24137
24138 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
24139
24140 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
24141 * calls.c (expand_call): Pass the function type to aggregate_value_p.
24142 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
24143 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
24144 function type instead. Reorder and simplify checks.
24145
24146 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
24147
24148 2010-04-08 Jing Yu <jingyu@google.com>
24149 Zdenek Dvorak <ook@ucw.cz>
24150
24151 PR tree-optimization/42720
24152 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
24153 loop unswitch conditions here from ...
24154 (tree_unswitch_single_loop): ... here.
24155
24156 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
24157
24158 * tree-if-conv.c: Fix comments and simplify logic.
24159
24160 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
24161
24162 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
24163 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
24164 (main_tree_if_conversion): Update call to tree_if_conversion.
24165
24166 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
24167
24168 PR 42485
24169 * doc/invoke.texi (-b,-V): Delete.
24170 * doc/tm.texi: Do not mention -b.
24171 * gcc.c (display_help): Delete -b and -V.
24172 (process_command): Delete -b and -V.
24173 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
24174
24175 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
24176 Wolfgang Gellerich <gellerich@de.ibm.com>
24177
24178 Implement target hook for loop unrolling
24179 * target.h (loop_unroll_adjust): Add a new target hook function.
24180 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
24181 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
24182 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
24183 (s390_loop_unroll_adjust): Implement the new target hook for s390.
24184 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
24185 target hook.
24186 (decide_unroll_stupid): Likewise.
24187
24188 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24189
24190 PR target/43643
24191 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
24192
24193 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24194
24195 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
24196 (Specific, *-*-solaris2*): Likewise.
24197 Don't prefer Sun as over GNU as.
24198
24199 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
24200
24201 * config/s390/s390.c (override_options): Adjust the z10 defaults
24202 for max-unroll-times, max-completely-peeled-insns
24203 and max-completely-peel-times.
24204
24205 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24206
24207 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
24208 instructions for z10.
24209 (s390_expand_setmem): Likewise.
24210 (s390_expand_cmpmem): Likewise.
24211
24212 2010-04-08 Richard Guenther <rguenther@suse.de>
24213
24214 PR tree-optimization/43679
24215 * tree-ssa-pre.c (eliminate): Only propagate copies.
24216
24217 2010-04-08 Jakub Jelinek <jakub@redhat.com>
24218
24219 PR bootstrap/43681
24220 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
24221 set but not used variable warning.
24222
24223 2010-04-08 Wei Guozhi <carrot@google.com>
24224
24225 PR target/41653
24226 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
24227 (arm_size_rtx_costs): Call the new function when optimized for size.
24228
24229 2010-04-08 Jakub Jelinek <jakub@redhat.com>
24230
24231 PR debug/43670
24232 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
24233 op0 is not a MEM, just return NULL instead of assertion
24234 failure.
24235 (discover_nonconstant_array_refs): Don't walk debug stmts.
24236
24237 2010-04-08 Doug Kwan <dougkwan@google.com>
24238
24239 * configure.ac: Recognize gold and do not use its version number
24240 to test ld features.
24241 * configure: Regenerate.
24242
24243 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
24244
24245 PR middle-end/40815
24246 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
24247 (negate_value): Move code to push elements to broken_up_substracts ...
24248 (eliminate_plus_minus_pair): ... here. Push operands that have no
24249 negative pair to plus_negates.
24250 (repropagate_negates, init_reassoc, fini_reassoc): Update.
24251
24252 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24253
24254 * doc/install.texi (Configuration): Move description of
24255 --enable-lto, --with-libelf*, --enable-gold from Java section to
24256 general section.
24257
24258 * doc/generic.texi (Working with declarations)
24259 (Function Properties, C and C++ Trees): Fix typos.
24260 * doc/sourcebuild.texi (Top Level): Likewise.
24261
24262 2010-04-07 Jakub Jelinek <jakub@redhat.com>
24263
24264 PR c/18624
24265 * tree.h (DECL_READ_P): Define.
24266 (struct tree_decl_common): Add decl_read_flag.
24267 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
24268 a set but not used warning.
24269 (merge_decls): Merge DECL_READ_P flag.
24270 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
24271 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
24272 * c-common.c (handle_used_attribute, handle_unused_attribute):
24273 Likewise.
24274 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
24275 New prototypes.
24276 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
24277 New functions.
24278 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
24279 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
24280 c_parser_binary_expression, c_parser_cast_expression,
24281 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
24282 Call default_function_array_read_conversion instead of
24283 default_function_array_conversion where needed.
24284 (c_parser_unary_expression, c_parser_conditional_expression,
24285 c_parser_postfix_expression_after_primary, c_parser_initelt):
24286 Likewise. Call mark_exp_read where needed.
24287 (c_parser_statement_after_labels, c_parser_asm_operands,
24288 c_parser_typeof_specifier, c_parser_sizeof_expression,
24289 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
24290 where needed.
24291 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
24292 New.
24293 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
24294 (warn_unused_but_set_parameter): Default to warn_unused
24295 && extra_warnings.
24296 * doc/invoke.texi: Document -Wunused-but-set-variable and
24297 -Wunused-but-set-parameter.
24298
24299 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
24300 used count variable.
24301 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
24302 when operandN variables aren't used in the body of the expander
24303 or splitter.
24304 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
24305 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
24306 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
24307 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
24308 FOR_EACH_IMM_USE_ON_STMT): Likewise.
24309 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
24310 * tree.c (PROCESS_ARG): Likewise.
24311
24312 2010-04-07 Simon Baldwin <simonb@google.com>
24313
24314 * diagnostic.h (diagnostic_override_option_index): New macro to
24315 set a diagnostic's option_index.
24316 * c-tree.h (c_cpp_error): Add warning reason argument.
24317 * opts.c (_warning_as_error_callback): New.
24318 (register_warning_as_error_callback): Store callback for
24319 warnings enabled via enable_warning_as_error.
24320 (enable_warning_as_error): Call callback, minor code tidy.
24321 * opts.h (register_warning_as_error_callback): Declare.
24322 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
24323 response to -Werror=.
24324 (c_common_init_options): Register warning_as_error_callback in opts.c.
24325 * common.opt: Add -Wno-cpp option.
24326 * c-common.c (struct reason_option_codes_t): Map cpp warning
24327 reason codes to gcc option indexes.
24328 * (c_option_controlling_cpp_error): New function, lookup the gcc
24329 option index for a cpp warning reason code.
24330 * (c_cpp_error): Add warning reason argument, call
24331 c_option_controlling_cpp_error for diagnostic_override_option_index.
24332 * doc/invoke.texi: Document -Wno-cpp.
24333
24334 2010-04-07 Richard Guenther <rguenther@suse.de>
24335
24336 * ipa-reference.c (mark_load): Use get_base_address.
24337 (mark_store): Likewise.
24338
24339 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
24340 inserting GIMPLE_NOPs into the IL.
24341 * tree-ssa-structalias.c (get_constraint_for_component_ref):
24342 Explicitly strip handled components and indirect references.
24343
24344 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
24345 folding address expressions.
24346 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
24347 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
24348 operand_equal_p to compare decls.
24349 (ptr_deref_may_alias_decl_p): Likewise.
24350 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
24351 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
24352 Handle reversed comparison ops.
24353 * tree-sra.c (asm_visit_addr): Use get_base_address.
24354 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
24355 * ipa-reference.c (mark_address): Use get_base_address.
24356
24357 2010-04-07 Richard Guenther <rguenther@suse.de>
24358
24359 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
24360 Propagate constants everywhere.
24361
24362 2010-04-07 Jakub Jelinek <jakub@redhat.com>
24363
24364 PR debug/43516
24365 * tree.c (MAX_INT_CACHED_PREC): Define.
24366 (nonstandard_integer_type_cache): New array.
24367 (build_nonstandard_integer_type): Cache results for precision
24368 <= MAX_INT_CACHED_PREC.
24369
24370 2010-04-07 Richard Guenther <rguenther@suse.de>
24371
24372 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
24373 -fargument-noalias-global, -fargument-noalias-anything): Remove.
24374 * common.opt: Likewise.
24375 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
24376 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
24377 (nonoverlapping_memrefs_p): Likewise.
24378 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
24379 * opts.c (common_handle_option): Handle OPT_fargument_alias,
24380 OPT_fargument_noalias, OPT_fargument_noalias_anything and
24381 OPT_fargument_noalias_global for backward compatibility.
24382
24383 2010-04-07 Richard Guenther <rguenther@suse.de>
24384
24385 PR tree-optimization/43270
24386 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
24387 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
24388 * tree-ssa-pre.c (phi_translate_1): Adjust.
24389 (fully_constant_expression): Split out vn_reference handling to ...
24390 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
24391 Fold reads from constant strings.
24392 (vn_reference_lookup): Handle fully constant references.
24393 (vn_reference_lookup_pieces): Likewise.
24394 * Makefile.in (expmed.o-warn): Add -Wno-error.
24395
24396 2010-04-07 Martin Jambor <mjambor@suse.cz>
24397
24398 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
24399
24400 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
24401
24402 PR driver/41594
24403 * gcc.c: Add -static-libstdc++ to list of recognized options.
24404
24405 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24406
24407 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
24408
24409 2010-04-07 Richard Guenther <rguenther@suse.de>
24410
24411 PR middle-end/42617
24412 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
24413 bases build simple mem attributes to retain points-to information.
24414
24415 2010-04-07 Richard Guenther <rguenther@suse.de>
24416
24417 PR middle-end/42617
24418 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
24419 preserve points-to related information.
24420
24421 2010-04-07 Richard Guenther <rguenther@suse.de>
24422
24423 PR middle-end/42617
24424 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
24425 discard plain indirect references.
24426 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
24427 * tree.c (tree_nop_conversion): Likewise.
24428
24429 2010-04-07 Dodji Seketeli <dodji@redhat.com>
24430
24431 PR debug/43628
24432 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
24433
24434 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
24435
24436 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
24437 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
24438
24439 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
24440
24441 * tree-if-conv.c: Fix indentation and comments.
24442
24443 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
24444
24445 * tree-if-conv.c: Sort static functions in topological order.
24446
24447 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
24448
24449 * tree-if-conv.c: Fix indentation and comments.
24450
24451 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
24452
24453 PR middle-end/43519
24454 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
24455 lang_hooks.types.type_for_size instead of
24456 build_nonstandard_integer_type.
24457 When converting an unsigned type to signed, double its precision.
24458 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
24459 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
24460 (graphite_create_new_loop_guard): When ub + 1 wraps around,
24461 use lb <= ub.
24462
24463 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
24464
24465 PR middle-end/43519
24466 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24467 POINTER_PLUS_EXPR for pointer types.
24468
24469 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
24470
24471 PR middle-end/43519
24472 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
24473 * graphite-clast-to-gimple.c: Include langhooks.h.
24474 (max_signed_precision_type): New.
24475 (max_precision_type): Takes two types as arguments.
24476 (precision_for_value): New.
24477 (precision_for_interval): New.
24478 (gcc_type_for_interval): New.
24479 (gcc_type_for_value): New.
24480 (gcc_type_for_clast_term): New.
24481 (gcc_type_for_clast_red): New.
24482 (gcc_type_for_clast_bin): New.
24483 (gcc_type_for_clast_expr): Split up into several functions.
24484 (gcc_type_for_clast_eq): Rewritten.
24485 (compute_bounds_for_level): New.
24486 (compute_type_for_level_1): New.
24487 (compute_type_for_level): New.
24488 (gcc_type_for_cloog_iv): Removed.
24489 (gcc_type_for_iv_of_clast_loop): Rewritten.
24490 (graphite_create_new_loop): Compute the lower and upper bound types
24491 with gcc_type_for_clast_expr.
24492 (graphite_create_new_loop_guard): Same.
24493 (find_cloog_iv_in_expr): Removed.
24494 (compute_cloog_iv_types_1): Removed.
24495 (compute_cloog_iv_types): Removed.
24496 (gloog): Do not call compute_cloog_iv_types.
24497 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
24498 GBB_CLOOG_IV_TYPES.
24499 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
24500 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
24501 (GBB_CLOOG_IV_TYPES): Removed.
24502
24503 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
24504
24505 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
24506 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
24507 (detect_commutative_reduction): Same.
24508
24509 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
24510
24511 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
24512 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
24513 argument.
24514 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
24515 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
24516 (rewrite_commutative_reductions_out_of_ssa): Same.
24517 * passes.c (execute_function_todo): Call verify_ssa for every pass
24518 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
24519 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
24520 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
24521 with an extra argument.
24522 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
24523 verify_ssa only when the extra argument is true.
24524 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
24525 with an extra argument.
24526 (tree_transform_and_unroll_loop): Same.
24527
24528 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
24529
24530 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
24531 for all the passes of the LNO having LOOP_CLOSED_SSA.
24532 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
24533 * tree-loop-distribution.c (pass_loop_distribution): Same.
24534 * tree-pass.h (TODO_verify_loops): Removed.
24535 * tree-ssa-loop.c (pass_tree_loop_init): Same.
24536 (pass_lim): Same.
24537 (pass_tree_unswitch): Same.
24538 (pass_predcom): Same.
24539 (pass_vectorize): Same.
24540 (pass_linear_transform): Same.
24541 (pass_graphite_transforms): Same.
24542 (pass_iv_canon): Same.
24543 (pass_complete_unroll): Same.
24544 (pass_complete_unrolli): Same.
24545 (pass_parallelize_loops): Same.
24546 (pass_loop_prefetch): Same.
24547 (pass_iv_optimize): Same.
24548
24549 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
24550
24551 PR middle-end/32824
24552 * passes.c (init_optimization_passes): Move pass_lim before
24553 pass_copy_prop and pass_dce_loop.
24554
24555 2010-04-06 Jakub Jelinek <jakub@redhat.com>
24556
24557 PR target/43667
24558 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
24559 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
24560 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
24561 MULTI_* defines for 4 argument vpermil2p* builtins.
24562
24563 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
24564
24565 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
24566 * config/i386/i386.c (x86_maybe_negate_const_int): New.
24567 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
24568 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
24569 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
24570 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
24571 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
24572 Use x86_maybe_negate_const_int to output insn mnemonic.
24573 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
24574 check from instruction predicate. Update comments.
24575 * config/i386/sync.md (sync_add<mode>): Use
24576 x86_maybe_negate_const_int to output insn mnemonic.
24577
24578 2010-04-06 Jan Hubicka <jh@suse.cz>
24579
24580 PR tree-optimization/42906
24581 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
24582 IGNORE_SELF argument. Set visited_control_parents for fully
24583 processed BBs.
24584 (find_obviously_necessary_stmts): Update call of
24585 mark_control_dependent_edges_necessary.
24586 (propagate_necessity): Likewise. Handle PHI edges more curefully.
24587
24588 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
24589
24590 * config/i386/i386.md: Remove comment about 'e' and 'E'
24591 operand modifier.
24592
24593 2010-04-06 Richard Guenther <rguenther@suse.de>
24594
24595 PR tree-optimization/43627
24596 * tree-vrp.c (extract_range_from_unary_expr): Widenings
24597 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
24598 not varying.
24599
24600 2010-04-06 Jakub Jelinek <jakub@redhat.com>
24601
24602 * BASE-VER: Change to 4.6.0.
24603
24604 PR target/43638
24605 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
24606 handling.
24607
24608 2010-04-06 Richard Guenther <rguenther@suse.de>
24609
24610 PR middle-end/43661
24611 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
24612
24613 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24614
24615 * doc/invoke.texi (Optimize Options): Document that LTO
24616 won't remove object access purely due to incompatible
24617 declarations.
24618
24619 2010-04-04 Matthias Klose <doko@ubuntu.com>
24620
24621 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
24622 Initialize variable.
24623
24624 2010-04-03 Richard Guenther <rguenther@suse.de>
24625
24626 PR middle-end/42509
24627 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
24628 require a non-NULL MEM_OFFSET.
24629
24630 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
24631
24632 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
24633 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
24634 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
24635 config/alpha/predicates.md, config/arm/arm.md,
24636 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
24637 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
24638 config/darwin9.h, config/darwin.c, config/darwin.h,
24639 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
24640 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
24641 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
24642 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
24643 config/mips/mips.md, config/mn10300/mn10300.c,
24644 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
24645 config/rs6000/aix.h, config/rs6000/dfp.md,
24646 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
24647 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
24648 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
24649 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
24650 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
24651 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
24652 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
24653 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
24654 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
24655 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
24656 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
24657 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
24658 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
24659 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
24660 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
24661 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
24662 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
24663 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
24664 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
24665 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
24666 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
24667 opt-functions.awk, opth-gen.awk, params.def, passes.c,
24668 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
24669 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
24670 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
24671 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
24672 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
24673 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
24674 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
24675 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
24676 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
24677 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
24678 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
24679 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
24680 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
24681 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
24682
24683 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24684
24685 PR other/43620
24686 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
24687 * aclocal.m4: Regenerate.
24688
24689 2010-04-02 Richard Guenther <rguenther@suse.de>
24690
24691 PR tree-optimization/43629
24692 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
24693 if we have seen a constant value.
24694
24695 2010-04-02 Joseph Myers <joseph@codesourcery.com>
24696
24697 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
24698
24699 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
24700
24701 PR target/43469
24702 * arm.c (legitimize_tls_address): Adjust call to
24703 gen_tls_load_dot_plus_four.
24704 (arm_note_pic_base): New function.
24705 (arm_cannot_copy_insn_p): Use it.
24706 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
24707 constraint.
24708
24709 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24710
24711 PR bootstrap/43531
24712
24713 Revert:
24714 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24715
24716 * Makefile.in ($(out_object_file)): Depend on
24717 gt-$(basename $(notdir $(out_file))).h.
24718
24719 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
24720
24721 * config.gcc (lm32-*-rtems*): Add t-lm32.
24722
24723 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
24724
24725 * config.gcc: Add lm32-*-rtems*.
24726 * config/lm32/rtems.h: New file.
24727
24728 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
24729
24730 PR target/42609
24731 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
24732
24733 2010-04-01 Jakub Jelinek <jakub@redhat.com>
24734
24735 * dwarf2out.c (output_compilation_unit_header): For
24736 -gdwarf-4 use version 4 instead of version 3.
24737 (output_line_info): For version 4 and above emit additional
24738 maximum ops per insn header field.
24739 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
24740
24741 * dwarf2out.c (is_c_family, is_java): Remove.
24742 (lower_bound_default): New function.
24743 (add_bound_info, gen_descr_array_type_die): Use it.
24744
24745 2010-04-01 Dodji Seketeli <dodji@redhat.com>
24746
24747 PR debug/43325
24748 * dwarf2out.c (gen_variable_die): Allow debug info for variable
24749 re-declaration when it happens in a function.
24750
24751 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
24752
24753 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
24754 (cgraph_remove_function_insertion_hook): Same.
24755 (cgraph_call_function_insertion_hooks): Same.
24756
24757 2010-04-01 Richard Guenther <rguenther@suse.de>
24758
24759 PR middle-end/43614
24760 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
24761 and TREE_THIS_VOLATILE.
24762 (copy_ref_info): Likewise.
24763 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
24764 * tree.c (build6_stat): Ignore side-effects of all but arg5
24765 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
24766 TARGET_MEM_REF.
24767
24768 2010-04-01 Richard Guenther <rguenther@suse.de>
24769
24770 PR tree-optimization/43607
24771 * ipa-type-escape.c (check_call): Do not access non-existing
24772 arguments.
24773
24774 2010-04-01 Richard Guenther <rguenther@suse.de>
24775
24776 PR middle-end/43602
24777 Revert
24778 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
24779 Jack Howarth <howarth@bromo.med.uc.edu>
24780
24781 * tree-profile.c (tree_init_ic_make_global_vars): Make static
24782 variables TLS.
24783
24784 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24785
24786 * doc/install.texi (Prerequisites): Document libelf usability on
24787 IRIX 5/6 and Solaris 2.
24788 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
24789 Update GNU as, GNU ld requirements.
24790 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
24791 Document Sun Studio compiler download.
24792 Update and simplify as, ld recommendations.
24793 (Specific, *-*-solaris2.7): Note obsoletion, removal.
24794
24795 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24796
24797 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
24798 with_tune_32 to pentium4.
24799
24800 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
24801
24802 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
24803
24804 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24805
24806 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
24807 obsoletion, removal.
24808 Update IDO URL.
24809 Document GNU as requirement.
24810 Update configure requirements.
24811 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
24812 Recomment IRIX 6.5.18+.
24813 Document IDF/IDL requirement.
24814 Document GNU as requirement.
24815 Document GNU ld bootstrap failure.
24816 Remove freeware.sgi.com reference.
24817
24818 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24819
24820 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
24821 UNIX V4.0, V5.0 obsoletion, removal.
24822 Remove --with-gc=simple reference.
24823 Update VM requirements during bootstrap.
24824 Remove -oldas bootstrap description.
24825 Update binutils reference.
24826 Remove comparison failure note.
24827
24828 2010-03-31 Richard Guenther <rguenther@suse.de>
24829 Zdenek Dvorak <ook@ucw.cz>
24830 Sebastian Pop <sebastian.pop@amd.com>
24831
24832 PR middle-end/43464
24833 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
24834 with multiple arguments.
24835 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
24836
24837 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24838
24839 * graphite-dependences.c (print_pddr): Call print_pdr with an
24840 extra argument.
24841 * graphite-poly.c (debug_pdr): Add an extra argument for the
24842 verbosity level.
24843 (print_pdr): Same.
24844 (print_pbb_domain): Same.
24845 (print_pbb): Same.
24846 (print_scop_context): Same.
24847 (print_scop): Same.
24848 (print_cloog): Same.
24849 (debug_pbb_domain): Same.
24850 (debug_pbb): Same.
24851 (print_pdrs): Same.
24852 (debug_pdrs): Same.
24853 (debug_scop_context): Same.
24854 (debug_scop): Same.
24855 (debug_cloog): Same.
24856 (print_scop_params): Same.
24857 (debug_scop_params): Same.
24858 (print_iteration_domain): Same.
24859 (print_iteration_domains): Same.
24860 (debug_iteration_domain): Same.
24861 (debug_iteration_domains): Same.
24862 (print_scattering_function): Same.
24863 (print_scattering_functions): Same.
24864 (debug_scattering_function): Same.
24865 (debug_scattering_functions): Same.
24866 * graphite-poly.h (debug_pdr): Update declaration.
24867 (print_pdr): Same.
24868 (print_pbb_domain): Same.
24869 (print_pbb): Same.
24870 (print_scop_context): Same.
24871 (print_scop): Same.
24872 (print_cloog): Same.
24873 (debug_pbb_domain): Same.
24874 (debug_pbb): Same.
24875 (print_pdrs): Same.
24876 (debug_pdrs): Same.
24877 (debug_scop_context): Same.
24878 (debug_scop): Same.
24879 (debug_cloog): Same.
24880 (print_scop_params): Same.
24881 (debug_scop_params): Same.
24882 (print_iteration_domain): Same.
24883 (print_iteration_domains): Same.
24884 (debug_iteration_domain): Same.
24885 (debug_iteration_domains): Same.
24886 (print_scattering_function): Same.
24887 (print_scattering_functions): Same.
24888 (debug_scattering_function): Same.
24889 (debug_scattering_functions): Same.
24890
24891 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24892
24893 * graphite-poly.c (print_scattering_function_1): New.
24894 (print_scattering_function): Call it.
24895 (print_scop_params): Remove spaces at the end of lines.
24896 (print_cloog): New.
24897 (debug_cloog): New.
24898 * graphite-poly.h (print_cloog): Declared.
24899 (debug_cloog): Declared.
24900
24901 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24902
24903 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
24904 in loop->header.
24905 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
24906 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
24907 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
24908 to switch between adding the IV bump in loop->latch or in loop->header.
24909
24910 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
24911
24912 * graphite-poly.c (print_scattering_function): Pretty print following
24913 the scoplib format.
24914 (print_pdr): Same.
24915 (print_pbb_domain): Same.
24916 (dump_gbb_cases): Same.
24917 (dump_gbb_conditions): Same.
24918 (print_pdrs): Same.
24919 (print_pbb): Same.
24920 (print_scop_params): Same.
24921 (print_scop_context): Same.
24922 (print_scop): Same.
24923 (print_pbb_body): New.
24924 (lst_indent_to): New.
24925 (print_lst): Start new lines with a #.
24926 * graphite-poly.h (pbb_bb): New.
24927 (pbb_index): Use pbb_bb.
24928 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
24929 disjuncts.
24930 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
24931
24932 2010-03-31 Jakub Jelinek <jakub@redhat.com>
24933
24934 * dwarf2out.c (size_of_die): For -gdwarf-4 use
24935 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
24936 and 0 instead of 1 for dw_val_class_flag.
24937 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
24938 dw_val_class_range_list, dw_val_class_loc_list,
24939 dw_val_class_lineptr and dw_val_class_macptr, use
24940 DW_FORM_flag_present for dw_val_class_flag and
24941 DW_FORM_exprloc for dw_val_class_loc.
24942 (output_die): For -gdwarf-4 print dw_val_class_loc
24943 size as uleb128 instead of 1 or 2 bytes and don't print
24944 anything for dw_val_class_flag.
24945
24946 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
24947 instead of cselib_lookup following by tweaking locs->setting_insn.
24948
24949 PR bootstrap/43596
24950 * cselib.c (cselib_process_insn): Clear cselib_current_insn
24951 even before returning from label, setjmp call or volatile asm
24952 handling.
24953
24954 2010-03-31 Richard Guenther <rguenther@suse.de>
24955
24956 PR middle-end/43600
24957 * cgraphunit.c (cgraph_output_in_order): Do not allocate
24958 temporary data on stack.
24959
24960 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24961
24962 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
24963 (PUSHSECTION_ASM_OP): Remove.
24964 (POPSECTION_ASM_OP): Remove.
24965 (PUSHSECTION_FORMAT): Remove.
24966 * config/sol2.h (PUSHSECTION_FORMAT): Define.
24967 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
24968 * config/sol2.c (solaris_output_init_fini): Use it.
24969
24970 2010-03-31 Jie Zhang <jie@codesourcery.com>
24971
24972 PR 43574
24973 * opt-functions.awk (var_type_struct): Use signed char type
24974 for simple variables.
24975
24976 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24977
24978 * config/sol2.c: Include output.h.
24979 (solaris_assemble_visibility): New function.
24980 * config/t-sol2 (sol2.o): Add output.h dependency.
24981 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
24982 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
24983 Redefine.
24984
24985 2010-03-31 Jakub Jelinek <jakub@redhat.com>
24986
24987 PR target/43580
24988 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
24989 V2SImode or XFmode on PRE_DEC.
24990
24991 PR debug/43557
24992 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
24993 BLKmode.
24994
24995 2010-03-31 Jie Zhang <jie@codesourcery.com>
24996
24997 PR 43562
24998 * reload.h (caller_save_initialized_p): Declare.
24999 * toplev.c (backend_init_target): Don't call
25000 init_caller_save but set caller_save_initialized_p to false.
25001 * caller-save.c (caller_save_initialized_p): Define.
25002 (init_caller_save): Check caller_save_initialized_p.
25003 * ira.c (ira): Call init_caller_save if flag_caller_saves.
25004
25005 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25006
25007 PR target/39048
25008 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
25009 and soft-fp/t-softfp to tmake_file.
25010 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
25011 (LIBGCC2_TF_CEXT): Define.
25012 (TF_SIZE): Define.
25013
25014 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
25015
25016 PR debug/42977
25017 * cselib.c (n_useless_values): Document handling of debug locs.
25018 (n_useless_debug_values, n_debug_values): New variables.
25019 (new_elt_loc_list): Don't add to debug values, keep count.
25020 (promote_debug_loc): New.
25021 (cselib_reset_table): Zero new variables.
25022 (entry_and_rtx_equal_p): Promote debug locs.
25023 (discard_useless_locs): Increment n_useless_debug_values for
25024 debug values.
25025 (remove_useless_values): Adjust n_useless_values and n_debug_values
25026 with n_useless_debug_values.
25027 (add_mem_for_addr): Promote debug locs.
25028 (cselib_lookup_mem): Likewise.
25029 (cselib_lookup_addr): Renamed to...
25030 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
25031 (cselib_log_lookup): ... this. Turn into...
25032 (cselib_lookup_addr): ... new wrapper.
25033 (cselib_lookup_from_insn): New.
25034 (cselib_invalidate_regno): Increment n_useless_debug_values for
25035 debug values.
25036 (cselib_invalidate_mem): Likewise.
25037 (cselib_process_insn): Take n_deleted and n_debug_values into
25038 account to guard remove_useless_value call.
25039 (cselib_finish): Zero n_useless_debug_values.
25040 * cselib.h (cselib_lookup_from_insn): Declare.
25041 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
25042 (sched_analyze_2): Likewise.
25043
25044 2010-03-30 Jakub Jelinek <jakub@redhat.com>
25045
25046 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
25047 functions.
25048 (adjust_mems): Replace narrowing SUBREG of expression containing
25049 just PLUS, MINUS, MULT and ASHIFT of registers and constants
25050 with operations in the narrower mode.
25051
25052 PR debug/43593
25053 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
25054 regs_invalidated_by_call instead all call_used_reg_set registers.
25055
25056 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
25057
25058 PR middle-end/43430
25059 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
25060 pointer comparisons with types_compatible_p.
25061 * tree-vect-stmts.c (vectorizable_call): Same.
25062 (vectorizable_condition): Same.
25063
25064 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25065
25066 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
25067 stack check if the mask would be zero.
25068
25069 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
25070 Jack Howarth <howarth@bromo.med.uc.edu>
25071
25072 * tree-profile.c (tree_init_ic_make_global_vars): Make static
25073 variables TLS.
25074
25075 2010-03-30 Joseph Myers <joseph@codesourcery.com>
25076
25077 PR other/25232
25078 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
25079 and __unordtf2.
25080 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
25081 Include ___unordxf2 and ___unordtf2.
25082 * config/i386/libgcc-glibc.ver: Do not define inheritance from
25083 GCC_4.4.0 here.
25084
25085 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
25086
25087 * config/lm32/t-lm32: New file.
25088 * config.gcc: Use the above file when targetting lm32.
25089
25090 2010-03-28 Duncan Sands <baldrick@free.fr>
25091
25092 * Makefile.in (PLUGIN_HEADERS): Add except.h.
25093
25094 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
25095
25096 PR middle-end/43431
25097 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
25098 Improve vectorization cost model diagnostic.
25099
25100 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
25101
25102 PR middle-end/43436
25103 * tree-vect-data-refs.c (vect_analyze_data_refs): When
25104 compute_data_dependences_for_loop returns false, early exit
25105 and output an extra diagnostic for the failed data reference
25106 analysis.
25107
25108 2010-03-29 Richard Guenther <rguenther@suse.de>
25109
25110 PR tree-optimization/43560
25111 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
25112 (can_sm_ref_p): Treat stores to readonly locations as trapping.
25113
25114 2010-03-29 Jie Zhang <jie@codesourcery.com>
25115
25116 PR 43564
25117 * toplev.c (process_options): Set optimization_default_node
25118 and optimization_current_node.
25119 * opts.c (decode_options): Don't set optimization_default_node
25120 and optimization_current_node.
25121
25122 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
25123
25124 * config/rtems.h: Abandon -qrtems_debug.
25125
25126 2010-03-28 Jan Hubicka <jh@suse.cz>
25127
25128 PR tree-optimization/43505
25129 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
25130 map should not be copied.
25131
25132 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25133
25134 PR middle-end/41674
25135 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
25136 cdtors, set DECL_PRESERVE_P.
25137 * ipa.c (cgraph_externally_visible_p): Return true if declaration
25138 should be preseved.
25139
25140 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
25141
25142 PR tree-optimization/43528
25143 * stor-layout.c (place_field): Check that constant fits into
25144 unsigned HWI when skipping calculation of MS bitfield layout.
25145
25146 2010-03-27 Jan Hubicka <jh@suse.cz>
25147
25148 PR middle-end/43391
25149 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
25150 notice_global_symbol work.
25151
25152 2010-03-27 Jakub Jelinek <jakub@redhat.com>
25153
25154 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
25155 instead of dwarf2out_decl.
25156 (struct var_loc_node): Remove section_label field.
25157 (dwarf2out_function_decl): New function.
25158 (dwarf2out_var_location): Don't set section_label field.
25159 (dwarf2out_begin_function): Don't empty decl_loc_table here.
25160
25161 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
25162
25163 PR tree-optimization/43544
25164 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
25165 First argument for builtin vectorized function hook is now a
25166 tree to be able to distinguish between machine specific and
25167 standard builtins.
25168 * targhooks.c (default_builtin_vectorized_function): Ditto.
25169 * targhooks.h (default_builtin_vectorized_function): Ditto.
25170 * target.h (struct gcc_target): Ditto.
25171 * tree-vect-stmts.c (vectorizable_function): Ditto.
25172 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
25173 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
25174 Ditto.
25175
25176 2010-03-26 Joseph Myers <joseph@codesourcery.com>
25177
25178 PR c/43381
25179 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
25180 nested binding iff it is a FUNCTION_DECL.
25181 (store_parm_decls_newstyle): Pass nested=true to bind for
25182 FUNCTION_DECLs amongst parameters.
25183
25184 2010-03-26 Jakub Jelinek <jakub@redhat.com>
25185
25186 * var-tracking.c (vt_expand_loc_callback): Don't run
25187 cselib_expand_value_rtx_cb in dummy mode if
25188 cselib_dummy_expand_value_rtx_cb returned false.
25189
25190 * var-tracking.c (emit_note_insn_var_location): For one part
25191 notes with offset 0, don't add EXPR_LIST around the location.
25192 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
25193 add_location_or_const_value_attribute): Adjust for that change.
25194
25195 PR debug/43540
25196 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
25197 into first operand and location into second.
25198 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
25199 dw_cfi_oprnd_loc for DW_CFA_expression.
25200 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
25201 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
25202 assume first argument is regnum and second argument is location.
25203
25204 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
25205
25206 PR target/42113
25207 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
25208 of scratch register to DImode. Split to DImode comparison operator.
25209 Use SImode subreg of scratch register in the multiplication.
25210 (*cmp_sadd_sidi): Ditto.
25211 (*cmp_ssub_si): Ditto.
25212 (*cmp_ssub_sidi): Ditto.
25213
25214 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
25215
25216 PR target/43524
25217 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
25218 Remove invalid assert and wrong comment.
25219
25220 2010-03-26 Jakub Jelinek <jakub@redhat.com>
25221
25222 PR debug/43516
25223 * flags.h (final_insns_dump_p): New extern.
25224 * final.c (final_insns_dump_p): New variable.
25225 (rest_of_clean_state): Set it before -fdump-final-insns=
25226 dumping, clear afterwards.
25227 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
25228 MEM_ALIAS_SET on MEMs.
25229
25230 2010-03-26 David S. Miller <davem@davemloft.net>
25231
25232 * configure.ac: Fix sparc GOTDATA_OP bug check.
25233 * configure: Rebuild.
25234
25235 2010-03-26 Alan Modra <amodra@gmail.com>
25236
25237 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
25238
25239 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25240
25241 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
25242 TLS_SECTION_ASM_FLAG.
25243
25244 2010-03-25 Jakub Jelinek <jakub@redhat.com>
25245
25246 PR bootstrap/43511
25247 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
25248 Clear first_function_block_is_cold.
25249
25250 PR c/43385
25251 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
25252 argument if the argument is truth_value_p.
25253
25254 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
25255
25256 * config/rs6000/constraints.md: Update copyright year for my changes.
25257
25258 PR target/43484
25259 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
25260 used in reg+reg addressing, swap registers.
25261
25262 2010-03-24 Jakub Jelinek <jakub@redhat.com>
25263
25264 PR debug/43293
25265 * target.h (struct gcc_target): Add code_end hook.
25266 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
25267 if not yet defined.
25268 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
25269 * toplev.c (compile_file): Call targetm.asm_out.code_end
25270 hook before unwind info/debug info output.
25271 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
25272 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
25273 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
25274 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
25275 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
25276 * config/i386/i386.c (ix86_file_end): Renamed to...
25277 (ix86_code_end): ... this. Make static. Don't call
25278 file_end_indicate_exec_stack. Emit unwind info using
25279 final_start_function/final_end_function.
25280 (darwin_x86_file_end): Remove.
25281 (TARGET_ASM_CODE_END): Define.
25282 * config/i386/i386.h (TARGET_ASM_FILE_END,
25283 NEED_INDICATE_EXEC_STACK): Don't define.
25284 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
25285 (TARGET_ASM_FILE_END): Define to darwin_file_end.
25286 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
25287 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
25288
25289 PR target/43498
25290 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
25291 at the beginning and final_end_function at the end.
25292 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
25293
25294 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25295
25296 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
25297 and Sun as TLS syntax.
25298 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
25299 * configure: Regenerate.
25300 * config.in: Regenerate.
25301 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
25302 (default_elf_asm_named_section): Use it.
25303 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
25304 (i386_output_dwarf_dtprel): Likewise.
25305 (output_addr_const_extra): Likewise.
25306 (output_pic_addr_const): Lowercase @GOTTPOFF.
25307 (output_addr_const_extra): Likewise.
25308 (output_pic_addr_const): Lowercase @GOTNTPOFF.
25309 (output_addr_const_extra): Likewise.
25310 (output_pic_addr_const): Lowercase @INDNTPOFF.
25311 (output_addr_const_extra): Likewise.
25312 (output_pic_addr_const): Lowercase @NTPOFF.
25313 (output_addr_const_extra): Likewise.
25314 (output_pic_addr_const): Lowercase @TPOFF.
25315 (output_addr_const_extra): Likewise.
25316 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
25317 (*tls_global_dynamic_64): Likewise.
25318 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
25319 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
25320
25321 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
25322 (ASM_OUTPUT_TLS_COMMON): Use it.
25323 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
25324
25325 PR target/38118
25326 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
25327 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
25328 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
25329 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
25330 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
25331 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
25332
25333 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25334
25335 * config/i386/i386.c (override_options): Don't accept
25336 -mtls-dialect=sun any longer.
25337 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
25338 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
25339 (*tls_local_dynamic_base_32_sun): Likewise.
25340 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
25341
25342 2010-03-24 Jakub Jelinek <jakub@redhat.com>
25343
25344 PR debug/43508
25345 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
25346 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
25347
25348 PR debug/43479
25349 * ira.c (adjust_cleared_regs): New function.
25350 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
25351
25352 PR debug/19192
25353 PR debug/43479
25354 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
25355 from gimple_block.
25356 * expr.c (expand_expr_real): Restore previous
25357 curr_insn_source_location and curr_insn_block after
25358 expand_expr_real_1 call.
25359 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
25360 instead of expand_expr_real_1.
25361
25362 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
25363
25364 PR rtl-optimization/43413
25365 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
25366 hard regs too.
25367
25368 2010-03-22 James E. Wilson <wilson@codesourcery.com>
25369
25370 PR target/43348
25371 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
25372 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
25373
25374 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
25375
25376 * config/i386/i386.c (ix86_target_string): Add -mfma.
25377 Fix a typo in comment.
25378
25379 2010-03-22 Mike Stump <mikestump@comcast.net>
25380
25381 PR target/23071
25382 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
25383 Don't overly align based upon packed packed fields.
25384
25385 2010-03-22 Jason Merrill <jason@redhat.com>
25386
25387 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
25388 Use () rather than [], and move before the element type.
25389
25390 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25391
25392 * doc/configfiles.texi (Configuration Files): Removed
25393 fixinc/Makefile*, intl/Makefile.*.
25394 * doc/makefile.texi: Fixed markup. Abstract from version
25395 control system used.
25396 (Makefile): Removed obsolete java/parse.y example.
25397 * doc/sourcebuild.texi: Likewise.
25398 (Top Level): Added config, gnattools, libdecnumber, libgcc,
25399 libgomp, libssp. Removed fastjar.
25400 (Miscellaneous Docs): Clarify location.
25401 Added COPYING3, COPYING3.LIB.
25402 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
25403
25404 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25405
25406 PR target/38085
25407 * config/i386/i386.c (x86_function_profiler)
25408 [!NO_PROFILE_COUNTERS]: Fix typo.
25409 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
25410 instead of callq.
25411
25412 2010-03-22 Janis Johnson <janis187@us.ibm.com>
25413 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25414
25415 * doc/sourcebuild.texi (Test Directives): Split into six
25416 subsections, with most of the current text in new subsections
25417 Directives, Selectors, and Final Actions.
25418 (Directives): Split list of test directives into multiple
25419 subsubsections.
25420 (Selectors): Describe use and syntax of selectors.
25421 (Effective-Target Keywords): Describe all existing keywords.
25422 (Add Options): Describe features for dg-add-options.
25423 (Require Support): Describe variants of dg-require-support.
25424 (Final Actions): Describe commands to use in dg-final.
25425
25426 2010-03-22 Michael Matz <matz@suse.de>
25427
25428 PR middle-end/43475
25429 * recog.c (validate_replace_rtx_group): Replace also in
25430 REG_EQUAL and REG_EQUIV notes.
25431
25432 2010-03-22 Richard Guenther <rguenther@suse.de>
25433
25434 PR tree-optimization/43390
25435 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
25436 sure vector extracts are type correct.
25437
25438 2010-03-22 Richard Guenther <rguenther@suse.de>
25439
25440 PR middle-end/40106
25441 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
25442 x * sqrt (x) even when optimizing for size if the target
25443 has native support for sqrt.
25444
25445 2010-03-22 Jakub Jelinek <jakub@redhat.com>
25446
25447 * varasm.c (make_decl_rtl_for_debug): Also clear
25448 flag_mudflap for the duration of make_decl_rtl call.
25449
25450 PR debug/43443
25451 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
25452 locs from preserved VALUEs.
25453
25454 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25455
25456 PR middle-end/42718
25457 * pa.md (movmemsi): Set align to one if zero.
25458 (movmemdi): Likewise.
25459
25460 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
25461
25462 PR target/42321
25463 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
25464 with their corresponding prologue pushes.
25465
25466 2010-03-20 Andrew Pinski <pinskia@gmail.com>
25467
25468 PR target/43156
25469 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
25470 at the begining or end.
25471 (spu_expand_epilogue): Likewise.
25472
25473 2010-03-20 Richard Guenther <rguenther@suse.de>
25474
25475 PR rtl-optimization/43438
25476 * combine.c (make_extraction): Properly zero-/sign-extend an
25477 extraction of the low part of a CONST_INT. Also handle
25478 CONST_DOUBLE.
25479
25480 2010-03-19 Mike Stump <mikestump@comcast.net>
25481
25482 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
25483 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
25484 (override_options): Use SUBTARGET32_DEFAULT_CPU.
25485
25486 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
25487
25488 PR c/43211
25489 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
25490 an error.
25491
25492 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
25493
25494 PR rtl-optimization/42258
25495 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
25496 use that may match DEF.
25497
25498 PR target/40697
25499 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
25500 the cost of loading the constant rather than assuming
25501 COSTS_N_INSNS (1).
25502 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
25503 outer code is AND, do the same tests as the andsi3 expander and
25504 return COSTS_N_INSNS (1) if and is cheap.
25505
25506 * optabs.c (avoid_expensive_constant): Fix formatting.
25507
25508 2010-03-19 Michael Matz <matz@suse.de>
25509
25510 PR c++/43116
25511 * attribs.c (decl_attributes): When rebuilding a function pointer
25512 type use the same qualifiers as the original pointer type.
25513
25514 2010-03-19 Martin Jambor <mjambor@suse.cz>
25515
25516 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
25517 and is_gimple_ip_invariant_address.
25518
25519 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25520
25521 Revert
25522 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25523
25524 * config/arm/arm.c (arm_override_options): Turn off
25525 flag_dwarf2_cfi_asm for AAPCS variants.
25526
25527 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25528
25529 PR target/43399
25530 * config/arm/arm.c (emit_multi_reg_push): Update comments.
25531 Use PRE_MODIFY instead of PRE_DEC.
25532 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
25533 (vfp_emit_fstmd): Likewise.
25534
25535 2010-03-19 Michael Matz <matz@suse.de>
25536
25537 PR target/43305
25538 * builtins.c (expand_builtin_interclass_mathfn,
25539 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
25540 if that fails.
25541
25542 2010-03-19 Richard Guenther <rguenther@suse.de>
25543
25544 PR tree-optimization/43415
25545 * tree-ssa-pre.c (phi_translate): Split out worker to ...
25546 (phi_translate_1): ... this.
25547 (phi_translate): Move all caching here. Cache all NARY
25548 and REFERENCE translations.
25549
25550 2010-03-19 David S. Miller <davem@davemloft.net>
25551
25552 With help from Eric Botcazou.
25553 * config/sparc/sparc.c: Include dwarf2out.h.
25554 (emit_pic_helper): Delete.
25555 (pic_helper_symbol_name): Delete.
25556 (pic_helper_emitted_p): Delete.
25557 (pic_helper_needed): New.
25558 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
25559 (get_pc_thunk_name): New.
25560 (load_pic_register): Remove 'delay_pic_helper' arg. Use
25561 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
25562 Set pic_helper_needed to true. Don't call emit_pic_helper.
25563 (sparc_expand_prologue): Update load_pic_register call.
25564 (sparc_output_mi_thunk): Likewise.
25565 (sparc_file_end): Emit a hidden comdat symbol for the PIC
25566 thunk if possible. Output CFI information as needed.
25567
25568 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
25569 Jack Howarth <howarth@bromo.med.uc.edu>
25570
25571 PR target/36399
25572 * config/i386/i386.h: Fix ABI on darwin x86-32.
25573
25574 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
25575
25576 * tree.h: Declare make_decl_rtl_for_debug.
25577 * varasm.c (make_decl_rtl_for_debug): New.
25578 * dwarf2out.c (rtl_for_decl_location): Call it.
25579 * cfgexpand.c (expand_debug_expr): Call it.
25580
25581 2010-03-18 Jakub Jelinek <jakub@redhat.com>
25582
25583 PR bootstrap/43399
25584 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
25585 mem_mode.
25586
25587 PR bootstrap/43403
25588 * var-tracking.c (vt_init_cfa_base): Do nothing if
25589 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
25590
25591 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
25592
25593 PR debug/42873
25594 * var-tracking.c (canonicalize_vars_star): New.
25595 (dataflow_post_merge_adjust): Use it.
25596
25597 2010-03-18 Jakub Jelinek <jakub@redhat.com>
25598
25599 PR debug/43058
25600 * var-tracking.c (non_suitable_const): New function.
25601 (add_uses): For DEBUG_INSNs with constants, don't record any
25602 value, instead just the constant value itself.
25603 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
25604 is not VAR_LOC_UNKNOWN_P, set var to the constant.
25605 (emit_notes_in_bb): Likewise.
25606 (emit_note_insn_var_location): For onepart variables if
25607 cur_loc is a VOIDmode constant, use DECL_MODE.
25608
25609 2010-03-18 Martin Jambor <mjambor@suse.cz>
25610
25611 PR middle-end/42450
25612 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
25613 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
25614 all non-clones. Moved call redirection...
25615 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
25616 (cgraph_materialize_all_clones): Dispose of all
25617 combined_args_to_skip bitmaps.
25618 (verify_cgraph_node): Do not check for edges pointing to wrong
25619 nodes in inline clones.
25620 * tree-inline.c (copy_bb): Call
25621 cgraph_redirect_edge_call_stmt_to_callee.
25622 * ipa.c (cgraph_remove_unreachable_nodes): Call
25623 cgraph_node_remove_callees even when there are used clones.
25624
25625 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
25626
25627 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
25628
25629 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
25630
25631 PR target/43383
25632 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
25633 for 32bit.
25634
25635 2010-03-18 Michael Matz <matz@suse.de>
25636
25637 PR middle-end/43419
25638 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
25639 into sqrt(x) if we need to preserve signed zeros.
25640
25641 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
25642 Eric Botcazou <ebotcazou@adacore.com>
25643
25644 PR rtl-optimization/43360
25645 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
25646 note if we don't know its invariant status.
25647
25648 2010-03-18 Michael Matz <matz@suse.de>
25649
25650 PR tree-optimization/43402
25651 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
25652 PHI chains of ssa names registered for update.
25653
25654 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
25655
25656 PR target/42427
25657 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
25658 non-offsettable and pre_modify update addressing.
25659 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
25660 and "2" alternatives "#".
25661 (*movdd_softfloat32): Make all alternatives "#";
25662 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
25663 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
25664 (*movdf_softfloat32): Make all alternatives "#";
25665 (movdi): Use the new DIFD mode iterator to create a common splitter
25666 for movdi, movdf and movdd patterns.
25667
25668 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
25669
25670 * common.opt (dumpdir): Remove redundant tab.
25671
25672 2010-03-17 Martin Jambor <mjambor@suse.cz>
25673
25674 PR tree-optimization/43347
25675 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
25676 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
25677
25678 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
25679
25680 PR rtl-optimization/42216
25681 * regrename.c (create_new_chain): New function, broken out from...
25682 (scan_rtx_reg): ... here. Call it. Handle the case where we are
25683 appending a use to an empty chain.
25684 (build_def_use): Remove previous changes that convert OP_INOUT to
25685 OP_OUT operands; instead detect the case where an OP_INOUT operand
25686 uses a previously untracked register and create an empty chain for it.
25687
25688 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25689
25690 * doc/extend.texi (Function Attributes): Rewrite unfinished
25691 sentence in ms_abi documentation.
25692
25693 2010-03-17 Alan Modra <amodra@gmail.com>
25694
25695 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
25696 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
25697 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
25698 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
25699
25700 2010-03-16 Richard Henderson <rth@redhat.com>
25701
25702 PR middle-end/43365
25703 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
25704 (lower_try_finally): Save and restore eh_seq around the expansion
25705 of the try-finally.
25706
25707 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
25708
25709 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
25710 statements before splitting block.
25711
25712 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25713
25714 * doc/sourcebuild.texi (Testsuites): Fix markup.
25715 Use pathnames relative to gcc/testsuite.
25716 (Test Directives): Move description of how timeout is determined.
25717 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
25718 (C Tests): Correct gcc.misc-tests directory.
25719 Framework tests now live in gcc.test-framework.
25720
25721 2010-03-16 Richard Guenther <rguenther@suse.de>
25722
25723 PR middle-end/43379
25724 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
25725 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
25726
25727 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
25728 Alexandre Oliva <aoliva@redhat.com>
25729
25730 PR tree-optimization/42917
25731 * lambda-code.c (remove_iv): Skip debug statements.
25732 (lambda_loopnest_to_gcc_loopnest): Likewise.
25733 (not_interesting_stmt): Debug statements are not interesting.
25734
25735 2010-03-16 Jakub Jelinek <jakub@redhat.com>
25736
25737 PR debug/43051
25738 PR debug/43092
25739 * cselib.c (cselib_preserve_constants,
25740 cfa_base_preserved_val): New static variables.
25741 (preserve_only_constants): New function.
25742 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
25743 clear its REG_VALUES. If cselib_preserve_constants, don't
25744 empty the whole hash table, but preserve there VALUEs with constants,
25745 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
25746 (cselib_preserve_cfa_base_value): New function.
25747 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
25748 (cselib_init): Change argument to int bitfield. Set
25749 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
25750 is in it.
25751 (cselib_finish): Clear cselib_preserve_constants and
25752 cfa_base_preserved_val.
25753 * cselib.h (enum cselib_record_what): New enum.
25754 (cselib_init): Change argument to int.
25755 (cselib_preserve_cfa_base_value): New prototype.
25756 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
25757 * dse.c (dse_step1): Likewise.
25758 * cfgcleanup.c (thread_jump): Likewise.
25759 * sched-deps.c (sched_analyze): Likewise.
25760 * gcse.c (local_cprop_pass): Likewise.
25761 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
25762 If FN is non-NULL, call the callback always and whenever it returns
25763 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
25764 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
25765 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
25766 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
25767 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
25768 * var-tracking.c: Include recog.h.
25769 (bb_stack_adjust_offset): Remove.
25770 (vt_stack_adjustments): Don't call it, instead just gather the
25771 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
25772 (adjust_stack_reference): Remove.
25773 (compute_cfa_pointer): New function.
25774 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
25775 (struct adjust_mem_data): New type.
25776 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
25777 functions.
25778 (get_address_mode): New function.
25779 (replace_expr_with_values): Use it.
25780 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
25781 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
25782 (adjust_sets): Remove.
25783 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
25784 Use get_address_mode.
25785 (get_adjusted_src): Remove.
25786 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
25787 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
25788 (add_with_sets): Don't call adjust_sets.
25789 (fp_setter, vt_init_cfa_base): New functions.
25790 (vt_initialize): Change return type to bool. Move most of pool etc.
25791 initialization to the beginning of the function from end. Pass
25792 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
25793 If !frame_pointer_needed, call vt_stack_adjustment before mos
25794 vector is filled, call vt_init_cfa_base if argp/framep has been
25795 eliminated to sp. If frame_pointer_needed and argp/framep has
25796 been eliminated to hard frame pointer, set
25797 hard_frame_pointer_adjustment and call vt_init_cfa_base after
25798 encountering fp setter in the prologue. For MO_ADJUST, call
25799 log_op_type before pusing the op into mos vector, not afterwards.
25800 Call adjust_insn before cselib_process_insn/add_with_sets,
25801 call cancel_changes (0) afterwards.
25802 (variable_tracking_main_1): Adjust for vt_initialize calling
25803 vt_stack_adjustments and returning whether it succeeded or not.
25804
25805 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
25806
25807 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
25808 debug statements.
25809
25810 2010-03-15 Jakub Jelinek <jakub@redhat.com>
25811
25812 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
25813 has been set.
25814 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
25815 drap_reg has not been set.
25816
25817 2010-03-15 Michael Matz <matz@suse.de>
25818
25819 PR middle-end/43300
25820 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
25821 use it to expand block copies.
25822 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
25823 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
25824 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
25825
25826 2010-03-15 Richard Guenther <rguenther@suse.de>
25827
25828 PR tree-optimization/43367
25829 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
25830 elimination check.
25831
25832 2010-03-15 Richard Guenther <rguenther@suse.de>
25833
25834 PR tree-optimization/43317
25835 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
25836
25837 2010-03-15 Martin Jambor <mjambor@suse.cz>
25838
25839 PR tree-optimization/43141
25840 * tree-sra.c (create_abstract_origin): New function.
25841 (modify_function): Call create_abstract_origin.
25842
25843 2010-03-15 Chris Demetriou <cgd@google.com>
25844
25845 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
25846 wasn't copied.
25847
25848 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25849
25850 PR middle-end/43354
25851 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
25852 call insert_out_of_ssa_copy for default definitions.
25853
25854 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25855
25856 * graphite-clast-to-gimple.c (my_long_long): Defined.
25857 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
25858 * graphite-sese-to-poly.c (my_long_long): Defined.
25859 (scop_ivs_can_be_represented): Use it.
25860
25861 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25862
25863 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
25864 graphite-max-bbs-per-function, and loop-block-tile-size.
25865 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
25866 with "maximum".
25867 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
25868
25869 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25870
25871 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
25872 forward declaration.
25873 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
25874 (add_upper_bounds_from_estimated_nit): New.
25875 (build_loop_iteration_domains): Use it.
25876
25877 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25878
25879 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
25880
25881 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25882
25883 PR middle-end/43306
25884 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
25885 should be an INTEGER_CST. Also handle CASE_CONVERT.
25886
25887 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25888
25889 * graphite.c (graphite_initialize): To bound the number of bbs per
25890 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
25891 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
25892 * doc/invoke.texi: Document it.
25893
25894 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25895
25896 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
25897 * graphite-sese-to-poly.h (build_poly_scop): Same.
25898
25899 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
25900
25901 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
25902 the number of parameters in the scop. Use as an upper bound
25903 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
25904 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
25905 * doc/invoke.texi: Document it.
25906
25907 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
25908
25909 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
25910 * doc/c-tree.texi: Remove.
25911 * doc/generic.texi: Merge c-tree.texi here.
25912 * doc/gccint.texi (Trees): Remove menu entry.
25913 (c-tree.texi): Remove @include.
25914 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
25915 * doc/languages.texi (Reading RTL): Ditto.
25916
25917 2010-03-12 Steve Ellcey <sje@cup.hp.com>
25918
25919 PR target/42869
25920 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
25921
25922 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
25923
25924 PR middle-end/42431
25925 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
25926 code added to work around reload clobbering CONST insns.
25927
25928 2010-03-12 Jakub Jelinek <jakub@redhat.com>
25929
25930 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
25931 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
25932 (cselib_preserve_only_values): Remove retain argument, don't
25933 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
25934 * cselib.h (cselib_preserve_only_values): Remove retain argument.
25935 * var-tracking.c (micro_operation): Move insn field before union.
25936 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
25937 (struct variable_tracking_info_def): Remove n_mos field, change
25938 mos into a vector of micro_operations.
25939 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
25940 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
25941 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
25942 changing into a vector.
25943 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
25944 come before all other uops generated by add_stores.
25945 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
25946 argument removal.
25947 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
25948 a vector. Run just one pass over the bbs instead of separate counting
25949 and computation phase.
25950 (vt_finalize): Free VTI (bb)->mos vector instead of array.
25951
25952 PR debug/43329
25953 * tree-inline.c (remap_decls): Put old_var rather than origin_var
25954 into *nonlocalized_list vector.
25955 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
25956 even if origin is non-NULL.
25957 (gen_variable_die): Likewise.
25958 (process_scope_var): Don't change origin.
25959 (gen_decl_die): Likewise.
25960 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
25961 before adding new edges instead of after it, fix moving over
25962 debug stmts.
25963
25964 2010-03-11 David S. Miller <davem@davemloft.net>
25965
25966 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
25967 of four.
25968 * configure: Rebuild.
25969
25970 2010-03-11 Martin Jambor <mjambor@suse.cz>
25971
25972 PR tree-optimization/43257
25973 * tree.c (assign_assembler_name_if_neeeded): New function.
25974 (free_lang_data_in_cgraph): Assembler name assignment moved to the
25975 above new function.
25976 * tree.h (assign_assembler_name_if_neeeded): Declare.
25977 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
25978 the function if needed.
25979
25980 2010-03-11 Chris Demetriou <cgd@google.com>
25981
25982 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
25983 include/stdint-gcc.h, and include/stdint.h world-readable.
25984
25985 2010-03-11 Richard Guenther <rguenther@suse.de>
25986
25987 PR tree-optimization/43255
25988 * tree-vrp.c (process_assert_insertions_for): Do not insert
25989 asserts for trivial conditions.
25990
25991 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25992
25993 PR tree-optimization/43280
25994 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
25995 generation. Move calculation of size out of the if branch.
25996 (find_bswap): Modify compare number generation.
25997
25998 2010-03-11 Richard Guenther <rguenther@suse.de>
25999
26000 PR lto/43200
26001 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
26002 (input_gimple_stmt): Fixup handled component types during
26003 operand read. Also fix up decls in ADDR_EXPRs.
26004
26005 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
26006
26007 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
26008 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
26009
26010 2010-03-10 Jan Hubicka <jh@suse.cz>
26011
26012 PR c/43288
26013 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
26014 * varasm.c (get_variable_section): Don't do that here...
26015 (make_decl_rtl): ... and here.
26016 (do_assemble_alias): Produce decl RTL.
26017 (assemble_alias): Likewise.
26018
26019 2010-03-10 Jakub Jelinek <jakub@redhat.com>
26020
26021 PR debug/43290
26022 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
26023 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
26024 of fde->vdrap_reg.
26025 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
26026 (based_loc_descr): Only express drap or vdrap regno based expressions
26027 using DW_OP_fbreg when not optimizing.
26028 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
26029 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
26030 REG_CFA_SET_VDRAP note.
26031
26032 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
26033
26034 PR tree-optimization/43236
26035 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
26036 error in calculation of base address in reverse iteration case.
26037 (generate_builtin): Take number of latch executions if the statement
26038 is in the latch.
26039
26040 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
26041
26042 PR middle-end/42859
26043 * tree-eh.c: Include pointer-set.h.
26044 (lower_eh_dispatch): Filter out duplicate case labels and
26045 remove the unneeded edge when the label is unused. Return
26046 true when some edges are removed.
26047 (execute_lower_eh_dispatch): When any lowering resulted in
26048 removing an edge, also delete unreachable blocks.
26049
26050 2010-03-10 Jakub Jelinek <jakub@redhat.com>
26051
26052 PR bootstrap/43287
26053 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26054 UNSPEC_MACHOPIC_OFFSET.
26055
26056 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
26057
26058 PR target/43294
26059 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
26060 (m68k_delegitimize_address): New function.
26061
26062 2010-03-09 Jakub Jelinek <jakub@redhat.com>
26063
26064 PR debug/43299
26065 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
26066
26067 PR debug/43299
26068 * var-tracking.c (adjust_sets): New function.
26069 (count_with_sets, add_with_sets): Use it.
26070 (get_adjusted_src): New inline function.
26071 (add_stores): Use it.
26072
26073 PR debug/43304
26074 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
26075 call cselib_dummy_expand_value_rtx_cb instead of
26076 cselib_expand_value_rtx_cb.
26077
26078 PR debug/43293
26079 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
26080 * config/i386/i386.c: Include debug.h and dwarf2out.h.
26081 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
26082 and .cfi_endproc around the pic thunks.
26083 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
26084 all queued unwind info register saves are saved before the call.
26085 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
26086 considered as sp-=4 for unwind info and the pop as sp+=4 which
26087 also clobbers dest, but doesn't actually restore it.
26088
26089 PR debug/43290
26090 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
26091 RTX_FRAME_RELATED_P.
26092
26093 2010-03-09 Jie Zhang <jie@codesourcery.com>
26094
26095 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
26096 whitespaces in output template.
26097
26098 2010-03-09 Jie Zhang <jie@codesourcery.com>
26099
26100 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
26101 out array boundary.
26102
26103 2010-03-08 Jakub Jelinek <jakub@redhat.com>
26104
26105 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
26106 builtins.exp in a separate job.
26107
26108 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26109
26110 * graphite-sese-to-poly.c (add_param_constraints): Use
26111 lower_bound_in_type and upper_bound_in_type.
26112
26113 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26114
26115 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
26116 instead of unsigned_type_node.
26117
26118 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26119 Reza Yazdani <reza.yazdani@amd.com>
26120
26121 PR middle-end/43065
26122 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
26123 on pointer type parameters.
26124
26125 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
26126
26127 PR middle-end/42644
26128 PR middle-end/42130
26129 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
26130 handle conversions from pointer to integers.
26131 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
26132 induction variable, to be able to work with code generated by CLooG.
26133 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
26134 (build_poly_scop): Bail out if we cannot codegen a loop.
26135
26136 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
26137
26138 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
26139 code generation with gloog_error.
26140
26141 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26142
26143 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
26144 Call fold_convert on all the returned values.
26145 (expand_scalar_variables_expr): Pass to
26146 expand_scalar_variables_ssa_name the type of the resulting expression.
26147
26148 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26149
26150 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
26151 ppl_min_for_le_pointset.
26152 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
26153 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
26154
26155 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26156
26157 * graphite-dependences.c (map_into_dep_poly): Removed.
26158 (dependence_polyhedron_1): Use combine_context_id_scat.
26159
26160 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26161
26162 * graphite-poly.h (struct poly_scattering): Add layout documentation.
26163 (struct poly_bb): Same.
26164 (combine_context_id_scat): New.
26165
26166 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26167
26168 PR middle-end/42326
26169 * sese.c (name_defined_in_loop_p): Return false for default
26170 definitions.
26171
26172 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26173
26174 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
26175 and clean up the logic.
26176
26177 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
26178
26179 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
26180 early return.
26181
26182 2010-03-08 Jakub Jelinek <jakub@redhat.com>
26183
26184 * var-tracking.c (remove_cselib_value_chains): Define only for
26185 ENABLE_CHECKING.
26186 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
26187 delete_slot_part, emit_notes_for_differences_1): Don't call
26188 remove_cselib_value_chains here.
26189 (set_slot_part, emit_notes_for_differences_2): Don't call
26190 add_cselib_value_chains here.
26191 (preserved_values): New vector.
26192 (preserve_value): New function.
26193 (add_uses, add_stores, vt_add_function_parameters): Use it
26194 instead of cselib_preserve_value.
26195 (changed_values_stack): New vector.
26196 (check_changed_vars_0): New function.
26197 (check_changed_vars_1, check_changed_vars_2): Use it.
26198 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
26199 changed_values_stack VALUEs.
26200 (vt_emit_notes): For all preserved_values call
26201 add_cselib_value_chains. If ENABLE_CHECKING call
26202 remove_cselib_value_chains before verifying value_chains is empty.
26203 Initialize and free changed_values_stack.
26204 (vt_initialize): Initialize preserved_values.
26205 (vt_finalize): Free preserved_values.
26206
26207 2010-03-08 Richard Guenther <rguenther@suse.de>
26208
26209 PR tree-optimization/43269
26210 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
26211 region detection.
26212
26213 2010-03-08 Martin Jambor <mjambor@suse.cz>
26214
26215 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
26216 (ipa_is_param_called): Removed.
26217 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
26218 (ipa_print_node_params): Do not print the called flag.
26219 (ipa_write_node_info): Do not stream the called flag.
26220 (ipa_read_node_info): Likewise.
26221
26222 2010-03-07 Jakub Jelinek <jakub@redhat.com>
26223
26224 PR debug/43176
26225 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
26226 * cselib.c (struct expand_value_data): Add dummy field.
26227 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
26228 dummy to false.
26229 (cselib_dummy_expand_value_rtx_cb): New function.
26230 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
26231 any rtl.
26232 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
26233 * var-tracking.c: Include pointer-set.h.
26234 (variable): Change n_var_parts to char from int. Add
26235 cur_loc_changed and in_changed_variables fields.
26236 (variable_canonicalize): Remove.
26237 (shared_var_p): New inline function.
26238 (unshare_variable): Maintain cur_loc_changed and
26239 in_changed_variables fields. If var was in changed_variables,
26240 replace it there with new_var. Just copy cur_loc instead of
26241 resetting it to something else.
26242 (variable_union): Don't recompute cur_loc. Use shared_var_p.
26243 (dataflow_set_union): Don't call variable_canonicalize.
26244 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
26245 of their DEBUG_EXPR_TREE_DECLs.
26246 (canonicalize_loc_order_check): Verify that cur_loc is NULL
26247 and in_changed_variables and cur_loc_changed is false.
26248 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
26249 and cur_loc_changed. Don't update cur_loc here.
26250 (variable_merge_over_src): Don't call variable_canonicalize.
26251 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
26252 removing loc that is equal to cur_loc, clear cur_loc,
26253 set cur_loc_changed and ensure variable_was_changed is called.
26254 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
26255 compare pointers in cur_loc check, if it is equal to loc,
26256 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
26257 (variable_different_p): Remove compare_current_location argument,
26258 don't compare cur_loc.
26259 (dataflow_set_different_1): Adjust variable_different_p caller.
26260 (variable_was_changed): If dv had some var in changed_variables
26261 already, reset in_changed_variables flag for it and propagate
26262 cur_loc_changed over to the new variable. On empty var
26263 always set cur_loc_changed. Set in_changed_variables on whatever
26264 var is added to changed_variables.
26265 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
26266 Use shared_var_p. When removing loc that is equal to cur_loc,
26267 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
26268 end, don't set it to something else, just call variable_was_changed.
26269 (delete_slot_part): Use shared_var_p. When cur_loc equals to
26270 loc being removed, clear cur_loc and set cur_loc_changed.
26271 Set cur_loc_changed if all locations have been removed.
26272 (struct expand_loc_callback_data): New type.
26273 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
26274 allocated. Always create SUBREGs if simplify_subreg failed.
26275 Prefer to use cur_loc, when that fails and still in
26276 changed_variables (and seen first time) recompute it. Set
26277 cur_loc_changed of variables which had to change cur_loc and
26278 compute elcd->cur_loc_changed if any of the subexpressions used
26279 had to change cur_loc.
26280 (vt_expand_loc): Adjust to pass arguments in
26281 expand_loc_callback_data structure.
26282 (vt_expand_loc_dummy): New function.
26283 (emitted_notes): New variable.
26284 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
26285 that weren't used for any other decl in current
26286 emit_notes_for_changes call call vt_expand_loc_dummy to update
26287 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
26288 first loc_chain location if NULL before. Always use just
26289 cur_loc instead of first loc_chain location. When cur_loc_changed
26290 is false, when not --enable-checking=rtl just don't emit any note.
26291 When rtl checking, compute the note and assert it is the same
26292 as previous note. Clear cur_loc_changed and in_changed_variables
26293 at the end before removing from changed_variables.
26294 (check_changed_vars_3): New function.
26295 (emit_notes_for_changes): Traverse changed_vars to call
26296 check_changed_vars_3 on each changed var.
26297 (emit_notes_for_differences_1): Clear cur_loc_changed and
26298 in_changed_variables. Recompute cur_loc of new_var.
26299 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
26300 (vt_emit_notes): Initialize and destroy emitted_notes.
26301
26302 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
26303
26304 PR rtl-optimization/42220
26305 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
26306 Use verify_reg_tracked to determine if we should use OP_OUT rather
26307 than OP_INOUT.
26308 (build_def_use): If we see an in-out operand for a register that we
26309 know nothing about, treat is an output if possible, fail the block if
26310 not.
26311
26312 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
26313
26314 PR debug/42897
26315 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
26316 permanently.
26317
26318 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
26319
26320 PR debug/42897
26321 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
26322 uses of relevant DEFs that are dead outside the loop too.
26323
26324 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
26325
26326 * var-tracking.c (dataflow_set_merge): Swap src and src2.
26327 Reverted:
26328 2010-01-13 Jakub Jelinek <jakub@redhat.com>
26329 PR debug/41371
26330 * var-tracking.c (values_to_unmark): New variable.
26331 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26332 values_to_unmark vector. Moved body to...
26333 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
26334 instead queue it into values_to_unmark vector.
26335 (vt_find_locations): Free values_to_unmark vector.
26336
26337 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
26338
26339 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
26340 (site.exp): Export them when plugins are enabled.
26341
26342 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
26343
26344 PR middle-end/42326
26345 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
26346 that contain scevs.
26347 (chrec_fold_multiply): Same.
26348
26349 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
26350
26351 PR c/43248
26352 * c-decl.c (build_compound_literal): Return early if init is
26353 an error_mark_node.
26354
26355 2010-03-04 Martin Jambor <mjambor@suse.cz>
26356
26357 PR tree-optimization/43164
26358 PR tree-optimization/43191
26359 * tree-sra.c (type_consists_of_records_p): Reject records with
26360 zero-size bit-fields at the end.
26361
26362 2010-03-04 Mike Stump <mikestump@comcast.net>
26363
26364 * Makefile.in (TAGS): Remove *.y.
26365
26366 2010-03-04 Richard Guenther <rguenther@suse.de>
26367
26368 PR tree-optimization/40761
26369 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
26370 in reverse order.
26371 (my_rev_post_order_compute): New function.
26372 (init_pre): Call it.
26373
26374 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
26375
26376 PR middle-end/43209
26377 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
26378 decrease the cost of an IV candidate when the cost is infinite.
26379
26380 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26381
26382 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
26383 Use '3DNow!' for the extension of that name, ensure normal space
26384 after the string.
26385 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
26386
26387 2010-03-03 Jeff Law <law@redhat.com>
26388
26389 * PR middle-end/32693
26390 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
26391 than gen_rtx_SUBREG.
26392 (extract_bit_field_1): Likewise.
26393
26394 2010-03-03 Janis Johnson <janis187@us.ibm.com>
26395
26396 * doc/sourcebuild.texi (Test directives): Document that arguments
26397 include-opts and exclude-opts are now optional for dg-skip-if,
26398 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
26399
26400 2010-03-03 Jason Merrill <jason@redhat.com>
26401
26402 PR c++/12909
26403 * cgraph.h (varpool_node): Add extra_name field.
26404 * varpool.c (varpool_extra_name_alias): New.
26405 (varpool_assemble_decl): Emit extra name aliases.
26406 (varpool_mark_needed_node): Look past an extra name alias.
26407 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
26408 * lto-streamer-in.c (lto_input_tree): Read it.
26409 * lto-streamer-out.c (output_unreferenced_globals): Write it.
26410
26411 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
26412
26413 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
26414 (sparc*-*-solaris2*): ...this.
26415
26416 2010-03-03 Jakub Jelinek <jakub@redhat.com>
26417
26418 PR debug/43229
26419 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
26420 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
26421 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
26422 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
26423
26424 PR debug/43237
26425 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
26426 fallthrough to default handling, just with want_address 0 instead of 2.
26427 For single element lists, add_AT_loc directly, otherwise create an
26428 artificial variable DIE and stick location list to it.
26429
26430 PR debug/43177
26431 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
26432 (VAL_EXPR_HAS_REVERSE): Define.
26433 (reverse_op): New function.
26434 (add_stores): For reversible operations add an extra MO_VAL_USE.
26435
26436 2010-03-02 Jason Merrill <jason@redhat.com>
26437
26438 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
26439
26440 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
26441
26442 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
26443 (sparc64-*-linux*): Likewise.
26444 (sparc64-*-solaris2*): Include assembler files before linker ones.
26445 (sparc-*-solaris2*): Simplify and reorder to match previous case.
26446 * config/sparc/gas.h: Delete.
26447 * config/sparc/sol2-64.h: Add copyright notice.
26448 * config/sparc/sol2-gas-bi.h: Likewise.
26449 * config/sparc/sol2-gld.h: Likewise.
26450 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
26451 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
26452 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
26453 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
26454 (sparc_elf_asm_named_section): Rename into...
26455 (sparc_solaris_elf_asm_named_section): ...this. Always define.
26456
26457 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
26458
26459 * config/alpha/alpha.c (override_options): Fix -mtune error message.
26460
26461 2010-03-02 Jeff Law <law@redhat.com>
26462
26463 PR middle-end/42431
26464 * reload1.c (rtx_p, substitute_stack): Declare.
26465 (substitute): Record addresses of changed rtxs.
26466 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
26467 Restore the original rtx when complete.
26468 (reload): Free subsitute_stack when complete.
26469
26470 2010-03-02 Janis Johnson <janis187@us.ibm.com>
26471
26472 * doc/gccint.texi (menu): Add Testsuites as a chapter.
26473 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
26474 new chapter.
26475 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
26476 LTO Testing, gcov Testing, profopt Testing, compat Testing,
26477 Torture Tests): Change from subsection to section.
26478
26479 2010-03-02 Jakub Jelinek <jakub@redhat.com>
26480 Steven Bosscher <steven@gcc.gnu.org>
26481
26482 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
26483 instead of bb.
26484
26485 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
26486
26487 PR middle-end/42640
26488 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
26489 the assignment from the new induction variable to the assignment
26490 of the value from the original loop PHI function.
26491
26492 2010-03-01 Janis Johnson <janis187@us.ibm.com>
26493 Daniel Jacobowitz <dan@codesourcery.com>
26494
26495 * doc/sourcebuild.texi (Test directives): Clarify options to
26496 dg-skip-if.
26497
26498 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26499
26500 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
26501 Disable cfi directives unless GCC and gas agree on using read-only
26502 .eh_frame sections for 64-bit.
26503 * configure: Regenerate.
26504
26505 2010-03-01 Richard Guenther <rguenther@suse.de>
26506
26507 PR tree-optimization/43220
26508 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
26509 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
26510
26511 2010-03-01 Richard Guenther <rguenther@suse.de>
26512 Martin Jambor <mjambor@suse.cz>
26513
26514 PR middle-end/41250
26515 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
26516 gimplified parameters.
26517
26518 2010-03-01 Christian Bruel <christian.bruel@st.com>
26519
26520 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
26521
26522 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
26523
26524 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
26525
26526 2010-03-01 Richard Guenther <rguenther@suse.de>
26527
26528 PR middle-end/43213
26529 * expr.c (expand_assignment): Use the alias-oracle to tell
26530 if the rhs aliases the result decl.
26531
26532 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26533
26534 PR pch/14940
26535 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
26536 to sol_gt_pch_get_address.
26537 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
26538 64-bit, SPARC and x86.
26539 (sol_gt_pch_get_address): New function.
26540
26541 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
26542
26543 * toplev.h (inform_n, error_n): Declare.
26544 * diagnostic.c (inform_n, error_n): New function.
26545
26546 2010-03-01 Jakub Jelinek <jakub@redhat.com>
26547
26548 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
26549 has no rtl yet when processing local_decls, queue it and recheck
26550 if deferred stack allocation hasn't assigned it rtl.
26551
26552 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
26553
26554 * config/sh/sh.c (unspec_bbr_uid): New.
26555 (gen_block_redirect): Use it instead of INSN_UID.
26556 (gen_far_branch): Likewise.
26557
26558 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
26559
26560 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
26561 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
26562
26563 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26564
26565 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
26566 (Warning Options): -Wno-conversion-null is valid for
26567 Objective-C++ as well.
26568 * doc/tm.texi (Named Address Spaces): Likewise.
26569 * doc/plugins.texi (Plugins): Replace TABs with spaces.
26570 * doc/tree-ssa.texi (Tree SSA): Likewise.
26571
26572 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
26573
26574 PR bootstrap/43202
26575 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
26576 by default. Don't set the default arch for
26577 i[34567]86-*-darwin*|x86_64-*-darwin*.
26578
26579 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
26580
26581 PR bootstrap/43202
26582 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
26583 default. Set the default 32bit/64bit archs with $with_arch
26584 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
26585
26586 2010-02-27 Richard Guenther <rguenther@suse.de>
26587
26588 PR tree-optimization/43186
26589 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
26590 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
26591 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
26592 unroller iterations.
26593
26594 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
26595
26596 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
26597 required and i[34567]86-*-* targets don't support 64bit ISA.
26598
26599 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
26600
26601 PR ada/43096
26602 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
26603 the same alias set.
26604
26605 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
26606
26607 * config.gcc: Set the default arch at least to Prescott for
26608 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
26609 if SSE math is enabled.
26610
26611 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
26612
26613 * diagnostic.c (diagnostic_initialize): Update.
26614 (diagnostic_report_diagnostic): Test inhibit_notes_p for
26615 informative notes.
26616 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
26617 (diagnostic_inhibit_notes): New.
26618 * toplev.c (process_options): inhibit notes with -fcompare-debug.
26619
26620 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
26621
26622 PR c/20631
26623 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
26624 * doc/standards.texi: Likewise.
26625 * doc/extend.texi: Likewise.
26626 * doc/trouble.texi: Likewise.
26627 * doc/cppopts.texi: Likewise.
26628 * doc/install.texi: Likewise.
26629 * c.opt (std=c90,std=gnu90): New options.
26630 * c-opts.c (c_common_handle_option): Handle them.
26631
26632 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
26633
26634 PR c/24577
26635 * c-decl.c (undeclared_variable): Use an informative note.
26636
26637 2010-02-26 Richard Guenther <rguenther@suse.de>
26638
26639 PR tree-optimization/43186
26640 * gimple.h (gimple_fold): Remove.
26641 * gimple.c (gimple_fold): Remove. Inline into single user ...
26642 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
26643 Try harder for conditions.
26644
26645 2010-02-26 Jakub Jelinek <jakub@redhat.com>
26646
26647 PR debug/43190
26648 * function.c (used_types_insert): Don't skip through named pointer
26649 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
26650 and it is different from the main variant's type.
26651
26652 2010-02-26 Nick Clifton <nickc@redhat.com>
26653
26654 * config/rx/rx.md (sminsi3): Remove bogus alternative.
26655
26656 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
26657
26658 * config.gcc: Support --with-fpmath=sse for x86.
26659
26660 * config/i386/ssemath.h: New.
26661
26662 * doc/install.texi (--with-fpmath=sse): Documented.
26663
26664 2010-02-26 Richard Guenther <rguenther@suse.de>
26665
26666 PR tree-optimization/43188
26667 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
26668 vector types of over-aligned element type.
26669
26670 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
26671
26672 PR target/43175
26673 * config/i386/i386.c (expand_vec_perm_blend): Use correct
26674 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
26675
26676 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
26677
26678 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
26679
26680 2010-02-26 Jakub Jelinek <jakub@redhat.com>
26681
26682 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
26683 * var-tracking.c: Include diagnostic.h.
26684 (debug_dv): New function.
26685 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
26686
26687 PR debug/43160
26688 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
26689 (add_value_chain, add_value_chains, remove_value_chain,
26690 remove_value_chains): Handle DEBUG_EXPRs.
26691 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
26692
26693 PR debug/43161
26694 * regcprop.c (struct queued_debug_insn_change): New type.
26695 (struct value_data_entry): Add debug_insn_changes field.
26696 (struct value_data): Add n_debug_insn_changes field.
26697 (debug_insn_changes_pool): New variable.
26698 (free_debug_insn_changes, apply_debug_insn_changes,
26699 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
26700 (kill_value_one_regno): Call free_debug_insn_changes if needed.
26701 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
26702 fields.
26703 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
26704 changes for them.
26705 (copyprop_hardreg_forward_1): Don't call apply_change_group for
26706 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
26707 changes, call cprop_find_used_regs via note_stores.
26708 (copyprop_hardreg_forward): When copying vd from predecessor
26709 which has any queued DEBUG_INSN changes, make sure the pointers are
26710 cleared. At the end call df_analyze and then if there are any
26711 DEBUG_INSN changes queued at the end of some basic block for still
26712 live registers, apply them.
26713 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
26714
26715 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
26716
26717 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
26718 (arm*-*-*): Ditto.
26719
26720 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
26721
26722 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
26723 targets. Set the default with_cpu/with_arch from arch/cpu.
26724 Allow x86-64 and native for with_cpu/with_arch.
26725
26726 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
26727
26728 * ebitmap.c: Change calls to verify_popcount with calls to
26729 sbitmap_verify_popcount.
26730 (ebitmap_clear_bit): Fixed map->cacheindex test and
26731 map>cache update when bit clearing results in an empty
26732 element.
26733
26734 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
26735
26736 PR target/43154
26737 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
26738 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
26739 and support both V2DF and V2DI modes.
26740 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
26741 support both V2DF and V2DI modes.
26742 (general): Delete trailing whitespace from a few patterns.
26743
26744 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26745 V2DF/V2DI interleave high/low builtins.
26746
26747 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
26748 new VSX builtins.
26749
26750 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
26751 interleave high/low functions.
26752
26753 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
26754
26755 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
26756 #pragma extern_prefix.
26757
26758 2010-02-25 Jakub Jelinek <jakub@redhat.com>
26759
26760 PR debug/43166
26761 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
26762 BLKmode, assert op0 is a MEM and just adjust its mode.
26763
26764 PR debug/43165
26765 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
26766 if bitpos isn't multiple of mode's bitsize.
26767
26768 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
26769
26770 * c.opt (-ftemplate-depth=): New.
26771 (-ftemplate-depth-): Deprecate.
26772 * optc-gen.awk: Handle -ftemplate-depth=.
26773 * opth-gen.awk: Likewise.
26774 * c-opts.c (c_common_handle_option): Likewise.
26775 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
26776
26777 2010-02-24 Jason Merrill <jason@redhat.com>
26778
26779 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
26780
26781 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26782
26783 * cfg.c (alloc_aux_for_block): Remove inline.
26784 (alloc_aux_for_edge): Likewise.
26785
26786 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26787
26788 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
26789
26790 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26791
26792 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
26793 * config/i386/sol2-gas.h: New file.
26794 * config.gcc (i[34567]86-*-solaris2*): Use it.
26795
26796 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
26797
26798 PR c/43128
26799 * c-typeck.c (ep_convert_and_check): New.
26800 (build_conditional_expr): Use it.
26801 (build_binary_op): Likewise.
26802
26803 2010-02-24 Jakub Jelinek <jakub@redhat.com>
26804
26805 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
26806
26807 PR debug/43150
26808 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
26809 bounds even for -O+.
26810 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
26811 expr needs to have DECL_NAME set.
26812
26813 2010-02-24 Nick Clifton <nickc@redhat.com>
26814
26815 * config/mep/mep.c: Include gimple.h.
26816 (mep_function_uses_sp): Delete unused function.
26817 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
26818 parameters. Use unsigned integers to count args. Return a
26819 NULL_RTX instead of an error_mark_node. Toidy up formatting.
26820
26821 2010-02-23 Jakub Jelinek <jakub@redhat.com>
26822
26823 PR target/43107
26824 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
26825 greater or equal to nelt instead of 2 * nelt.
26826 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
26827 with nelt - 1.
26828
26829 2010-02-23 Jason Merrill <jason@redhat.com>
26830
26831 PR debug/42800
26832 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
26833 in cfun->local_decls even if they have register types.
26834
26835 PR c++/42837
26836 * stor-layout.c (place_field): Don't warn about unnecessary
26837 DECL_PACKED if the type is packed.
26838
26839 2010-02-23 Jakub Jelinek <jakub@redhat.com>
26840
26841 PR target/43139
26842 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
26843 GOTOFF relocs, even when the base reg isn't pic pointer.
26844
26845 2010-02-23 Michael Matz <matz@suse.de>
26846
26847 PR debug/43077
26848 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
26849 (expand_gimple_basic_block): Generate and use debug temps if there
26850 are debug uses left after the last real use of TERed ssa names.
26851 Unlink debug immediate uses when they are expanded.
26852
26853 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
26854
26855 PR 43123
26856 * config/i386/i386.c (override_options): Reorganise to provide
26857 better error messages.
26858
26859 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
26860
26861 PR middle-end/43083
26862 * graphite-scop-detection.c (create_single_exit_edge): Move
26863 the call to find_single_exit_edge to....
26864 (create_sese_edges): ...here. Don't handle multiple edges
26865 exiting the function.
26866 (build_graphite_scops): Don't handle multiple edges
26867 exiting the function.
26868
26869 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
26870
26871 PR middle-end/43097
26872 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
26873 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
26874
26875 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
26876
26877 PR middle-end/43026
26878 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
26879
26880 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
26881
26882 PR c++/43126
26883 * c-typeck.c (convert_arguments): Print declaration location.
26884 * c-common.c (validate_nargs): Rename as
26885 builtin_function_validate_nargs.
26886 (check_builtin_function_arguments): Update.
26887
26888 2010-02-22 Richard Guenther <rguenther@suse.de>
26889
26890 PR lto/43045
26891 * tree-inline.c (declare_return_variable): Use the type of
26892 the call stmt lhs if available.
26893
26894 2010-02-22 Duncan Sands <baldrick@free.fr>
26895
26896 * passes.c (register_pass): Always consider all pass lists when
26897 ref_pass_instance_number is zero.
26898
26899 2010-02-22 Richard Guenther <rguenther@suse.de>
26900
26901 PR tree-optimization/42749
26902 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
26903 parameter. Do arithmetic in the original type.
26904 (update_accumulator_with_ops): Likewise.
26905 (adjust_accumulator_values): Adjust.
26906
26907 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26908
26909 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
26910 (QI to BLKmode splitter): New splitter.
26911
26912 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
26913
26914 * config/i386/i386.c (initial_ix86_tune_features): Turn on
26915 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
26916
26917 2010-02-22 Richard Guenther <rguenther@suse.de>
26918
26919 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
26920
26921 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
26922
26923 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
26924 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
26925 ($(T)crti.o, $(T)crtn.o): Remove rules.
26926
26927 2010-02-21 Tobias Burnus <burnus@net-b.de>
26928
26929 PR fortran/35259
26930 * doc/invoke.texi (-fassociative-math): Document that this
26931 option is automatically enabled for Fortran.
26932
26933 2010-02-20 David S. Miller <davem@davemloft.net>
26934
26935 * configure.ac: Test if linker and assembler properly support
26936 GOTDATA_OP relocations.
26937 * configure: Rebuild.
26938 * config.in: Likewise.
26939 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
26940 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
26941 (movsi_high_pic): Likewise.
26942 (movdi_lo_sum_pic): Likewise.
26943 (movdi_high_pic): Likewise.
26944 (movsi_pic_gotdata_op): New pattern.
26945 (movdi_pic_gotdata_op): Likewise.
26946 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
26947 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
26948
26949 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
26950
26951 PR target/43067
26952 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
26953 attribute to ssemul.
26954 (xop_mulv2div2di3_high): Ditto.
26955
26956 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26957
26958 PR c++/35669
26959 * c.opt (Wconversion-null): New option.
26960 * doc/invoke.texi (Wconversion-null): Document.
26961
26962 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26963
26964 * common.opt (Wlarger-than-): Add Undocumented.
26965
26966 2010-02-19 Mike Stump <mikestump@comcast.net>
26967
26968 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
26969
26970 2010-02-19 Jason Merrill <jason@redhat.com>
26971
26972 PR target/40332
26973 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
26974 * configure: Likewise.
26975
26976 2010-02-20 Alan Modra <amodra@gmail.com>
26977
26978 PR middle-end/42344
26979 * cgraph.h (cgraph_make_decl_local): Declare.
26980 * cgraph.c (cgraph_make_decl_local): New function.
26981 (cgraph_make_node_local): Use it.
26982 * cgraphunit.c (cgraph_function_versioning): Likewise.
26983 * ipa.c (function_and_variable_visibility): Likewise.
26984
26985 2010-02-19 Jakub Jelinek <jakub@redhat.com>
26986
26987 PR bootstrap/43121
26988 * except.c (sjlj_emit_function_enter): Don't call
26989 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
26990 directly.
26991 * rtl.h (add_reg_br_prob_note): Remove prototype.
26992
26993 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
26994
26995 PR 41779
26996 * c-common.c (conversion_warning): Remove widening conversions
26997 before checking the conversion of integers to reals.
26998
26999 2010-02-19 Mike Stump <mikestump@comcast.net>
27000
27001 PR middle-end/43125
27002 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
27003
27004 PR objc/43061
27005 * cgraphunit.c (process_function_and_variable_attributes): Check
27006 DECL_PRESERVE_P instead of looking up attribute "used".
27007 * ipa-pure-const.c (check_decl): Likewise.
27008 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
27009 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
27010 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
27011 instead of attribute "used".
27012 * config/sol2-c.c (solaris_pragma_init): Likewise.
27013 (solaris_pragma_fini): Likewise.
27014
27015 2010-02-19 Jakub Jelinek <jakub@redhat.com>
27016
27017 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
27018 Use XCNEW instead of xcalloc.
27019 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
27020 XNEW instead of xmalloc.
27021 (get_fields): Use XNEWVEC instead of xmalloc.
27022
27023 PR debug/43084
27024 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
27025 populate vars array.
27026 (create_new_general_access): For debug stmts just reset value.
27027 (get_stmt_accesses): For accesses within debug stmts just record them
27028 using add_access_to_acc_sites instead of preventing the peeling or
27029 counting them as accesses.
27030
27031 PR middle-end/42233
27032 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
27033
27034 2010-02-19 Richard Guenther <rguenther@suse.de>
27035
27036 PR tree-optimization/42916
27037 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
27038 instructions.
27039
27040 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
27041
27042 * configure.ac: Replace all uses of changequote in macro arguments
27043 with proper quoting.
27044
27045 2010-02-19 Jakub Jelinek <jakub@redhat.com>
27046
27047 PR middle-end/42233
27048 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
27049
27050 2010-02-19 Richard Guenther <rguenther@suse.de>
27051
27052 PR tree-optimization/42944
27053 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
27054 test for aliasing with errno.
27055
27056 2010-02-19 Jakub Jelinek <jakub@redhat.com>
27057
27058 PR middle-end/42233
27059 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
27060 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
27061 * dojump.c: Include output.h.
27062 (inv): New inline function.
27063 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
27064 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
27065 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
27066 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
27067 argument, pass it down to other calls.
27068 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
27069 add REG_BR_PROB note to the conditional jump.
27070 * cfgexpand.c (add_reg_br_prob_note): Removed.
27071 (expand_gimple_cond): Don't call it, add the probability
27072 as last argument to jumpif_1/jumpifnot_1.
27073 * Makefile.in (dojump.o): Depend on output.h.
27074 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
27075 callers.
27076 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
27077 * stmt.c (do_jump_if_equal): Likewise.
27078 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
27079 * loop-unswitch.c (compare_and_jump_seq): Likewise.
27080 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
27081 Likewise.
27082 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
27083 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
27084 jumpifnot_1 callers.
27085 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
27086 callers.
27087 (store_expr): Adjust jumpifnot caller.
27088 (store_constructor): Adjust jumpif caller.
27089
27090 PR middle-end/42233
27091 * gimplify.c (gimple_boolify): For __builtin_expect call
27092 gimple_boolify also on its first argument.
27093
27094 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
27095
27096 * configure.ac (gnu-unique-object): Wrap regexps using [] in
27097 changequote block.
27098 (__stack_chk_fail): Ditto. Remove quadrigraphs.
27099 * configure: Regenerated.
27100
27101 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27102
27103 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
27104 lang_hooks.types_compatible_p instead of comptypes.
27105
27106 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
27107
27108 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
27109 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
27110 if __prefer_thumb__ is defined.
27111
27112 2010-02-18 Martin Jambor <mjambor@suse.cz>
27113
27114 PR tree-optimization/43066
27115 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
27116 array with zero-sized element type.
27117
27118 2010-02-18 Jakub Jelinek <jakub@redhat.com>
27119
27120 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
27121 rtx, allocate struct var_loc_node here and return it to the
27122 caller, and only if it is actually needed.
27123 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
27124 move it earlier and return immediately if it returns NULL.
27125
27126 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
27127
27128 * config/sparc/gas.h: New file. Restore
27129 TARGET_ASM_NAMED_SECTION to its ELF default.
27130 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
27131 check !HAVE_GNU_AS.
27132 * config/sparc/sparc.c (sparc_elf_asm_named_section):
27133 Likewise. Add ATTRIBUTE_UNUSED to prototype.
27134 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
27135 after sparc/sysv4.h.
27136
27137 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
27138
27139 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
27140
27141 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
27142
27143 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
27144 patterns from predicated pattern.
27145
27146 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
27147
27148 PR target/43103
27149 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
27150 for insn mnemonic suffix.
27151
27152 2010-02-17 Richard Guenther <rguenther@suse.de>
27153
27154 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
27155 to loop PHI nodes.
27156
27157 2010-02-17 Jakub Jelinek <jakub@redhat.com>
27158
27159 PR debug/42918
27160 * caller-save.c (save_call_clobbered_regs): If BB ends with
27161 a DEBUG_INSN, move any notes in between last real insn and the last
27162 DEBUG_INSN after the last DEBUG_INSN.
27163
27164 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
27165
27166 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
27167 Fix return type. Fix argument type. Explain meaning of return value.
27168
27169 2010-02-16 Richard Guenther <rguenther@suse.de>
27170
27171 PR tree-optimization/41043
27172 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
27173 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
27174 statements ...
27175 (vrp_visit_phi_node): ... but only for loop PHI nodes.
27176
27177 2010-02-16 Ira Rosen <irar@il.ibm.com>
27178
27179 PR tree-optimization/43074
27180 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
27181 * tree-vect-loop.c (vect_analyze_loop_operations): Add
27182 vectorizable cycles in hybrid SLP check.
27183 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
27184
27185 2010-02-16 Richard Guenther <rguenther@suse.de>
27186
27187 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
27188 (true_dependence): If memrefs_conflict_p computes must-alias
27189 trust it. Move TBAA check after offset-based disambiguation.
27190 (canon_true_dependence): Likewise.
27191
27192 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
27193
27194 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
27195 * doc/invoke.texi: Document it.
27196 * var-tracking.c: Include toplev.h and params.h.
27197 (vt_find_locations): Return bool indicating success. Compute
27198 hash sizes unconditionally. Check new parameter, report.
27199 (variable_tracking_main_1): Check vt_find_locations results and
27200 retry. Renamed from...
27201 (variable_tracking_main): ... this. New wrapper to preserve
27202 flag_var_tracking_assignments.
27203 * Makefile.in (var-tracking.o): Adjust dependencies.
27204
27205 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
27206 Jakub Jelinek <jakub@redhat.com>
27207
27208 PR target/42854
27209 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
27210 if weak_import attribute is present.
27211 * config/darwin.c (machopic_select_section): Likewise.
27212
27213 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
27214
27215 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
27216 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
27217 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
27218 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
27219
27220 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
27221 types.
27222
27223 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
27224 Fix argument types.
27225
27226 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
27227 Rewrite text to refer to the names.
27228
27229 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
27230
27231 * config/i386/i386-builtin-types.def
27232 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
27233 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
27234 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
27235 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
27236 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
27237 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
27238 IX86_BUILTIN_VPERMIL2PS256.
27239 (MULTI_ARG_4_DF2_DI_I): Defined.
27240 (MULTI_ARG_4_DF2_DI_I1): Defined.
27241 (MULTI_ARG_4_SF2_SI_I): Defined.
27242 (MULTI_ARG_4_SF2_SI_I1): Defined.
27243 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
27244 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
27245 __builtin_ia32_vpermil2ps256.
27246 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
27247 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
27248 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
27249 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
27250 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
27251 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
27252 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
27253 CODE_FOR_xop_vpermil2v8sf3.
27254 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
27255 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
27256 * config/i386/xopintrin.h (_mm_permute2_pd): New.
27257 (_mm256_permute2_pd): New.
27258 (_mm_permute2_ps): New.
27259 (_mm256_permute2_ps): New.
27260
27261 2010-02-15 Nick Clifton <nickc@redhat.com>
27262
27263 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
27264 boolean parameters. Use emit_jump_insn when emitting a pop
27265 instruction containing a return insn.
27266 (push): Use 'true' rather than '1' as second parameter to F.
27267 (h8300_expand_prologue): Likewise.
27268 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
27269 (h8300_expand_epilogue): Likewise.
27270
27271 2010-02-15 Richard Guenther <rguenther@suse.de>
27272
27273 PR middle-end/43068
27274 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
27275 if that is zero.
27276
27277 2010-02-15 Nick Clifton <nickc@redhat.com>
27278
27279 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
27280 delta.
27281
27282 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
27283
27284 * intl.c (fake_ngettext): New function.
27285 * intl.h (fake_ngettext): Declare.
27286 (ngettext): Define macro.
27287 * collect2.c (notice_translated): New function.
27288 (main): Use notice_translated and ngettext.
27289 * collect2.h (notice_translated): Declare.
27290
27291 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
27292
27293 * reorg.c (delete_computation): Comment fixes.
27294 * caller-save.c (setup_save_areas): Idem.
27295 * sel-sched-dump.c (dump_lv_set): Idem.
27296 * rtl.def: Idem.
27297
27298 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27299
27300 * config/s390/s390.c (s390_sched_init): New function.
27301 (TARGET_SCHED_INIT): Target hook defined.
27302
27303 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
27304 Jack Howarth <howarth@bromo.med.uc.edu>
27305 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
27306
27307 PR target/42982
27308 Partial revert of unintended change in fix for PR41605.
27309 * config/darwin.h: Fix typo.
27310 * config/darwin9.h: Same.
27311
27312 2010-02-11 Jakub Jelinek <jakub@redhat.com>
27313
27314 * c-pch.c (pch_init): Clear v.
27315
27316 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
27317
27318 PR middle-end/42930
27319 * graphite-scop-detection.c (graphite_can_represent_scev): Call
27320 graphite_can_represent_init for MULT_EXPR.
27321
27322 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
27323
27324 PR middle-end/42914
27325 PR middle-end/42530
27326 * graphite-sese-to-poly.c (remove_phi): New.
27327 (translate_scalar_reduction_to_array): Call remove_phi.
27328
27329 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
27330
27331 PR middle-end/42771
27332 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
27333 * graphite-clast-to-gimple.h (gloog): Update declaration.
27334 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
27335 * graphite-poly.h (struct poly_bb): Add missing comments.
27336 (struct scop): Add poly_scop_p field.
27337 (POLY_SCOP_P): New.
27338 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
27339 * graphite.c (graphite_transform_loops): Build the polyhedral
27340 representation for each scop before code generation.
27341 * sese.c (rename_variables_in_operand): Removed.
27342 (rename_variables_in_expr): Return the renamed expression.
27343 (rename_sese_parameters): New.
27344 * sese.h (rename_sese_parameters): Declared.
27345
27346 2010-02-11 Richard Guenther <rguenther@suse.de>
27347
27348 PR tree-optimization/42998
27349 * tree-ssa-pre.c (create_expression_by_pieces): Treat
27350 POINTER_PLUS_EXPR properly.
27351
27352 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
27353 Changpeng Fang <changpeng.fang@amd.com>
27354
27355 PR middle-end/40886
27356 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
27357 the cost of an IV candidate when the IV is used in a test against zero.
27358
27359 * gcc.dg/tree-ssa/ivopts-3.c: New.
27360
27361 2010-02-11 Richard Guenther <rguenther@suse.de>
27362
27363 PR lto/41664
27364 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
27365 pointer-vs-decl case by swapping refs. Handle some cases
27366 of pointer-vs-decl disambiguations more conservatively.
27367 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
27368 to false after expanding.
27369
27370 2010-02-11 Richard Guenther <rguenther@suse.de>
27371
27372 PR driver/43021
27373 * gcc.c (process_command): Handle LTO file@offset case more
27374 appropriately.
27375
27376 2010-02-11 Jakub Jelinek <jakub@redhat.com>
27377
27378 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
27379 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
27380 of DEBUG_INSNs.
27381 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
27382
27383 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
27384 if MEM's mode size isn't DWARF2_ADDR_SIZE.
27385 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
27386 Optimize eq/ne comparisons when both arguments are known to be
27387 zero-extended.
27388 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
27389 Don't mask operands unnecessarily if they are known to be already
27390 zero-extended.
27391
27392 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
27393
27394 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
27395 instead of loop.
27396
27397 2010-02-10 Richard Guenther <rguenther@suse.de>
27398
27399 PR tree-optimization/43017
27400 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
27401 for wrapping signed arithmetic.
27402
27403 2010-02-10 Jakub Jelinek <jakub@redhat.com>
27404
27405 PR debug/43010
27406 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
27407 if no debug info should be emitted for it.
27408
27409 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
27410
27411 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
27412 note when flag_exceptions is set.
27413
27414 2010-02-10 Duncan Sands <baldrick@free.fr>
27415
27416 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
27417
27418 2010-02-10 Richard Guenther <rguenther@suse.de>
27419
27420 PR c/43007
27421 * tree.c (get_unwidened): Handle constants.
27422 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
27423
27424 2010-02-10 Martin Jambor <mjambor@suse.cz>
27425
27426 PR lto/42985
27427 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
27428 check for variable argument counts independently.
27429
27430 2010-02-10 Christian Bruel <christian.bruel@st.com>
27431
27432 PR target/42841
27433 * config/sh/sh.c (find_barrier): Increase length for non delayed
27434 conditional branches.
27435
27436 2010-02-10 Christian Bruel <christian.bruel@st.com>
27437
27438 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
27439
27440 2010-02-10 Jakub Jelinek <jakub@redhat.com>
27441
27442 * builtins.c (set_builtin_user_assembler_name): Also handle
27443 ffs if int is smaller than word.
27444
27445 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
27446
27447 PR middle-end/42973
27448 * ira-conflicts.c (get_dup): Remove.
27449 (process_reg_shuffles): Add new parameter. Use it as an
27450 additional guard for copy generation.
27451 (add_insn_allocno_copies): Rewrite.
27452
27453 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
27454
27455 * common.opt (fsched2-use-traces): Preserved for backward
27456 compatibility.
27457 * doc/invoke.texi: Remove the documentation about option
27458 -fsched2-use-traces.
27459 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
27460 flag_sched2_use_traces.
27461 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
27462 the backward compatibility flag section.
27463
27464 2010-02-09 Richard Guenther <rguenther@suse.de>
27465
27466 PR tree-optimization/43008
27467 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
27468 make HEAP variables initialized from global memory if they
27469 are not known builtin functions.
27470 (find_func_aliases): Adjust.
27471
27472 2010-02-09 Richard Guenther <rguenther@suse.de>
27473
27474 PR tree-optimization/43000
27475 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
27476 arithmetic manually.
27477
27478 2010-02-08 Jakub Jelinek <jakub@redhat.com>
27479
27480 PR tree-optimization/42931
27481 * tree-loop-linear.c (try_interchange_loops): Don't call
27482 double_int_mul if estimated_loop_iterations failed.
27483
27484 2010-02-08 Martin Jambor <mjambor@suse.cz>
27485
27486 PR middle-end/42898
27487 * tree-sra.c (build_accesses_from_assign): Do not mark in
27488 should_scalarize_away_bitmap if stmt has volatile ops.
27489 (sra_modify_assign): Do not process assigns piecemeal if if stmt
27490 has volatile ops.
27491
27492 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
27493
27494 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
27495
27496 2010-02-07 Adam Nemet <adambnmet@gmail.com>
27497
27498 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
27499 before the pattern.
27500
27501 2010-02-07 Andrew Pinski <pinskia@gmail.com>
27502
27503 PR middle-end/42946
27504 * df-core.c (df_finish_pass): Change type of saved_flags to int.
27505
27506 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
27507
27508 PR middle-end/42988
27509 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
27510 to unknown_dependence.
27511 (graphite_legal_transform_dr): Handle the unknown_dependence.
27512 (graphite_carried_dependence_level_k): Same.
27513
27514 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
27515
27516 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
27517
27518 2010-02-07 Richard Guenther <rguenther@suse.de>
27519
27520 PR middle-end/42991
27521 * expr.c (get_inner_reference): Always initialize *pbitsize.
27522
27523 2010-02-07 Richard Guenther <rguenther@suse.de>
27524
27525 PR middle-end/42956
27526 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
27527 new ARRAY_REFs on variable size element or minimal index arrays.
27528 Complete.
27529 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
27530 gimple_fold_indirect_ref.
27531
27532 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
27533
27534 PR target/42957
27535 * arm.c (arm_override_options): Just return if the user has specified
27536 an invalid fpu name.
27537
27538 2010-02-03 Jason Merrill <jason@redhat.com>
27539
27540 PR c++/42870
27541 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
27542 i386_pe_maybe_record_exported_symbol.
27543
27544 2010-02-05 Steve Ellcey <sje@cup.hp.com>
27545
27546 PR target/42924
27547 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27548 (pa_delegitimize_address): New function.
27549
27550 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
27551
27552 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
27553 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
27554
27555 2010-02-05 Richard Guenther <rguenther@suse.de>
27556
27557 PR lto/42762
27558 * lto-streamer-in.c (get_resolution): Deal with references
27559 to undefined functions.
27560
27561 2010-02-05 Richard Guenther <rguenther@suse.de>
27562
27563 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
27564 (fold_const_aggregate_ref): Likewise.
27565 (ccp_fold_stmt): Substitute loads.
27566 (maybe_fold_reference): Verify types before substituting.
27567 Unshare properly.
27568 (fold_gimple_assign): Unshare properly.
27569 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
27570
27571 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
27572
27573 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
27574 for rs6000_gen_cell_microcode.
27575
27576 2010-02-04 Richard Guenther <rguenther@suse.de>
27577
27578 PR rtl-optimization/42952
27579 * dse.c (const_or_frame_p): Remove MEM handling.
27580
27581 2010-02-04 Nick Clifton <nickc@redhat.com>
27582
27583 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
27584 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
27585 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
27586 (mn10300_asm_output_mi_thunk): New function.
27587 (mn10300_can_output_mu_thunk): New function.
27588 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
27589 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
27590 (FUNCTION_ARG): Delete incorrect comment.
27591
27592 2010-02-03 Jason Merrill <jason@redhat.com>
27593
27594 PR c++/40138
27595 * fold-const.c (operand_equal_p): Handle erroneous types.
27596
27597 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
27598
27599 * config/h8300/h8300.md (can_delay): Fix attibute condition.
27600
27601 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
27602
27603 PR rtl-optimization/42941
27604 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
27605 of xmalloc.
27606
27607 2010-02-03 Jason Merrill <jason@redhat.com>
27608
27609 PR c++/35652
27610 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
27611
27612 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
27613
27614 PR debug/42896
27615 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
27616 (cselib_reset_table): Renamed from...
27617 (cselib_reset_table_with_next_value): ... this.
27618 (cselib_get_next_uid): Renamed from...
27619 (cselib_get_next_unknown_value): ... this.
27620 * cselib.c (next_uid): Renamed from...
27621 (next_unknown_value): ... this.
27622 (cselib_clear_table): Adjust.
27623 (cselib_reset_table): Adjust. Renamed from...
27624 (cselib_reset_table_with_next_value): ... this.
27625 (cselib_get_next_uid): Adjust. Renamed from...
27626 (cselib_get_next_unknown_value): ... this.
27627 (get_value_hash): Use hash.
27628 (cselib_hash_rtx): Likewise.
27629 (new_cselib_val): Adjust. Set and dump uid.
27630 (cselib_lookup_mem): Pass next_uid as hash.
27631 (cselib_subst_to_values): Likewise.
27632 (cselib_log_lookup): Dump uid.
27633 (cselib_lookup): Pass next_uid as hash. Adjust.
27634 (cselib_process_insn): Adjust.
27635 (cselib_init): Initialize next_uid.
27636 (cselib_finish): Adjust.
27637 (dump_cselib_table): Likewise.
27638 * dse.c (canon_address): Dump value uid.
27639 * print-rtl.c (print_rtx): Print value uid.
27640 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
27641 (dvuid): New type.
27642 (dv_uid): New function, sort of renamed from...
27643 (dv_htab_hash): ... this, reimplemented in terms of it and...
27644 (dv_uid2hash): ... this. New.
27645 (variable_htab_eq): Drop excess assertions.
27646 (tie_break_pointers): Removed.
27647 (canon_value_cmp): Compare uids.
27648 (variable_post_merge_New_vals): Print uids.
27649 (vt_add_function_parameters): Adjust.
27650 (vt_initialize): Reset table. Adjust.
27651
27652 2010-02-03 Richard Guenther <rguenther@suse.de>
27653
27654 PR tree-optimization/42944
27655 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
27656 (call_may_clobber_ref_p_1): Likewise. Properly handle
27657 malloc and calloc clobbering errno.
27658
27659 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
27660
27661 * doc/invoke.texi: Fix name of sched1 dump.
27662
27663 * opts.c (decode_options): Set flag_tree_switch_conversion
27664 only conditionally on optimize >= 2.
27665
27666 * gcse.c: Assorted comment fixes in pass description.
27667
27668 2010-02-03 Anthony Green <green@moxielogic.com>
27669
27670 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
27671 nop padding in order to maintain alignment of storage location of
27672 target function address.
27673 (moxie_trampoline_init): Store target function address at newly
27674 aligned location.
27675 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
27676 to 32.
27677 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
27678
27679 2010-02-03 Richard Guenther <rguenther@suse.de>
27680
27681 PR middle-end/42927
27682 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
27683
27684 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27685
27686 * config.gcc: Reenable check for obsolete targets.
27687 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
27688 mips-sgi-irix6.[0-4]*.
27689
27690 2010-02-02 Nick Clifton <nickc@redhat.com>
27691
27692 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
27693 constant size of 4 as being the same as 0.
27694 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
27695 can take values in the range 0..4.
27696
27697 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
27698
27699 PR java/41991
27700 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
27701 as _darwin10_Unwind_FindEnclosingFunction().
27702 * libgcc-libsystem.ver: New.
27703
27704 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
27705
27706 PR target/41399
27707 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
27708 implicitly set registers.
27709
27710 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
27711
27712 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
27713 (arm_override_options): Allow automatic selection of the thread
27714 pointer register if thumb2.
27715 (legitimize_pic_address): Improve code sequences for Thumb2.
27716 (arm_call_tls_get_addr): Likewise.
27717 (legitimize_tls_address): Likewise.
27718 * arm.md (pic_load_addr_arm): Delete. Replace with ...
27719 (pic_load_addr_32bit): ... this. New named pattern.
27720 * thumb2.md (pic_load_addr_thumb2): Delete.
27721 (pic_load_dot_plus_four): Delete.
27722 (tls_load_dot_plus_four): New named pattern.
27723
27724 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27725
27726 PR libgomp/29986
27727 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
27728 Document fix for TLS bug.
27729
27730 2010-01-31 Richard Guenther <rguenther@suse.de>
27731
27732 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
27733 conservatively correct.
27734
27735 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27736
27737 PR target/42850
27738 Revert:
27739 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27740
27741 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27742
27743 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27744
27745 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
27746
27747 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
27748
27749 * config.gcc: Adjust order of makefile fragments for mingw targets.
27750
27751 2010-01-31 Richard Guenther <rguenther@suse.de>
27752
27753 PR middle-end/42898
27754 * gimplify.c (gimplify_init_constructor): For volatile LHS
27755 initialize a temporary.
27756
27757 2010-01-31 Matthias Klose <doko@ubuntu.com>
27758
27759 * configure.ac: Fix __stack_chk_fail check for cross builds configured
27760 --with-headers
27761 * configure: Regenerate.
27762
27763 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
27764
27765 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
27766 the same alias set and their sizes different constantness.
27767 (aliasing_component_refs_p): Revert 2009-10-24 change.
27768
27769 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27770
27771 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
27772 unused.
27773
27774 2010-01-29 Richard Guenther <rguenther@suse.de>
27775
27776 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
27777 Assert we successfully updated the call.
27778
27779 2010-01-29 Jakub Jelinek <jakub@redhat.com>
27780
27781 PR rtl-optimization/42889
27782 * df.h (df_set_bb_dirty_nonlr): New prototype.
27783 * df-core.c (df_set_bb_dirty_nonlr): New function.
27784 * df-scan.c (df_insn_rescan): Call it instead of
27785 df_set_bb_dirty for DEBUG_INSNs.
27786
27787 2010-01-29 Richard Guenther <rguenther@suse.de>
27788
27789 PR middle-end/37448
27790 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
27791 quadratic behavior in most cases.
27792
27793 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
27794
27795 PR target/42891
27796 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
27797 in the call to gen_x86_movsicc_0_m1.
27798
27799 2010-01-28 Richard Guenther <rguenther@suse.de>
27800
27801 PR tree-optimization/42871
27802 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
27803
27804 2010-01-28 Richard Guenther <rguenther@suse.de>
27805
27806 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
27807 into call arguments.
27808
27809 2010-01-28 Richard Guenther <rguenther@suse.de>
27810
27811 PR middle-end/42883
27812 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
27813 the forwarder if the destination is an EH landing pad.
27814
27815 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
27816
27817 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
27818 block list passed to gimple_duplicate_sese_tail.
27819 (parallelize_loops): Avoid parallelization when the function
27820 has_nonlocal_label.
27821 Avoid parallelization when the preheader is IRREDUCIBLE.
27822 Try to optimize when estimated_loop_iterations_int is unresolved.
27823 Add the loop's location to the dump file.
27824 * tree-cfg.c (add_phi_args_after_redirect): Remove.
27825 (gimple_duplicate_sese_tail): Remove the check for the latch.
27826 Redirect nexits to the exit block.
27827 Remove handling of the incoming edges to the latch.
27828 Redirect the backedge from the copied latch to the exit bb.
27829
27830 2010-01-28 Michael Matz <matz@suse.de>
27831
27832 PR target/42881
27833 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
27834 Wrap force_reg into a sequence, emit it before user.
27835
27836 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
27837
27838 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
27839 (arm_rev): New.
27840 (arm_legacy_rev): Likewise.
27841 (thumb_legacy_rev): Likewise.
27842
27843 2010-01-27 Jakub Jelinek <jakub@redhat.com>
27844
27845 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
27846 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
27847 on MEM's address failed, try avoid_constant_pool_reference and
27848 recurse if it returned something different.
27849 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
27850 address, try avoid_constant_pool_reference and recurse if it
27851 returned something different.
27852 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
27853 address and avoid_constant_pool_reference returned something
27854 different, don't set have_address.
27855
27856 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
27857
27858 PR debug/42861
27859 * var-tracking.c (val_store): Add modified argument, obey it.
27860 Adjust callers.
27861 (count_uses): Move down logging of main.
27862 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
27863 don't need resolution.
27864 (emit_notes_in_bb): Likewise.
27865
27866 2010-01-27 Richard Guenther <rguenther@suse.de>
27867
27868 PR middle-end/42878
27869 * tree-inline.c (remap_decl): Delay remapping of SSA name
27870 default definitions until we need them.
27871
27872 2010-01-27 Jakub Jelinek <jakub@redhat.com>
27873
27874 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27875 (rs6000_delegitimize_address): New function.
27876
27877 * config/s390/s390.c (s390_delegitimize_address): Call
27878 delegitimize_mem_from_attrs.
27879
27880 PR middle-end/42874
27881 * tree-inline.c (cannot_copy_type_1): Removed.
27882 (copy_forbidden): Don't forbid copying of functions containing
27883 records/unions with variable length fields.
27884
27885 2010-01-27 Christian Bruel <christian.bruel@st.com>
27886
27887 Revert:
27888 PR target/42841
27889 * config/sh/sh.c (find_barrier): Increase length for non delayed
27890 conditional branches.
27891
27892 2010-01-27 Matthias Klose <doko@ubuntu.com>
27893
27894 * configure.ac (gnu-unique-object): Fix ldd version check.
27895 * configure: Regenerate.
27896
27897 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27898
27899 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
27900 HAVE_GNU_AS value.
27901 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
27902 Test for HAVE_GNU_AS value.
27903
27904 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27905
27906 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
27907 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
27908 INT64_TYPE): Define.
27909 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
27910 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
27911 INT_LEAST64_TYPE): Define.
27912 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
27913 UINT_LEAST64_TYPE): Define.
27914 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
27915 INT_FAST64_TYPE): Define.
27916 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
27917 UINT_FAST64_TYPE): Define.
27918 (INTMAX_TYPE, UINTMAX_TYPE): Define.
27919 (INTPTR_TYPE, UINTPTR_TYPE): Define.
27920 (SIG_ATOMIC_TYPE): Define.
27921
27922 2010-01-26 Richard Guenther <rguenther@suse.de>
27923
27924 * df-scan.c (df_scan_set_bb_info): Remove assert.
27925 (df_insn_rescan_debug_internal): Merge asserts.
27926 (df_install_ref): Likewise.
27927 (df_mark_reg): Use bitmap_set_range.
27928 (df_hard_reg_used_p): Remove assert.
27929 (df_hard_reg_used_count): Likewise.
27930
27931 2010-01-26 Richard Guenther <rguenther@suse.de>
27932
27933 PR rtl-optimization/42685
27934 * web.c (web_main): Ignore DEBUG_INSNs.
27935
27936 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
27937
27938 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
27939
27940 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
27941 Fix types of fndecl and arglist parameters.
27942
27943 2010-01-26 Richard Guenther <rguenther@suse.de>
27944
27945 PR middle-end/42806
27946 * tree-eh.c (unsplit_eh): Skip debug insns.
27947
27948 2010-01-26 Richard Guenther <rguenther@suse.de>
27949
27950 PR tree-optimization/42250
27951 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
27952
27953 2010-01-26 Jakub Jelinek <jakub@redhat.com>
27954
27955 PR fortran/42866
27956 * omp-low.c (expand_omp_sections): Only use single_pred if
27957 l2_bb is single_pred_p.
27958
27959 2010-01-25 Christian Bruel <christian.bruel@st.com>
27960
27961 PR target/42841
27962 * config/sh/sh.c (find_barrier): Increase length for non delayed
27963 conditional branches.
27964 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
27965
27966 2010-01-24 David S. Miller <davem@davemloft.net>
27967
27968 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
27969 define if not using GAS.
27970 * config/sparc/sparc.c (sparc_elf_asm_named_section):
27971 Likewise. Delete SECTION_MERGE code, which is only applicable
27972 when using GAS.
27973
27974 2010-01-24 Mark Mitchell <mark@codesourcery.com>
27975
27976 PR c++/42748
27977 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
27978 mangling of va_list in system headers.
27979
27980 2010-01-23 Toon Moene <toon@moene.org>
27981
27982 * tree-predcom.c (combine_chains): Return NULL, not false.
27983
27984 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
27985
27986 * tree-loop-distribution.c (distribute_loop): Fix declaration and
27987 initialization of variable res to agree with return type.
27988
27989 2010-01-22 Steve Ellcey <sje@cup.hp.com>
27990
27991 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
27992 * tree-sra.c: Add include of expr.h.
27993
27994 2010-01-22 Jakub Jelinek <jakub@redhat.com>
27995
27996 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
27997 insert the debug stmt on the single non-EH edge from the stmt.
27998
27999 2010-01-22 Richard Henderson <rth@redhat.com>
28000
28001 PR tree-opt/42833
28002 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
28003 the RHS until after generate_subtree_copies has insertted its
28004 code before the current statement.
28005
28006 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
28007
28008 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
28009
28010 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
28011
28012 2010-01-21 Martin Jambor <mjambor@suse.cz>
28013
28014 PR tree-optimization/42585
28015 * tree-sra.c (struct access): New field grp_total_scalarization.
28016 (dump_access): Dump the new field.
28017 (should_scalarize_away_bitmap): New variable.
28018 (cannot_scalarize_away_bitmap): Likewise.
28019 (sra_initialize): Allocate new bitmaps.
28020 (sra_deinitialize): Free new bitmaps.
28021 (create_access_1): New function.
28022 (create_access): Parts moved to create_access_1.
28023 (type_consists_of_records_p): New function.
28024 (completely_scalarize_record): Likewise.
28025 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
28026 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
28027 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
28028 access.
28029 (analyze_all_variable_accesses): Completely scalarize small eligible
28030 records.
28031
28032 2010-01-21 Martin Jambor <mjambor@suse.cz>
28033
28034 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
28035
28036 2010-01-21 Andrew Haley <aph@redhat.com>
28037
28038 * gcc.c (process_command): Move lang_specific_driver before
28039 setting cc_libexec_prefix.
28040
28041 2010-01-21 Richard Guenther <rguenther@suse.de>
28042
28043 PR middle-end/19988
28044 * fold-const.c (negate_expr_p): Pretend only negative
28045 real constants are easily negatable.
28046
28047 2010-01-20 Janis Johnson <janis187@us.ibm.com>
28048 Jason Merrill <jason@redhat.com>
28049
28050 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
28051 (TYPE_TRANSPARENT_AGGR): this, for union and record.
28052 * calls.c (initialize argument_information): Handle it.
28053 * c-common.c (handle_transparent_union_attribute): Use new name.
28054 * c-decl.c (finish_struct): Ditto.
28055 * c-typeck.c (type_lists_compatible_p): Ditto.
28056 (convert_for_assignment): Use new name and also handle record.
28057 * function.c (aggregate_value_p): Handle it.
28058 (pass_by_reference): Ditto.
28059 (assign_parm_data_types): Ditto.
28060 * print-tree.c (print_node): Ditto.
28061 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
28062 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
28063 * tree.c (first_field): New fn.
28064
28065 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
28066
28067 PR target/42818
28068 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
28069 even when linking statically, for now.
28070
28071 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
28072
28073 PR debug/42715
28074 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
28075 without a cselib val.
28076 (count_uses): Accept MO_VAL_SET with no val on stores.
28077 (add_stores): Likewise.
28078
28079 2010-01-20 Jakub Jelinek <jakub@redhat.com>
28080
28081 * var-tracking.c (check_value_val): Add a compile time assertion.
28082 (dv_is_decl_p): Simplify.
28083 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
28084 gcc_assert if ENABLE_CHECKING.
28085
28086 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
28087
28088 PR debug/42782
28089 * var-tracking.c: Include tree-flow.h.
28090 (mem_dies_at_call): New.
28091 (dataflow_set_preserve_mem_locs): Use it.
28092 (dataflow_set_remove_mem_locs): Likewise.
28093 (dump_var): Renamed from dump_variable. Adjust all callers.
28094 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
28095 * Makefile.in (var-tracking.o): Adjust deps.
28096
28097 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
28098
28099 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
28100
28101 2010-01-20 Richard Guenther <rguenther@suse.de>
28102
28103 PR tree-optimization/42717
28104 * tree-ssa-dce.c (get_live_post_dom): Remove.
28105 (forward_edge_to_pdom): Take an arbitrary edge to copy
28106 degenerate PHI args from.
28107 (remove_dead_stmt): Use the first post-dominator even if it
28108 does not contain live statements as redirection destination.
28109
28110 2010-01-20 Richard Guenther <rguenther@suse.de>
28111
28112 * tree-inline.c (estimate_num_insns): Handle EH builtins.
28113
28114 2010-01-20 Jakub Jelinek <jakub@redhat.com>
28115
28116 * sel-sched.c (create_speculation_check): Remove set but not used
28117 variable twin.
28118 (try_transformation_cache): Remove set but not used variable ds.
28119 (calculate_privileged_insns): Remove set but not used variables
28120 cur_insn and min_spec_insn.
28121 (find_best_expr): Remove set but not used variable avail_n.
28122 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
28123 variable e.
28124 * cgraphunit.c (assemble_thunk): Remove set but not used variable
28125 false_label.
28126 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
28127 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
28128 new_scop_exit_edge.
28129
28130 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
28131
28132 PR bootstrap/42786
28133 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
28134 cpu types. Add support for *-sse3 cpu types.
28135 (x86_64-*-*): Ditto.
28136
28137 2010-01-20 Jakub Jelinek <jakub@redhat.com>
28138
28139 PR middle-end/42803
28140 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
28141 argument, call initializer_constant_valid_p_1 instead of
28142 initializer_constant_valid_p, pass CACHE to it, return NULL
28143 immediately if first call returns NULL.
28144 (initializer_constant_valid_p_1): New function.
28145 (initializer_constant_valid_p): Use it.
28146
28147 2010-01-20 Thomas Quinot <quinot@adacore.com>
28148
28149 * tree.def (PLACEHOLDER_EXPR): Fix comment.
28150
28151 2010-01-20 Jakub Jelinek <jakub@redhat.com>
28152
28153 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
28154 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
28155 (loc_list_from_tree): Don't handle unsigned division. Handle
28156 signed modulo using DW_OP_{over,over,div,mul,minus}.
28157 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
28158 modulo instead of signed.
28159
28160 2010-01-20 DJ Delorie <dj@redhat.com>
28161
28162 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
28163 (Fpa): Pass it
28164 (h8300_emit_stack_adjustment): Propogate it.
28165 (push): Pass it.
28166 (h8300_expand_prologue): Likewise.
28167 (h8300_expand_epilogue): Likewise.
28168
28169 2010-01-19 Michael Matz <matz@suse.de>
28170
28171 PR tree-optimization/41783
28172 * tree-data-ref.c (toplevel): Include flags.h.
28173 (dump_data_dependence_relation): Also dump the inputs if the
28174 result will be unknown.
28175 (split_constant_offset_1): Look through some conversions.
28176 * tree-predcom.c (determine_roots_comp): Restart a new chain if
28177 the offset from last element is too large.
28178 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
28179 (reassociate_to_the_same_stmt): Handle vector registers.
28180 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
28181 (e.g. conversions).
28182 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
28183 wide_prolog_niters argument, emit widening instructions.
28184 (vect_do_peeling_for_alignment): Adjust caller, use widened
28185 variant of the iteration cound.
28186 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
28187
28188 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28189
28190 PR target/38697
28191 * config/arm/neon-testgen.m (emit_automatics): New parameter
28192 features. Adjust for Fixed_return_reg feature.
28193 (test_intrinsic): Call emit_automatics with new feature.
28194 * config/arm/neon.ml: Update copyright years.
28195 (features): New Fixed_return_reg feature.
28196 (ops): Update feature for Vget_low.
28197
28198 2010-01-19 Jakub Jelinek <jakub@redhat.com>
28199
28200 PR tree-optimization/42719
28201 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
28202 stmt uses.
28203
28204 PR debug/42728
28205 * fwprop.c (all_uses_available_at): Return false if def_set dest
28206 is a REG that is used in def_insn.
28207
28208 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
28209
28210 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
28211
28212 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
28213 Add argument names.
28214
28215 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
28216
28217 * target.h (struct gcc_target) <secondary_reload>: Change type
28218 of last argument to secondary_reload_info *.
28219
28220 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
28221
28222 PR target/42774
28223 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
28224 memory references with unaligned offsets. Remove CQImode handling.
28225 (unaligned_memory_operand): Return 1 for memory references with
28226 unaligned offsets. Remove CQImode handling.
28227
28228 2010-01-18 Richard Guenther <rguenther@suse.de>
28229
28230 PR middle-end/39954
28231 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
28232 builtin calls.
28233
28234 2010-01-18 Richard Guenther <rguenther@suse.de>
28235
28236 PR tree-optimization/42781
28237 * tree-ssa-structalias.c (find_what_var_points_to): Skip
28238 restrict processing only if the original variable was artificial.
28239
28240 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
28241
28242 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
28243 find number of popped argument bytes.
28244
28245 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
28246 Fix the text that describes the return value for invalid insns.
28247
28248 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
28249
28250 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
28251 Clarify what 'cost of the -dependence' is. Fix quoting.
28252
28253 * toplev.c (default_get_pch_validity): Rename argument to "sz".
28254 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
28255
28256 2010-01-17 Jakub Jelinek <jakub@redhat.com>
28257
28258 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28259 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
28260
28261 2010-01-17 Richard Guenther <rguenther@suse.de>
28262
28263 PR middle-end/42248
28264 * function.c (split_complex_args): Take a VEC to modify.
28265 (assign_parms_augmented_arg_list): Build a VEC instead of
28266 a chain of PARM_DECLs.
28267 (assign_parms_unsplit_complex): Take a VEC of arguments.
28268 Do not fixup unmodified parms.
28269 (assign_parms): Deal with the VEC.
28270 (gimplify_parameters): Likewise.
28271
28272 2010-01-17 Richard Guenther <rguenther@suse.de>
28273
28274 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
28275 node existence check.
28276 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
28277 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
28278 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
28279 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
28280 (gimple_execute_on_growing_pred): Likewise.
28281
28282 2010-01-17 Richard Guenther <rguenther@suse.de>
28283
28284 PR tree-optimization/42773
28285 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
28286 (compute_antic_aux): Likewise.
28287 (compute_partial_antic_aux): Likewise.
28288
28289 2010-01-17 Jie Zhang <jie.zhang@analog.com>
28290
28291 PR debug/42767
28292 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
28293 and US_TRUNCATE.
28294
28295 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
28296
28297 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
28298 appearance.
28299
28300 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
28301 Fix markup for strict argument.
28302
28303 (TARGET_SCHED_REORDER2): Fix argument types.
28304
28305 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
28306 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
28307
28308 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
28309 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
28310
28311 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
28312 Add argument name.
28313
28314 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
28315 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
28316 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
28317 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
28318 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
28319
28320 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
28321
28322 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
28323
28324 (TARGET_ASM_RELOC_RW_MASK): Add return type.
28325 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
28326
28327 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
28328
28329 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
28330 Use prototype.
28331
28332 (TARGET_ASM_NAMED_SECTION): Fix argument list.
28333
28334 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
28335 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
28336
28337 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
28338
28339 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
28340
28341 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
28342 referring to it. Fix language.
28343
28344 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
28345
28346 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
28347
28348 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
28349
28350 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
28351
28352 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
28353 '@var{stream}. Remove stray 'and'.
28354
28355 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
28356
28357 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
28358
28359 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
28360
28361 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
28362 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
28363
28364 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
28365 Fix description of return value.
28366 Rename argument "sz" to "len."
28367
28368 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
28369 Clarify meaning of 'true' return value.
28370
28371 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
28372
28373 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
28374 rep_mode versus mode_rep.
28375
28376 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
28377
28378 (TARGET_BUILTIN_DECL): Fix name.
28379
28380 (TARGET_COMMUTATIVE_P): Fix type of first argument.
28381
28382 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
28383
28384 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
28385
28386 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
28387
28388 (TARGET_RELAXED_ORDERING): Use @deftypevr.
28389
28390 (TARGET_GET_DRAP_RTX): Note that this is a hook.
28391 Clarify language.
28392
28393 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
28394 Rename argument tm_fn to md_fn.
28395
28396 (TARGET_OPTION_PRINT): Fix argument list.
28397
28398 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
28399
28400 PR target/42664
28401 * config/i386/i386.c (ix86_fixup_binary_operands):
28402 Revert FMA4 fixup of operands.
28403
28404 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28405
28406 PR gcc/42525
28407 * Makefile.in (write_entries_to_file, install-plugin):
28408 Use \012 instead of \n with tr.
28409
28410 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
28411
28412 * configure.ac (HAVE_AS_REF): New C macro.
28413 * configure: Regenerate.
28414 * config.in: Likewise.
28415 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
28416 if HAVE_AS_REF.
28417 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
28418 if HAVE_AS_REF.
28419
28420 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
28421
28422 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
28423
28424 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
28425
28426 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
28427
28428 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
28429
28430 (TARGET_IN_SMALL_DATA_P): Fix argument type.
28431
28432 (TARGET_BINDS_LOCAL_P): Fix argument type.
28433
28434 (TARGET_ASM_FILE_END): Use prototype.
28435
28436 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
28437
28438 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
28439
28440 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
28441
28442 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
28443
28444 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
28445 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
28446
28447 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
28448 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
28449
28450 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
28451 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
28452 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
28453 (TARGET_ADDR_SPACE_CONVERT): Likewise.
28454
28455 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
28456
28457 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
28458
28459 (TARGET_INIT_BUILTINS): Use prototype.
28460
28461 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
28462 Put 'const char *' in braces. Fix parameter types.
28463 (TARGET_INVALID_CONVERSION): Fix parameter types.
28464 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
28465 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
28466
28467 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
28468 Fix argument type.
28469
28470 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
28471
28472 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
28473
28474 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
28475
28476 * doc/tm.texi (TARGET_HELP): Fix return type.
28477
28478 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
28479 in braces. Fix argument types.
28480
28481 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
28482
28483 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
28484
28485 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
28486
28487 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
28488 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
28489
28490 (TARGET_MANGLE_TYPE): Fix argument types.
28491
28492 (TARGET_IRA_COVER_CLASSES): Use prototype.
28493
28494 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
28495
28496 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
28497
28498 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
28499
28500 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
28501
28502 (TARGET_CALLEE_COPIES): Fix argument types.
28503
28504 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
28505
28506 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
28507
28508 (TARGET_FUNCTION_VALUE): Fix argument types.
28509
28510 (TARGET_RETURN_IN_MSB): Fix argument type.
28511
28512 (TARGET_RETURN_IN_MEMORY): Fix argument types.
28513
28514 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
28515
28516 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
28517
28518 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
28519 agree with return type.
28520
28521 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
28522
28523 2010-01-15 Jing Yu <jingyu@google.com>
28524
28525 PR rtl-optimization/42691
28526 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
28527 a pseudo to a constant and are merged, and adjust comments.
28528
28529 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
28530
28531 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
28532
28533 2010-01-15 Richard Guenther <rguenther@suse.de>
28534
28535 PR middle-end/42739
28536 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
28537 labels of computed or non-local gotos to the destination.
28538 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
28539 landing pad label is the first label.
28540
28541 2010-01-15 Richard Guenther <rguenther@suse.de>
28542
28543 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
28544
28545 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
28546
28547 PR target/42747
28548 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
28549 to allow generation of the xssqrtdp instruction on power7.
28550 (sqrtdf2_fpr): Ditto.
28551
28552 2010-01-14 Jakub Jelinek <jakub@redhat.com>
28553
28554 PR middle-end/42674
28555 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
28556 functions with noreturn attribute.
28557
28558 PR c++/42608
28559 * varasm.c (declare_weak): Add weak attribute to decl if it
28560 doesn't have one already.
28561 (assemble_external): Only add decls to weak_decls if they also
28562 have weak attribute.
28563
28564 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
28565
28566 * var-tracking.c (var_reg_delete): Don't delete the association
28567 between REGs and values or one-part variables if the register
28568 isn't clobbered.
28569
28570 2010-01-14 Jakub Jelinek <jakub@redhat.com>
28571
28572 PR debug/42657
28573 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
28574 because its first operand is a non-localized variable.
28575
28576 2010-01-14 Martin Jambor <mjambor@suse.cz>
28577
28578 PR tree-optimization/42706
28579 * tree-sra.c (encountered_recursive_call): New variable.
28580 (encountered_unchangable_recursive_call): Likewise.
28581 (sra_initialize): Initialize both new variables.
28582 (callsite_has_enough_arguments_p): New function.
28583 (scan_function): Call decl and flags check only for IPA-SRA, check
28584 whether there is a recursive call and whether it has enough arguments.
28585 (all_callers_have_enough_arguments_p): New function.
28586 (convert_callers): Look for recursive calls only when
28587 encountered_recursive_call is set.
28588 (ipa_early_sra): Bail out either if
28589 !all_callers_have_enough_arguments_p or
28590 encountered_unchangable_recursive_call.
28591
28592 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28593
28594 * sel-sched.c: Add 2010 to copyright years.
28595 * sel-sched-ir.c: Likewise.
28596 * sel-sched-ir.h: Likewise.
28597
28598 2010-01-14 Martin Jambor <mjambor@suse.cz>
28599
28600 PR tree-optimization/42714
28601 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
28602 constructors specially.
28603
28604 2010-01-14 Andi Kleen <ak@linux.intel.com>
28605
28606 * config/i386/drivers-i386.c (detect_caches_intel):
28607 Add l2sizekb parameter and fill in.
28608 (host_detect_local_cpu): Add l2sizekb, fill in.
28609 Add Atom small cache heuristic.
28610
28611 2010-01-14 Andi Kleen <ak@linux.intel.com>
28612
28613 * config/i386/drivers-i386.c (detect_caches_cpuid4):
28614 Add level3 parameter and fill in.
28615 (detect_caches_intel): Handle level3 cache.
28616
28617 2010-01-14 Andi Kleen <ak@linux.intel.com>
28618
28619 * config/i386/drivers-i386.c (host_detect_local_cpu):
28620 Fix core duo detection.
28621
28622 2010-01-14 Andi Kleen <ak@linux.intel.com>
28623
28624 * config/i386/drivers-i386.c (host_detect_local_cpu):
28625 Fix Atom detection.
28626
28627 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28628
28629 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
28630 (rs6000_variable_issue_1): this. Use...
28631 (rs6000_variable_issue): here. Reimplement. Print debug info.
28632
28633 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28634
28635 * sel-sched-ir.c (sel_restore_other_notes): Rename to
28636 sel_restore_notes. Update all callers. Call reemit_notes
28637 for all insns.
28638
28639 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
28640
28641 PR rtl-optimization/42246
28642 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
28643 loops.
28644
28645 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
28646
28647 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
28648 all successors is the same as number of successors in current region.
28649
28650 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28651
28652 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
28653 to rename is not separable. Otherwise check that its LHS is not NULL.
28654
28655 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28656
28657 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
28658
28659 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28660
28661 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
28662 available registers when failed to discover LHS register class.
28663 Fix indentation. Update comment.
28664
28665 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
28666 Alexander Monakov <amonakov@ispras.ru>
28667
28668 PR rtl-optimization/42389
28669 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
28670 to can_issue_more.
28671 (advance_state_on_fence): Likewise.
28672 (sel_target_adjust_priority): Print debug output only when
28673 sched_verbose >= 4, not 2.
28674 (get_expr_cost): Do not issue all unique insns on the next cycle.
28675 (fill_insns): Initialize can_issue_more from the value saved
28676 with the fence.
28677 * sel-sched-ir.c (flist_add): New parameter issue_more.
28678 Init FENCE_ISSUE_MORE with it.
28679 (merge_fences): Likewise.
28680 (init_fences): Update call to flist_add.
28681 (add_to_fences, add_clean_fence_to_fences)
28682 (add_dirty_fence_to_fences): Likewise.
28683 (move_fence_to_fences): Update call to merge_fences.
28684 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
28685 sched groups.
28686 * sel-sched-ir.h (struct _fence): New field issue_more.
28687 (FENCE_ISSUE_MORE): New accessor macro.
28688
28689 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
28690
28691 PR rtl-optimization/42388
28692 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
28693 that have no predecessors nor successors. Do not call move_bb_info
28694 for empty blocks outside of current region.
28695
28696 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28697
28698 PR rtl-optimization/42294
28699 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
28700 * sel-sched.c (move_exprs_to_boundary): Transitively add all
28701 originators' originators.
28702
28703 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
28704
28705 PR rtl-optimization/39453
28706 PR rtl-optimization/42246
28707 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
28708 for pipelining_p.
28709 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
28710
28711 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
28712 Alexander Monakov <amonakov@ispras.ru>
28713
28714 PR middle-end/42245
28715 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
28716 (maybe_tidy_empty_bb): ... here. Make static. Add new
28717 argument. Update all callers.
28718 (tidy_control_flow): ... and here. Recompute topological order
28719 of basic blocks in region if necessary.
28720 (sel_redirect_edge_and_branch): Change return type. Return true
28721 if topological order might have been invalidated.
28722 (purge_empty_blocks): Export and move from...
28723 * sel-sched.c (purge_empty_blocks): ... here.
28724 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
28725 (maybe_tidy_empty_bb): Delete prototype.
28726 (purge_empty_blocks): Declare.
28727
28728 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
28729
28730 PR rtl-optimization/42249
28731 * sel-sched.c (try_replace_dest_reg): When chosen register
28732 and original register is the same, do not bail out early, but
28733 still check all original insns for validity of replacing destination
28734 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
28735 in this case.
28736
28737 2010-01-14 Jakub Jelinek <jakub@redhat.com>
28738
28739 PR c/42721
28740 Port from no-undefined-overflow branch:
28741 2009-03-09 Richard Guenther <rguenther@suse.de>
28742
28743 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
28744
28745 2010-01-14 Richard Guenther <rguenther@suse.de>
28746
28747 PR lto/42665
28748 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
28749
28750 2010-01-14 Ira Rosen <irar@il.ibm.com>
28751
28752 PR tree-optimization/42709
28753 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
28754 as scalar type in creation of constant vector operand.
28755
28756 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28757
28758 PR testsuite/42414
28759 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
28760 (check-parallel-%): Match `testsuite' directory component only
28761 at the end.
28762
28763 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
28764
28765 PR translation/39521
28766 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
28767 strings with _().
28768
28769 2010-01-13 Richard Guenther <rguenther@suse.de>
28770
28771 PR tree-optimization/42730
28772 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
28773 offset zero.
28774
28775 2010-01-13 Steve Ellcey <sje@cup.hp.com>
28776
28777 PR target/pr42542
28778 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
28779 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
28780 them signed.
28781
28782 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
28783
28784 * config/bfin/libgcc-bfin.ver: Regenerate based on current
28785 libgcc-std.ver. Add entries for ___smulsi3_highpart and
28786 ___umulsi3_highpart.
28787
28788 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
28789 rather than schedule_insns if the pass is enabled.
28790
28791 2010-01-13 Martin Jambor <mjambor@suse.cz>
28792
28793 PR tree-optimization/42704
28794 * tree-sra.c (sra_modify_assign): Do not delete assignments to
28795 SSA_NAMEs.
28796
28797 2010-01-13 Martin Jambor <mjambor@suse.cz>
28798
28799 PR tree-optimization/42703
28800 * tree-sra.c (analyze_access_subtree): Check that we can build a
28801 reference to the original data within the aggregate.
28802
28803 2010-01-13 Richard Guenther <rguenther@suse.de>
28804
28805 PR tree-optimization/42705
28806 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
28807
28808 2010-01-13 Richard Guenther <rguenther@suse.de>
28809
28810 PR middle-end/42716
28811 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
28812
28813 2010-01-13 Jakub Jelinek <jakub@redhat.com>
28814
28815 PR debug/41371
28816 * var-tracking.c (values_to_unmark): New variable.
28817 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
28818 values_to_unmark vector. Moved body to...
28819 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
28820 instead queue it into values_to_unmark vector.
28821 (vt_find_locations): Free values_to_unmark vector.
28822
28823 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
28824
28825 * config/s390/s390.c (override_options): Set
28826 default of max-pending-list-length to 256
28827
28828 2010-01-13 Richard Guenther <rguenther@suse.de>
28829
28830 PR lto/42678
28831 * tree-pass.h (PROP_gimple_lcx): New.
28832 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
28833 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
28834 before the final cleanup_eh.
28835 (dump_properties): Dump PROP_gimple_lcx.
28836 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
28837 (tree_lower_complex_O0): Remove.
28838 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
28839 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
28840 tree_lower_complex, schedule TODO_update_ssa.
28841 * lto-streamer-out.c (output_function): Stream the functions
28842 properties.
28843 * lto-streamer-in.c (input_function): Likewise.
28844 (lto_read_body): Do not override them here.
28845
28846 2010-01-12 Joseph Myers <joseph@codesourcery.com>
28847
28848 PR c/42708
28849 * c-typeck.c (build_c_cast): Fold value cast to union type before
28850 wrapping it in a CONSTRUCTOR.
28851
28852 2010-01-12 Jakub Jelinek <jakub@redhat.com>
28853
28854 PR rtl-optimization/42699
28855 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
28856 involved.
28857
28858 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28859
28860 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28861 SUBTARGET_WARN_UNUSED_SPEC): Move ...
28862 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28863 SUBTARGET_WARN_UNUSED_SPEC): ... here
28864 * config/mips/iris5.h (LIBGCC_SPEC): Define.
28865
28866 2010-01-12 Julian Brown <julian@codesourcery.com>
28867
28868 * config/arm/neon-schedgen.ml (Utils): Don't try to
28869 open missing module.
28870 (find_with_result): New.
28871
28872 2010-01-12 Jakub Jelinek <jakub@redhat.com>
28873
28874 PR debug/42662
28875 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
28876 sharing when canonicalizing ({lt,ge}u (plus a b) b).
28877
28878 PR tree-optimization/42645
28879 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
28880 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
28881 decl_map, set processing_debug_stmt to -1 and return name without
28882 any remapping.
28883
28884 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
28885
28886 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
28887 binutils version, and reword target configuration description.
28888
28889 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
28890
28891 * config/avr/avr.h (LINKER_NAME): Remove.
28892
28893 2010-01-11 Janis Johnson <janis187@us.ibm.com>
28894
28895 PR target/42416
28896 * config/rs6000/rs6000.c (rs6000_override_options): On targets
28897 that support VSX, warn for -mno-altivec if vsx is not disabled,
28898 and disable vsx.
28899
28900 2010-01-11 Joseph Myers <joseph@codesourcery.com>
28901 Shujing Zhao <pearly.zhao@oracle.com>
28902
28903 PR translation/42469
28904 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
28905 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
28906 character between option name and help text.
28907 * c.opt (imultilib): Likewise.
28908
28909 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
28910
28911 * lto-streamer-out.c (output_unreferenced_globals): Output static
28912 variables.
28913
28914 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
28915
28916 PR rtl-optimization/42621
28917 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
28918 optimizing for size.
28919 (duplicate_computed_gotos): Remove now-redundant check.
28920
28921 2010-01-10 Steve Ellcey <sje@cup.hp.com>
28922
28923 PR target/37454
28924 * configure.ac: Save and restore LDFLAGS and LIBS
28925 * configure: Regenerate.
28926
28927 2010-01-10 Richard Guenther <rguenther@suse.de>
28928
28929 PR middle-end/42667
28930 * builtins.c (fold_builtin_strlen): Add type argument and
28931 convert the resulting length to it.
28932 (fold_builtin_1): Adjust.
28933
28934 2010-01-09 Jakub Jelinek <jakub@redhat.com>
28935
28936 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
28937 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
28938 1 insn.
28939 (num_insns_constant_wide): Adjust for that change.
28940
28941 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28942
28943 PR debug/42631
28944 * web.c (union_defs): Add used argument, to combine uses of
28945 uninitialized regs.
28946 (entry_register): Adjust type and tests of used argument.
28947 (web_main): Widen used for new use. Pass it to union_defs.
28948 * df.h (union_defs): Adjust prototype.
28949
28950 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28951
28952 PR debug/42630
28953 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
28954 uses in new incoming argument. Free body.
28955 (reset_debug_uses_in_loop): New.
28956 (analyze_insn_to_expand_var): Call the latter if the former found
28957 anything. Fix whitespace. Reject invalid dest overlaps before
28958 going through all insns in the loop.
28959
28960 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28961
28962 PR debug/42629
28963 * haifa-sched.c (dying_use_p): Debug insns don't count.
28964
28965 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28966
28967 PR middle-end/42363
28968 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
28969 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
28970 (verify_gimple_call): Reject LHS in noreturn calls.
28971
28972 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28973
28974 PR debug/42604
28975 PR debug/42395
28976 * tree-vect-loop-manip.c (adjust_info): New type.
28977 (adjust_vec): New pointer to vector.
28978 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
28979 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
28980 (slpeel_update_phis_for_duplicate_loop): Use them.
28981 (slpeel_update_phi_nodes_for_guard1): Likewise.
28982 (slpeel_update_phi_nodes_for_guard2): Likewise.
28983 (slpeel_tree_peel_loop_to_edge): Likewise.
28984 (vect_update_ivs_after_vectorizer): Likewise.
28985
28986 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28987
28988 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
28989 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
28990
28991 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
28992
28993 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
28994 bogus uninitialized warning.
28995
28996 2010-01-09 Richard Guenther <rguenther@suse.de>
28997
28998 PR middle-end/42512
28999 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
29000 the evolution is compatible with the initial condition.
29001
29002 2010-01-09 Jakub Jelinek <jakub@redhat.com>
29003
29004 * gcc.c (process_command): Update copyright notice dates.
29005 * gcov.c (print_version): Likewise.
29006 * gcov-dump.c (print_version): Likewise.
29007 * mips-tfile.c (main): Likewise.
29008 * mips-tdump.c (main): Likewise.
29009
29010 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
29011
29012 PR target/41885
29013 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
29014 (rotlhi3): Delete.
29015 (rotlhi3_8): Delete.
29016 (rotlsi3): Delete.
29017 (rotlsi3_8): Delete.
29018 (rotlsi3_16): Delete.
29019 (rotlsi3_24): Delete.
29020 (rotl<mode>3): New.
29021 (*rotw<mode>3): New.
29022 (*rotb<mode>3): New.
29023 * config/avr/avr.c (avr_rotate_bytes): New function.
29024 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
29025
29026 2010-01-08 Steve Ellcey <sje@cup.hp.com>
29027
29028 PR target/37454
29029 * configure.ac: Modify -rdynamic check.
29030 * configure: Regenerate.
29031
29032 2010-01-08 DJ Delorie <dj@redhat.com>
29033
29034 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
29035 register popping order.
29036
29037 2010-01-08 Richard Guenther <rguenther@suse.de>
29038
29039 PR lto/42528
29040 * c.opt (fsigned-char): Also let LTO handle this option.
29041 (funsigned-char): Likewise.
29042
29043 2010-01-07 Richard Guenther <rguenther@suse.de>
29044
29045 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
29046 (gimple_op): Likewise.
29047 (gimple_op_ptr): Likewise.
29048 (gimple_assign_set_lhs): Remove gcc_assert.
29049 (gimple_assign_set_rhs1): Likewise.
29050 (gimple_assign_set_rhs2): Likewise.
29051 (gimple_call_set_lhs): Likewise.
29052 (gimple_call_set_fn): Likewise.
29053 (gimple_call_set_fndecl): Likewise.
29054 (gimple_call_fndecl): Likewise.
29055 (gimple_call_return_type): Likewise.
29056 (gimple_call_set_chain): Likewise.
29057 (gimple_call_num_args): Likewise.
29058 (gimple_call_set_arg): Likewise.
29059 (gimple_cond_set_code): Likewise.
29060 (gimple_cond_set_lhs): Likewise.
29061 (gimple_cond_set_rhs): Likewise.
29062 (gimple_cond_set_true_label): Likewise.
29063 (gimple_cond_set_false_label): Likewise.
29064 (gimple_label_set_label): Likewise.
29065 (gimple_goto_set_dest): Likewise.
29066 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
29067 (gimple_debug_bind_get_value): Likewise.
29068 (gimple_debug_bind_get_value_ptr): Likewise.
29069 (gimple_debug_bind_set_var): Likewise.
29070 (gimple_debug_bind_set_value): Likewise.
29071 (gimple_debug_bind_reset_value): Likewise.
29072 (gimple_debug_bind_has_value_p): Likewise.
29073 (gimple_return_retval_ptr): Remove gcc_assert.
29074 (gimple_return_retval): Likewise.
29075 (gimple_return_set_retval): Likewise.
29076 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
29077 (safe_referenced_var_iterator): Remove.
29078 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
29079 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
29080 (fill_referenced_var_vec): Remove.
29081 (first_readonly_imm_use): Remove redundant gcc_assert.
29082 (phi_arg_index_from_use): Combine gcc_asserts.
29083 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
29084 (first_imm_use_stmt): Remove redundant gcc_assert.
29085 * tree-cfg.c (verify_gimple_call): Verify function and chain
29086 operands. Verify arguments.
29087 (verify_types_in_gimple_stmt): Verify condition code and labels.
29088
29089 2010-01-07 Richard Guenther <rguenther@suse.de>
29090
29091 PR tree-optimization/42641
29092 * sese.c (rename_map_elt_info): Use the SSA name version, do
29093 not hash pointers.
29094
29095 2010-01-07 Jakub Jelinek <jakub@redhat.com>
29096
29097 PR tree-optimization/42625
29098 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
29099 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
29100
29101 2010-01-07 Duncan Sands <baldrick@free.fr>
29102
29103 * Makefile.in (PLUGIN_HEADERS): Add version.h.
29104
29105 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
29106
29107 PR target/42511
29108 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
29109 note itself is not function_invariant_p.
29110
29111 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
29112
29113 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
29114 Do not add the DF_NOTE problem.
29115 * store-motion.c (execute_rtl_store_motion): Likewise.
29116
29117 2010-01-07 Martin Jambor <mjambor@suse.cz>
29118
29119 PR tree-optimization/42157
29120 * tree-sra.c (compare_access_positions): Stabilize sort if both
29121 accesses have integer types, return zero immediately if they are the
29122 same.
29123
29124 2010-01-06 Richard Henderson <rth@redhat.com>
29125
29126 PR middle-end/41883
29127 * haifa-sched.c (add_to_note_list): Merge into ...
29128 (concat_note_lists): ... here, and ...
29129 (unlink_other_notes, rm_other_notes): Merge into...
29130 (remove_notes): ... here. Create REG_SAVE_NOTEs for
29131 NOTE_INSN_EPILOGUE_BEG.
29132
29133 2010-01-06 Richard Guenther <rguenther@suse.de>
29134
29135 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
29136 not inline regular functions into always-inline functions.
29137
29138 2010-01-06 Nick Clifton <nickc@redhat.com>
29139
29140 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
29141 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
29142 used together.
29143 (OVERRIDE_OPTIONS): Delete.
29144 (OPTIMIZATION_OPTIONS): Define.
29145 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
29146 * config/rx/rx.c (rx_handle_option): Issue an error message if
29147 -mcpu=rx200 and -fpu are used together.
29148 (rx_set_optimization_options): New function. Issue an error
29149 message if an optimization attribute attempts to reset the FPU/
29150 math optimization pairing.
29151 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
29152 * config/rx/rx.opt: Set the default to 32-bit doubles.
29153 * config/rx/t-rx: Add multilibs for -nofpu option.
29154 * doc/invoke.texi: Update documentation of RX options.
29155
29156 2010-01-06 Richard Guenther <rguenther@suse.de>
29157
29158 * tree-ssa-pre.c (name_to_id): New global.
29159 (alloc_expression_id): Simplify SSA name handling.
29160 (lookup_expression_id): Likewise.
29161 (init_pre): Zero name_to_id.
29162 (fini_pre): Free it.
29163
29164 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
29165
29166 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
29167
29168 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
29169
29170 PR target/42542
29171 * config/i386/sse.md (smaxv2di3): New.
29172 (umaxv2di3): Likewise.
29173 (sminv2di3): Likewise.
29174 (uminv2di3): Likewise.
29175
29176 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
29177
29178 PR target/42564
29179 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
29180 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
29181 (legitimize_tls_address): Likewise.
29182 (sparc_tls_referenced_p): Likewise.
29183 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
29184 and adjust calls to legitimize_pic_address.
29185 (legitimate_constant_p) Use sparc_tls_referenced_p.
29186 (legitimate_pic_operand_p): Likewise.
29187 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
29188 (sparc_tls_symbol_ref_1): Delete.
29189 (sparc_tls_referenced_p): Make static, recognize specific patterns.
29190 (legitimize_tls_address): Make static, handle CONST patterns.
29191 (legitimize_pic_address): Make static, remove unused parameter and
29192 adjust recursive calls.
29193 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
29194 and adjust call to legitimize_pic_address.
29195 (sparc_output_mi_thunk): Likewise.
29196
29197 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
29198 H.J. Lu <hongjiu.lu@intel.com>
29199
29200 PR target/42542
29201 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
29202 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
29203 operands to make them signed.
29204
29205 Revert:
29206 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
29207
29208 PR target/42542
29209 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
29210 GTU to GT for V4SI and V2DI.
29211
29212 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
29213 (umin<mode>3): Removed.
29214 (uminv8hi3): New.
29215 (uminv4si3): Likewise.
29216
29217 2010-01-05 Martin Jambor <mjambor@suse.cz>
29218
29219 PR tree-optimization/42462
29220 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
29221 current_function_decl to helper functions and macros.
29222
29223 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29224
29225 PR bootstrap/41771
29226 * flags.h: Don't include real.h.
29227 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
29228 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
29229 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
29230 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
29231 * dominance.c: Update copyright.
29232 * gimple.c (walk_gimple_op): Remove inline.
29233 * tree-ssa-reassoc.c: Include real.h.
29234 * Makefile.in (FLAGS_H): Remove $(REAL_H).
29235 (tree-ssa-reassoc.o): Depend on $(REAL_H).
29236
29237 2010-01-05 Nick Clifton <nickc@redhat.com>
29238
29239 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
29240 register to push into the stack frame when the accumulator has to
29241 be saved during interrupts.
29242
29243 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
29244
29245 * doc/invoke.texi: Remove the documentation about option
29246 -Wunreachable-code.
29247 * common.opt (Wunreachable-code): Preserved for backward
29248 compatibility.
29249 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
29250 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
29251 the backward compatibility flag section.
29252
29253 2010-01-05 Richard Guenther <rguenther@suse.de>
29254
29255 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
29256
29257 2010-01-05 Jakub Jelinek <jakub@redhat.com>
29258
29259 PR other/42611
29260 * cfgexpand.c (expand_one_var): Diagnose too large variables.
29261
29262 PR tree-optimization/42508
29263 * tree-sra.c (convert_callers): Check for recursive call
29264 by comparing cgraph nodes instead of decls.
29265 (modify_function): Call ipa_modify_formal_parameters also
29266 on all same_body aliases.
29267
29268 * cgraphunit.c (cgraph_materialize_all_clones): Compare
29269 cgraph nodes when checking for same_body aliases.
29270
29271 2010-01-05 Richard Guenther <rguenther@suse.de>
29272
29273 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
29274 allocation and lookup.
29275 (get_or_alloc_expr_for_constant): Likewise.
29276 (phi_translate): Sink allocation.
29277
29278 2010-01-04 Richard Guenther <rguenther@suse.de>
29279
29280 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
29281 a new entry only if needed.
29282 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
29283 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
29284 hashtable lookup.
29285 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
29286 the result array.
29287 (phi_translate): Handle CONSTANTs early.
29288
29289 2010-01-04 Martin Jambor <mjambor@suse.cz>
29290
29291 PR tree-optimization/42398
29292 * tree-sra.c (struct access): Removed flag grp_different_types.
29293 (dump_access): Do not dump the removed flag.
29294 (sort_and_splice_var_accesses): Do not set the removed flag.
29295 (sra_modify_expr): Check for type compatibility directly.
29296
29297 2010-01-04 Martin Jambor <mjambor@suse.cz>
29298
29299 PR tree-optimization/42366
29300 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
29301 edges with variable number of parameters.
29302 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
29303 flag instead of asserting it.
29304 (ipa_read_node_info): Read uses_analysis_done flag.
29305
29306 2010-01-04 Richard Guenther <rguenther@suse.de>
29307
29308 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
29309 iterative_hash_* as intended.
29310 (vn_reference_compute_hash): Likewise. Simplify hashing
29311 SSA names.
29312 (vn_reference_lookup_2): Likewise.
29313 (vn_nary_op_compute_hash): Likewise.
29314 (vn_phi_compute_hash): Likewise.
29315 (expressions_equal_p): Remove strange code.
29316 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
29317 (pre_expr_hash): Likewise. Simplify hashing SSA names.
29318 (bitmap_insert_into_set_1): Take value-id as parameter.
29319 (add_to_value): Pass it.
29320 (bitmap_insert_into_set): Likewise.
29321 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
29322
29323 2010-01-04 Jakub Jelinek <jakub@redhat.com>
29324
29325 PR driver/42442
29326 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
29327 (do_self_spec): For switches with SWITCH_IGNORE set set also
29328 SWITCH_IGNORE_PERMANENTLY.
29329 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
29330 of SWITCH_IGNORE.
29331
29332 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
29333
29334 * lto-streamer-out.c (output_unreferenced_globals): Output the full
29335 tree of an unreferenced global var.
29336
29337 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
29338
29339 PR target/42542
29340 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
29341 GTU to GT for V4SI and V2DI.
29342
29343 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
29344 (umin<mode>3): Removed.
29345 (uminv8hi3): New.
29346 (uminv4si3): Likewise.
29347
29348 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
29349
29350 PR lto/42581
29351 * collect2.c (main): Turn on trace in collect2 if -v is passed
29352 to gcc with LTO.
29353
29354 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
29355
29356 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
29357 description of expression operand.
29358
29359 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
29360
29361 * configure.ac: Add install-html to target_list for Make-hooks.
29362 * configure: Regenerate.
29363 * fortran/Make-lang.in (F95_HTMLFILES): New.
29364 (fortran.html): Use it.
29365 (fortran.install-html): New.
29366 * Makefile.in (install-html): Add lang.install-html.
29367 * java/Make-lang.in (JAVA_HTMLFILES): New.
29368 (java.html): Use it.
29369 (java.install-html): New.
29370 * objc/Make-lang.in (objc.install-html): New.
29371 * objcp/Make-lang.in (obj-c++.install-html): New.
29372 * cp/Make-lang.in (c++.install-html): New.
29373 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
29374 * lto/Make-lang.in (lto.install-html): New.
29375
29376 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
29377
29378 PR lto/42520
29379 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
29380
29381 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
29382
29383 PR rtl-optimization/41862
29384 * store-motion.c (store_killed_in_insn, compute_store_table,
29385 remove_reachable_equiv_notes, replace_store_insn,
29386 build_store_vectors): Ignore all DEBUG_INSNs.
29387
29388 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
29389
29390 PR lto/41564
29391 * common.opt: Add dumpdir.
29392
29393 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
29394 isn't specified.
29395 (option_map): Add --dumpdir.
29396
29397 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
29398
29399 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
29400
29401 * opts.c (decode_options): Try dump_dir_name first if
29402 dump_base_name isn't an absolute path.
29403 (common_handle_option): Handle OPT_dumpdir.
29404
29405 * toplev.c (dump_dir_name): New.
29406 (print_switch_values): Also ignore -dumpdir.
29407
29408 * toplev.h (dump_dir_name): New.
29409
29410 2010-01-03 Richard Guenther <rguenther@suse.de>
29411
29412 PR tree-optimization/42589
29413 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
29414 double-word expansion of bswap32.
29415
29416 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
29417
29418 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
29419 with BLOCK_FOR_INSN.
29420 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
29421 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
29422 noce_process_if_block): Likewise.
29423 * gcse.c (compute_local_properties, insert_expr_in_table,
29424 insert_set_in_table, canon_list_insert, find_avail_set,
29425 pre_insert_copy_insn): Likewise.
29426
29427 * basic-block.h (BLOCK_NUM): Move from here...
29428 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
29429
29430 2010-01-03 Richard Guenther <rguenther@suse.de>
29431
29432 PR tree-optimization/42438
29433 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
29434 contains_may_not_return_call flag.
29435 (BB_MAY_NOTRETURN): New.
29436 (valid_in_sets): Trapping nary operations are not valid
29437 in blocks that may not return.
29438 (insert_into_preds_of_block): Remove check for trapping expressions.
29439 (compute_avail): Compute also BB_MAY_NOTRETURN.
29440
29441 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
29442
29443 * doc/invoke.texi: Add 2010 to copyright years.
29444
29445 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
29446
29447 * config/sparc/sparc.c: Fix formatting nits.
29448
29449 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
29450 Alexander Monakov <amonakov@ispras.ru>
29451
29452 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
29453
29454 2010-01-02 Richard Guenther <rguenther@suse.de>
29455
29456 PR middle-end/42577
29457 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
29458 (simplify_switch_using_ranges): Mark to be removed edges
29459 as non-executable.
29460
29461 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29462
29463 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
29464
29465 * collect2.c (scan_libraries): Add missing argument in call to
29466 scan_prog_file.
29467
29468 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
29469
29470 PR target/42448
29471 * config/alpha/predicates.md (aligned_memory_operand): Return false
29472 for CQImode.
29473 (unaligned_memory_operand): Return true for CQImode.
29474 * config/alpha/alpha.c (get_aligned_mem): Assert that location
29475 doesn not cross aligned SImode word boundary.
29476
29477 2010-01-02 Anatoly Sokolov <aesok@post.ru>
29478
29479 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
29480 Remove.
29481 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
29482 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
29483
29484 2010-01-02 Richard Guenther <rguenther@suse.de>
29485
29486 PR lto/41597
29487 * toplev.c (compile_file): Emit LTO marker properly. Change
29488 it to __gnu_lto_v1.
29489 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
29490
29491 2010-01-01 Richard Guenther <rguenther@suse.de>
29492
29493 PR debug/42455
29494 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
29495
29496 2010-01-01 Richard Guenther <rguenther@suse.de>
29497
29498 PR c/42570
29499 * c-decl.c (grokdeclarator): For zero-size arrays force
29500 structural equality checks as layout_type does.
29501
29502 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
29503
29504 * builtins.c: Update copyright to 2010.
29505
29506 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
29507
29508 PR lto/42531
29509 * lto-streamer-out.c (produce_asm): Revert the last change.
29510 (copy_function): Likewise.
29511
29512 * lto-streamer.c (lto_get_section_name): Skip any leading
29513 asterisk in name.
29514
29515 2010-01-01 Richard Guenther <rguenther@suse.de>
29516
29517 PR middle-end/42559
29518 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
29519 for LABEL_DECLs.
29520
29521 \f
29522 Copyright (C) 2010 Free Software Foundation, Inc.
29523
29524 Copying and distribution of this file, with or without modification,
29525 are permitted in any medium without royalty provided the copyright
29526 notice and this notice are preserved.