]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
cgraph.c (same_body_alias_1): Break out of
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
6744a6ab
JH
12009-11-28 Jan Hubicka <jh@suse.cz>
2
3 * cgraph.c (same_body_alias_1): Break out of
4 (same_body_alias): ... here; remove comdat check; it is handled
5 in cp already.
6 (cgraph_add_thunk): New.
7 (dump_cgraph_node): Dump aliases and thunks.
8 * cgraph.h (cgraph_thunk_info): New structure.
9 (struct cgraph_node): Add thunk info.
10 (cgraph_add_thunk): New.
11 * cgraphunit.c (cgraph_emit_thunks): Remove.
12 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
13 (assemble_thunk): New function.
14 (cgraph_expand_function): Handle thunks.
15 (thunk_adjust): New.
16 (init_lowered_empty_function): New.
17 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
18 * lto-cgraph.c (lto_output_node): Stream thunk info.
19 (input_node): Likewise.
20 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
21 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
22 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
23 * i386.c (x86_output_mi_thunk): Make output prettier.
24
f1c19648
RG
252009-11-28 Richard Guenther <rguenther@suse.de>
26
27 PR tree-optimization/42183
28 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
29 address taken. Merge the addressable state of the NRV
30 variable and the result instead of copying it.
31
0f900dfa
JJ
322009-11-28 Jakub Jelinek <jakub@redhat.com>
33
34 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
35 malloc_fname variable.
36 (check_allocation_function): Remove unused gsi and bb_level_0
37 variables.
38 (transform_access_sites): Remove unused d_type_size and d_type_size_k
39 variables.
40 * omega.c (resurrect_subs): Remove unused n variable.
41 (omega_solve_geq): Remove unused neweqns variable.
42 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
43 * tree-inline.c (declare_return_variable): Remove USE_P argument,
44 return use instead of var.
45 (remap_decl, remap_block): Remove unused fn variable.
46 (expand_call_inline): Remove unused retvar variable, adjust
47 declare_return_variable caller.
48 (optimize_inline_calls): Remove unused prev_fn variable.
49 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
50 variable.
51 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
52 variables.
53 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
54 properly.
55 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
56 variable.
57 (vect_create_epilog_for_reduction): Remove unused bytesize variable.
58 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
59 parameter. Remove unused par_stmt variable.
60 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
61 (expand_omp_sections): Remove unused l1 variable.
62 (lower_omp_for): Remove unused ilist variable.
63 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
64 Remove unused has_upstream_mem_write_p variable.
65 * recog.c (decode_asm_operands): Remove unused noperands variable.
66 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
67 size2 variable.
68 * libgcov.c (__gcov_merge_delta): Remove unused last variable.
69 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
70 base_nm variable.
71 (gen_conditions_for_pow): Remove unused ec variable.
72 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
73 variable.
74 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
75 fndecl variable.
76 * tree-ssa-sink.c (statement_sink_location): Remove unused code
77 variable.
78 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
79 variables.
80 * tree-complex.c (create_one_component_var): Remove unused inner_type
81 variable.
82 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
83 unnecessarily when GEN_*CALL omits that argument.
84 * regrename.c (regrename_optimize): Remove unused regs_seen variable.
85 (build_def_use): Remove unused icode variable.
86 * ipa-pure-const.c (check_call): Remove unused callee and avail
87 variables.
88 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
89 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
90 variable.
91 (vect_pattern_recog): Remove unused stmt variable.
92 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
93 new_regions variable.
94 * postreload.c (reload_cse_simplify_operands): Remove unused mode
95 variable.
96 * tree-parloops.c (create_call_for_reduction_1): Remove unused
97 addr_type variable.
98 (create_parallel_loop): Remove unused res variable.
99 (gen_parallel_loop): Remove unused nloop variable.
100 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
101 * value-prof.c (gimple_mod_subtract_transform,
102 gimple_stringops_transform): Remove unused value variable.
103 (gimple_stringops_values_to_profile): Remove unused fcode variable.
104 * tree-vrp.c (register_new_assert_for): Remove unused found variable.
105 (vrp_visit_switch_stmt): Remove unused n variable.
106 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
107 variable.
108 (vectorizable_operation): Remove unused shift_p variable.
109 (vectorizable_store): Remove unused first_stmt_vinfo variable.
110 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
111 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
112 variable.
113 (vect_permute_store_chain): Remove unused scalar_dest variable.
114 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
115 variable.
116 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
117 local_info variable.
118 * tree-optimize.c (tree_rest_of_compilation): Remove unused node
119 variable.
120 * optabs.c (expand_binop): Remove unused equiv_value variable.
121 (emit_libcall_block): Remove unused prev variable.
122 (init_optabs): Remove unused int_mode variable.
123 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
124 variable.
125 (do_structure_copy): Remove unused lhsbase and rhsbase variables.
126 (find_func_aliases): Remove unused rhstype variable.
127 (ipa_pta_execute): Remove unused varid variable.
128
e86b4c03
AH
1292009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
130
131 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
132
11895e28
DB
1332009-11-28 David Binderman <dcb314@hotmail.com>
134
135 * ira-color.c (put_allocno_into_bucket): Remove set but not used
136 local variable hard_regs_num.
137 * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
138 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
139 * lower-subreg.c (decompose_multiword_subregs): Remove next.
140
c4ea5200
MJ
1412009-11-27 Martin Jambor <mjambor@suse.cz>
142
143 PR middle-end/42006
144 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
145 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually
146 for vector and complex types.
147 (get_adjustment_for_base): Describe return value in the comment.
148
ba964383
NC
1492009-11-27 Nick Clifton <nickc@redhat.com>
150
151 * longlong.h (count_leading_zeros): Define macro for stormy16
152 target.
153 (COUNT_LEADING_ZEROS_0): Likewise.
154 * config/stormy16/stormy16-lib2.c: Arrange for separate
155 compilation of each function.
156 (__ffshi2): New function.
157 (__stormy16_count_leading_zeros): New function.
158 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
159 compile each function into its own object file.
160 (stormy16-lib2-ashlsi3.c): New stub file.
161 (stormy16-lib2-ashrsi3.c): New stub file.
162 (stormy16-lib2-clzhi2.c): New stub file.
163 (stormy16-lib2-count-leading-zeros.c): New stub file.
164 (stormy16-lib2-ctzhi2.c): New stub file.
165 (stormy16-lib2-divsi3.c): New stub file.
166 (stormy16-lib2-ffshi2.c): New stub file.
167 (stormy16-lib2-lshrsi3.c): New stub file.
168 (stormy16-lib2-modsi3.c): New stub file.
169 (stormy16-lib2-parityhi2.c): New stub file.
170 (stormy16-lib2-popcounthi2.c): New stub file.
171 (stormy16-lib2-udivmodsi4.c): New stub file.
172 (stormy16-lib2-udivsi3.c): New stub file.
173 (stormy16-lib2-umodsi3.c): New stub file.
174
b0d49a6e
RH
1752009-11-27 Richard Henderson <rth@redhat.com>
176
177 * config/i386/sse.md (vec_interleave_highv16qi,
178 vec_interleave_lowv16qi, vec_interleave_highv8hi,
179 vec_interleave_lowv8hi, vec_interleave_highv4si,
180 vec_interleave_lowv4si, vec_interleave_highv2di,
181 vec_interleave_lowv2di, vec_interleave_highv4sf,
182 vec_interleave_lowv4sf, vec_interleave_highv2df,
183 vec_interleave_lowv2df): Remove expanders.
184 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
185 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
186 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
187 Rename to their proper vec_interleave equivalent. Update all users
188 to the new name.
189 * config/i386/i386.c, config/i386/i386.md: Update all users.
190
315adeda
MM
1912009-11-27 Michael Matz <matz@suse.de>
192
193 PR rtl-optimization/42084
194 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
195 use it to stop walking.
196 (expand_gimple_cond): Adjust call to above.
197
67c330ae
RO
1982009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
199
200 PR target/41810
201 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
202 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
203 __extension__ to allow cast from function pointer to object
204 pointer in C++.
205 * doc/install.texi (--enable-threads): Clarify use of Solaris
206 threads.
207
7400e46b
SB
2082009-11-27 Steven Bosscher <steven@gcc.gnu.org>
209
210 * config/ia64/itanium1.md: Remove.
211 * config/ia64/ia64.md: Do not include it.
212 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
213 "itanium1", and "merced" from the processor alias table.
214 (clocks, add_cycles): Remove global variables.
215 (ia64_sched_reorder2): Don't set/use them.
216 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
217 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
218
3a892e44
AK
2192009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
220
221 * config/s390/s390.c (last_scheduled_insn): New variable.
222 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
223 functions.
224 (s390_sched_reorder, s390_sched_variable_issue): New functions.
225 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
226 defined.
227
d815d34e
MM
2282009-11-27 Michael Matz <matz@suse.de>
229
230 PR c++/41906
231 * tree-eh.c (lower_catch): Stop after expanding a catch-all.
232
b56ae8c7
RG
2332009-11-27 Richard Guenther <rguenther@suse.de>
234
235 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
236 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
237 * loop-init.c (pass_rtl_move_loop_invariants): Use
238 TV_LOOP_MOVE_INVARIANTS.
239 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
240 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
241 (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
242
9c517bf3
AK
2432009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
244
245 * emit-rtl.c (next_active_insn, prev_active_insn): Correct
246 comment.
247
e96fee3e
JJ
2482009-11-27 Jakub Jelinek <jakub@redhat.com>
249
f1ed99cd
JJ
250 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
251 unused insn variable.
252 * genemit.c (output_peephole2_scratches): Only declare and initialize
253 _regs_allocated if it will be ever used.
254 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
255 succ_bb variable.
256 (create_empty_loop_on_edge): Remove unused freq and cnt variables.
257 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
258 variable.
259
e96fee3e
JJ
260 * opts.c (decode_options): If optimize is bigger than 255,
261 set it to 255.
262
08f3084b
RH
2632009-11-26 Richard Henderson <rth@redhat.com>
264
265 * config/i386/sse.md (mulv16qi3): Change back from an expander
266 to an insn-and-split.
267 (mulv4si): Mention AVX not XOP for AVX exception.
268 (*sse2_mulv4si3): Likewise.
269 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy.
270
6bda9bdf
BS
2712009-11-26 Bernd Schmidt <bernd.schmidt@analog.com>
272
15b83b0f
BS
273 * cfgexpand (n_stack_vars_conflict): New static variable.
274 (triangular_index): Reduce likelyhood of overflow by performing
275 the division before the multiplication.
276 (resize_stack_vars_conflict): Call fatal_error if overflow
277 occurred in triangular_index. Update n_stack_vars_conflict.
278
6bda9bdf
BS
279 PR rtl-opt/38582
280 * regrename.c (struct du_chain): Remove member earlyclobber.
281 (scan_rtx_reg): Don't set it. Remove argument earlyclobber,
282 all callers changed.
283 (scan_rtx): Remove argument earlyclobber, all callers changed.
284 (hide_operands, restore_operands, record_out_operands): New functions,
285 broken out of build_def_use.
286 (build_def_use): Call them as necessary.
287
a96caf80
BS
288 * regrename.c (struct du_head): New members id, conflicts,
289 hard_conflicts and cannot_rename.
290 (enum scan_actions): Remove terminate_all_read and
291 terminate_overlapping_read; add mark_all_read.
292 (scan_actions_name): Likewise.
293 (du_head_p): New typedef. Define a vector type for it.
294 (id_to_chain): New static variable.
295 (note_sets, clear_dead_regs): Delete functions.
296 (free_chain_data): New function.
297 (merge_overlapping_regs): Simply walk the conflicts bitmap.
298 Remove argument B, all callers changed.
299 (regrename_optimize): Allocate id_to_chain. Ignore chains that have
300 the cannot_rename bit set. Update regno and nregs of a renamed chain.
301 Call free_chain_data when done.
302 (do_replace): Remove death notes when the renamed reg is set in the
303 last insn; add them if not.
304 (mark_conflict, note_sets_clobbers): New static function.
305 (fail_current_block, current_id, open_chains_set, live_hard_regs): New
306 static variables.
307 (scan_rtx_reg): Keep track of conflicts between chains, and between
308 chains and hard regs. Don't terminate chains when we find a read we
309 can't handle, mark it unrenameable instead. For terminate_write,
310 terminate chains that are written with an exact match or a superset
311 of registers. Set fail_current_block if multi-word lifetimes are too
312 complex to handle.
313 (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
314 (build_def_use): Initialize current_id, live_chains and live_hard_regs;
315 free memory for them when done.
316 Rearrange the steps so that earlyclobbers are noted before reads
317 are processed. Add new steps to keep track of hard register lifetimes
318 outside insn operands.
319
a61f9cc0
RG
3202009-11-26 Richard Guenther <rguenther@suse.de>
321
322 * tree-ssa-dce.c (nr_walks): New variable.
323 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
324 (perform_tree_ssa_dce): Init nr_walks.
325
87cd4259
MM
3262009-11-26 Michael Matz <matz@suse.de>
327
328 PR tree-optimization/41905
329 * tree-eh.c (lower_eh_constructs_2): Don't add assignments
330 below statements that can't fall thru.
331
6dc3bf56
MM
3322009-11-26 Michael Matz <matz@suse.de>
333
334 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
335 expand_builtin_sprintf): Remove.
336 (expand_builtin): Don't call them.
337
d9b99b4c
RG
3382009-11-26 Richard Guenther <rguenther@suse.de>
339
340 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
341
0d8f38d3
NC
3422009-11-26 Nick Clifton <nickc@redhat.com>
343
344 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
345 being used incorrectly.
346 (rx_function_ok_for_sibcall): New function. Do not allow indirect
347 sibcalls, or sibcalls from interrupt functions.
348 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
349 * config/rx/rx.md (sibcall): Convert to a define_expand. Check
350 for a MEM inside a MEM.
351 (sibcall_value): Likewise.
352 (sibcall_internal): New pattern containing old sibcall pattern.
353 (sibcall_value_internal): Likewise.
354
0fac5151
RH
3552009-11-25 Richard Henderson <rth@redhat.com>
356
357 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
358 optional 3rd argument to define the mode.
359 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
360 (V2UDI, V4USI, V8UHI, V16UQI): New.
361 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
362 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
363 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
364 * config/i386/i386-modes.def: Rearrange for double-wide AVX.
365 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
366 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
367 (bdesc_args): Add the builtin definitions to match.
368 (ix86_expand_builtin): Expand them.
369 (ix86_builtin_vectorization_cost): Rename from
370 x86_builtin_vectorization_cost.
371 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
372 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
373 expand_vec_perm_blend, expand_vec_perm_vpermil,
374 expand_vec_perm_pshufb, expand_vec_perm_1,
375 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
376 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
377 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
378 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
379 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
380 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
381 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
382 * sse.md (SSEMODE_EO): New.
383 (vec_extract_even<mode>): Use SSEMODE_EO and
384 ix86_expand_vec_extract_even_odd.
385 (vec_extract_odd<mode>): Likewise.
386 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
387 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
388
faf63e39
RH
3892009-11-25 Richard Henderson <rth@redhat.com>
390
391 * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
392 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
393 * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
394 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
395 the vector constant here...
396 (vect_transform_slp_perm_load): ... do it here instead. Validate
397 that the permutation vector is implementable by the target.
398
8a2bbeef
JJ
3992009-11-25 Jakub Jelinek <jakub@redhat.com>
400
fc07d9e3
JJ
401 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
402 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
403
8a2bbeef
JJ
404 * print-rtl.c (print_rtx): When printing newline, append
405 print_rtx_head and indentation after the newline.
406
72b2bc46
JJ
407 PR target/42165
408 * config/i386/i386.c (print_operand): For 32-byte memory use
409 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD.
410 * config/i386/i386.md (crc32modesuffix): Expand to nothing
411 in -masm=intel mode.
412 (sse4_2_crc32di): Print just crc32 instead of crc32q in
413 -masm=intel mode.
414 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
415 memory operand in -masm=intel mode.
416 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
417 *sse2_pinsrw): Likewise.
418 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
419 q suffix in -masm=intel mode.
420
42da303a
EB
4212009-11-25 Eric Botcazou <ebotcazou@adacore.com>
422
423 PR target/10127
424 PR ada/20548
425 PR middle-end/42004
426 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
427 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for
428 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to...
429 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming.
430 (dwarf2out_frame_debug_expr): Revert previous change and adjust for
431 above renaming.
432 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming.
433
85b1d1bd
UB
4342009-11-25 Uros Bizjak <ubizjak@gmail.com>
435
436 * config/i386/predicates.md (emms_operation): New predicate.
437 (vzeroupper_operation): Ditto.
438 (vzeroall_operation): Improve pattern recognition.
439 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
440 (avx_vzeroupper): Change insn pattern to expander.
441 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation
442 predicate.
443 (*avx_vzeroall): Remove operands 1 and 2.
444 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
445 (mmx_femms): Ditto.
446 (*mmx_emms): New insn pattern. Use emms_operation predicate.
447 (*mmx_femms): Ditto.
448 * config/i386/i386.c (enum ix86_builtins)
449 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
450 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
451 Remove initailization.
452 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
453
5115f061
PB
4542009-11-25 Paul Brook <paul@codesourcery.com>
455
456 * config/arm/arm.md (consttable_4): Handle (high ...).
457
70dd156a
RN
4582009-11-25 Robert Nelson <robert.nelson@digikey.com>
459 Richard Earnshaw <rearnsha@arm.com>
460
461 * arm.h (enum vfp_reg_type): Add VFP_NONE.
462 * arm.c (all_fpus): Use it for floating point units that aren't based
463 on the VFP architecture.
464 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
465 enum machine_mode.
466
b8698a0f
L
4672009-11-25 H.J. Lu <hongjiu.lu@intel.com>
468
469 * alias.c: Remove trailing white spaces.
470 * alloc-pool.c: Likewise.
471 * alloc-pool.h: Likewise.
472 * attribs.c: Likewise.
473 * auto-inc-dec.c: Likewise.
474 * basic-block.h: Likewise.
475 * bb-reorder.c: Likewise.
476 * bt-load.c: Likewise.
477 * builtins.c: Likewise.
478 * builtins.def: Likewise.
479 * c-common.c: Likewise.
480 * c-common.h: Likewise.
481 * c-cppbuiltin.c: Likewise.
482 * c-decl.c: Likewise.
483 * c-format.c: Likewise.
484 * c-lex.c: Likewise.
485 * c-omp.c: Likewise.
486 * c-opts.c: Likewise.
487 * c-parser.c: Likewise.
488 * c-pretty-print.c: Likewise.
489 * c-tree.h: Likewise.
490 * c-typeck.c: Likewise.
491 * caller-save.c: Likewise.
492 * calls.c: Likewise.
493 * cfg.c: Likewise.
494 * cfganal.c: Likewise.
495 * cfgexpand.c: Likewise.
496 * cfghooks.c: Likewise.
497 * cfghooks.h: Likewise.
498 * cfglayout.c: Likewise.
499 * cfgloop.c: Likewise.
500 * cfgloop.h: Likewise.
501 * cfgloopmanip.c: Likewise.
502 * cfgrtl.c: Likewise.
503 * cgraph.c: Likewise.
504 * cgraph.h: Likewise.
505 * cgraphbuild.c: Likewise.
506 * cgraphunit.c: Likewise.
507 * cif-code.def: Likewise.
508 * collect2.c: Likewise.
509 * combine.c: Likewise.
510 * convert.c: Likewise.
511 * coverage.c: Likewise.
512 * crtstuff.c: Likewise.
513 * cse.c: Likewise.
514 * cselib.c: Likewise.
515 * dbgcnt.c: Likewise.
516 * dbgcnt.def: Likewise.
517 * dbgcnt.h: Likewise.
518 * dbxout.c: Likewise.
519 * dce.c: Likewise.
520 * ddg.c: Likewise.
521 * ddg.h: Likewise.
522 * defaults.h: Likewise.
523 * df-byte-scan.c: Likewise.
524 * df-core.c: Likewise.
525 * df-problems.c: Likewise.
526 * df-scan.c: Likewise.
527 * df.h: Likewise.
528 * dfp.c: Likewise.
529 * diagnostic.c: Likewise.
530 * diagnostic.h: Likewise.
531 * dominance.c: Likewise.
532 * domwalk.c: Likewise.
533 * double-int.c: Likewise.
534 * double-int.h: Likewise.
535 * dse.c: Likewise.
536 * dwarf2asm.c: Likewise.
537 * dwarf2asm.h: Likewise.
538 * dwarf2out.c: Likewise.
539 * ebitmap.c: Likewise.
540 * ebitmap.h: Likewise.
541 * emit-rtl.c: Likewise.
542 * et-forest.c: Likewise.
543 * except.c: Likewise.
544 * except.h: Likewise.
545 * expmed.c: Likewise.
546 * expr.c: Likewise.
547 * expr.h: Likewise.
548 * final.c: Likewise.
549 * flags.h: Likewise.
550 * fold-const.c: Likewise.
551 * function.c: Likewise.
552 * function.h: Likewise.
553 * fwprop.c: Likewise.
554 * gcc.c: Likewise.
555 * gcov-dump.c: Likewise.
556 * gcov-io.c: Likewise.
557 * gcov-io.h: Likewise.
558 * gcov.c: Likewise.
559 * gcse.c: Likewise.
560 * genattr.c: Likewise.
561 * genattrtab.c: Likewise.
562 * genautomata.c: Likewise.
563 * genchecksum.c: Likewise.
564 * genconfig.c: Likewise.
565 * genflags.c: Likewise.
566 * gengtype-parse.c: Likewise.
567 * gengtype.c: Likewise.
568 * gengtype.h: Likewise.
569 * genmddeps.c: Likewise.
570 * genmodes.c: Likewise.
571 * genopinit.c: Likewise.
572 * genpreds.c: Likewise.
573 * gensupport.c: Likewise.
574 * ggc-common.c: Likewise.
575 * ggc-page.c: Likewise.
576 * ggc-zone.c: Likewise.
577 * ggc.h: Likewise.
578 * gimple-iterator.c: Likewise.
579 * gimple-low.c: Likewise.
580 * gimple-pretty-print.c: Likewise.
581 * gimple.c: Likewise.
582 * gimple.def: Likewise.
583 * gimple.h: Likewise.
584 * gimplify.c: Likewise.
585 * graphds.c: Likewise.
586 * graphite-clast-to-gimple.c: Likewise.
587 * gthr-nks.h: Likewise.
588 * gthr-posix.c: Likewise.
589 * gthr-posix.h: Likewise.
590 * gthr-posix95.h: Likewise.
591 * gthr-single.h: Likewise.
592 * gthr-tpf.h: Likewise.
593 * gthr-vxworks.h: Likewise.
594 * gthr.h: Likewise.
595 * haifa-sched.c: Likewise.
596 * hard-reg-set.h: Likewise.
597 * hooks.c: Likewise.
598 * hooks.h: Likewise.
599 * hosthooks.h: Likewise.
600 * hwint.h: Likewise.
601 * ifcvt.c: Likewise.
602 * incpath.c: Likewise.
603 * init-regs.c: Likewise.
604 * integrate.c: Likewise.
605 * ipa-cp.c: Likewise.
606 * ipa-inline.c: Likewise.
607 * ipa-prop.c: Likewise.
608 * ipa-pure-const.c: Likewise.
609 * ipa-reference.c: Likewise.
610 * ipa-struct-reorg.c: Likewise.
611 * ipa-struct-reorg.h: Likewise.
612 * ipa-type-escape.c: Likewise.
613 * ipa-type-escape.h: Likewise.
614 * ipa-utils.c: Likewise.
615 * ipa-utils.h: Likewise.
616 * ipa.c: Likewise.
617 * ira-build.c: Likewise.
618 * ira-color.c: Likewise.
619 * ira-conflicts.c: Likewise.
620 * ira-costs.c: Likewise.
621 * ira-emit.c: Likewise.
622 * ira-int.h: Likewise.
623 * ira-lives.c: Likewise.
624 * ira.c: Likewise.
625 * jump.c: Likewise.
626 * lambda-code.c: Likewise.
627 * lambda-mat.c: Likewise.
628 * lambda-trans.c: Likewise.
629 * lambda.h: Likewise.
630 * langhooks.c: Likewise.
631 * lcm.c: Likewise.
632 * libgcov.c: Likewise.
633 * lists.c: Likewise.
634 * loop-doloop.c: Likewise.
635 * loop-init.c: Likewise.
636 * loop-invariant.c: Likewise.
637 * loop-iv.c: Likewise.
638 * loop-unroll.c: Likewise.
639 * lower-subreg.c: Likewise.
640 * lto-cgraph.c: Likewise.
641 * lto-compress.c: Likewise.
642 * lto-opts.c: Likewise.
643 * lto-section-in.c: Likewise.
644 * lto-section-out.c: Likewise.
645 * lto-streamer-in.c: Likewise.
646 * lto-streamer-out.c: Likewise.
647 * lto-streamer.c: Likewise.
648 * lto-streamer.h: Likewise.
649 * lto-symtab.c: Likewise.
650 * lto-wpa-fixup.c: Likewise.
651 * matrix-reorg.c: Likewise.
652 * mcf.c: Likewise.
653 * mode-switching.c: Likewise.
654 * modulo-sched.c: Likewise.
655 * omega.c: Likewise.
656 * omega.h: Likewise.
657 * omp-low.c: Likewise.
658 * optabs.c: Likewise.
659 * optabs.h: Likewise.
660 * opts-common.c: Likewise.
661 * opts.c: Likewise.
662 * params.def: Likewise.
663 * params.h: Likewise.
664 * passes.c: Likewise.
665 * plugin.c: Likewise.
666 * postreload-gcse.c: Likewise.
667 * postreload.c: Likewise.
668 * predict.c: Likewise.
669 * predict.def: Likewise.
670 * pretty-print.c: Likewise.
671 * pretty-print.h: Likewise.
672 * print-rtl.c: Likewise.
673 * print-tree.c: Likewise.
674 * profile.c: Likewise.
675 * read-rtl.c: Likewise.
676 * real.c: Likewise.
677 * recog.c: Likewise.
678 * reg-stack.c: Likewise.
679 * regcprop.c: Likewise.
680 * reginfo.c: Likewise.
681 * regmove.c: Likewise.
682 * regrename.c: Likewise.
683 * regs.h: Likewise.
684 * regstat.c: Likewise.
685 * reload.c: Likewise.
686 * reload1.c: Likewise.
687 * resource.c: Likewise.
688 * rtl.c: Likewise.
689 * rtl.def: Likewise.
690 * rtl.h: Likewise.
691 * rtlanal.c: Likewise.
692 * sbitmap.c: Likewise.
693 * sched-deps.c: Likewise.
694 * sched-ebb.c: Likewise.
695 * sched-int.h: Likewise.
696 * sched-rgn.c: Likewise.
697 * sched-vis.c: Likewise.
698 * sdbout.c: Likewise.
699 * sel-sched-dump.c: Likewise.
700 * sel-sched-dump.h: Likewise.
701 * sel-sched-ir.c: Likewise.
702 * sel-sched-ir.h: Likewise.
703 * sel-sched.c: Likewise.
704 * sel-sched.h: Likewise.
705 * sese.c: Likewise.
706 * sese.h: Likewise.
707 * simplify-rtx.c: Likewise.
708 * stack-ptr-mod.c: Likewise.
709 * stmt.c: Likewise.
710 * stor-layout.c: Likewise.
711 * store-motion.c: Likewise.
712 * stringpool.c: Likewise.
713 * stub-objc.c: Likewise.
714 * sync-builtins.def: Likewise.
715 * target-def.h: Likewise.
716 * target.h: Likewise.
717 * targhooks.c: Likewise.
718 * targhooks.h: Likewise.
719 * timevar.c: Likewise.
720 * tlink.c: Likewise.
721 * toplev.c: Likewise.
722 * toplev.h: Likewise.
723 * tracer.c: Likewise.
724 * tree-affine.c: Likewise.
725 * tree-affine.h: Likewise.
726 * tree-browser.def: Likewise.
727 * tree-call-cdce.c: Likewise.
728 * tree-cfg.c: Likewise.
729 * tree-cfgcleanup.c: Likewise.
730 * tree-chrec.c: Likewise.
731 * tree-chrec.h: Likewise.
732 * tree-complex.c: Likewise.
733 * tree-data-ref.c: Likewise.
734 * tree-data-ref.h: Likewise.
735 * tree-dfa.c: Likewise.
736 * tree-dump.c: Likewise.
737 * tree-dump.h: Likewise.
738 * tree-eh.c: Likewise.
739 * tree-flow-inline.h: Likewise.
740 * tree-flow.h: Likewise.
741 * tree-if-conv.c: Likewise.
742 * tree-inline.c: Likewise.
743 * tree-into-ssa.c: Likewise.
744 * tree-loop-distribution.c: Likewise.
745 * tree-loop-linear.c: Likewise.
746 * tree-mudflap.c: Likewise.
747 * tree-nested.c: Likewise.
748 * tree-nomudflap.c: Likewise.
749 * tree-nrv.c: Likewise.
750 * tree-object-size.c: Likewise.
751 * tree-optimize.c: Likewise.
752 * tree-outof-ssa.c: Likewise.
753 * tree-parloops.c: Likewise.
754 * tree-pass.h: Likewise.
755 * tree-phinodes.c: Likewise.
756 * tree-predcom.c: Likewise.
757 * tree-pretty-print.c: Likewise.
758 * tree-profile.c: Likewise.
759 * tree-scalar-evolution.c: Likewise.
760 * tree-ssa-address.c: Likewise.
761 * tree-ssa-alias.c: Likewise.
762 * tree-ssa-ccp.c: Likewise.
763 * tree-ssa-coalesce.c: Likewise.
764 * tree-ssa-copy.c: Likewise.
765 * tree-ssa-copyrename.c: Likewise.
766 * tree-ssa-dce.c: Likewise.
767 * tree-ssa-dom.c: Likewise.
768 * tree-ssa-dse.c: Likewise.
769 * tree-ssa-forwprop.c: Likewise.
770 * tree-ssa-ifcombine.c: Likewise.
771 * tree-ssa-live.c: Likewise.
772 * tree-ssa-live.h: Likewise.
773 * tree-ssa-loop-ch.c: Likewise.
774 * tree-ssa-loop-im.c: Likewise.
775 * tree-ssa-loop-ivcanon.c: Likewise.
776 * tree-ssa-loop-ivopts.c: Likewise.
777 * tree-ssa-loop-manip.c: Likewise.
778 * tree-ssa-loop-niter.c: Likewise.
779 * tree-ssa-loop-prefetch.c: Likewise.
780 * tree-ssa-loop-unswitch.c: Likewise.
781 * tree-ssa-loop.c: Likewise.
782 * tree-ssa-math-opts.c: Likewise.
783 * tree-ssa-operands.c: Likewise.
784 * tree-ssa-operands.h: Likewise.
785 * tree-ssa-phiopt.c: Likewise.
786 * tree-ssa-phiprop.c: Likewise.
787 * tree-ssa-pre.c: Likewise.
788 * tree-ssa-propagate.c: Likewise.
789 * tree-ssa-reassoc.c: Likewise.
790 * tree-ssa-sccvn.c: Likewise.
791 * tree-ssa-sink.c: Likewise.
792 * tree-ssa-structalias.c: Likewise.
793 * tree-ssa-ter.c: Likewise.
794 * tree-ssa-threadedge.c: Likewise.
795 * tree-ssa-threadupdate.c: Likewise.
796 * tree-ssa-uncprop.c: Likewise.
797 * tree-ssa.c: Likewise.
798 * tree-ssanames.c: Likewise.
799 * tree-switch-conversion.c: Likewise.
800 * tree-tailcall.c: Likewise.
801 * tree-vect-data-refs.c: Likewise.
802 * tree-vect-generic.c: Likewise.
803 * tree-vect-loop-manip.c: Likewise.
804 * tree-vect-loop.c: Likewise.
805 * tree-vect-patterns.c: Likewise.
806 * tree-vect-slp.c: Likewise.
807 * tree-vect-stmts.c: Likewise.
808 * tree-vectorizer.c: Likewise.
809 * tree-vectorizer.h: Likewise.
810 * tree-vrp.c: Likewise.
811 * tree.c: Likewise.
812 * tree.def: Likewise.
813 * tree.h: Likewise.
814 * treestruct.def: Likewise.
815 * unwind-compat.c: Likewise.
816 * unwind-dw2-fde-glibc.c: Likewise.
817 * unwind-dw2.c: Likewise.
818 * value-prof.c: Likewise.
819 * value-prof.h: Likewise.
820 * var-tracking.c: Likewise.
821 * varasm.c: Likewise.
822 * varpool.c: Likewise.
823 * vec.c: Likewise.
824 * vec.h: Likewise.
825 * vmsdbgout.c: Likewise.
826 * web.c: Likewise.
827 * xcoffout.c: Likewise.
828
0831e1d1
JDA
8292009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
830
831 * pa.c (output_call): Only use sr4 for long interspace calls if
832 call binds local and generating non PIC code.
833 (attr_length_call): Adjust length calculation for above.
834
14c27152
UB
8352009-11-25 Uros Bizjak <ubizjak@gmail.com>
836
837 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
838 (add<mode>3_carry): Change operand order of plus RTX.
839 (*add<mode>3_carry): Ditto.
840 (*addsi3_carry_zext): Ditto.
841 (*add<dwi>3_doubleword): Update for changed operand order.
842 (*negti2_1 splitter): Ditto.
843 (*negdi2_1 splitter): Ditto.
844 (<plusminus_insn><mode>3_carry): Macroize expander from
845 {add,sub}<mode>3_carry patterns using plusminus code iterator.
846 (*<plusminus_insn><mode>3_carry): Macroize insn from
847 *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
848 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
849 patterns using SDWIM mode iterator.
850 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize
851 pattern from *neg{di,ti}2_1 patterns and corresponding splitters
852 using DWIH mode iterator.
853 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
854 using SWI mode iterator.
855 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
856 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
857 patterns using SWIM mode iterator.
858 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
859 patterns using SWI248 mode iterator.
860 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
861 patterns using SWI mode iterator.
862 (*one_cmpl<mode>2_2 splitter): Macroize splitter from
863 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
864
038dc49a
PC
8652009-11-24 Michael Matz <matz@suse.de>
866
867 * expr.c (set_storage_via_libcall): Fix build_call_expr call.
868
8692009-11-24 David Binderman <dcb314@hotmail.com>
870
871 * expr.c (store_field): Remove set but not used local variable
872 width_mask.
873 (expand_expr_real_2): Remove treeop2.
874 * gcse.c (update_ld_motion_stores): Remove new_rtx.
875 * haifa-sched.c (max_issue): Remove points.
876 (sched_create_recovery_edges): Remove e.
877 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
878
356aaf8b
NC
8792009-11-24 Nick Clifton <nickc@redhat.com>
880
881 * config/v850/v850.c (function_arg): Fix handling of zero-length
882 function arguments.
883
a5883ba0
MM
8842009-11-24 Michael Matz <matz@suse.de>
885
886 * tree.h (union tree_ann_d): Don't declare.
887 (tree_base): Remove ann field.
888 (struct var_ann_d): Declare forward.
889 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
890 (DECL_VAR_ANN_PTR): New macro.
891 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
892 accept only VAR, PARM or RESULT decls.
893 (create_tree_common_ann): Remove.
894 (remove_referenced_var): Use DECL_VAR_ANN_PTR.
895 * tree-eh.c (lookup_expr_eh_lp): Remove.
896 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
897 DECL_VAR_ANN_PTR.
898 (ann_type, tree_common_ann, get_tree_common_ann): Remove.
899 * tree-flow.h (enum tree_ann_type): Remove.
900 (struct tree_ann_common_d): Remove.
901 (struct var_ann_d): Remove common field.
902 (union tree_ann_d): Remove.
903 (tree_ann_t, tree_ann_common_t): Remove typedefs.
904 (tree_common_ann, get_tree_common_ann, ann_type,
905 create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
906 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
907 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
908 * builtins.c (expand_builtin_memcpy): Use
909 currently_expanding_gimple_stmt instead of tree annotation.
910 (expand_builtin_memset_args): Ditto.
911 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
912 (expand_call_stmt): Don't set tree annotation.
913 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
914 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
915 * gimple.h (currently_expanding_gimple_stmt): Declare.
916
6e0b03f5
PC
9172009-11-24 Paolo Carlini <paolo.carlini@oracle.com>
918
919 * dwarf2out.c (add_location_or_const_value_attribute): Remove
920 useless NOTE_VAR_LOCATION_STATUS call.
921 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
922
8aea79e6
RAE
9232009-11-24 Rafael Avila de Espindola <espindola@google.com>
924
925 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
926 being called recursively.
927
33887751
BS
9282009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
929
a5883ba0 930 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
33887751
BS
931 $(MD5_H) params.def params.h prefix.h tree-inline.h.
932
3ed04dbd
PB
9332009-11-24 Paul Brook <paul@codesourcery.com>
934
3ed04dbd
PB
935 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
936 typo.
937
854b8a40
JB
9382009-11-24 Julian Brown <julian@codesourcery.com>
939 Paul Brook <paul@codesourcery.com>
940
941 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
942 (arm_dwarf_register_span): New function.
943 (arm_dbx_register_number): Add VFPv3 dwarf numbering.
944
6e0b03f5 9452009-11-24 David Binderman <dcb314@hotmail.com>
2d888286
DB
946
947 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
948 local variable bb_note.
a5883ba0
MM
949 * dominance.c (get_dominated_by): Likewise local var n.
950 (output_file_names): Likewise local var idx.
951 (add_location_or_const_value_attribute): Likewise local var status.
952 * dwarf2out.c (gen_variable_die): Likewise local var field.
953 * emit-rtl.c (no_line_numbers): Remove.
2d888286 954 (init_emit_once): Remove line_numbers parameter.
a5883ba0
MM
955 * rtl.h (init_emit_once): Adjust prototype.
956 * toplev.c (backend_init): Adjust init_emit_once call.
2d888286 957
1415abc0
RG
9582009-11-24 Richard Guenther <rguenther@suse.de>
959
960 PR tree-optimization/42142
961 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
962 Handle iv-dependent (non-)kills properly.
963 (mark_aliased_reaching_defs_necessary): Pass the basic-block
964 of the reference statement to mark_aliased_reaching_defs_necessary_1.
965
09f0dc45
MJ
9662009-11-24 Martin Jambor <mjambor@suse.cz>
967
968 PR tree-optimization/42154
969 * tree-sra.c (struct access): Added comments.
970 (sra_modify_expr): Build references to the old aggregate with
971 build_ref_for_offset instead of reusing access->expr.
972 (load_assign_lhs_subreplacements): Likewise.
973
c84f4042
UB
9742009-11-24 Uros Bizjak <ubizjak@gmail.com>
975
976 * config/i386/i386.md (add<mode>3_carry): Change insn pattern
977 to expander.
978 (sub<mode>3_carry): Ditto.
979 (x86_mov<mode>cc_0_m1): Ditto.
980 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
981 for ix86_carry_flag_operator operator predicate.
982 (*sub<mode>3_carry): Ditto.
983 (*x86_mov<mode>cc_0_m1): Ditto.
984 (*addsi3_carry_zext): Use VOIDmode match_operator for
985 ix86_carry_flag_operator operator predicate.
986 (*subsi3_carry_zext): Ditto.
987 (*x86_mov<mode>cc_0_m1_s): Ditto.
988 (*x86_mov<mode>cc_0_m1_neg): Ditto.
989 * config/i386/predocates.md (ix86_carry_flag_operator): Do not
990 check operator sub-expressions for FLAGS_REG and const0_rtx.
991 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
992 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
993 (ix86_expand_int_addcc): Update calls to
994 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
995 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
996 Do not set mode of compare operation.
997
cefdbe2f
JH
9982009-11-23 Jan Hubicka <jh@suse.cz>
999
1000 PR middle-end/42151
1001 * ipa-inline.c (inline_transform): Avoid ICE when transform is called
1002 twice.
1003
43558bcc
JH
10042009-11-23 Jan Hubicka <jh@suse.cz>
1005
1006 * ipa-cp.c (ipcp_compute_node_scale): Work around completely
1007 wrong profile updates.
1008 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
1009 having largest frequency.
1010 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
1011 used uninitalized warning.
1012 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
1013 frequencies.
1014
e0d909db
UB
10152009-11-23 Uros Bizjak <ubizjak@gmail.com>
1016
1017 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
1018 of gen_rtx_REG to generate operand 5.
1019 (*cmp_ssub_sidi): Ditto.
1020
2f951ef4
RH
10212009-11-23 Richard Henderson <rth@redhat.com>
1022
1023 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
1024 mismatch.
1025
1586899e
PB
10262009-11-23 Paul Brook <paul@codesourcery.com>
1027
1028 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
1029 case for noreturn functions.
1030 (arm_compute_save_reg_mask): Remove special noreturn handling.
1031
0230277c
RG
10322009-11-23 Richard Guenther <rguenther@suse.de>
1033
1034 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
1035 size for DECL bases.
1036
8a67ca92
RH
10372009-11-22 Richard Henderson <rth@redhat.com>
1038
1039 * i386.c (avx_vpermilp_parallel): New function.
1040 * i386-protos.h: Declare it.
1041 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
1042 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
1043 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
1044 (ssescalarnum, ssedoublesizemode): Add AVX modes.
1045 (vpermilbits): Remove.
1046 (avx_vpermil<mode>): Change insns to expanders.
1047 (*avx_vpermil<mode>): New. Use vec_select.
1048
4de29d8f
RE
10492009-11-22 Richard Earnshaw <rearnsha@arm.com>
1050
e0d909db 1051 * opts.c (decode_options): Don't enable flag_schedule_insns
4de29d8f
RE
1052 when optimizing for size.
1053 * doc/invoke.texi: Document change.
1054
7e82354a
UB
10552009-11-22 Uros Bizjak <ubizjak@gmail.com>
1056
1057 PR target/42113
1058 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
1059 of scratch register to SImode.
1060 (*cmp_sadd_sidi): Ditto.
1061 (*cmp_ssub_si): Ditto.
1062 (*cmp_ssub_sidi): Ditto.
1063
ed2eaa9f
ILT
10642009-11-21 Ian Lance Taylor <iant@google.com>
1065
1066 * Makefile.in (HOST_LIBS): Move higher in file.
1067 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
1068 is not empty, set to $(CC) and $(CFLAGS).
1069
cc12e760
MJ
10702009-11-22 Martin Jambor <mjambor@suse.cz>
1071
1072 * tree-cfg.c (verify_types_in_gimple_reference): Error out on
1073 V_C_E of an SSA_NAME or an invariant if lvalue is required.
1074 (verify_gimple_call): Verify LHS also with with
1075 verify_types_in_gimple_reference.
1076
c6a2c25d
MJ
10772009-11-21 Martin Jambor <mjambor@suse.cz>
1078
1079 PR middle-end/42025
1080 * tree-sra.c (access_precludes_ipa_sra_p): New function.
1081 (splice_param_accesses): Check all accesses by calling
1082 access_precludes_ipa_sra_p.
1083 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
1084 not convert types if it is true.
1085 (sra_ipa_modify_assign): Convert types in case of mismatch.
1086
bcd9e00d
KP
10872009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1088
1089 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
1090 for operand 1.
1091
a3c7bb26
AN
10922009-11-21 Adam Nemet <adambnemet@gmail.com>
1093
1094 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
1095 (mips_mulsidi3_gen_fn): Declare new function.
1096 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
1097 * config/mips/mips.md (<u>mulsidi3): Change condition to use
c84f4042 1098 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn.
a3c7bb26
AN
1099 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
1100 (mulsidi3_64bit_dmul): New define_insn.
1101
e81f2ecf
BE
11022009-11-21 Ben Elliston <bje@au.ibm.com>
1103
1104 * gengtype-lex.l: Enable noinput flex option.
1105 (YY_NO_INPUT): Remove define.
1106
42a06e46
AO
11072009-11-21 Alexandre Oliva <aoliva@redhat.com>
1108
1109 * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
1110 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
1111 (insert_debug_temps_for_defs): Handle PHI nodes.
1112 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
1113 SSA names.
1114
b70fdfe4
AO
11152009-11-21 Alexandre Oliva <aoliva@redhat.com>
1116
1117 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
1118 after remove_phi_node.
1119
21cf7180
AO
11202009-11-21 Alexandre Oliva <aoliva@redhat.com>
1121
1122 PR tree-optimization/42078
1123 * gimple.h (gimple_replace_lhs): New declaration.
1124 * gimple.c (gimple_replace_lhs): New function.
1125 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
1126 modifying the call.
1127
04482dd1
SP
11282009-11-20 Sebastian Pop <sebastian.pop@amd.com>
1129
1130 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
1131 (xop_mulv2div2di3_low): Same.
1132 (*xop_pmacsdqh_mem): Same.
1133
fe40daa0
RH
11342009-11-20 Richard Henderson <rth@redhat.com>
1135
1136 * config/i386/i386-builtin-types.awk: New file.
1137 * config/i386/i386-builtin-types.def: New file.
1138 * config/i386/t-i386: Use them to build i386-builtin-types.inc.
1139 * config/i386/i386.c: Include it.
1140 (ix86_builtin_type_tab, ix86_get_builtin_type): New.
1141 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
1142 (struct builtin_isa): Remove GTY marker. Replace tree type with
1143 ix86_builtin_func_type; add set_and_not_built_p.
1144 (def_builtin): Change type parameter to tcode; use
1145 ix86_get_builtin_func_type; update all callers. Accept zero mask
1146 to mean the builtin is unconditionally available.
1147 (ix86_add_new_builtins): Use set_and_not_built_p instead of type
1148 being set to NULL.
1149 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
1150 Update some users to rationalized enumeration codes from new include.
1151 (enum multi_arg_type): Remove. Replace all enumeration values
1152 with defines to new ix86_builtin_func_type.
1153 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer
1154 all type resolution to def_builtin.
1155 (ix86_init_builtin_types): Split out from ...
1156 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type.
1157
497d3834
MM
11582009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1159
1160 PR target/41787
1161 * config/rs6000/rs6000.c (struct machine_function): Revert
1162 2009-10-23 change to set VRSAVE to non-0 if we use VSX.
1163 (rs6000_expand_to_rtl_hook): Ditto.
1164 (rs6000_check_vector_mode): Ditto.
1165 (compute_vrsave_mask): Ditto.
1166
d5473643
PB
11672009-11-20 Paul Brook <paul@codesourcery.com>
1168
1169 * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
1170 * config/arm/arm-cores.def: Add cortex-a5.
1171 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
1172 * config/arm/arm-tune.md: Regenerate.
1173
eed8fcad
OG
11742009-11-20 Olga Golovanevsky <olga@il.ibm.com>
1175
1176 PR middle-end/39960
1177 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
1178 (ref_pos): New field in structure.
1179 (insert_new_var_in_stmt): New function.
1180
1181
25bcd7ea
RO
11822009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1183
1184 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
1185 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
1186 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
1187 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
1188 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
c84f4042 1189 INT_LEAST64_TYPE): Define.
25bcd7ea
RO
1190 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
1191 UINT_LEAST64_TYPE): Define.
1192 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1193 INT_FAST64_TYPE): Define.
1194 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1195 UINT_FAST64_TYPE): Define.
1196 (INTPTR_TYPE, UINTPTR_TYPE): Define.
1197
2ee67fbb
JB
11982009-11-20 Julian Brown <julian@codesourcery.com>
1199
1200 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
1201 specially for Thumb-1.
1202 (ASM_OUTPUT_REG_POP): Likewise.
1203
98fba7f7
JM
12042009-11-19 Jason Merrill <jason@redhat.com>
1205
1206 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
1207
e4d5031c 12082009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
c84f4042 1209 Rafael Avila de Espindola <espindola@google.com>
e4d5031c
RE
1210
1211 * doc/plugins.texi (Plugin initialization): Added advices for
c84f4042 1212 retrieving the version of GCC at plugin compilation and loading times.
e4d5031c 1213
fdabb520
BS
12142009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
1215
1216 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
1217 (dump_active_plugins): output to file everything. Use
1218 internationalized dump & FMT_FOR_PLUGIN_EVENT.
1219
b66a1bac
RG
12202009-11-19 Richard Guenther <rguenther@suse.de>
1221
1222 * gimple.c (canonicalize_cond_expr_cond): Strip conversions
1223 around truth-valued expressions.
1224 * tree.c (free_lang_data): Untangle check for LTO frontend.
1225
986ad133
JJ
12262009-11-19 Jakub Jelinek <jakub@redhat.com>
1227
1228 * tree.c (need_assembler_name_p): Use cgraph_get_node instead
1229 of cgraph_node_for_decl.
1230 * cgraph.h (cgraph_node_for_decl): Remove prototype.
1231 * cgraph.c (cgraph_node_for_decl): Remove.
1232 (cgraph_get_node): Just return NULL if !cgraph_hash.
1233
1abed66b
PB
12342009-11-19 Paul Brook <paul@codesourcery.com>
1235
1236 * config.gcc: Add new ARM --with-fpu options.
1237 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
1238 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
1239
bb4efb4d
RG
12402009-11-18 Richard Guenther <rguenther@suse.de>
1241
1242 * gimple.h (union gimple_statement_d): Add gsmembase member.
1243 (gimple_vuse_op): Use gsmembase for access.
1244 (gimple_vdef_op): Likewise.
1245 (gimple_vuse): Likewise.
1246 (gimple_vdef): Likewise.
1247 (gimple_vuse_ptr): Likewise.
1248 (gimple_vdef_ptr): Likewise.
1249 (gimple_set_vuse): Likewise.
1250 (gimple_set_vdef): Likewise.
1251 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
1252
573282f8
DJ
12532009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
1254
1255 * doc/arm-neon-intrinsics.texi: Regenerated.
1256
31d1afde
DJ
12572009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
1258
c84f4042 1259 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
31d1afde 1260
60bd3528 12612009-11-18 Paul Brook <paul@codesourcery.com>
c84f4042 1262 Daniel Jacobowitz <dan@codesourcery.com>
60bd3528
PB
1263
1264 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
1265 (arm_arch7em): New variable.
1266 (all_architectures): Add armv7e-m.
1267 (arm_override_options): Set arm_arch7em.
1268 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
1269 Include arm_arch7em.
1270 (arm_arch7em): Declare.
1271
7caa21fc
RG
12722009-11-18 Richard Guenther <rguenther@suse.de>
1273
1274 * lto-streamer-in.c (input_gimple_stmt): Assert that we find
1275 a valid field decl if checking is enabled.
1276
661e7330
MJ
12772009-11-18 Martin Jambor <mjambor@suse.cz>
1278
1279 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
1280 (lto_ipa_fixup_call_notes): Declare.
1281 * ipa-prop.c (ipa_note_param_call): Store gimple uid.
1282 (update_call_notes_after_inlining): Copy call stmt uid to the new
1283 edge.
1284 (ipa_write_param_call_note): New function.
1285 (ipa_read_param_call_note): New function
1286 (ipa_write_node_info): Write also param call notes. Removed a bogus
1287 comment, reformatted to fit 80 columns.
1288 (ipa_read_node_info): Read also param call notes. Removed a bogus
1289 comment. Remove ipa_edge_args_vector growth.
1290 (lto_ipa_fixup_call_notes): New function.
1291 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
1292 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
1293 inlining regardless of flag_wpa.
1294 (cgraph_decide_inlining_of_small_functions): Likewise.
1295 (cgraph_decide_inlining): Likewise.
1296 (inline_read_summary): Likewise.
1297
965b98d0
JH
12982009-11-18 Jan Hubicka <jh@suse.cz>
1299
1300 * predict.c (compute_function_frequency): Export.
1301 * predict.h (compute_function_frequency): Declare.
1302 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
1303
8b220502
MJ
13042009-11-18 Martin Jambor <mjambor@suse.cz>
1305
1306 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
1307 on all nodes we write summaries for.
1308
7b98c16f 13092009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
14c27152 1310
7b98c16f 1311 PR middle-end/22201
c84f4042 1312 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
7b98c16f
SZ
1313 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
1314 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
1315 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
1316 (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
1317 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
c84f4042 1318 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
7b98c16f
SZ
1319 description string.
1320
b2583345
JJ
13212009-11-18 Jakub Jelinek <jakub@redhat.com>
1322
4f517dce
JJ
1323 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
1324 unnecessarily.
1325 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
1326
b2583345
JJ
1327 PR c++/3187
1328 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
1329 fields.
1330 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1331 prototypes.
1332 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
1333 cgraph_materialize_all_clones): Handle same_body aliases.
1334 * cgraph.c (cgraph_allocate_node): New function.
1335 (cgraph_create_node): Use it.
1336 (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
1337 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
1338 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1339 functions.
1340 * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
1341 (input_node): Stream in same_body aliases.
1342 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
1343 for same_body aliases.
1344 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
1345
a64333b7
IS
13462009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1347
1348 PR other/39888
1349 * config/darwin.h: Use the extension stub libraries to access
1350 current libgcc_s features.
1351
a83452e9
AO
13522009-11-18 Alexandre Oliva <aoliva@redhat.com>
1353
1354 PR debug/41926
1355 * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
1356 (vect_transform_loop): Call it.
1357
462b701b
AO
13582009-11-18 Alexandre Oliva <aoliva@redhat.com>
1359
1360 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
1361 released SSA names.
1362
a3201927
AO
13632009-11-18 Alexandre Oliva <aoliva@redhat.com>
1364
1365 PR debug/41888
1366 PR debug/41886
1367 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
1368 are ok.
1369 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
1370 (try_generate_gimple_bb): Skip debug stmts when finding data refs.
1371 * sese.c (sese_build_liveouts_bb): Skip debug stmts.
1372 (sese_bad_liveouts_use): New.
1373 (sese_reset_debug_liveouts_bb): New.
1374 (sese_build_liveouts): Use it.
1375 (rename_variables_in_stmt): Reset debug stmts rather than creating
1376 new vars for them.
1377 (expand_scalar_variable_stmt): Likewise.
1378
d785e46f
AO
13792009-11-18 Alexandre Oliva <aoliva@redhat.com>
1380
1381 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
1382 (df_ref_remove): Likewise.
1383
d1725344
JH
13842009-11-17 Jan Hubicka <jh@suse.cz>
1385
1386 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
1387 info.
1388
37740cd3
EB
13892009-11-17 Eric Botcazou <ebotcazou@adacore.com>
1390
1391 * toplev.c (process_options): Remove dead code.
1392 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
1393
a5ac2cdf
RAE
13942009-11-17 Rafael Avila de Espindola <espindola@google.com>
1395
1396 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
1397 nodes.
1398
5456cefc
UW
13992009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1400
1401 PR tree-optimization/41857
1402 * tree-ssa-address.c (move_hint_to_base): Use void pointer to
1403 TYPE's address space instead of pointer to TYPE.
1404
263839d3
UW
14052009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1406
1407 * reload.c (find_reloads_address): Fix typo.
1408
6ca19a97
UW
14092009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1410
1411 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
1412 registers in leaf functions if possible.
1413
73d2e138
MK
14142009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1415
1416 * config/m68k/m68k-devices.def: Add MCF5441x family.
1417
f8754107
JH
14182009-11-17 Jan Hubicka <jh@suse.cz>
1419
1420 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
1421 removed node.
1422 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
1423
aaf5d6c0
UB
14242009-11-17 Uros Bizjak <ubizjak@gmail.com>
1425
1426 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
1427 nest ior expressions.
1428 (x86_64_szext_nonmemory_operand): Ditto.
1429 (call_insn_operand): Ditto.
1430
efd0b0d3
AO
14312009-11-16 Alexandre Oliva <aoliva@redhat.com>
1432
1433 * stmt.c (expand_asm_stmt): Get locus from stmt.
1434
f8981d1c
AO
14352009-11-16 Alexandre Oliva <aoliva@redhat.com>
1436
1437 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
1438 Create the decl label for the new dest block on demand. Require
1439 a fallthrough edge if no asm labels were redirected.
1440
a81f2330
UB
14412009-11-16 Uros Bizjak <ubizjak@gmail.com>
1442
1443 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
1444 operand 1 predicate.
1445 (cstoresi4): Ditto for operand 2.
1446 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
1447 patterns using SDWIM mode iterator.
1448 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
1449 using SWIM mode iterator.
1450 (cmpdi_1): Rename from cmpdi_1_rex64.
1451 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
1452 SWI48 mode iterator.
14c27152
UB
1453 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
1454 using SWI mode iterator.
a81f2330
UB
1455 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
1456 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
1457 (*cmpqi_ext_3_insn): Make private.
1458 (*cmpqi_ext_3_insn_rex64): Make private.
1459 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
1460 * config/i386/predicates.md (cmpsi_operand): Remove.
1461
6ed126e6
PB
14622009-11-16 Paul Brook <paul@codesourcery.com>
1463
1464 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
1465 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
1466
0d63a740
JH
14672009-11-14 Jan Hubicka <jh@suse.cz>
1468
a81f2330
UB
1469 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
1470 ENTRY_BLOCK_PTR.
1471 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
1472 zero out all callees.
1473 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
1474 frequency and count match.
0d63a740
JH
1475 * ipa-inline.c (update_noncloned_frequencies): New function.
1476 (cgraph_clone_inlined_nodes): Use it.
1477 * tree-inline.c (copy_bb): Fix frequency scaling; output
1478 diagnostic on frequency mismatches to dump file.
1479 (initialize_cfun): Do not scale frequency; fix count scaling;
a81f2330
UB
1480 initialize entry and exit block frequencies; copy profile info.
1481 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
0d63a740
JH
1482 (copy_body): Use frequency_scale as argument.
1483 (expand_call_inline): Compute frequency scale and output diagnostic
1484 to dump file.
1485 (delete_unreachable_blocks_update_callgrah): Remove checking that
1486 has to be done after edge redirection.
1487 (tree_function_versioning): Update initialize_cfun and copy_body call.
1488
0e3776db
JH
14892009-11-14 Jan Hubicka <jh@suse.cz>
1490
1491 * cgraph.c (cgraph_release_function_body): Update use of
1492 ipa_transforms_to_apply.
1493 (cgraph_remove_node): Remove ipa_transforms_to_apply.
1494 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
1495 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
1496 copied body.
1497 (cgraph_materialize_clone): Remove original if dead.
1498 * lto-streamer-in.c (lto_read_body): Remove FIXME and
1499 ipa_transforms_to_apply hack.
1500 * function.h (struct function): Add ipa_transforms_to_apply.
1501 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
1502 * tree-inline.c (copy_bb): Update sanity check.
1503 (initialize_cfun): Do not copy ipa_transforms_to_apply.
1504 (expand_call_inline): remove dead clone originals.
1505 (tree_function_versioning): Merge transformation queues.
1506 * passes.c (add_ipa_transform_pass): Remove.
1507 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
1508 tracking.
1509 (execute_all_ipa_transforms): Update.
1510 (execute_one_pass): Update.
1511
aaf5d6c0 15122009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
a212a5d4
AH
1513
1514 PR target/21078, 21080
1515 * config/avr/avr.c (avr_return_addr_rtx): New function for
1516 builtin_return_address.
1517 (expand_prologue): Calculate stack usage.
1518 (avr_asm_function_end_prologue): Output stack size and offset label.
1519 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
1520 (machine_function): Add stack_usage.
1521 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
1522
7ae62237
AS
15232009-11-14 Anatoly Sokolov <aesok@post.ru>
1524
1525 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
1526 new 'outgoing' argument.
1527 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
1528 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
a81f2330 1529 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
7ae62237
AS
1530 iq2000_function_value_regno_p.
1531 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1532 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
1533 Declare.
1534
cfc25c74
RE
15352009-11-14 Richard Earnshaw <rearnsha@arm.com>
1536
282cac16 1537 PR target/42031
cfc25c74
RE
1538 * arm.md (adddi_sesidi_di): Place tied contraint first.
1539 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
1540 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
1541 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
1542 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
1543 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
1544 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
1545 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
1546 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
1547 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
1548
618cc62e
UB
15492009-11-14 Uros Bizjak <ubizjak@gmail.com>
1550
1551 * config/i386/predicates.md (call_register_no_elim_operand):
1552 New predicate. Reject stack register as valid call operand
1553 for 32bit targets.
1554 (call_insn_operand): Use call_register_no_elim_operand.
1555
08d4cc33
RH
15562009-11-13 Richard Henderson <rth@redhat.com>
1557
1558 * function.c (stack_protect_prologue): Don't bypass expand_expr
1559 for stack_protect_guard and guard_decl.
1560 (stack_protect_epilogue): Likewise.
1561
589520b6
JH
15622009-11-13 Jan Hubicka <jh@suse.cz>
1563
1564 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
1565 when to PUBLIC is set.
1566
2b32c27d
JJ
15672009-11-13 Jakub Jelinek <jakub@redhat.com>
1568
1569 PR middle-end/42029
1570 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
1571 tmp_load if needed.
1572
8410737a
UB
15732009-11-13 Uros Bizjak <ubizjak@gmail.com>
1574
1575 PR target/41900
2b32c27d
JJ
1576 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
1577 *call_value_1): Use "lsm" as operand 1 constraint.
8410737a
UB
1578 * config/i386/predicates.md (call_insn_operand): Depend on
1579 index_register_operand to avoid %esp register.
1580
15812009-11-13 Uros Bizjak <ubizjak@gmail.com>
1582
1583 Revert:
1584 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
1585
1586 PR target/41900
1587 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
1588 (TARGET_CALL_ESP): New define.
1589 * config/i386/i386.c (initial_ix86_tune_features): Initialize
1590 X86_ARCH_CALL_ESP.
1591 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
1592 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
1593 *call_1, *call_value_pop_1 and *call_value_1. Depend on
1594 TARGET_CALL_ESP.
1595 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
1596 New patterns, use "lsm" as operand 1 constraint.
1597 * config/i386/predicates.md (call_insn_operand): Depend on
1598 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
1599
d7f1df66
JM
16002009-11-13 Jason Merrill <jason@redhat.com>
1601
1602 PR debug/26965
1603 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
1604 Don't emit a second declaration at any scope.
1605
268bab85
AB
16062009-11-13 Andrey Belevantsev <abel@ispras.ru>
1607
8410737a
UB
1608 PR rtl-optimization/41697
1609 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
1610 a conditional jump has a single successor.
268bab85 1611
bcf33775
AB
16122009-11-13 Andrey Belevantsev <abel@ispras.ru>
1613
1614 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
1615 allocate reg_last when in case lazy_reg_last is true.
1616 (init_deps_reg_last): New.
1617 (free_deps): When max_reg is 0, this context is already freed.
1618 * sched-int.h (init_deps_reg_last): Export.
1619 (init_deps): Update prototype.
1620 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
1621 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
1622 * ddg.c (build_intra_loop_deps): Likewise.
1623 * sel-sched-ir.c (copy_deps_context, create_deps_context,
1624 reset_deps_context, deps_init_id): Likewise.
1625 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
1626 (free_data_for_scheduled_insn): New, break down from ...
1627 (free_first_time_insn_data): ... here.
1628 (has_dependence_p): Allocate reg_last now, when it is needed.
1629 (extend_insn_data): When maximal LUID is big enough, allocate
1630 per-insn data in smaller chunks.
1631 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
1632 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
8410737a
UB
1633 in scheduled insn.
1634
0f032845
UB
16352009-11-13 Uros Bizjak <ubizjak@gmail.com>
1636
1637 * config/i386/i386.md (call_value): Fix comment.
1638 (sibcall_value): Ditto.
1639
eca9d807
EB
16402009-11-13 Eric Botcazou <ebotcazou@adacore.com>
1641
1642 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
1643 (MD_FROB_UPDATE_CONTEXT): Define.
1644
3a2f6fac 16452009-11-12 Eric Botcazou <ebotcazou@adacore.com>
0f032845 1646 Laurent GUERBY <laurent@guerby.net>
3a2f6fac
EB
1647
1648 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
1649 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
1650 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
1651
c8f59bc8
JH
16522009-11-12 Jan Hubicka <jh@suse.cz>
1653
3a2f6fac
EB
1654 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
1655 and clear DECL_COMMON on localized declarations.
c8f59bc8 1656
9d324dde
BS
16572009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
1658
1659 PR rtl-opt/38582
1660 * regrename.c (struct du_head): New structure; some elements moved
1661 from...
1662 (struct du_chain): ... this one.
1663 (open_chains, closed_chains): Now of type struct du_head *.
1664 (do_replace): Accept du_head argument, not du_chain. All callers
1665 changed. Modified code to match new data structures.
1666 (build_def_use): Return a list of du_head structures. Modified code
1667 to match new data structures.
1668 (dump_def_use_chain): Accept du_head argument, not du_chain. All
1669 callers changed. Modified code to match new data structures.
1670 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
1671 callers changed. Modified code to match new data structures.
1672 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
1673 Allocate a du_head structure as well as a du_chain when creating a
1674 new chain. Modified other code to match new data structures.
1675
9feed216 16762009-11-12 Jan Hubicka <jh@suse.cz>
a8289259
JH
1677
1678 * cgraph.h (varpool_node_name): Declare.
9feed216
EB
1679 * cgraphunit.c (process_function_and_variable_attributes): Set
1680 force_output flag on used variables.
0f032845
UB
1681 * ipa.c (function_and_variable_visibility): Dump externally visible
1682 and needed variables.
a8289259
JH
1683 * varpool.c (varpool_node_name): Export.
1684 (decide_is_variable_needed): Check COMDAT for externally visible vars;
1685 ignore needed flag.
1686
9feed216 16872009-11-12 Uros Bizjak <ubizjak@gmail.com>
8a1eb57b
UB
1688
1689 PR middle-end/41930
1690 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
1691 processing if XEXP (x, i) is NULL.
1692
fcc993f6
JH
16932009-11-12 Jan Hubicka <jh@suse.cz>
1694
1695 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
1696 imply PUBLIC || EXTERNAL.
1697
ae761c45
AH
16982009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
1699
1700 PR middle-end/41440
1701 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
1702 single successor block, ending with jump created by RTL expander.
8410737a 1703
62a0a52e
JH
17042009-11-11 Jan Hubicka <jh@suse.cz>
1705
1706 PR middle-end/41729
1707 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
1708 and WEAK variables at -fwhole-program.
1709
1710 PR middle-end/41735
1711 * ipa.c (whole_program_function_and_variable_visility): COMDAT
1712 functions/variables are not needed even if they are externally visible.
1713
811232fe
JH
17142009-11-11 Jan Hubicka <jh@suse.cz>
1715
1716 (patch by Richard Guenther)
1717 * lto-streamer-out.c (output_function): Output head of argument list
1718 earlier.
1719 * lto-streamer-in.c (input_function): Re-map arguments into merged
1720 declaration.
1721
0bc1b77f
JH
17222009-11-11 Jan Hubicka <jh@suse.cz>
1723
1724 * lto-cgraph.c: Include gcov-io.h
1725 (output_profile_summary): New function.
1726 (output_cgraph): Use it.
1727 (input_profile_summary): New function.
1728 (input_cgraph): Use it.
1729 * coverage.c (build_ctr_info_value): Use varpool; initalize
1730 DECL_ASSEMBLER_NAME.
1731 (create_coverage): Likewise.
1732 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
1733 (tree_init_edge_profiler): Likewise.
1734 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
1735
17e7cb85
KT
17362009-11-11 Kai Tietz <kai.tietz@onevision.com>
1737
8a1eb57b 1738 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
17e7cb85
KT
1739 * c-pragma.c (def_pragma_macro_value): Likewise.
1740 (def_pragma_macro): Likewise.
1741 (pushed_macro_table): Likewise.
8a1eb57b
UB
1742 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
1743 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
17e7cb85 1744
110532c8 17452009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
8a1eb57b 1746
110532c8
BS
1747 * doc/plugins.texi (Registering custom attributes): section
1748 renamed as (Registering custom attributes or pragmas).
1749 Mentions custom attributes & pragmas, and c_register_pragma, with
1750 a small example.
1751 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
1752 pragmas.
1753 * doc/extend.texi (Function Attributes): Mentions that plugin can
1754 provide their attributes.
1755
9feed216 17562009-11-11 Jon Beniston <jon@beniston.com>
aa4945c1 1757
8a1eb57b
UB
1758 * config.gcc: Add lm32 elf and uclinux targets.
1759 * config/lm32: New directory.
1760 * config/lm32/lm32.c: New file.
1761 * config/lm32/lm32.h: New file.
1762 * config/lm32/lm32.md: New file.
1763 * config/lm32/lm32.opt: New file.
1764 * config/lm32/lm32-protos.h: New file.
1765 * config/lm32/constraints.md: New file.
1766 * config/lm32/predicates.md: New file.
1767 * config/lm32/sfp-machine.h: New file.
1768 * config/lm32/t-fprules-softfp: New file.
1769 * config/lm32/uclinux-elf.h: New file.
1770 * doc/invoke.texi: Document lm32 options.
1771 * doc/contrib.texi: Document lm32 porter.
1772 * doc/install.texi: Document lm32 targets.
aa4945c1 1773
05d3aa37
MJ
17742009-11-11 Martin Jambor <mjambor@suse.cz>
1775
1776 PR lto/41932
1777 * ipa-prop.c (ipa_update_after_lto_read): Call
1778 ipa_check_create_node_params and ipa_check_create_edge_args. Also
1779 call ipa_initialize_node_params instead of ipa_populate_param_decls.
1780
814a4c3b
DJ
17812009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
1782
1783 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
1784 (neon_expand_vector_init): Use them. Also handle non-constant
1785 vectors with identical elements and vectors with only one
1786 non-constant element.
1787 (arm_print_operand): Handle 'y' modifier.
1788 * config/arm/arm-protos.h (neon_make_constant): Declare.
1789 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
1790 patterns. Use VX instead of VDQW for the first one. Allow
1791 a VFP alternative and V32 modes for the second one.
1792 * config/arm/neon.ml (shape_elt): Add Alternatives.
1793 (ops): Use Alternatives for vdup lane instructions.
1794 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
1795 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
1796
40f73786
DJ
17972009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
1798
1799 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
1800 operands.
1801 (movti, mov<mode>): Call force_reg on one operand if required.
1802 * config/arm/vec-common.md (mov<mode>): Likewise.
1803
4aef21c8
DJ
18042009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
1805
1806 * config/arm/arm.c (arm_override_options): Enable scheduling for
1807 Thumb-2.
1808
c35af30f
EB
18092009-11-10 Eric Botcazou <ebotcazou@adacore.com>
1810
1811 PR target/10127
1812 PR ada/20548
1813 * expr.h (anti_adjust_stack_and_probe): Declare.
1814 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
1815 parameter and rewrite head comment.
1816 (allocate_dynamic_stack_space): Adjust call to above function.
1817 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
1818
1819 * tree.h (dwarf2out_args_size): Delete.
1820 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
1821 (dwarf2out_args_size_adjust): Delete prototype and move around.
1822 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
1823 ACCUMULATE_OUTGOING_ARGS targets.
1824
66695571
EB
18252009-11-10 Eric Botcazou <ebotcazou@adacore.com>
1826
1827 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
1828 DECL_SIZE of DECL_RESULT before evaluating it.
1829
08d19889
KG
18302009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1831
1832 PR tree-optimization/41987
1833 * fold-const.c (const_binop): Avoid using fold_buildN().
1834
2c5721d9
MJ
18352009-11-10 Martin Jambor <mjambor@suse.cz>
1836
1837 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
1838 (execute_all_ipa_stmt_fixups): Declare.
1839 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
1840 * ipa-inline.c (pass_ipa_inline): Likewise.
1841 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
1842 * ipa-reference.c (pass_ipa_reference): Likewise.
1843 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
1844 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
1845 (pass_ipa_lto_finish_out): Likewise.
1846 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
1847 * passes.c (execute_ipa_stmt_fixups): New function.
1848 (execute_all_ipa_stmt_fixups): New function.
1849 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
1850
949fa04c
EB
18512009-11-10 Eric Botcazou <ebotcazou@adacore.com>
1852
1853 PR ada/20548
1854 * explow.c (probe_stack_range): Fix typo.
1855 * config/sparc/sparc.md (probe_stack): New expander.
1856
633f54d0
DK
18572009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
1858
1859 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
1860
6e7e763e
JM
18612009-11-09 Jason Merrill <jason@redhat.com>
1862
1863 * gdbinit.in (pgq): New function for printing gimple sequence.
1864
e0dc3601 18652009-11-09 Paul Brook <paul@codesourcery.com>
8a1eb57b
UB
1866 Daniel Jacobowitz <dan@codesourcery.com>
1867 Sandra Loosemore <sandra@codesourcery.com>
e0dc3601
PB
1868
1869 * doc/extend.texi (Half-Precision): Update wording to reflect
1870 that there are now multiple -mfpu options that enable fp16
1871 hardware support.
1872 * doc/invoke.texi: Update list of ARM -mfpu= options.
1873 * config.gcc: Update ARM --with-fpu option list.
1874 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
1875 vfpv3xd and vfpv3xd-fp16.
1876 (use_vfp_abi): New function.
1877 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
1878 when undesirable.
1879 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
1880 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
8a1eb57b
UB
1881 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
1882 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
1883 provides them.
e0dc3601
PB
1884 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
1885 NEON.
1886 (arm_print_operand): Handle 'p' modifier.
1887 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
1888 TARGET_FP16.
1889 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
1890 (TARGET_FP16): Define.
1891 * config/arm/vfp.md: Disable double-precision patterns if the FPU
1892 does not provide them.
1893 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
1894 double-precision values on a single-precision FPU.
8a1eb57b
UB
1895 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
1896 double-precision constants.
e0dc3601
PB
1897 (movhf_vfp_neon): New pattern (was movhf_vfp).
1898 (movhf_vfp): Remove NEON instructions.
1899 * config/arm/constraints.md: Add new "Dy" constraint for
1900 double-precision constants. Update description of "Dv".
1901 * config/arm/arm.md: Disable double-precision patterns if the FPU
1902 does not provide them
1903
2bf17308
JJ
19042009-11-09 Jakub Jelinek <jakub@redhat.com>
1905
1906 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
1907 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
1908 diagnostics.
1909
5938f74d
L
19102009-11-08 H.J. Lu <hongjiu.lu@intel.com>
1911
1912 * collect2.c (main): Search PLUGIN_LD for plugin linker.
1913
1914 * configure.ac (--with-plugin-ld): New. Default to ld.
1915 * configure: Regenerated.
1916 * config.in: Likewise.
1917
1918 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
1919 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
1920
9feed216 19212009-11-08 Jonathan Gray <jsg@openbsd.org>
f8535154
JG
1922
1923 * config/openbsd-stdint.h: Change to reflect what
1924 c_common_nodes_and_builtins expects.
1925
3ab084fa
PC
19262009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
1927
1928 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
1929
2eea716d
JJ
19302009-11-08 Jakub Jelinek <jakub@redhat.com>
1931
1932 PR target/41985
1933 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
1934 function contains at least one local dynamic name.
1935 (print_operand) <case '&'>: Instead output operand lossage diagnostics
1936 here if that happens.
1937
e0a42b0f
ZC
19382009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
1939 Joern Rennecke <amylaar@spamcop.net>
1940
1941 * cfgrtl.c (pass_free_cfg): Add pass name.
1942 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
1943 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
1944 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
1945 * df-core.c (pass_df_initialize_no_opt): Likewise.
1946 * except.c (pass_rtl_eh): Likewise.
1947 * function.c (pass_init_function, pass_leaf_regs): Likewise.
1948 * gcse.c (pass_rtl_pre): Change pass name.
1949 * passes.c (pass_postreload): Add pass name.
1950 (make_pass_instance): Don't use duplicate-tracking logic for
1951 names starting with '*'.
1952 (next_pass_1): Assert that pass has a name.
1953 (register_one_dump_file): If there is an space in the name,
1954 skip past it.
1955 * predict.c (pass_strip_predict_hints): Add pass name.
1956 * reg-stack.c (pass_stack_regs): Likewise.
1957 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
1958 * tree-cfg.c (pass_warn_function_return,
1959 pass_warn_function_noreturn): Add pass name.
1960 * tree-dfa.c (pass_referenced_vars): Likewise.
1961 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
1962 Fix whitespace before comment.
1963 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
1964 (pass_init_datastructures): Add pass name.
1965 * tree-ssa-loop.c (pass_record_bounds): Likewise.
1966 * tree-ssa.c (pass_early_warn_uninitialized,
1967 pass_late_warn_uninitialized): Likewise.
1968 * tree.c (pass_ipa_free_lang_data): Likewise.
1969 * doc/passes.texi (pass manager): Document how to disambiguate
1970 pass names.
1971
64274683
PB
19722009-11-08 Paolo Bonzini <bonzini@gnu.org>
1973
1974 * df-problems.c: Fix documentation for forward simulation of LR.
1975 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
1976 (df_simulate_finalize_forwards): Remove.
1977 * df.h (df_simulate_finalize_forwards): Remove.
1978
379c6f48
RG
19792009-11-08 Richard Guenther <rguenther@suse.de>
1980
1981 * tree-ssa-structalias.c (build_succ_graph): Properly make
1982 variables escape if they are stored to anything.
1983
eb149440
RG
19842009-11-08 Richard Guenther <rguenther@suse.de>
1985
1986 PR rtl-optimization/41928
1987 * loop-invariant.c (free_loop_data): If we didn't allocate
1988 loop data do not try to free it.
1989
b5fcfe89
JM
19902009-11-07 Jason Merrill <jason@redhat.com>
1991
1992 * tree.c (reconstruct_complex_type): Preserve attributes.
1993
de925a03
RG
19942009-11-07 Richard Guenther <rguenther@suse.de>
1995
1996 * tree-ssa-structalias.c (build_succ_graph): Feed stores
1997 to anything only to variables that can take pointers.
1998 (get_constraint_for_ssa_var): Properly exclude full
1999 variables from expanding.
2000 (first_vi_for_offset): Avoid overflow in arithmetic.
2001 (first_or_preceding_vi_for_offset): Likewise.
2002 (count_num_arguments): Fix implementation.
2003 (gate_ipa_pta): Do not run when not optimizing.
2004
451409e4
DB
20052009-11-07 David Binderman <dcb314@hotmail.com>
2006
2007 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
2008 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
2009 set but not used variables.
3ab084fa 2010 (apply_args_reg_offset): Comment out as unused.
451409e4
DB
2011 * calls.c (flags_from_decl_or_type): Likewise.
2012 * genautomata.c (check_regexp_units_distribution): Likewise.
2013
1a62cb3b
UB
20142009-11-07 Uros Bizjak <ubizjak@gmail.com>
2015
2016 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
2017 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
2018 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
2019 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
2020 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
2021 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
2022 operand alternatives.
2023
79af7c1f
MM
20242009-11-06 Michael Matz <matz@suse.de>
2025
2026 PR middle-end/41963
2027 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
2028 of a potential reciprocal to really be reciprocals.
2029
d32599a6
JJ
20302009-11-06 Jakub Jelinek <jakub@redhat.com>
2031
b169fe9d
JJ
2032 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
2033 lwpintrin.h after immintrin.h.
2034 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
2035 typedefs.
2036
d32599a6
JJ
2037 PR middle-end/41935
2038 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
2039 or non-constant index, allow index one past the last element and
2040 allow exceeding array bound in arrays that might be used as flexible
2041 array members.
2042
7a14a9da
RH
20432009-11-05 Richard Henderson <rth@redhat.com>
2044
2045 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
2046
d79f3032
PB
20472009-11-05 Paul Brook <paul@codesourcery.com>
2048
2049 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
2050 (arm_fpu_desc): New.
2051 (all_fpus): Add FPU details.
2052 (fp_model_for_fpu): Remove.
2053 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
2054 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
2055 (arm_file_start): Use arm_fpu_desc.
2056 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
2057 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
2058 arm_fpu_desc.
2059 (TARGET_FPA_EMU2): Define.
2060 (arm_fp_model, fputype, arm_fpu_tune): Remove.
2061 (vfp_reg_type, arm_fpu_desc): New.
2062 * config/arm/arm.md (attr fpu): Simplify.
2063 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
2064 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
2065 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
2066 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
2067 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
2068
79e22ff8
MM
20692009-11-05 Michael Matz <matz@suse.de>
2070
2071 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
2072 on TARGET_RECIP.
2073 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
2074 for 1/sqrtf.
2075
5ab8b6b5
JM
20762009-11-04 Jason Merrill <jason@redhat.com>
2077
2078 PR c++/36912
2079 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
2080 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
2081 (output_constant): Avoid crash after error.
2082
30a20e97
MJ
20832009-11-05 Martin Jambor <mjambor@suse.cz>
2084
2085 * tree-sra.c (struct access): Changed comment of next_sibling field.
2086 (analyze_modified_params): Loop over accesses of a group rather than
2087 over all with the ame base, pass a common bitmap to
2088 walk_aliased_vdefs.
2089 (unmodified_by_ref_scalar_representative): Build link lists of
2090 accesses of a group.
2091 (splice_param_accesses): Likewise.
2092
4f2da32b
KZ
20932009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
2094
2095 * df-scan.c (df-uses-record): Add case zero_extract of mem.
8a1eb57b 2096
35a07c37
EB
20972009-11-04 Eric Botcazou <ebotcazou@adacore.com>
2098
2099 PR target/10127
2100 PR ada/20548
f96b1895 2101 * config/i386/i386.md (probe_stack): New expander.
35a07c37
EB
2102 (logical operation peepholes): Do not split stack checking probes.
2103
3e901069
HJ
21042009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
2105 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2106
2107 * doc/invoke.texi (-mlwp): Add documentation.
2108 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
2109 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
2110 (x86_64-*-*): Ditto.
2111 * config/i386/lwpintrin.h: New file, provide x86 compiler
2112 intrinisics for LWP.
2113 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
2114 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
2115 * config/i386/i386-c.c (ix86_target_macros_internal): Check
8a1eb57b 2116 ISA_FLAG for LWP.
3e901069
HJ
2117 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
2118 * config/i386/i386.opt (-mlwp): New switch for LWP support.
2119 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
8a1eb57b 2120 (OPTION_MASK_ISA_LWP_UNSET): New.
3e901069
HJ
2121 (ix86_handle_option): Handle -mlwp.
2122 (isa_opts): Handle -mlwp.
2123 (enum pta_flags): Add PTA_LWP.
2124 (override_options): Add LWP support.
2125 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
2126 (IX86_BUILTIN_LLWPCB32): Ditto.
2127 (IX86_BUILTIN_LLWPCB64): Ditto.
2128 (IX86_BUILTIN_SLWPCB16): Ditto.
2129 (IX86_BUILTIN_SLWPCB32): Ditto.
2130 (IX86_BUILTIN_SLWPCB64): Ditto.
2131 (IX86_BUILTIN_LWPVAL16): Ditto.
2132 (IX86_BUILTIN_LWPVAL32): Ditto.
2133 (IX86_BUILTIN_LWPVAL64): Ditto.
2134 (IX86_BUILTIN_LWPINS16): Ditto.
2135 (IX86_BUILTIN_LWPINS32): Ditto.
2136 (IX86_BUILTIN_LWPINS64): Ditto.
2137 (enum ix86_special_builtin_type): Add LWP intrinsic support.
2138 (builtin_description): Ditto.
2139 (ix86_init_mmx_sse_builtins): Ditto.
2140 (ix86_expand_special_args_builtin): Ditto.
8a1eb57b 2141 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
3e901069
HJ
2142 LWP support.
2143 (UNSPEC_SLWP_INTRINSIC): Ditto.
2144 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
2145 (UNSPECV_LWPINS_INTRINSIC): Ditto.
2146 (lwp_llwpcbhi1): New lwp pattern.
2147 (lwp_llwpcbsi1): Ditto.
2148 (lwp_llwpcbdi1): Ditto.
2149 (lwp_slwpcbhi1): Ditto.
2150 (lwp_slwpcbsi1): Ditto.
2151 (lwp_slwpcbdi1): Ditto.
2152 (lwp_lwpvalhi3): Ditto.
2153 (lwp_lwpvalsi3): Ditto.
2154 (lwp_lwpvaldi3): Ditto.
2155 (lwp_lwpinshi3): Ditto.
2156 (lwp_lwpinssi3): Ditto.
2157 (lwp_lwpinsdi3): Ditto.
8a1eb57b 2158
0e159e0f 21592009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
8a1eb57b 2160 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
0e159e0f
AP
2161
2162 PR rtl-opt/41833
2163 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
2164 a vec_duplicate.
2165
7e9dc421 21662009-11-04 Richard Guenther <rguenther@suse.de>
8a1eb57b
UB
2167 Rafael Avila de Espindola <espindola@google.com>
2168
7e9dc421 2169 * gcc.c (process_command): Handle arguments name@offset.
0e159e0f 2170
43a8b705
HJ
21712009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
2172 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8a1eb57b 2173
43a8b705
HJ
2174 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
2175 (x86_64-*-*): Ditto.
2176 * config/i386/xopintrin.h: New file, provide common x86 compiler
2177 intrinisics for XOP.
2178 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
2179 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
2180 * config/i386/i386-c.c(ix86_target_macros_internal): Check
8a1eb57b 2181 ISA_FLAG for XOP.
43a8b705
HJ
2182 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
2183 * config/i386/i386.opt (-mxop): New switch for XOP support.
2184 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
2185 (UNSPEC_XOP_TRUEFALSE)
2186 (UNSPEC_XOP_PERMUTE)
2187 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
2188 (PPERM_*): New constants for vpperm instruction.
2189 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
2190 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
8a1eb57b 2191 (OPTION_MASK_ISA_XOP_UNSET): New.
1a62cb3b 2192 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
43a8b705
HJ
2193 (ix86_handle_option): Handle -mxop.
2194 (isa_opts): Handle -mxop.
2195 (enum pta_flags): Add PTA_XOP.
2196 (override_options): Add XOP support.
2197 (print_operand): Add code for XOP compare instructions.
2198 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
2199 (ix86_expand_int_vcond): Extend for XOP compare instruction.
2200
2201 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
2202 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
2203 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
2204 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
2205 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
2206 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
2207 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
2208
2209 (IX86_BUILTIN_VPCMOV256): Ditto.
2210 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
2211 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
2212 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
2213 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
2214 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
2215 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
2216
2217 (IX86_BUILTIN_VPPERM): Ditto.
2218
2219 (IX86_BUILTIN_VPMACSSWW): Ditto.
2220 (IX86_BUILTIN_VPMACSWW): Ditto.
2221 (IX86_BUILTIN_VPMACSSWD): Ditto.
2222 (IX86_BUILTIN_VPMACSWD): Ditto.
2223 (IX86_BUILTIN_VPMACSSDD): Ditto.
2224 (IX86_BUILTIN_VPMACSDD): Ditto.
2225 (IX86_BUILTIN_VPMACSSDQL): Ditto.
2226 (IX86_BUILTIN_VPMACSSDQH): Ditto.
2227 (IX86_BUILTIN_VPMACSDQL): Ditto.
2228 (IX86_BUILTIN_VPMACSDQH): Ditto.
2229 (IX86_BUILTIN_VPMADCSSWD): Ditto.
2230 (IX86_BUILTIN_VPMADCSWD): Ditto.
2231
2232 (IX86_BUILTIN_VPHADDBW): Ditto.
2233 (IX86_BUILTIN_VPHADDBD): Ditto.
2234 (IX86_BUILTIN_VPHADDBQ): Ditto.
2235 (IX86_BUILTIN_VPHADDWD): Ditto.
2236 (IX86_BUILTIN_VPHADDWQ): Ditto.
2237 (IX86_BUILTIN_VPHADDDQ): Ditto.
2238 (IX86_BUILTIN_VPHADDUBW): Ditto.
2239 (IX86_BUILTIN_VPHADDUBD): Ditto.
2240 (IX86_BUILTIN_VPHADDUBQ): Ditto.
2241 (IX86_BUILTIN_VPHADDUWD): Ditto.
2242 (IX86_BUILTIN_VPHADDUWQ): Ditto.
2243 (IX86_BUILTIN_VPHADDUDQ): Ditto.
2244 (IX86_BUILTIN_VPHSUBBW): Ditto.
2245 (IX86_BUILTIN_VPHSUBWD): Ditto.
2246 (IX86_BUILTIN_VPHSUBDQ): Ditto.
2247
2248 (IX86_BUILTIN_VPROTB): Ditto.
2249 (IX86_BUILTIN_VPROTW): Ditto.
2250 (IX86_BUILTIN_VPROTD): Ditto.
2251 (IX86_BUILTIN_VPROTQ): Ditto.
2252 (IX86_BUILTIN_VPROTB_IMM): Ditto.
2253 (IX86_BUILTIN_VPROTW_IMM): Ditto.
2254 (IX86_BUILTIN_VPROTD_IMM): Ditto.
2255 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
2256
2257 (IX86_BUILTIN_VPSHLB): Ditto.
2258 (IX86_BUILTIN_VPSHLW): Ditto.
2259 (IX86_BUILTIN_VPSHLD): Ditto.
2260 (IX86_BUILTIN_VPSHLQ): Ditto.
2261 (IX86_BUILTIN_VPSHAB): Ditto.
2262 (IX86_BUILTIN_VPSHAW): Ditto.
2263 (IX86_BUILTIN_VPSHAD): Ditto.
2264 (IX86_BUILTIN_VPSHAQ): Ditto.
2265
2266 (IX86_BUILTIN_VFRCZSS): Ditto.
2267 (IX86_BUILTIN_VFRCZSD): Ditto.
2268 (IX86_BUILTIN_VFRCZPS): Ditto.
2269 (IX86_BUILTIN_VFRCZPD): Ditto.
2270 (IX86_BUILTIN_VFRCZPS256): Ditto.
2271 (IX86_BUILTIN_VFRCZPD256): Ditto.
2272
2273 (IX86_BUILTIN_VPCOMEQUB): Ditto.
2274 (IX86_BUILTIN_VPCOMNEUB): Ditto.
2275 (IX86_BUILTIN_VPCOMLTUB): Ditto.
2276 (IX86_BUILTIN_VPCOMLEUB): Ditto.
2277 (IX86_BUILTIN_VPCOMGTUB): Ditto.
2278 (IX86_BUILTIN_VPCOMGEUB): Ditto.
2279 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
2280 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
2281
2282 (IX86_BUILTIN_VPCOMEQUW): Ditto.
2283 (IX86_BUILTIN_VPCOMNEUW): Ditto.
2284 (IX86_BUILTIN_VPCOMLTUW): Ditto.
2285 (IX86_BUILTIN_VPCOMLEUW): Ditto.
2286 (IX86_BUILTIN_VPCOMGTUW): Ditto.
2287 (IX86_BUILTIN_VPCOMGEUW): Ditto.
2288 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
2289 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
2290
2291 (IX86_BUILTIN_VPCOMEQUD): Ditto.
2292 (IX86_BUILTIN_VPCOMNEUD): Ditto.
2293 (IX86_BUILTIN_VPCOMLTUD): Ditto.
2294 (IX86_BUILTIN_VPCOMLEUD): Ditto.
2295 (IX86_BUILTIN_VPCOMGTUD): Ditto.
2296 (IX86_BUILTIN_VPCOMGEUD): Ditto.
2297 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
2298 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
2299
2300 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
2301 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
2302 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
2303 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
2304 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
2305 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
2306 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
2307 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
2308
2309 (IX86_BUILTIN_VPCOMEQB): Ditto.
2310 (IX86_BUILTIN_VPCOMNEB): Ditto.
2311 (IX86_BUILTIN_VPCOMLTB): Ditto.
2312 (IX86_BUILTIN_VPCOMLEB): Ditto.
2313 (IX86_BUILTIN_VPCOMGTB): Ditto.
2314 (IX86_BUILTIN_VPCOMGEB): Ditto.
2315 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
2316 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
2317
2318 (IX86_BUILTIN_VPCOMEQW): Ditto.
2319 (IX86_BUILTIN_VPCOMNEW): Ditto.
2320 (IX86_BUILTIN_VPCOMLTW): Ditto.
2321 (IX86_BUILTIN_VPCOMLEW): Ditto.
2322 (IX86_BUILTIN_VPCOMGTW): Ditto.
2323 (IX86_BUILTIN_VPCOMGEW): Ditto.
2324 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
2325 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
2326
2327 (IX86_BUILTIN_VPCOMEQD): Ditto.
2328 (IX86_BUILTIN_VPCOMNED): Ditto.
2329 (IX86_BUILTIN_VPCOMLTD): Ditto.
2330 (IX86_BUILTIN_VPCOMLED): Ditto.
2331 (IX86_BUILTIN_VPCOMGTD): Ditto.
2332 (IX86_BUILTIN_VPCOMGED): Ditto.
2333 (IX86_BUILTIN_VPCOMFALSED): Ditto.
2334 (IX86_BUILTIN_VPCOMTRUED): Ditto.
2335
2336 (IX86_BUILTIN_VPCOMEQQ): Ditto.
2337 (IX86_BUILTIN_VPCOMNEQ): Ditto.
2338 (IX86_BUILTIN_VPCOMLTQ): Ditto.
2339 (IX86_BUILTIN_VPCOMLEQ): Ditto.
2340 (IX86_BUILTIN_VPCOMGTQ): Ditto.
2341 (IX86_BUILTIN_VPCOMGEQ): Ditto.
2342 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
2343 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
2344
2345 (enum multi_arg_type): New enum for describing the various XOP
2346 intrinsic argument types.
2347 (bdesc_multi_arg): New table for XOP intrinsics.
2348 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
2349 (ix86_expand_multi_arg_builtin): New function for creating XOP
2350 intrinsics.
2351
2352 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
2353 (xop_pmacsww): Ditto.
2354 (xop_pmacssww): Ditto.
2355 (xop_pmacsdd): Ditto.
2356 (xop_pmacssdd): Ditto.
2357 (xop_pmacssdql): Ditto.
2358 (xop_pmacssdqh): Ditto.
2359 (xop_pmacsdql): Ditto.
2360 (xop_pmacsdql_mem): Ditto.
2361 (xop_mulv2div2di3_low): Ditto.
2362 (xop_pmacsdqh): Ditto.
2363 (xop_pmacsdqh_mem): Ditto.
2364 (xop_mulv2div2di3_high): Ditto.
2365 (xop_pmacsswd): Ditto.
2366 (xop_pmacswd): Ditto.
2367 (xop_pmadcsswd): Ditto.
2368 (xop_pmadcswd): Ditto.
2369 (xop_pcmov_<mode>): Ditto.
8a1eb57b 2370 (xop_pcmov_<mode>256): Ditto.
43a8b705
HJ
2371 (xop_phaddbw): Ditto.
2372 (xop_phaddbd): Ditto.
2373 (xop_phaddbq): Ditto.
2374 (xop_phaddwd): Ditto.
2375 (xop_phaddwq): Ditto.
2376 (xop_phadddq): Ditto.
2377 (xop_phaddubw): Ditto.
2378 (xop_phaddubd): Ditto.
2379 (xop_phaddubq): Ditto.
2380 (xop_phadduwd): Ditto.
2381 (xop_phadduwq): Ditto.
2382 (xop_phaddudq): Ditto.
2383 (xop_phsubbw): Ditto.
2384 (xop_phsubwd): Ditto.
2385 (xop_phsubdq): Ditto.
2386 (xop_pperm): Ditto.
2387 (rotl<mode>3): Ditto.
2388 (rotr<mode>3): Ditto.
2389 (xop_rotl<mode>3): Ditto.
2390 (xop_rotr<mode>3): Ditto.
2391 (vrotr<mode>3): Ditto.
2392 (vrotl<mode>3): Ditto.
2393 (xop_vrotl<mode>3): Ditto.
2394 (vlshr<mode>3): Ditto.
2395 (vashr<mode>3): Ditto.
2396 (vashl<mode>3
2397 (xop_ashl<mode>3): Ditto.
2398 (xop_lshl<mode>3): Ditto.
2399 (ashlv16qi3): Ditto.
2400 (lshlv16qi3): Ditto.
2401 (ashrv16qi3): Ditto.
2402 (ashrv2di3): Ditto.
2403 (xop_frcz<mode>2): Ditto.
2404 (xop_vmfrcz<mode>2): Ditto.
8a1eb57b 2405 (xop_frcz<mode>2256): Ditto.
43a8b705
HJ
2406 (xop_maskcmp<mode>3): Ditto.
2407 (xop_maskcmp_uns<mode>3): Ditto.
2408 (xop_maskcmp_uns2<mode>3): Ditto.
2409 (xop_pcom_tf<mode>3): Ditto.
2410
2411 * doc/invoke.texi (-mxop): Add documentation.
2412 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
8a1eb57b 2413
7d6ce94a
MM
24142009-11-03 Mark Mitchell <mark@codesourcery.com>
2415
2416 PR driver/11810
2417 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
2418 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
2419 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
2420
57f5eef0
RE
24212009-11-04 Richard Earnshaw <rearnsha@arm.com>
2422
2423 PR target/40835
2424 * arm.md (peephole2 patterns for move and compare): New.
2425
4003023f
NC
24262009-11-04 Nick Clifton <nickc@redhat.com>
2427
2428 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
2429 Make sure that it does not allow CONST_DOUBLEs.
2430 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
2431 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
2432 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
2433 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
2434 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
2435 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
2436 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
2437 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
2438 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
2439 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
2440 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
2441 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
2442 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
2443 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
2444 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
2445
92fcbf95
RB
24462009-11-04 Richard Guenther <rguenther@suse.de>
2447
2448 PR tree-optimization/41919
2449 * tree-vrp.c (test_for_singularity): Properly compare values.
2450
0cf7986c
RE
24512009-11-04 Revital Eres <eres@il.ibm.com>
2452
2453 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2454 Consider peeling for alignment only for stores and remove
2455 redundant assignment.
2456
db5e2d51
MK
24572009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
2458
2459 PR target/41302
2460 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
2461 (m68k_ok_for_sibcall_p): Handle different result return locations.
2462
e3b8749b
RG
24632009-11-04 Richard Guenther <rguenther@suse.de>
2464
2465 * c-opts.c (c_common_post_options): Move LTO option processing
2466 code ...
2467 * opts.c (decode_options): ... here.
2468
00ffc97d
JJ
24692009-11-04 Jakub Jelinek <jakub@redhat.com>
2470
2471 * c-common.c (fold_offsetof_1): Use %wd instead of
2472 HOST_WIDE_INT_PRINT_DEC.
2473
bfd47963
MR
24742009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
2475
2476 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
2477 __pic__ or __PIC__.
2478
45f68150
MR
24792009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
2480
2481 * config.gcc (vax-*-linux*): Keep the original contents of
2482 tmake_file while adding vax/t-linux.
2483
d809253a
EB
24842009-11-03 Eric Botcazou <ebotcazou@adacore.com>
2485
2486 PR target/10127
2487 PR ada/20548
2488 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
2489 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
2490 (STACK_CHECK_MOVING_SP): Likewise.
2491 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
2492 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
2493 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
2494 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
2495 Document PROBE_STACK.
2496 * explow.c (anti_adjust_stack_and_probe): New function.
2497 (allocate_dynamic_stack_space): Do not directly allocate space if
2498 STACK_CHECK_MOVING_SP, instead invoke above function.
2499 (emit_stack_probe): Handle probe_stack insn.
2500 (PROBE_INTERVAL): New macro.
2501 (STACK_GROW_OPTAB): Likewise.
2502 (STACK_GROW_OFF): Likewise.
2503 (probe_stack_range): Use Pmode and memory_address consistently. Fix
2504 loop condition in the small constant case. Rewrite in the general
2505 case to be immune to wraparounds. Make sure the address of probes
2506 is valid. Try to use [base + disp] addressing mode if possible.
2507 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
2508 checking is enabled and STACK_CHECK_MOVING_SP.
2509 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
2510 return 1 for volatile references to the stack pointer.
2511 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
2512 __builtin_alloca if stack checking is enabled.
2513 * unwind-dw2.c (uw_identify_context): Take into account whether the
2514 context is that of a signal frame or not.
2515 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
2516 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
2517
24d179b4
JJ
25182009-11-03 Jakub Jelinek <jakub@redhat.com>
2519
2520 PR rtl-optimization/41917
2521 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
2522 operand isn't known to be 0, return 1.
2523
791c344b
RS
25242009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2525
2526 * config/mips/mips.md: Fix typos.
2527
8d023933
RS
25282009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2529
2530 * doc/invoke.texi: Fix typo.
2531
156e4236
PB
25322009-11-03 Paul Brook <paul@codesourcery.com>
2533
2534 * config/arm/neon.ml (vectype): Add T_floatSF.
2535 (string_of_vectype): Ditto.
2536 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
2537 (deftypes): Use float for float32_t.
2538 * config/arm/arm_neon.h: Regenerate.
2539
9595a419
NC
25402009-11-03 Nick Clifton <nickc@redhat.com>
2541 Kevin Buettner <kevinb@redhat.com>
2542
2543 * config/rx/predicates.md (rx_store_multiple_vector): Reverse
2544 order of expected registers.
2545 (rx_load_multiple_vector): Likewise.
2546 (rx_rtsd_vector): Likewise.
2547 * config/rx/rx.c (rx_cpu_type): New variable.
2548 (rx_print_operand): Fix bug printing 64-bit constant values.
2549 (rx_emit_stack_pushm): Reverse order of pushed registers.
2550 (gen_rx_store_vector): Likewise.
2551 (is_fast_interrupt_func): Only accept "fast_interrupt" as the
2552 attribute name.
2553 (is_exception_func): Rename to is_interrupt_func and only accept
2554 "interrupt" as the attribute name.
2555 (rx_get_stack_layout): Use new function name.
2556 (rx_func_attr_inlinable): Likewise.
2557 (rx_attribute_table): Remove "exception".
2558 (rx_expand_prologue): If necessary push the accumulator register
2559 in the prologue of interrupt functions.
2560 (rx_expand_epilogue): If necessary pop the accumulator.
2561 (rx_builtins): Add RX_BUILTIN_MVTIPL.
2562 (rx_expand_builtin_stz): Remove.
2563 (rx_expand_builtin_mvtipl): New function.
2564 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
2565 (rx_expand_builtin): Likewise.
2566 (rx_enable_fpu): New variable.
2567 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
2568 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
2569 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed.
2570 (enum rx_cpu_types): Define.
2571 (ASM_SPEC): Pass -m32bit-doubles on to assembler.
2572 (INCOMING_FRAME_SP_OFFSET): Define.
2573 (ARG_POINTER_CFA_OFFSET): Define.
2574 (FRAME_POINTER_CFA_OFFSET): Define.
2575 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
2576 (ALLOW_RX_FPU_INSNS): Define.
2577 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
2578 fast_math_flags_set_p.
2579 (UNSPEC_BUILTIN_MVTIPL): Define.
2580 (revl): Rename to bswapsi2.
2581 (bswaphi2): New pattern.
0b94d8b2 2582 (mvtachi): Mark as volatile because it uses a register unknown to GCC.
9595a419
NC
2583 (mvtaclo): Likewise.
2584 (racw): Likewise.
2585 (mvtc): Remove clobber of cc0.
2586 (mvtcp): Delete.
2587 (opecp): Delete.
2588 * config/rx/rx.opt (mieee): Remove.
2589 (fpu): Add.
2590 (nofpu): Add.
2591 (mcpu=): Add.
2592 (patch=): Add.
2593 (msave-acc-in-interrupts): Add.
0b94d8b2 2594 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
9595a419
NC
2595 (MULTILIB_DIRS): Likewise.
2596 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
2597 * doc/extend.texi: Remove description of "exception" function
2598 attribute.
2599 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
2600 -msave-acc-in-interrupts options.
2601
b56973d1
RG
26022009-11-03 Richard Guenther <rguenther@suse.de>
2603
2604 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
2605
61c3c490
DS
26062009-11-03 Dodji Seketeli <dodji@redhat.com>
2607
2608 PR c++/38699
1a62cb3b
UB
2609 * c-common.c (fold_offsetof_1): Issue errors when the member
2610 designator of the offsetof expression is not legitimate.
61c3c490 2611
9d1a9845
UB
26122009-11-03 Uros Bizjak <ubizjak@gmail.com>
2613
2614 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
2615 names instead of numerical constants.
2616 (sse_prologue_save): Ditto.
2617 (*sse_prologue_save_insn): Ditto.
2618
55a19d49
UB
26192009-11-03 Uros Bizjak <ubizjak@gmail.com>
2620
2621 PR target/41900
2622 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2623 (TARGET_CALL_ESP): New define.
2624 * config/i386/i386.c (initial_ix86_tune_features): Initialize
2625 X86_ARCH_CALL_ESP.
9d1a9845
UB
2626 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2627 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2628 *call_1, *call_value_pop_1 and *call_value_1. Depend on
2629 TARGET_CALL_ESP.
55a19d49
UB
2630 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2631 New patterns, use "lsm" as operand 1 constraint.
0b94d8b2 2632 * config/i386/predicates.md (call_insn_operand): Depend on
55a19d49
UB
2633 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2634
d7c0c068
UW
26352009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2636
2637 PR tree-optimization/41857
2638 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
2639 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
2640 to create_mem_ref.
2641 * tree-ssa-address.c (move_hint_to_base): New function.
2642 (most_expensive_mult_to_index): Add TYPE argument. Use mode and
2643 address space associated with TYPE.
2644 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to
2645 most_expensive_mult_to_index. Call move_hint_to_base.
2646 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and
2647 TYPE to addr_to_parts.
2648
2b93f88d
MJ
26492009-11-02 Martin Jambor <mjambor@suse.cz>
2650
2651 PR tree-optimization/41750
2652 * tree-sra.c (analyze_modified_params): Loop over all
2653 representatives of components of a parameter.
2654
9789ba46
JJ
26552009-11-02 Jakub Jelinek <jakub@redhat.com>
2656
68052d59
JJ
2657 PR tree-optimization/41841
2658 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
2659 local variables of not yet materialized clones.
2660
0fba566c
JJ
2661 PR debug/41893
2662 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
2663 for a VOIDmode variable.
2664
9789ba46
JJ
2665 PR c++/41774
2666 * c-pragma.c (visstack): Change into vector of ints rather than
2667 enum symbol_visibility.
2668 (push_visibility): Add kind argument, push default_visibility together
2669 with kind.
2670 (pop_visibility): Add kind argument, return true if successful, fail
2671 if visibility stack is empty or if stack top is of different kind.
2672 (handle_pragma_visibility): Don't check length of visstack, instead
2673 call pop_visibility and issue diagnostics if it failed. Pass 0
2674 as last argument to push_visibility and pop_visibility.
2675 * c-pragma.h (push_visibility): Add kind argument.
2676 (pop_visibility): Likewise. Return bool instead of void.
2677
ebcc3d93
EB
26782009-11-01 Eric Botcazou <ebotcazou@adacore.com>
2679
2680 * tree.def (TARGET_MEM_REF): Update comment.
2681 * alias.c (get_alias_set): Retrieve the original memory reference for
2682 a TARGET_MEM_REF before proceeding.
2683
219d92a4
AS
26842009-10-31 Anatoly Sokolov <aesok@post.ru>
2685
2686 * config/frv/frv.c (frv_function_value, frv_libcall_value,
2687 frv_function_value_regno_p): New functions.
2688 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
8a1eb57b 2689 * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
219d92a4
AS
2690 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
2691 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
2692
34732b0a
AS
26932009-10-31 Anatoly Sokolov <aesok@post.ru>
2694
2695 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
2696 new 'outgoing' argument.
0b94d8b2 2697 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
34732b0a 2698 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
8a1eb57b 2699 * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
34732b0a
AS
2700 LIBCALL_VALUE): Remove.
2701 (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
2702 * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
2703 (mh10300_function_value_regno_p): Declare.
2704
46527cc8
RR
27052009-10-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2706
8a1eb57b 2707 * config/arm/cortex-a9.md: New - integer pipeline description.
46527cc8 2708
03472fdd
EB
27092009-10-31 Eric Botcazou <ebotcazou@adacore.com>
2710
2711 * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
2712 aborting if the sizes of the two references don't match.
2713
2e57e853
TM
27142009-10-31 Toon Moene <toon@moene.org>
2715
2716 * ipa-inline.c (cgraph_decide_inlining):
2717 Include reason for not inlining called-once functions in dump file.
2718
7664c548
DG
27192009-10-30 Daniel Gutson <dgutson@codesourcery.com>
2720
2721 * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
2722 * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
2723 (LINK_SPEC): BE_LINK_SPEC added.
2724
b207f900
RG
27252009-10-30 Richard Guenther <rguenther@suse.de>
2726
2727 PR lto/41858
2728 * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
2729
8c686cf5
NS
27302009-10-30 Nathan Sidwell <nathan@codesourcery.com>
2731
2732 * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
2733 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
2734 label.
2735
3d158124
MJ
27362009-10-30 Martin Jambor <mjambor@suse.cz>
2737
2738 * tree-sra.c (build_ref_for_offset_1): Remove a comment.
2739
890b9b96
L
27402009-10-30 H.J. Lu <hongjiu.lu@intel.com>
2741
e15f1ff6 2742 PR target/40838
890b9b96
L
2743 * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
2744 first. Move assert on stack_alignment_estimated just before
2745 setting stack_realign_needed.
2746 (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
2747 Don't call update_stack_boundary.
2748
2749 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
2750 (verride_options): Don't check ix86_force_align_arg_pointer here.
2751 (ix86_function_ok_for_sibcall): Use it.
2752 (ix86_update_stack_boundary): Likewise.
2753
2754 * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
2755
953a18fb
RE
27562009-10-30 Richard Earnshaw <rearnsha@arm.com>
2757
2758 * arm.md (QHSI): New mode iterator.
2759 (movqi): If generating for thumb, then truncate any immediate to
2760 8 bits.
2761 * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
2762 with...
2763 (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
2764 version.
2765
d0539838
CC
27662009-10-29 Cary Coutant <ccoutant@google.com>
2767
2768 PR debug/41700
2769 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
2770 locations in the source).
890b9b96
L
2771 (store_vcall_insn): New function.
2772 (lookup_vcall_insn): New function.
2773 (dwarf2out_virtual_call_token): Use store_vcall_insn.
d0539838
CC
2774 (dwarf2out_copy_call_info): New function.
2775 (dwarf2out_virtual_call): Use lookup_vcall_insn.
2776 * emit-rtl.c (try_split): Call copy_call_info debug hook.
2777 * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
2778 * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
2779 (debug_nothing_rtx_rtx): New dummy hook.
2780 * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
2781 (xcoff_debug_hooks): Likewise.
2782 * sdbout.c (sdb_debug_hooks): Likewise.
2783 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2784
c376dbfb
DD
27852009-10-29 David Daney <ddaney@caviumnetworks.com>
2786
2787 * doc/invoke.texi (mmcount-ra-address): Document new command line
2788 option.
2789 * config/mips/mips.opt (mmcount-ra-address): New option.
2790 * config/mips/mips-protos.h (mips_function_profiler): Declare new
2791 function.
2792 * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
2793 member.
2794 (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
2795 (mips_function_profiler): Moved from FUNCTION_PROFILER, and
2796 rewritten.
2797 * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
2798 mips_function_profiler.
2799
2b7e2984
SE
28002009-10-29 Steve Ellcey <sje@cup.hp.com>
2801
2802 PR middle-end/37565
2803 PR target/38018
2804 * doc/tm.texi (OVERRIDE_OPTIONS): Update.
2805 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
0b94d8b2 2806 * optc-gen.awk (cl_target_option_restore): Include call to
2b7e2984
SE
2807 targetm.override_options_after_change.
2808 * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
2809 * target.h (override_options_after_change): New.
2810 * c-common.c (parse_optimize_options): Call
2811 targetm.override_options_after_change.
2812 * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
2813 (ia64_override_options_after_change): New.
2814 (ia64_override_options) Add call to above.
2815
44e82499
MM
28162009-10-29 Michael Matz <matz@suse.de>
2817
2818 * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
2819 (gate_convert_to_rsqrt): Ditto.
2820 (pass_convert_to_rsqrt): Ditto.
2821 * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
2822 * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
2823 to pass list.
2824
2825 * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
2826
90e77553
RR
28272009-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2828
2829 * config/arm/arm.c (find_best_start): Fix type of remainder to be
0b94d8b2 2830 unsigned.
90e77553 2831
8a1326b3
MJ
28322009-10-29 Martin Jambor <mjambor@suse.cz>
2833
2834 PR tree-optimization/41775
2835 * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
2836 (generate_subtree_copies): Do not unshare agg.
2837 (load_assign_lhs_subreplacements): Do not unshare rhs.
2838 (sra_modify_assign): Do not unshare exprs.
2839 (propagate_subacesses_accross_link): Renamed to
2840 propagate_subaccesses_across_link.
2841
162e4591
RE
28422009-10-29 Richard Earnshaw <rearnsha@arm.com>
2843
2844 * arm.c (count_insns_for_constant): Rework to support counting for
2845 thumb2 immediates as well.
2846 (find_best_start): Split out from arm_gen_constant.
2847 (arm_gen_constant): Rework to support XOR with immediate.
2848
d48a3196
CF
28492009-10-29 Chao-ying Fu <fu@mips.com>
2850
2851 * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
2852 functions.
2853 (mips_expand_synci_loop): Use the length rtx to control the
2854 synci loop from the begin rtx that points to the first byte of
2855 the cache line.
2856
180a2539
RAE
28572009-10-28 Rafael Avila de Espindola <espindola@google.com>
2858
2859 * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
55a19d49 2860
4d62b56a
RAE
28612009-10-28 Rafael Avila de Espindola <espindola@google.com>
2862
2863 * dbxout.c (dbxout_common_check): Accept non public trees.
2864 * dwarf2out.c (fortran_common): Accept non public trees.
2865
da18ea94
RAE
28662009-10-28 Rafael Avila de Espindola <espindola@google.com>
2867
2868 * common.opt (fuse-linker-plugin): New option.
2869 * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
2870 fuse-linker-plugin.
2871 * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
2872
c4bb78e9
PB
28732009-10-28 Paolo Bonzini <bonzini@gnu.org>
2874
2875 PR rtl-optimization/39715
2876 * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
2877 (gen_cstoresi_ltu_thumb1): New splitter.
2878
cfee9aa4
RG
28792009-10-28 Richard Guenther <rguenther@suse.de>
2880
2881 PR lto/41808
2882 PR lto/41839
2883 * tree-ssa.c (useless_type_conversion_p): Do not treat
2884 conversions to pointers to incomplete types as useless.
2885 * gimple.c (gimple_types_compatible_p): Compare struct tags,
2886 not typedef names.
2887
7cf72011
JJ
28882009-10-28 Jakub Jelinek <jakub@redhat.com>
2889
2890 * var-tracking.c (emit_note_insn_var_location): Don't call the second
2891 vt_expand_loc unnecessarily when location is not a register nor
2892 memory.
2893
a1c65695
JJ
2894 PR middle-end/41837
2895 * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
2896 fields don't have DECL_NAME.
2897
f46835f5
JJ
2898 PR debug/41801
2899 * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
2900 call convert_memory_address on addr.
2901
6ac719d3
JJ
2902 PR target/41762
2903 * config/i386/i386.c (ix86_pic_register_p): Don't call
2904 rtx_equal_for_cselib_p for VALUEs discarded as useless.
2905
e70545b0
RS
29062009-10-28 Richard Sandiford <rdsandiford@googlemail.com>
2907
2908 * var-tracking.c (emit_note_insn_var_location): Get the mode of
2909 a variable part from its REG, MEM or VALUE.
2910
f883d997
RG
29112009-10-28 Richard Guenther <rguenther@suse.de>
2912
2913 * gimple.c (gimple_get_alias_set): Fix comment typo.
2914
14cf68d9
RG
29152009-10-28 Richard Guenther <rguenther@suse.de>
2916
2917 * tree.c (free_lang_data_in_type): Do not call get_alias_set.
2918 (free_lang_data): Unconditionally compute alias sets for all
2919 standard integer types. Bail out if gate bailed out previously.
2920 Do not reset the types_compatible_p langhook.
2921 (gate_free_lang_data): Remove.
2922 (struct pass_ipa_free_lang_data): Enable unconditionally.
2923 * gimple.c (gimple_get_alias_set): Use the same alias-set for
2924 all pointer types.
2925
1307c758
RG
29262009-10-28 Richard Guenther <rguenther@suse.de>
2927
2928 PR middle-end/41855
2929 * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
2930 (ref_maybe_used_by_call_p_1): Fix bcopy handling.
2931 (call_may_clobber_ref_p_1): Likewise.
2932 * tree-ssa-structalias.c (find_func_aliases): Likewise.
2933 * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
2934
e5bb5009
PB
29352009-10-28 Paolo Bonzini <bonzini@gnu.org>
2936
2937 PR rtl-optimization/41812
2938
2939 Revert:
2940 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
2941
2942 * df-problems.c (df_md_scratch): New.
2943 (df_md_alloc, df_md_free): Allocate/free it.
2944 (df_md_local_compute): Only include live registers in init.
2945 (df_md_transfer_function): Prune the in-set computed by
2946 the confluence function, and the gen-set too.
2947
5d49d0ea
PB
29482009-10-28 Paolo Bonzini <bonzini@gnu.org>
2949
2950 PR rtl-optimization/39715
2951 * combine.c (simplify_comparison): Use extensions to
2952 widen comparisons. Try an ANDing first.
2953
582021ba
PB
29542009-10-28 Paolo Bonzini <bonzini@gnu.org>
2955
2956 PR rtl-optimization/40741
2957 * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
2958 a small constant is cheap.
2959 * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
2960 force_reg on the LHS.
2961 (xorsi3): Likewise, and split the XOR if the constant is complex
2962 and not in Thumb mode.
2963
533d4b99
PB
29642009-10-28 Paolo Bonzini <bonzini@gnu.org>
2965
2966 * expmed.c (emit_store_flag): Check costs before
2967 transforming to the opposite representation.
2968
42663bf1
PB
29692009-10-28 Paolo Bonzini <bonzini@gnu.org>
2970
2971 * config/sh/sh.md (cbranchfp4_media): Remove hack extending
2972 cstore result to DImode.
2973
f60e5a20
KK
29742009-10-28 Kaz Kojima <kkojima@gcc.gnu.org>
2975
2976 * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
2977 inside the unspec vector.
2978
9ba0399e
RH
29792009-10-27 Richard Henderson <rth@redhat.com>
2980
2981 * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
2982
b7da9fd4
RH
29832009-10-27 Richard Henderson <rth@redhat.com>
2984
2985 PR c++/41819
2986 * tree-eh.c (eh_region_may_contain_throw_map): Rename from
2987 eh_region_may_contain_throw; update users.
2988 (eh_region_may_contain_throw): New function.
2989 (lower_catch): Check flag_exceptions before creating exception region.
2990 (lower_eh_filter, lower_eh_must_not_throw): Likewise.
2991 (lower_cleanup): Tidy existing flag_exceptions check to match.
2992
41ca8d08
KT
29932009-10-27 Kai Tietz <kai.tietz@onevision.com>
2994
2995 PR/41799
2996 * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
2997 * config/i386/mingw.opt: Add fset-stack-executable.
2998 * config/i386/i386.c (ix86_trampoline_init): Make call to
2999 emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
3000 defined and its value is not zero.
3001 * doc/invoke.texi
3002
5c245b95
RG
30032009-10-27 Richard Guenther <rguenther@suse.de>
3004
3005 * tree-ssa-structalias.c (find_func_aliases): In IPA mode
3006 handle calls to externally visible functions like in regular mode.
3007 (create_variable_info_for): Do not create function infos here.
3008 (have_alias_info): Remove write-only variable.
3009 (solve_constraints): New function split out from common code
3010 in compute_points_to_sets and ipa_pta_execute.
3011 (compute_points_to_sets): Adjust.
3012 (ipa_pta_execute): Likewise. Handle clones and externally visible
3013 functions like in non-IPA mode.
3014
06302a02
JJ
30152009-10-27 Jakub Jelinek <jakub@redhat.com>
3016
3017 PR c/41842
3018 * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
3019 error_mark_node.
3020
b57d8e6f
RG
30212009-10-27 Richard Guenther <rguenther@suse.de>
3022
3023 * tree-complex.c (expand_complex_div_wide): Check for
3024 INTEGER_CST, not TREE_CONSTANT on comparison folding result.
3025
673beced
RE
30262009-10-27 Revital Eres <eres@il.ibm.com>
3027
3028 PR tree-optimization/40648
3029 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3030 Change decision of when to peel for alignment.
3031
b23dc2c0
RG
30322009-10-27 Richard Guenther <rguenther@suse.de>
3033
3034 PR lto/41821
3035 * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
3036
b8b39401
AH
30372009-10-27 Aldy Hernandez <aldyh@redhat.com>
3038
3039 PR bootstrap/41451
3040 * fold-const.c (fold_binary_loc): Do not call
3041 protected_set_expr_location.
3042
2929029c
WG
30432009-10-27 Wei Guozhi <carrot@google.com>
3044
3045 PR target/41705
2c9062e2
UB
3046 * target.h (have_conditional_execution): Add a new target hook
3047 function.
2929029c
WG
3048 * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
3049 * targhooks.h (default_have_conditional_execution): Likewise.
3050 * targhooks.c (default_have_conditional_execution): Likewise.
3051 * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
3052 * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
3053 (arm_have_conditional_execution): New function.
3054 * ifcvt.c (noce_process_if_block, find_if_header,
2c9062e2
UB
3055 cond_exec_find_if_block, dead_or_predicable): Change the usage of
3056 macro HAVE_conditional_execution to a target hook call.
2929029c
WG
3057 * recog.c (peephole2_optimize): Likewise.
3058 * sched-rgn.c (add_branch_dependences): Likewise.
3059 * final.c (asm_insn_count, final_scan_insn): Likewise.
3060 * bb-reorder.c (HAVE_conditional_execution): Remove it.
3061
299456f3
BE
30622009-10-26 Ben Elliston <bje@au.ibm.com>
3063 Michael Meissner <meissner@linux.vnet.ibm.com>
3064 Ulrich Weigand <uweigand@de.ibm.com>
3065
3066 * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
3067 * config/spu/spu_cache.h: New file.
3068
3069 * config/spu/cachemgr.c: New file.
3070 * config/spu/cache.S: New file.
3071
3072 * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
3073 (ADDR_SPACE_EA): Define.
3074 (TARGET_ADDR_SPACE_KEYWORDS): Define.
3075 * config/spu/spu.c (EAmode): New macro.
3076 (TARGET_ADDR_SPACE_POINTER_MODE): Define.
3077 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3078 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
3079 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
3080 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
3081 (TARGET_ADDR_SPACE_CONVERT): Likewise.
3082 (TARGET_ASM_SELECT_SECTION): Likewise.
3083 (TARGET_ASM_UNIQUE_SECTION): Likewise.
3084 (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
3085 (TARGET_ASM_ALIGNED_DI_OP): Likewise.
3086 (ea_symbol_ref): New function.
3087 (spu_legitimate_constant_p): Handle __ea qualified addresses.
3088 (spu_addr_space_legitimate_address_p): New function.
3089 (spu_addr_space_legitimize_address): Likewise.
3090 (cache_fetch): New global.
3091 (cache_fetch_dirty): Likewise.
3092 (ea_alias_set): Likewise.
3093 (ea_load_store): New function.
3094 (ea_load_store_inline): Likewise.
3095 (expand_ea_mem): Likewise.
3096 (spu_expand_mov): Handle __ea qualified memory references.
3097 (spu_addr_space_pointer_mode): New function.
3098 (spu_addr_space_address_mode): Likewise.
3099 (spu_addr_space_subset_p): Likewise.
3100 (spu_addr_space_convert): Likewise.
3101 (spu_section_type_flags): Handle "._ea" section.
3102 (spu_select_section): New function.
3103 (spu_unique_section): Likewise.
3104 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
3105 and __EA64__ predefined macros.
3106 * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
3107 -matomic-updates switches.
3108
3109 * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
3110 (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
3111 libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
3112 libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
3113 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
3114 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
3115 $(T)cache128k.o): Likewise.
3116 ($(T)libgcc_%.a): Likewise.
3117
3118 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
3119 * config/spu/spu.opt (-mea32/-mea64): Add switches.
3120 (-maddress-space-conversion): Likewise.
3121 (-mcache-size=): Likewise.
3122 (-matomic-updates): Likewise.
3123 * doc/invoke.texi (-mea32/-mea64): Document.
3124 (-maddress-space-conversion): Likewise.
3125 (-mcache-size=): Likewise.
3126 (-matomic-updates): Likewise.
3127
36c5e70a
BE
31282009-10-26 Ben Elliston <bje@au.ibm.com>
3129 Michael Meissner <meissner@linux.vnet.ibm.com>
3130 Ulrich Weigand <uweigand@de.ibm.com>
3131
3132 * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
3133
3134 * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
3135 defined, add the named address space keywords.
3136 (c_addr_space_name): New function.
3137 (complete_array_type): Preserve named address space.
3138 (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
3139 instead of targetm.valid_pointer_mode.
3140
3141 * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
3142 RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
3143 (ADDR_SPACE_KEYWORD): New macro.
3144 (c_addr_space_name): Add prototype.
3145
3146 * c-tree.h (struct c_declspecs): Add address_space member.
3147 (declspecs_add_addrspace): Add prototype.
3148
3149 * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
3150
3151 * c-parser.c (c_parse_init): Add assertion.
3152 (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
3153 (c_lex_one_token): Handle address space keywords.
3154 (c_token_starts_typename): Likewise.
3155 (c_token_starts_declspecs): Likewise.
3156 (c_parser_declspecs): Likewise.
3157 (c_parser_postfix_expression_after_paren_type): Diagnose compound
3158 literal within function qualified with named address space.
3159
3160 * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
3161 address space qualifiers.
3162 (shadow_tag_warned): Warn about useless address space qualifiers.
3163 (quals_from_declspecs): Handle address space qualifiers.
3164 (grokdeclarator): Likewise.
3165 (build_null_declspecs): Likewise.
3166 (declspecs_add_addrspace): New function.
3167
3168 * c-typeck.c (addr_space_superset): New function.
3169 (qualify_type): Handle named address spaces.
3170 (composite_type): Likewise.
3171 (common_pointer_type): Likewise.
3172 (comp_target_types): Likewise.
3173 (build_conditional_expr): Likewise.
3174 (handle_warn_cast_qual): Likewise.
3175 (build_c_cast): Likewise.
3176 (convert_for_assignment): Likewise.
3177 (build_binary_op): Likewise.
3178 (pointer_diff): Handle named address spaces. Use intermediate
3179 integer type of sufficient size if required.
3180
d4ebfa65
BE
31812009-10-26 Ben Elliston <bje@au.ibm.com>
3182 Michael Meissner <meissner@linux.vnet.ibm.com>
3183 Ulrich Weigand <uweigand@de.ibm.com>
3184
3185 * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
3186 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3187 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
3188
3189 * target.h (struct target_def): Add pointer_mode, address_mode,
3190 and valid_pointer_mode to addr_space substructure.
3191 * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
3192 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3193 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
3194 (TARGET_ADDR_SPACE_HOOKS): Add them.
3195 * targhooks.c (target_default_pointer_address_modes_p): New function.
3196 * target.h (target_default_pointer_address_modes_p): Add prototype.
3197 * targhooks.c (default_addr_space_pointer_mode): New function.
3198 (default_addr_space_address_mode): Likewise.
3199 (default_addr_space_valid_pointer_mode): Likewise.
3200 * targhooks.h (default_addr_space_pointer_mode): Add prototype.
3201 (default_addr_space_address_mode): Likewise.
3202 (default_addr_space_valid_pointer_mode): Likewise.
3203 * output.h (default_valid_pointer_mode): Move to ...
3204 * targhooks.h (default_valid_pointer_mode): ... here.
3205 * varasm.c (default_valid_pointer_mode): Move to ...
3206 * targhooks.c (default_valid_pointer_mode): ... here.
3207
3208 * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
3209 instead of targetm.valid_pointer_mode.
3210
3211 * fold-const.c (fit_double_type): Use int_or_pointer_precision.
3212 * tree.c (integer_pow2p): Likewise.
3213 (tree_log2): Likewise.
3214 (tree_floor_log2): Likewise.
3215 (signed_or_unsigned_type_for): Support pointer type of different size.
3216 (int_or_pointer_precision): New function.
3217 * tree.h (int_or_pointer_precision): Add prototype.
3218 * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
3219 * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
3220 incoming pointer type instead of POINTER_SIZE.
3221
3222 * tree.c (build_pointer_type): Use appropriate pointer mode
3223 instead of ptr_mode.
3224 (build_reference_type): Likewise.
3225 * expr.c (store_expr): Likewise.
3226 (expand_expr_addr_expr): Likewise.
3227 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
3228 * cfgexpand.c (expand_debug_expr): Likewise.
2c9062e2 3229
d4ebfa65
BE
3230 * auto-inc-dec.c: Include "target.h".
3231 (try_merge): Use appropriate address mode instead of Pmode.
3232 (find_inc): Likewise.
3233 * combine.c (find_split_point): Likewise.
3234 * cselib.c (cselib_record_sets): Likewise.
3235 * dse.c (replace_inc_dec): Likewise.
3236 (canon_address): Likewise.
3237 * var-tracking.c (replace_expr_with_values): Likewise.
3238 (count_uses): Likewise.
3239 (add_uses): Likewise.
3240 (add_stores): Likewise.
3241 * emit-rtl.c: Include "target.h".
3242 (adjust_address_1): Use appropriate address mode instead of Pmode.
3243 (offset_address): Likewise.
3244 * explow.c (break_out_memory_refs): Likewise.
3245 (memory_address_addr_space): Likewise.
3246 (promote_mode): Likewise.
3247 * expr.c (move_by_pieces): Likewise.
3248 (emit_block_move_via_loop): Likewise.
3249 (store_by_pieces): Likewise.
3250 (store_by_pieces_1): Likewise.
3251 (expand_assignment): Likewise.
3252 (store_constructor): Likewise.
3253 (expand_expr_addr_expr): Likewise.
3254 (expand_expr_real_1): Likewise.
3255 * cfgexpand.c (expand_debug_expr): Likewise.
3256 * ifcvt.c (noce_try_cmove_arith): Likewise.
3257 * regcprop.c (kill_autoinc_value): Likewise.
3258 * regmove.c (try_auto_increment): Likewise.
3259 * reload.c (find_reloads): Likewise.
3260 (find_reloads_address): Likewise.
3261 (find_reloads_address_1): Likewise.
3262 * sched-deps.c: Include "target.h".
3263 (sched_analyze_1): Use appropriate address mode instead of Pmode.
3264 (sched_analyze_2): Likewise.
3265 * sel-sched-dump.c: Include "target.h".
3266 (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
3267 * stor-layout.c (layout_type): Likewise.
3268 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
3269 (multiplier_allowed_in_address_p): Likewise.
3270 (get_address_cost): Likewise.
3271 * varasm.c (make_decl_rtl): Likewise.
2c9062e2 3272
d4ebfa65
BE
3273 * expr.c (expand_assignment): Always convert offsets to appropriate
3274 address mode.
3275 (store_expr): Likewise.
3276 (store_constructor): Likewise.
3277 (expand_expr_real_1): Likewise.
3278
3279 * reload.h (form_sum): Add MODE argument.
3280 * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
3281 Update recursive calls.
3282 (subst_indexed_address): Update calls to form_sum.
2c9062e2 3283
d4ebfa65
BE
3284 * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
3285 * tree-ssa-address.c: Include "target.h".
3286 (templates): Replace by ...
3287 (mem_addr_template_list): ... this new vector.
3288 (TEMPL_IDX): Handle address space numbers.
3289 (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
3290 (addr_for_mem_ref): Add ADDRSPACE argument. Use per-address-space
3291 instead of global cache. Update call to gen_addr_rtx.
3292 (valid_mem_ref_p): Update call to addr_for_mem_ref.
3293 * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
2c9062e2 3294
d4ebfa65
BE
3295 * rtl.h (convert_memory_address_addr_space): Add prototype.
3296 (convert_memory_address): Define as macro.
3297 * explow.c (convert_memory_address): Rename to ...
3298 (convert_memory_address_addr_space): ... this. Add ADDRSPACE argument.
3299 Use appropriate pointer and address modes instead of ptr_mode / Pmode.
3300 Update recursive calls.
3301 (memory_address_addr_space): Call convert_memory_address_addr_space.
3302 * expmed.c (make_tree): Likewise.
3303 * expr.c (expand_assignment): Likewise.
3304 (expand_expr_addr_expr_1): Likewise. Also, add ADDRSPACE argument.
3305 (expand_expr_addr_expr): Likewise. Also, update call.
3306
3307 * alias.c (find_base_value): Guard pointer size optimizations.
3308 (find_base_term): Likewise.
3309 * rtlanal.c (nonzero_bits1): Likewise.
3310 (num_sign_bit_copies1): Likewise.
3311 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3312
3313 * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
3314 (emit-rtl.o): Likewise.
3315 (auto-inc-dec.o): Likewise.
3316 (sched-deps.o): Likewise.
3317
09e881c9
BE
33182009-10-26 Ben Elliston <bje@au.ibm.com>
3319 Michael Meissner <meissner@linux.vnet.ibm.com>
3320 Ulrich Weigand <uweigand@de.ibm.com>
3321
3322 * doc/extend.texi (Named Address Spaces): New section.
3323 * coretypes.h (addr_space_t): New type.
3324 (ADDR_SPACE_GENERIC): New define.
3325 (ADDR_SPACE_GENERIC_P): New macro.
3326
3327 * doc/tm.texi (Named Address Spaces): New section.
3328 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
3329 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
3330 (TARGET_ADDR_SPACE_SUBSET_P): Document.
3331 (TARGET_ADDR_SPACE_CONVERT): Document.
3332 * target.h (struct gcc_target): Add addr_space substructure.
3333 * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
3334 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
3335 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
3336 (TARGET_ADDR_SPACE_CONVERT): Likewise.
3337 (TARGET_ADDR_SPACE_HOOKS): Likewise.
3338 (TARGET_INITIALIZER): Initialize addr_space hooks.
3339 * targhooks.c (default_addr_space_legitimate_address_p): New function.
3340 (default_addr_space_legitimize_address): Likewise.
3341 (default_addr_space_subset_p): Likewise.
3342 (default_addr_space_convert): Likewise.
3343 * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
3344 (default_addr_space_legitimize_address): Likewise.
3345 (default_addr_space_subset_p): Likewise.
3346 (default_addr_space_convert): Likewise.
3347
3348 * doc/rtl.texi (MEM_ADDR_SPACE): Document.
3349 * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
3350 (MEM_ADDR_SPACE): New macro.
3351 * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
3352 address space memory attribute.
3353 (mem_attrs_htab_hash): Handle address space memory attribute.
3354 (mem_attrs_htab_eq): Likewise.
3355 (set_mem_attributes_minus_bitpos): Likewise.
3356 (set_mem_alias_set): Likewise.
3357 (set_mem_align): Likewise.
3358 (set_mem_expr): Likewise.
3359 (set_mem_offset): Likewise.
3360 (set_mem_size): Likewise.
3361 (adjust_address_1): Likewise.
3362 (offset_address): Likewise.
3363 (widen_memoy_address): Likewise.
3364 (get_spill_slot_decl): Likewise.
3365 (set_mem_attrs_for_spill): Likewise.
3366 (set_mem_addr_space): New function.
3367 * emit-rtl.h (set_mem_addr_space): Add prototype.
3368 * print-rtl.c (print_rtx): Print address space memory attribute.
3369 * expr.c (expand_assignment): Set address space memory attribute
3370 of generated MEM RTXes as appropriate.
3371 (expand_expr_real_1): Likewise.
3372 * cfgexpand.c (expand_debug_expr): Likewise.
3373 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
3374
3375 * tree.h (struct tree_base): Add address_space bitfield. Reduce
3376 size of "spare" bitfield.
3377 (TYPE_ADDR_SPACE): New macro.
3378 (ENCODE_QUAL_ADDR_SPACE): Likewise.
3379 (DECODE_QUAL_ADDR_SPACE): Likewise.
3380 (CLEAR_QUAL_ADDR_SPACE): Likewise.
3381 (KEEP_QUAL_ADDR_SPACE): Likewise.
3382 (TYPE_QUALS): Encode type address space.
3383 (TYPE_QUALS_NO_ADDR_SPACE): New macro.
3384 * tree.c (set_type_quals): Set type address space.
3385 (build_array_type): Inherit array address space from element type.
3386 * print-tree.c (print_node_brief): Print type address space.
3387 (print_node): Likewise.
3388 * tree-pretty-print.c (dump_generic_node): Likewise.
3389
3390 * explow.c (memory_address): Rename to ...
3391 (memory_address_addr_space): ... this. Add ADDRSPACE argument.
3392 Use address-space aware variants of memory address routines.
3393 * recog.c (memory_address_p): Rename to ...
3394 (memory_address_addr_space_p): ... this. Add ADDSPACE argument.
3395 Use address-space aware variants of memory address routines.
3396 (offsettable_address_p): Rename to ...
3397 (offsettable_address_addr_space_p): ... this. Add ADDRSPACE argument.
3398 Use address-space aware variants of memory address routines.
3399 * reload.c (strict_memory_address_p): Rename to ...
3400 (strict_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
3401 Use address-space aware variants of memory address routines.
3402 (maybe_memory_address_p): Rename to ...
3403 (maybe_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
3404 Use address-space aware variants of memory address routines.
3405 * expr.h (memory_address_addr_space): Add prototype.
3406 (memory_address): Define as macro.
3407 * recog.h (memory_address_addr_space_p): Add prototype.
3408 (memory_address_p): Define as macro.
3409 (offsettable_address_addr_space_p): Add prototype.
3410 (offsettable_address_p): Define as macro.
3411 (strict_memory_address_addr_space_p): Add prototype.
3412 (strict_memory_address_p): Define as macro.
3413
3414 * combine.c (find_split_point): Use address-space aware variants
3415 of memory address routines.
3416 * emit-rtl.c (operand_subword): Likewise.
3417 (change_address_1): Likewise.
3418 (adjust_address_1): Likewise.
3419 (offset_address): Likewise.
3420 * expr.c (emit_move_insn): Likewise.
3421 (expand_assignment): Likewise.
3422 (expand_expr_real_1): Likewise.
3423 * recog.c (verify_changes): Likewise.
3424 (general_operand): Likewise.
3425 (offsettable_memref_p): Likewise.
3426 (offsettable_nonstrict_memref_p): Likewise.
3427 (constrain_operands): Likewise.
3428 * reload.c (get_secondary_mem): Likewise.
3429 (find_reloads_toplev): Likewise.
3430 (find_reloads_address): Likewise.
3431 (find_reloads_subreg_address): Likewise.
3432 * reload1.c (reload): Likewise.
3433 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3434 * rtl.h (address_cost): Add ADDRSPACE argument.
3435 * rtlanal.c (address_cost): Add ADDRSPACE argument. Use address-space
3436 aware variant of memory address routines.
3437 * loop-invariant.c (create_new_invariant): Update address_cost call.
3438 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3439 * fwprop.c (should_replace_address): Add ADDRSPACE argument.
3440 Use address-space aware variant of memory address routines.
3441 (propagate_rtx_1): Update call to should_replace_address.
3442 * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
3443 argument.
3444 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
3445 ADDRSPACE argument. Use per-address-space instead of global cache.
3446 Use address-space aware variant of memory address routines.
3447 (get_address_cost): Likewise.
3448 (get_computation_cost_at): Update calls.
3449 * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
3450 Use address-space aware variant of memory address routines.
3451 (create_mem_ref_raw): Update call to valid_mem_ref_p.
3452 (most_expensive_mult_to_index): Update call to
3453 multiplier_allowed_in_address_p.
3454
3455 * dwarf2out.c (modified_type_die): Output DW_AT_address_class
3456 attribute to indicate named address spaces.
3457
3458 * varasm.c (get_variable_section): DECLs in named address spaces
3459 cannot be "common".
3460
3461 * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
3462 for addresses in a non-generic address space.
3463
3464 * expr.c (emit_block_move_hints): Do not use libcalls for
3465 memory in non-generic address spaces.
3466 (clear_storage_hints): Likewise.
3467 (expand_assignment): Likewise.
3468
3469 * fold-const.c (operand_equal_p): Expressions refering to different
3470 address spaces are not equivalent.
3471
3472 * rtl.c (rtx_equal_p_cb): MEMs refering to different address
3473 spaces are not equivalent.
3474 (rtx_equal_p): Likewise.
3475 * cse.c (exp_equiv_p): Likewise.
3476 * jump.c (rtx_renumbered_equal_p): Likewise.
3477 * reload.c (operands_match_p): Likewise.
3478
3479 * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
3480 address spaces may alias.
3481 (true_dependence): Likewise.
3482 (canon_true_dependence): Likewise.
3483 (write_dependence_p): Likewise.
3484
3485 * dse.c (canon_address): Handle named address spaces.
3486 * ifcvt.c (noce_try_cmove_arith): Likewise.
3487
3488 * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
3489 * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
3490 * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
3491 to handle conversions between different address spaces.
3492 * fold-const.c (fold_convert_loc): Likewise.
3493 (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
3494 * tree-pretty-print.c (dump_generic_node): Likewise.
3495 * gimple-pretty-print.c (dump_unary_rhs): Likewise.
3496 * tree-cfg.c (verify_gimple_assign_unary): Likewise.
3497 * tree-inline.c (estimate_operator_cost): Likewise.
3498 * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
3499 to different address spaces are not useless.
3500
bde2d108
JJ
35012009-10-26 Jakub Jelinek <jakub@redhat.com>
3502
7752e522
JJ
3503 PR bootstrap/41345
3504 * cfgcleanup.c (trivially_empty_bb_p): New function.
3505 (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
3506
bde2d108
JJ
3507 PR debug/41828
3508 * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
3509 add_name_and_src_coords_attributes, gen_namespace_die,
3510 dwarf2out_set_name): Handle dwarf2_name returning NULL.
3511
65a324b4
NC
35122009-10-26 Nick Clifton <nickc@redhat.com>
3513
3514 * config.gcc: Add support for RX target.
3515 * config/rx: New directory.
3516 * config/rx/constraints.md: New file.
3517 * config/rx/predicates.md: New file.
3518 * config/rx/rx.c: New file.
3519 * config/rx/rx.h: New file.
3520 * config/rx/rx.md: New file.
3521 * config/rx/rx.opt: New file.
3522 * config/rx/rx-protos.h: New file.
3523 * config/rx/t-rx: New file.
3524 * doc/extend.texi: Document RX function attributes.
3525 * doc/invoke.texi: Document RX specific command line options.
3526 * doc/contrib.texi: Document RX contribution.
3527 * doc/md.texi: Document RX constraints.
3528 * doc/install.texi: Document RX support.
3529
84280917
MM
35302009-10-26 Michael Matz <matz@suse.de>
3531
3532 PR tree-optimization/41783
3533 * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
3534 case for simple diamonds.
3535 * tree-ssa-alias.h (get_continuation_for_phi): Declare.
3536 * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
3537 argument, use alias oracle to skip some vdefs.
3538 (phi_translate_1): Change call to above, don't allocate new
3539 value ids if they can stay the same.
3540 (compute_avail): Allow vuse walking when looking up references.
3541
bd02b3a0
RG
35422009-10-26 Richard Guenther <rguenther@suse.de>
3543
3544 PR tree-optimization/41826
3545 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
3546 access to re-allocated vector fields.
3547
b77a0698
RG
35482009-10-26 Richard Guenther <rguenther@suse.de>
3549
3550 * graphite-sese-to-poly.c (check_poly_representation): Fix
3551 compile without checking.
3552
60f5ed26
JW
35532009-10-26 Janus Weil <janus@gcc.gnu.org>
3554
3555 PR fortran/41714
3556 * gimple.h (tree_annotate_all_with_location): Remove prototype.
3557 * gimplify.c (tree_should_carry_location_p,
3558 tree_annotate_one_with_location,tree_annotate_all_with_location):
3559 Remove obsolete functions.
3560
38d547aa
KK
35612009-10-25 Kaz Kojima <kkojima@gcc.gnu.org>
3562
3563 PR target/41813
3564 * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
3565
a1d9c4fb
RG
35662009-10-25 Richard Guenther <rguenther@suse.de>
3567
3568 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3569 Stream DECL_RESTRICTED_P.
3570 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3571
c870c233
RS
35722009-10-25 Richard Sandiford <rdsandiford@googlemail.com>
3573
3574 * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
3575 a note when expanding to nothing.
3576
22dfb60e
RG
35772009-10-25 Richard Guenther <rguenther@suse.de>
3578
3579 PR middle-end/41814
3580 * tree.c (find_decls_types_r): Deal with Java overloading
3581 BINFO_VIRTUALS for its own purpose.
3582
8af9d17f
AN
35832009-10-24 Adam Nemet <anemet@caviumnetworks.com>
3584
3585 * config/mips/predicates.md (hilo_operand): New predicate.
3586 * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
3587 define_insn. Correct !ISA_HAS_EXT_INS length from 24 to 28. Move
3588 splitter part from here ...:
3589 (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here. Swap
3590 op0 and op4 to match the DINS case.
3591 (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
3592
35932009-10-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
e1a84153
AH
3594
3595 PR middle-end/19154
3596 * avr.md (QIDI): Add new mode iterator.
3597 (sbrx_branch<mode>): Create new zero extract bit, test and jump
3598 patterns for all QI thru DI modes combinations.
3599 (sbrx_and_branch<mode>): Create new and based bit test and jump
3600 patterns for QI thru SI modes.
3601 avr.c (avr_out_sbxx_branch): Use only bit number.
3602
8b583a06
JH
36032009-10-24 Jan Hubicka <jh@suse.cz>
3604
3605 * ipa-reference.c (check_call): Noreturn notrhow calls do not write
3606 to memory.
7e06c3d6
EB
3607 (analyze_function): When analyzing noreturn nothrow call, do not
3608 compute written stats; free bitmaps of vars early if possible.
8b583a06
JH
3609 (generate_summary): Only update bitmaps if computed.
3610 (propagate): Only dump bitmaps if computed.
3611 (ipa_reference_read_summary): Fix pasto.
3612
72580319
EB
36132009-10-24 Eric Botcazou <ebotcazou@adacore.com>
3614
3615 * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
3616 (aliasing_component_refs_p): ...this. Return true if there is no
3617 common base and the base access types have the same alias set.
3618 (indirect_ref_may_alias_decl_p): Adjust for above renaming.
3619 (indirect_refs_may_alias_p): Likewise.
3620
26d8af35
JM
36212009-10-23 Joseph Myers <joseph@codesourcery.com>
3622
3623 PR c/40033
3624 * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
3625 a C_MAYBE_CONST_EXPR.
3626
3fc841c8
MM
36272009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3628
3629 PR target/41787
3630 * config/rs6000/rs6000.c (struct machine_function): Add
3631 vsx_or_altivec_used_p to record if vector types are used.
3632 (rs6000_expand_to_rtl_hook): Rename from
3633 rs6000_alloc_sdmode_stack_slot. If VSX, check to see if there are
3634 any vector operations, so if there are, we can set VRSAVE to
3635 non-zero when only floating point vector registers are used.
3636 (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
3637 (rs6000_check_vector_mode): Inner function to check if vector
3638 types are used in the code.
3639 (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
3640 vector instructions are used.
3641
3642 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
3643 Indicate that VSX registers which overlap floating point
3644 registers, can't be used across a call, since the ABI only states
3645 the scalar part of the register will be saved and restored.
3646
cb9c2485
JM
36472009-10-23 Joseph Myers <joseph@codesourcery.com>
3648
3649 PR c/41673
3650 * alias.c (get_alias_set): Call langhook before returning 0 for
3651 types with structural equality.
3652 * c-common.c (c_common_get_alias_set): Use alias set of element
3653 type for arrays with structural comparison.
3654
93f28ca7
RG
36552009-10-23 Richard Guenther <rguenther@suse.de>
3656
3657 PR middle-end/41805
3658 * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
3659 gimple_call_nothrow_p.
3660
5813994e
RG
36612009-10-23 Richard Guenther <rguenther@suse.de>
3662
3663 PR tree-optimization/41778
3664 * tree-ssa-pre.c (do_regular_insertion): Only insert if a
3665 redundancy along a path in the CFG we want to optimize for speed
3666 is going to be removed.
3667 (execute_pre): Do partial-PRE only if the function is to be
3668 optimized for speed.
3669 (gate_pre): Do not turn off all of PRE when not optimizing a
3670 function for speed.
3671
376da68e
KG
36722009-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3673
3674 * builtins.c (fold_builtin_cabs): Use validate_arg().
3675 (fold_builtin_cexp): Fix if-logic.
3676 (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
3677
d5b5b6bc
JL
36782009-10-22 Jeff Law <law@redhat.com>
3679
7da77407 3680 * ira-lives.c (process_single_reg_class_operands): Update the
d5b5b6bc
JL
3681 hard reg costs for all the hard registers desired by the
3682 single reg class operand.
3683
4fb296d9
RS
36842009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
3685
3686 * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
3687 for rtxes that aren't handled specially.
3688
bd7960b1
RS
36892009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
3690
3691 * rtl.h (shallow_copy_rtvec): Declare.
3692 * rtl.c (shallow_copy_rtvec): New function.
3693 * cselib.c (cselib_subst_to_values): Use it. Only modify an
3694 rtx field if the subrtx has changed.
3695
2a31793e
AS
36962009-10-22 Anatoly Sokolov <aesok@post.ru>
3697
3698 * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
3699 (m32c_function_value): Make static, add new 'outgoing' argument.
3700 (m32c_libcall_value): Make static, add new 'fun' argument.
3701 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2c9062e2 3702 * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2a31793e
AS
3703 (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
3704 * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
3705 (m32c_function_value, m32c_libcall_value): Delete declaration.
3706
062eee1e
DN
37072009-10-22 Diego Novillo <dnovillo@google.com>
3708
7da77407 3709 * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
062eee1e 3710
6d8752c4 37112009-10-22 Razya Ladelsky <razya@il.ibm.com>
7e06c3d6 3712
7da77407
EB
3713 * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
3714 space.
6d8752c4 3715
2c928155
RG
37162009-10-22 Richard Guenther <rguenther@suse.de>
3717
3718 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
3719 * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
3720 (lto_symtab_merge): Do not merge cgraph nodes here.
3721 (lto_symtab_resolve_can_prevail_p): Simplify.
3722 (lto_symtab_resolve_symbols): Store cgraph node.
3723 (lto_symtab_merge_decls_1): Simplify. Do not drop non-prevailing
3724 functions from the symtab.
3725 (lto_symtab_merge_cgraph_nodes_1): New function.
3726 (lto_symtab_merge_cgraph_nodes): Likewise.
3727
ea989a1f
RG
37282009-10-22 Richard Guenther <rguenther@suse.de>
3729
3730 PR lto/41791
3731 * lto-streamer-out.c (lto_output_location): Stream the
3732 system header flag.
3733 * lto-streamer-in.c (lto_input_location): Likewise.
3734
48710229 37352009-10-22 Razya Ladelsky <razya@il.ibm.com>
2c9062e2
UB
3736
3737 * cfgloopmanip.c (duplicate_subloops): Export.
48710229 3738 * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
2c9062e2 3739 (transform_to_exit_first_loop): Duplicate bbs starting from
48710229
RL
3740 header up to loop->latch instead of exit->src.
3741 Initialize control variable to the correct number of iterations.
3742 (gather_scalar_reductions): Do not register double reductions.
2c9062e2
UB
3743 (parallelize_loops): Dump which loop is tested.
3744 Indicate whether the parallelized loop is inner or not.
48710229 3745 Remove the innermost-loop requirement.
2c9062e2 3746 * cfgloop.h (duplicate_subloops): Export.
48710229
RL
3747 * tree-cfg.c (add_phi_args_after_redirect): New function.
3748 (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
3749 Call duplicate_subloops.
3750 Update number of iterations at the exit condition.
3751 Don't redirect nexits always to the loop exit.
3752 Redirect copied edges from latch to the loop exit.
48710229 3753
0d4958d0
JH
37542009-10-22 Jan Hubicka <jh@suse.cz>
3755
3756 * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
3757 flag_ltrans check.
3758 * ipa-inline.c (cgraph_mark_inline_edge,
3759 cgraph_decide_inlining_of_small_function,
2c9062e2
UB
3760 cgraph_decide_inlining, inline_read_summary): Disable indirect
3761 inlining for WPA for time being.
0d4958d0 3762
7e06c3d6 3763 PR tree-optimize/40556
0d4958d0
JH
3764 * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
3765
f9c91f8a
RB
37662009-10-22 Richard Guenther <rguenther@suse.de>
3767
3768 * lto-streamer.h (lto_symtab_clear_resolution): Remove.
3769 * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
3770
c59f5d1b
JH
37712009-10-22 Jan Hubicka <jh@suse.cz>
3772
0d4958d0 3773 PR lto/41730
f9c91f8a
RB
3774 * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
3775 global vars.
3776 (check_call): Handle only indirect calls.
3777 (propagate_bits): Update comment.
3778 (write_node_summary_p): Turn bogus check to assert.
3779 (ipa_reference_write_summary): Stream calls_read_all properly.
3780 (ipa_reference_read_summary): Stream in calls_read_all properly.
3781 (read_write_all_from_decl): New function.
3782 (propagate): Handle OVERWRITABLE nodes and external calls here.
2c9062e2
UB
3783 * ipa-pre-const.c (check_call): In IPA mode handle indirect
3784 calls only.
f9c91f8a
RB
3785 (analyze_function): Do not check visibility here.
3786 (add_new_function): We summary OVERWRITABLE too.
3787 (generate_summary): Stream OVERWRITABLE nodes too.
3788 (propagate): Handle external calls and OVERWRITABLE nodes here.
3789 (local_pure_const): Check visibility here.
c59f5d1b 3790
fb3f88cc
JH
37912009-10-22 Jan Hubicka <jh@suse.cz>
3792
3793 * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
3794 (pass_ipa_cp): Register them.
3795 (ipcp_init_stage): Analyze all functions for whopr/lto.
3796 (ipcp_propagate_stage): Skip external calls.
3797 (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
2c9062e2
UB
3798 * ipa-reference.c (write_node_summary_p): Fix thinko about
3799 availability.
fb3f88cc 3800 * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
2c9062e2
UB
3801 when in ltrans, skip executing of ipa passes since everything
3802 should've been done.
fb3f88cc
JH
3803 * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
3804 (inline_generate_summary): Likewise.
3805 (inline_read_summary): New function.
3806 (inline_write_summary): New function.
3807 (pass_ipa_inline): Register new hooks.
3808 * ipa-prop.c: Inlcude lto-streamer.h
3809 (ipa_edge_args_vector): Update declaration.
3810 (ipa_count_arguments, ipa_compute_jump_functions,
3811 ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
3812 (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
3813 ipa_read_node_info): New static functions.
3814 (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
3815 (duplicate_array): Use xmalloc.
3816 (duplicate_ggc_array): New.
3817 (ipa_edge_duplication_hook): Use it.
3818 (ipa_update_after_lto_read): New function.
3819 * ipa-prop.h (ipa_prop_write_jump_functions,
3820 ipa_prop_read_jump_functions): Declare.
3821 (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
3822 jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
3823 (ipa_edge_args_vector): Move into GGC.
3824 (ipa_check_create_edge_args): Update.
3825 (ipa_update_after_lto_read): New.
2c9062e2
UB
3826 * passes.c (ipa_write_summaries_1): When in wpa, do not write
3827 summaries.
fb3f88cc 3828 (ipa_read_summaries): When in ltrans, so not read summaries.
2c9062e2
UB
3829 * lto-streamer.c (lto_get_section_name): Add
3830 LTO_section_jump_functions.
fb3f88cc
JH
3831 * lto-streamer.h (LTO_section_jump_functions): New section.
3832 (produce_asm): Declare.
3833 * lto-cgraph.c (output_cgraph): Output edges in reverse order.
3834 * lto-streamer-out.c (produce_asm): Export.
3835 * lto-streamer-in.c: Include tree-pass.h
3836 (input_function): Free dominance info when done.
3837 (lto_read_body): Push ipa_inline in ltrans stage.
3838 * gengtype.c (open_base_files): Add ipa-prop.h into includes.
3839 * Makefile.in (GTFILES): Add ipa-prop.h
3840
34677bae
MK
38412009-10-22 Matthias Klose <doko@ubuntu.com>
3842
3843 * doc/install.texi: Document --enable-browser-plugin.
3844
7e1e7d4c
VM
38452009-10-21 Vladimir Makarov <vmakarov@redhat.com>
3846
3847 * doc/invoke.texi (fira-loop-pressure): Update default value.
3848 * opts.c (decode_options): Remove default value setting for
3849 flag_ira_loop_pressure.
3850 * config/ia64/ia64.c (ia64_override_options): Set
3851 flag_ira_loop_pressure up for -O3.
3852 * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
2c9062e2 3853
f29deac9
SP
38542009-10-21 Sebastian Pop <sebastian.pop@amd.com>
3855
3856 PR tree-optimization/41497
3857 * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
3858 chrec_dont_know if the evolution function returned by follow_ssa_edge
3859 is constant in the analyzed loop and is not compatible with the
3860 initial value before the loop.
3861 * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
3862
58f451f0
JM
38632009-10-21 Joseph Myers <joseph@codesourcery.com>
3864
3865 * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
3866
de55f03a
JJ
38672009-10-21 Jakub Jelinek <jakub@redhat.com>
3868
3869 PR other/25507
3870 * doc/invoke.texi: Document -print-multi-os-directory.
3871
47f447b1
JH
38722009-10-21 Jack Howarth <howarth@bromo.med.uc.edu>
3873
3874 PR c++/41313
3875 * gcc/config/darwin10.h: Use default_emit_unwind_label.
3876 * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
3877 when darwin_emit_unwind_label is used.
3878
59a05b0c
EB
38792009-10-21 Eric Botcazou <ebotcazou@adacore.com>
3880
3881 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
3882 order of checks.
3883
288f5b2e
RH
38842009-10-20 Richard Henderson <rth@redhat.com>
3885
3886 * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
3887 before emit_post_landing_pad.
3888
53d66977
AN
38892009-10-20 Adam Nemet <anemet@caviumnetworks.com>
3890
3891 * config/mips/mips.c (mips_binary_cost): Add new argument speed.
3892 Use when calling rtx_costs.
3893 (mips_rtx_costs): Fix formatting. Use argument speed rather than the
3894 global optimize_size. Pass speed to mips_binary_cost.
3895
ddd0c781
JJ
38962009-10-20 Jakub Jelinek <jakub@redhat.com>
3897
3898 * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
3899 of TREE_CONSTANT.
3900
3af4ba41
RS
39012009-10-20 Richard Sandiford <rdsandiford@googlemail.com>
3902
3903 * rtl.h (simplify_replace_fn_rtx): Declare.
3904 (wrap_constant, unwrap_constant): Delete.
3905 * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
3906 (expand_debug_expr): Don't call wrap_constant.
3907 * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
3908 (auto_adjust_pair): Fold into...
3909 (propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC.
3910 Just return a new value.
3911 (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
3912 otherwise use simplify_replace_rtx.
3913 * cselib.c (wrap_constant): Reinstate old definition.
3914 (cselib_expand_value_rtx_1): Don't wrap constants.
3915 * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
3916 simplify_replace_rtx.
3917 (bypass_block): Fix formatting in calls to simplify_replace_rtx.
3918 * reload1.c (reload): Skip all uses for an insn before adjusting it.
3919 Use simplify_replace_rtx.
3920 * simplify-rtx.c (simplify_replace_fn_rtx): New function,
3921 adapted from...
3922 (simplify_replace_rtx): ...here. Turn into a wrapper for
3923 simplify_replace_fn_rtx.
3924 (simplify_unary_operation): Don't unwrap CONSTs.
3925 * var-tracking.c (check_wrap_constant): Delete.
3926 (vt_expand_loc_callback): Don't call it.
3927 (vt_expand_loc): Likewise.
3928
5c9ffc86
PO
39292009-10-20 Pascal Obry <obry@adacore.com>
3930 Eric Botcazou <ebotcazou@adacore.com>
3931
3932 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
3933
1578e910
MM
39342009-10-20 Michael Matz <matz@suse.de>
3935
3936 * loop-invariant.c (create_new_invariant): Use different magic number.
3937
70041f8a
RE
39382009-10-20 Richard Earnshaw <rearnsha@arm.com>
3939
3940 PR target/39247
3941 * arm.c (arm_override_options): Forcibly disable hot/cold block
3942 partitioning.
3943
8ee2bec9
AO
39442009-10-20 Alexandre Oliva <aoliva@redhat.com>
3945
3946 PR debug/41739
3947 * haifa-sched.c (try_ready): Skip debug deps updating speculation
3948 status.
3949
b78cd885
RG
39502009-10-20 Richard Guenther <rguenther@suse.de>
3951
3952 * ggc-page.c: Include cfgloop.h.
3953 (struct max_alignment): Drop long double, add void *.
3954 (extra_order_size_table): Add low non-power-of-two multiples
3955 of MAX_ALIGNMENT. Drop small type-based entries, add
3956 tree_type, cgraph_node and loop.
3957 * alloc-pool.c (struct allocation_object_def): Drop long double
3958 aligning element.
3959
dd8c071d
JJ
39602009-10-20 Jakub Jelinek <jakub@redhat.com>
3961
3962 PR debug/41340
3963 * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
3964 referenced just in DEBUG_INSNs.
3965
20d36f0e
RG
39662009-10-20 Richard Guenther <rguenther@suse.de>
3967
3968 PR lto/41761
3969 * gimple.c (gimple_register_type): Make sure we register
3970 the types main variant first.
3971
b0cc341f
RG
39722009-10-20 Richard Guenther <rguenther@suse.de>
3973
3974 * gimple.c (gimple_types_compatible_p): Simplify. Move
3975 cheap checks before hashtable queries. Add checks for
3976 TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
3977
a1aa1701
EB
39782009-10-20 Eric Botcazou <ebotcazou@adacore.com>
3979
3980 * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
3981 without size or with size that can't be represented as a host integer.
3982
717f4048
AO
39832009-10-20 Alexandre Oliva <aoliva@redhat.com>
3984
3985 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
3986 the removal of a debug stmt as a significant change.
3987
421b1e6b
WG
39882009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com>
3989
3990 * config/s390/s390.md: Added agen condition to operand
2c9062e2
UB
3991 forwarding bypasses. Added bypass for early address generation
3992 use of int results. Updated comments.
421b1e6b 3993
bd62d832
SD
39942009-10-20 Stefan Dösinger <stefan@codeweavers.com>
3995
3996 * config/i386/i386.c: Remove signal.h #include.
3997
91c29f68
JZ
39982009-10-20 Jie Zhang <jie.zhang@analog.com>
3999
bd62d832 4000 * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
91c29f68
JZ
4001 * doc/rtl.texi: Document ss_abs.
4002
2c6e3f55
JJ
40032009-10-19 Jakub Jelinek <jakub@redhat.com>
4004
4005 * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
4006 * c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN
4007 instead of C_LEX_RAW_STRINGS.
4008 (lex_string): Handle CPP_UTF8STRING.
4009 * c-parser.c (c_parser_postfix_expression): Likewise.
4010 * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
4011 (C_LEX_STRING_NO_JOIN): ... this.
4012
4d696ad0
AS
40132009-10-19 Anatoly Sokolov <aesok@post.ru>
4014
4015 * config/cris/cris.c (cris_function_value, cris_libcall_value,
4016 cris_function_value_regno_p): New functions.
4017 (cris_promote_function_mode): Update comment.
4018 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
bd62d832 4019 * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
4d696ad0
AS
4020 (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
4021 * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
4022
4793ad6b
JJ
40232009-10-19 Jakub Jelinek <jakub@redhat.com>
4024
4025 * unwind-dw2.c (execute_stack_op): Fix operand order for
4026 DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
4027
a141816c
EB
40282009-10-19 Eric Botcazou <ebotcazou@adacore.com>
4029
4030 * gimple-low.c (struct lower_data): Add cannot_fallthru field.
4031 (lower_stmt) <GIMPLE_BIND>: Add comment.
4032 <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
4033 and return.
4034 <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
4035 Otherwise lower it and set cannot_fallthru to true.
4036 <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
bd62d832 4037 <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
a141816c
EB
4038 <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
4039 to true for a noreturn call. Do not remove statements.
4040 <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
4041 Set cannot_fallthru to false on function exit.
4042 (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
4043 <GIMPLE_ASSIGN>: Remove.
4044
2dfdbf2b
AK
40452009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4046
4047 * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
4048
33ab2bd4
AK
40492009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4050
4051 * config/s390/s390.c (s390_z10_optimize_cmp): Use
4052 next/prev_active_insn to skip DEBUG_INSNs as well.
4053
5728868b
JM
40542009-10-19 Joseph Myers <joseph@codesourcery.com>
4055
4056 * config/arm/arm.c (output_move_neon): Use DImode in call to
4057 adjust_address.
4058
d23a7734
MK
40592009-10-19 Matthias Klose <doko@ubuntu.com>
4060
4061 PR target/40134
4062 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
4063
2d3fc6aa
JJ
40642009-10-19 Jakub Jelinek <jakub@redhat.com>
4065
bd62d832 4066 * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
2d3fc6aa
JJ
4067
40682009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
db826dae
AH
4069
4070 PR middle-end/41738
4071 * optabs.c (expand_binop): Make mode of shift count expression mode
4072 of shift count not target.
4073 Remove indent nit.
4074
d79c2936
EB
40752009-10-17 Eric Botcazou <ebotcazou@adacore.com>
4076
4077 * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
4078 case. Force using values to replace references within the statement.
4079 (convert_local_reference_stmt): Likewise.
4080
79ddec02
EB
40812009-10-17 Eric Botcazou <ebotcazou@adacore.com>
4082
4083 * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
4084 remove a subsequent GOTO or RETURN statement.
4085
7e90b362
AH
40862009-10-17 Andy Hutchinson <hutchinsonandy@aim.com>
4087
4088 * config/avr.md (*movqi): Add zero as equally preferable constraint
4089 as general register.
79ddec02 4090 (*movhi): Ditto.
7e90b362 4091
79ddec02 40922009-10-17 Eric Botcazou <ebotcazou@adacore.com>
1ee41d43
EB
4093
4094 * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
4095
b7dae211
RG
40962009-10-17 Richard Guenther <rguenther@suse.de>
4097
bd62d832 4098 * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
b7dae211 4099
57e4ba84
RG
41002009-10-17 Richard Guenther <rguenther@suse.de>
4101
4102 * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
4103 operands in COMPONENT_REFs.
4104
7fc6a96b
AS
41052009-10-17 Anatoly Sokolov <aesok@post.ru>
4106
4107 * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
4108 if not defined. Change type of second argument to const_rtx.
4109 (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
4110 macro not defined.
4111 * targhooks.h (default_libcall_value): Update prototype.
4112 * target.h (struct gcc_target): Change type of second argument of
4113 libcall_value to const_rtx.
4114 * config/arm/arm.c (arm_libcall_value): Change type of second argument
4115 to const_rtx.
4116 (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
4117 * doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation.
4118
3df9609a
JJ
41192009-10-17 Jakub Jelinek <jakub@redhat.com>
4120
4121 PR debug/40521
4122 * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
4123 * cgraphunit.c (cgraph_optimize): Call it.
4124 * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
4125 (dwarf2out_assembly_start): ... here. New hook.
4126 (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
4127 * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
4128 hook.
4129 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
4130 * sdbout.c (sdb_debug_hooks): Likewise.
4131 * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
4132 (vmsdbgout_assembly_start): New hook.
4133
15f01e4a
AO
41342009-10-17 Alexandre Oliva <aoliva@redhat.com>
4135
4136 * rtl.h (RTL_LOCATION): Fix typo.
4137
da1e1503
AO
41382009-10-17 Alexandre Oliva <aoliva@redhat.com>
4139
4140 * print-rtl.c (print_rtx): Print locators in asm_operands
4141 and asm_input.
4142
f49b295a
AO
41432009-10-17 Alexandre Oliva <aoliva@redhat.com>
4144
4145 PR debug/41535
4146 * sched-deps.c (depl_on_debug_p): New.
4147 (attach_dep_link): Reject debug deps before nondebug deps.
4148 (add_to_deps_list): Insert debug deps after nondebug deps.
4149 (sd_lists_empty_p): Stop at first nonempty list. Disregard debug
4150 deps.
4151 (sd_add_dep): Do not reject debug deps.
4152 (add_insn_mem_dependence): Don't count debug deps.
4153 (remove_from_deps): Likewise.
4154 (sched_analyze_2): Set up mem deps on debug insns.
4155 (sched_analyze_insn): Record reg uses for deps on debug insns.
4156 * haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't
4157 try_ready nondebug insn after debug insn.
4158 * ddg.c (create_ddg_dep_from_intra_loop_link,
4159 create_ddg_dep_no_link): Don't reject debug deps.
4160
e575382e
RG
41612009-10-16 Richard Guenther <rguenther@suse.de>
4162
4163 * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
4164 (maybe_merge_incomplete_and_complete_type): Likewise.
4165 (lto_symtab_merge): Do not call them. Do not warn for
4166 complete vs. incomplete compatible types.
4167 (lto_symtab_merge_decls_2): Simplify.
4168 * gimple.c (gimple_force_type_merge): Remove.
4169 (gimple_types_compatible_p): Make it static.
4170 * gimple.h (gimple_force_type_merge): Remove.
4171 (gimple_types_compatible_p): Likewise.
4172
3b24c708
JJ
41732009-10-16 Jakub Jelinek <jakub@redhat.com>
4174
4175 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
4176 DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
4177
076ba157
RG
41782009-10-16 Richard Guenther <rguenther@suse.de>
4179
4180 PR tree-optimization/41728
4181 * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
4182 if fold_stmt did anything.
4183
35f1e9f4
RG
41842009-10-16 Richard Guenther <rguenther@suse.de>
4185
4186 PR lto/41715
4187 * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
4188 (maybe_fixup_handled_component): New function.
4189 (input_gimple_stmt): Fixup mismatched decl replacements.
4190
775dc670
RG
41912009-10-16 Richard Guenther <rguenther@suse.de>
4192
4193 PR lto/41713
4194 * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
4195 the same as VAR_DECL.
4196
f798226d
RG
41972009-10-16 Richard Guenther <rguenther@suse.de>
4198
4199 * gimple.c (iterative_hash_gimple_type): For integer types
4200 also hash their minimum and maximum values and the string flag.
4201 For array types hash their domain and the string flag.
4202
021ed367
RG
42032009-10-16 Richard Guenther <rguenther@suse.de>
4204
4205 * gimple.c (gimple_types_compatible_p): Restrict completing
4206 types to record or unions. Simplify completion.
4207 Do not merge records or unions with different
4208 TYPE_STRUCTURAL_EQUALITY_P tag.
4209 (iterative_hash_gimple_type): Restrict non-recursing into
4210 pointer targets for records and unions.
4211
d02a5a4b
JJ
42122009-10-15 Jakub Jelinek <jakub@redhat.com>
4213
4214 PR debug/41717
4215 * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
4216 * dwarf2out.c (mem_loc_descriptor): Don't handle
4217 POST_INT/POST_DEC/POST_MODIFY like SUBREG. For SUBREG
4218 punt if it is not lowpart subreg or if inner mode isn't
4219 MODE_INT.
4220
200ab6fd
AK
42212009-10-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4222
4223 * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
4224 investigating previous or next insns.
4225
d7c79c4d
EB
42262009-10-16 Eric Botcazou <ebotcazou@adacore.com>
4227
4228 * tree-sra.c (build_ref_for_offset_1): Update comment.
4229
c68e7b86
WG
42302009-10-16 Wolfgang Gellerich <gellerich@de.ibm.com>
4231
4232 * config/s390/s390.md (atype): Added missing values.
4233
b1978a90
JDA
42342009-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4235
4236 PR target/41702
bd62d832 4237 * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
b1978a90
JDA
4238 (casesi64p): Update pattern to reflect above.
4239
4b2e464e
SE
42402009-10-15 Steve Ellcey <sje@cup.hp.com>
4241
4242 PR rtl-optimization/41697
4243 * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
4244
1c9df37c
MM
42452009-10-15 Michael Meissner <meissner@linux.vnet.ibm.com>
4246
4247 PR target/23983
4248 * config/rs6000/predicates.md: Update copyright year.
4249 * config/rs6000/altivec.md: Ditto.
2c9062e2 4250
1c9df37c
MM
4251 * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
4252 (MD_INCLUDES): Add a2.md.
2c9062e2 4253
1c9df37c
MM
4254 * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
4255 RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
4256 (builtin_classify): New static vector to classify various builtins
4257 to get the tree attributes correct.
4258 (def_builtin): Set the attributes of builtins based on what the
4259 builtin does (i.e. memory operation, floating point, saturation
4260 need special attributes, others are pure functions).
4261
4262 * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
4263 the builtins.
4264 (enum rs6000_builtins): Include rs6000-builtin.def to define the
4265 builtins. Change the end marker to MAX_RS6000_BUILTINS from
4266 RS6000_BUILTIN_COUNT.
4267 (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
4268 MAX_RS6000_BUILTINS.
4269
4270 * config/rs6000/rs6000-builtin.def: New file that combines the
4271 builtin enumeration name and attributes.
4272
9017096f
L
42732009-10-15 H.J. Lu <hongjiu.lu@intel.com>
4274
4275 * config/i386/linux.h (ASM_SPEC): Add --32.
4276
7613143b
JJ
42772009-10-15 Jakub Jelinek <jakub@redhat.com>
4278
4279 * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
4280 and DW_TAG_template_alias.
4281 (dwarf_attr_name): Handle DW_AT_main_subprogram,
4282 DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
4283 DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
4284 DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
4285 DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
4286 and DW_AT_GNU_odr_signature.
4287 (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
4288 DW_FORM_flag_present and DW_FORM_ref_sig8.
4289 (output_signature): Only print name on the first byte.
4290 (output_die): Likewise for dw_val_class_data8.
4291
83bb5ce3
AM
42922009-10-15 Alexander Monakov <amonakov@ispras.ru>
4293
4294 * doc/invoke.texi: Clarify that most optimizations are not enabled
4295 without -O.
4296
77785f4f
RG
42972009-10-15 Richard Guenther <rguenther@suse.de>
4298
4299 PR lto/41668
4300 * gimple.c (compare_type_names_p): Handle anonymous names
4301 differently based on new mode argument.
4302 (gimple_types_compatible_p): For structs also compare the tags.
4303 (iterative_hash_type_name): Rename to ...
4304 (iterative_hash_name): ... this. Hash all names.
4305 (iterative_hash_gimple_type): Fix hashing the struct tag of
4306 pointer targets. Hash field decl names.
4307
4c8160e7
RG
43082009-10-15 Richard Guenther <rguenther@suse.de>
4309
4310 PR lto/41669
4311 * gimple.c (gimple_get_alias_set): Avoid recursing on
4312 invalid type topology.
4313
3f254607
AP
43142009-10-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
4315
4316 * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
4317
23503efc
RG
43182009-10-15 Richard Guenther <rguenther@suse.de>
4319
4320 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
4321
b44dd043
JJ
43222009-10-15 Jakub Jelinek <jakub@redhat.com>
4323
4324 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
4325 add --with-tune{,-32,-64} configured default for -mtune if explicit
4326 -mcpu is used.
4327
f67c7a8f
DG
43282009-10-14 Daniel Gutson <dgutson@codesourcery.com>
4329
bd62d832 4330 * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
f67c7a8f 4331
18674659 43322009-10-14 DJ Delorie <dj@redhat.com>
2c9062e2 4333
18674659
DD
4334 * config/h8300/h8300.c (F): New.
4335 (Fpa): New.
4336 (h8300_emit_stack_adjustment): Call them.
4337 (push): Likewise.
4338 (h8300_push_pop): Likewise.
4339 (h8300_expand_prologue): Likewise.
4340 * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
4341 (MUST_USE_SJLJ_EXCEPTIONS): Define.
4342 (INCOMING_RETURN_ADDR_RTX): Define.
4343 (INCOMING_FRAME_SP_OFFSET): Define.
4344 (DWARF_CIE_DATA_ALIGNMENT): Define.
4345
4c0a0455
JJ
43462009-10-14 Jakub Jelinek <jakub@redhat.com>
4347
4348 * stor-layout.c (place_field): Don't emit -Wpadded warnings for
4349 fields in builtin structs.
4350 (finalize_record_size): Likewise.
4351
88ca1146
RG
43522009-10-14 Richard Guenther <rguenther@suse.de>
4353
4354 * gimple.c (gtc_ob): New global.
4355 (struct type_pair_d): Replace pointers with type UIDs.
4356 (type_pair_hash): Adjust.
4357 (type_pair_eq): Likewise.
4358 (lookup_type_pair): Likewise. Allocate from an obstack.
4359 (gimple_force_type_merge): Adjust.
4360 (gimple_types_compatible_p): Likewise.
4361 (free_gimple_type_tables): Free the obstack.
4362
4f2a9af8
JJ
43632009-10-14 Jakub Jelinek <jakub@redhat.com>
4364
4365 * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
4366 stmts setting DEBUG_EXPR_DECLs.
4367
4368 * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
4369 Don't crash if mode1 is VOIDmode.
4370
1833192f
VM
43712009-09-26 Vladimir Makarov <vmakarov@redhat.com>
4372
4373 * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
bd62d832 4374 * params.h (IRA_LOOP_RESERVED_REGS): New.
1833192f
VM
4375 * tree-pass.h (pass_subregs_of_mode_init,
4376 pass_subregs_of_mode_finish): Remove.
4377 * passes.c (pass_subregs_of_mode_init,
4378 pass_subregs_of_mode_finish): Remove.
4379 (pass_reginfo_init): Move before loop optimizations.
4380 * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
4381 * common.opt (fira-loop-pressure): New.
4382 * toplev.h (flag_ira_loop_pressure): New.
bd62d832 4383 * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
1833192f
VM
4384 * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
4385 Make external and void type functions.
4386 (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
4387 pass_subregs_of_mode_finish): Remove.
4388 * ira-costs.c (init_costs): Call init_subregs_of_mode.
4389 * regmove.c: Include ira.h.
4390 (regmove_optimize): Call ira_set_pseudo_classes after IRA based
4391 register pressure calculation in loops.
4392 * loop-invariant.c: Include REGS_H and ira.h.
4393 (struct loop_data): New members max_reg_pressure, regs_ref, and
4394 regs_live.
4395 (struct invariant): New member orig_regno.
4396 (curr_loop): New variable.
4397 (find_exits): Initialize regs_ref and regs_live.
4398 (create_new_invariant): Initialize orig_regno.
4399 (get_cover_class_and_nregs): New.
4400 (get_inv_cost): Make aregs_needed an array. Use regs_needed as an
4401 array. Add code for flag_ira_loop_pressure.
4402 (gain_for_invariant): Make new_regs an array. Add code for
4403 flag_ira_loop_pressure.
4404 (best_gain_for_invariant): Ditto.
4405 (set_move_mark): New parameter gain. Use it for debugging output.
4406 (find_invariants_to_move): Make regs_needed and new_regs an array.
4407 Add code for flag_ira_loop_pressure.
4408 (move_invariant_reg): Set up orig_regno.
4409 (move_invariants): Set up reg classes for pseudos for
4410 flag_ira_loop_pressure.
4411 (free_loop_data): Clear regs_ref and regs_live.
4412 (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
4413 get_regno_cover_class, change_pressure, mark_regno_live,
4414 mark_regno_death, mark_reg_store, mark_reg_clobber,
4415 mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
4416 (move_loop_invariants): Calculate pressure. Initialize curr_loop.
4417 * ira.c (ira): Call ira_set_pseudo_classes after IRA based
4418 register pressure calculation in loops if new regs were added.
4419 Call finish_subregs_of_mode.
4420 * opts.c (decode_options): Set up flag_ira_loop_pressure.
4421 * Makefile.in (loop-invariant.o): Add ira.h.
4422 (regmove.o): Ditto.
4423 * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
4424 Describe.
4425 * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
2c9062e2 4426
200c8750
RG
44272009-10-14 Richard Guenther <rguenther@suse.de>
4428
4429 * lto-symtab.c (lto_symtab_compatible): Fold in ...
4430 (lto_symtab_merge): ... here. Rewrite both to take the
bd62d832 4431 prevailing and a to-be-merged entry and to queue diagnostics properly.
200c8750
RG
4432 (lto_symtab_resolve_replaceable_p): New predicate for
4433 symbol resolution.
4434 (lto_symtab_resolve_can_prevail_p): Likewise.
4435 (lto_symtab_resolve_symbols): Rewrite. Fold in code that
4436 handles merging commons by choosing the largest decl. Fold
4437 in code that gives ODR errors.
4438 (lto_symtab_merge_decls_2): Simplify a lot. Emit queued
4439 diagnostics here.
4440 (lto_symtab_merge_decls_1): Re-structure. Deal with the
4441 case of no prevailing decl here. Diagnose mismatches
4442 in object types here. Drop all but the prevailing decls.
4443 (lto_symtab_prevailing_decl): Return the single prevailing decl.
4444 * lto-streamer-in.c (lto_input_tree_ref): Deal with
4445 VIEW_CONVERT_EXPRs in decl slots. Unshare the tree in this case.
4446
77ce724c
RG
44472009-10-14 Richard Guenther <rguenther@suse.de>
4448
4449 PR lto/41521
4450 * lto-streamer-in.c (input_bb): Replace debug stmts with
4451 nops instead of dropping them.
4452
8ad1dde7
NC
44532009-10-14 Nick Clifton <nickc@redhat.com>
4454
bd62d832
SD
4455 * gcc/doc/extended.texi: Replace the dash character with @minus{}
4456 in situations where it is being used as a minus symbol.
8ad1dde7
NC
4457 * gcc/doc/tm.texi: Likewise.
4458 * gcc/doc/md.texi: Likewise.
4459
b29ee46c
JJ
44602009-10-14 Jakub Jelinek <jakub@redhat.com>
4461
96c169e1
JJ
4462 PR preprocessor/41543
4463 * input.h (BUILTINS_LOCATION): Change to 1 from 2.
4464 Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
4465 * tree.c: Include intl.h.
4466 (expand_location): Handle BUILTINS_LOCATION.
4467 * Makefile.in (tree.o): Depend on intl.h.
4468
b29ee46c
JJ
4469 PR debug/41695
4470 * dwarf2out.c (dwarf2out_var_location): Always clear
4471 last_postcall_label when changing last_label.
4472
1b5bc8e9
PO
44732009-10-14 Pascal Obry <obry@adacore.com>
4474
4475 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
4476 (process_command): Handle -E as done with -c and -S. Do not add
4477 the target executable suffix to the output file when -E is used.
4478 (main): Adjust error message accordingly.
4479
a83f5409
AO
44802009-10-14 Alexandre Oliva <aoliva@redhat.com>
4481
4482 PR debug/41343
4483 PR debug/41447
4484 PR debug/41264
4485 PR debug/41338
4486 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
4487 decl with rtl.
4488 (tree_code_size): Likewise.
4489
7610abd8
KG
44902009-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4491
4492 * builtins.c (fold_builtin_1): Support complex "arc" functions.
4493 * real.h (HAVE_mpc_arc): Define.
4494
1cc24576
KK
44952009-10-14 Kaz Kojima <kkojima@gcc.gnu.org>
4496
4497 * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
4498 (struct builtin_description): Add fndecl field.
4499 (bdesc): Remove const qualifier. Update initializer.
4500 (sh_media_init_builtins): Remove const qualifier for d. Record
4501 the result of add_builtin_function to the fndecl field.
4502 (sh_builtin_decl): New.
4503 (sh_media_builtin_decl): New.
4504
83907fdd
HPN
45052009-10-14 Hans-Peter Nilsson <hp@axis.com>
4506
4507 PR target/38948
4508 * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
4509 requests between special registers.
4510
0e081833
EB
45112009-10-13 Eric Botcazou <ebotcazou@adacore.com>
4512
4513 * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
4514
d6063d7f
RH
45152009-10-13 Richard Henderson <rth@redhat.com>
4516
4517 PR tree-optimization/41377
4518 * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
4519 (cleanup_empty_eh_merge_phis): New change_region parameter;
4520 pass it on to redirect_eh_edge_1. Update callers.
4521 (cleanup_empty_eh_unsplit): Don't require an existing EH label
4522 at the destination block.
b9e467a2
BS
4523
45242009-10-13 Basile Starynkevitch <basile@starynkevitch.net>
d6063d7f
RH
4525
4526 * passes.c (register_pass): Replaced gcc_unreachable by
4527 fatal_error on failure. Mentions plugins in comments & messages.
b9e467a2 4528
e4fb38bd
JJ
45292009-10-13 Jakub Jelinek <jakub@redhat.com>
4530
4531 PR target/41693
4532 * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
4533 * sched-vis.c (print_value): Use it.
4534 * cselib.c (cselib_hash_rtx): Likewise.
4535 * print-rtl.c (print_rtx): Likewise.
4536 * cfgexpand.c (expand_debug_rtx): Likewise.
4537 * var-tracking.c (vt_expand_loc_callback): Likewise.
4538
ab6218f1
RG
45392009-10-13 Richard Guenther <rguenther@suse.de>
4540
4541 PR lto/41565
4542 * opts.c (handle_option): Split out code to handle setting
4543 the options flag var ...
4544 (set_option): ... here.
4545 * opts.h (set_option): Declare.
4546 * lto-opts.c (register_user_option_p): Include -fexceptions
4547 and all position independent code variants.
4548 (handle_common_option): Remove.
4549 (lto_reissue_options): Use set_option.
4550
c4e5fe4b
MJ
45512009-10-13 Martin Jambor <mjambor@suse.cz>
4552
4553 PR tree-optimization/41661
4554 * ipa-prop.c (compute_complex_pass_through): Allow only operations
4555 that are tcc_comparisons or do not change the type in any
4556 un-usleless way.
4557 * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
4558 folding tcc_comparison operations.
4559
35fcb6ba
AK
45602009-10-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4561
4562 * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
4563 properly.
4564
0ca5af51
AO
45652009-10-12 Alexandre Oliva <aoliva@redhat.com>
4566
4567 PR debug/41343
4568 PR debug/41447
4569 PR debug/41264
4570 PR debug/41338
4571 * tree.def (DEBUG_EXPR_DECL): New.
4572 * rtl.def (DEBUG_EXPR): New.
4573 * gengtype.c (adjust_field_rtx_def): Handle it.
4574 * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
4575 (insert_debug_temp_for_var_def): ... this. Drop support for
4576 moving. Take iterator for def stmt; insert debug stmt before it.
4577 Scan early for use count and kind in debug stmts.
4578 (propagate_defs_into_debug_stmts): Rename to...
4579 (insert_debug_temps_for_defs): ... this. Likewise.
4580 * tree.h (DEBUG_TEMP_UID): New.
4581 * tree.c (next_debug_decl_uid): New.
4582 (make_node_stat): Count debug decls separately.
4583 (copy_node_stat): Likewise.
4584 * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
4585 * var-tracking.c (dv_is_decl_p): Recognize it.
4586 (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
4587 (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
4588 (vt_expand_loc_callback): Expand DEBUG_EXPRs.
4589 (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
4590 * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
4591 (cselib_hash_rtx): Likewise.
4592 (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
4593 * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
4594 debug bind stmts.
4595 * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
4596 (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
4597 * rtl.c (copy_rtx): Likewise.
4598 (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
4599 * print-rtl.c (print_rtx): Likewise.
4600 * sched-vis.c (print_value): Likewise.
4601 (print_insn): Handle DEBUG_EXPR_DECL.
4602 * tree-dump.c (dequeue_and_dump): Likewise.
4603 * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
4604 * gimple-iterator (gsi_replace): Check for same lhs.
4605 (gsi_remove): Insert debug temps.
4606 * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
4607 (move_computations_stmt): Drop explicit propagation into debug stmts.
4608 (rewrite_bittest): Likewise. Use gsi_remove for propagation.
4609 * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
4610 * tree-ssa-sink.c (statement_sink_location): Likewise.
4611 * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
4612 * tree-ssanames.c (release_ssa_name): Adjust for rename.
4613 * tree-flow.h: Likewise.
4614 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
4615 debug temps without values.
4616 (eliminate_unnecessary_stmts): Don't discard just-inserted
4617 debug stmts.
4618
365cacbf
HPN
46192009-10-12 Hans-Peter Nilsson <hp@axis.com>
4620
4621 PR target/26515
4622 * config/cris/cris.md (andu): Check that operand 1 is one of the
4623 general registers. Fix typo in head comment.
4624
afd2c302 46252009-10-12 Stefan Dösinger <stefan@codeweavers.com>
4c769036 4626
afd2c302
SD
4627 * config/i386/i386.md (vswapmov): New.
4628 * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
4629 (ix86_function_ms_hook_prologue): New.
4630 (ix86_expand_prologue): Handle ms_hook_prologue attribute.
4631 * configure.ac: Test for swap suffix support in as.
4632 * configure: Rebuild.
4633
821bdb23
JJ
46342009-10-12 Jakub Jelinek <jakub@redhat.com>
4635
4636 PR target/41680
4637 * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
4638 paradoxical subregs to prevent partial register stalls if the inner
4639 mode is integer mode.
4640
aeaf114b
UB
46412009-10-12 Uros Bizjak <ubizjak@gmail.com>
4642
4c769036 4643 * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
aeaf114b 4644
9ef3dbcd
DS
46452009-10-12 Dodji Seketeli <dodji@redhat.com>
4646
4647 PR c++/41570
4648 * gcc/dwarf2out.c (template_parameter_pack_die,
4649 gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
4650
3a56edc7
AO
46512009-10-12 Alexandre Oliva <aoliva@redhat.com>
4652
4653 PR debug/41616
4654 * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
4655 on updates too.
4656 (maybe_register_def): Likewise. Take stmt iterator.
4657 (rewrite_update_stmt): Take stmt iterator and pass it on.
4658 (rewrite_update_enter_block): Pass stmt iterator.
4659
2c93399f
AP
46602009-10-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4661
4662 * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
4663 (spu_builtin_decl): New function.
4664
bfb59746
UB
46652009-10-12 Uros Bizjak <ubizjak@gmail.com>
4666
4667 * config/i386/i386.md (SWIM): New mode iterator.
4668 (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
4669 using SWIM mode iterator.
4670 (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
4671 patterns using SWI48 mode iterator.
4672 (*x86_mov<mode>cc_0_m1_se): Macroize insn from
4673 *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
4674 (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
4675 (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
4676 patterns using SWI248 mode iterator.
4677 * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
4678 gen_x86_movdicc_0_m1_rex64 for renamed function
4679
cb7d60a6 46802009-10-11 Jose Ruiz <ruiz@adacore.com>
aeaf114b 4681 Eric Botcazou <ebotcazou@adacore.com>
cb7d60a6
JR
4682
4683 PR target/33743
4684 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
4685 * config/sparc/sol2-unwind.h: New file.
4686
8d232178 46872009-10-11 Olivier Hainque <hainque@adacore.com>
aeaf114b 4688 Eric Botcazou <ebotcazou@adacore.com>
8d232178
OH
4689
4690 PR target/33743
4691 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
4692 * config/i386/sol2-unwind.h: New file.
4693
e1d4f419
L
46942009-10-11 H.J. Lu <hongjiu.lu@intel.com>
4695
4696 PR target/41665
4697 * config/i386/i386.md (addsi_1_zext): Get the proper second
4698 operand for lea.
4699
c47d1dba
RS
47002009-10-11 Richard Sandiford <rdsandiford@googlemail.com>
4701
4702 * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
4703 all OLD_RTXes, not just REGs. Use copy_rtx to create the
4704 replacement value.
4705
652a8c1c
RG
47062009-10-11 Richard Guenther <rguenther@suse.de>
4707
4708 * gimple.c (iterative_hash_type_name): Do not handle special
4709 anonymous names.
4710
b09ee6aa
UB
47112009-10-11 Uros Bizjak <ubizjak@gmail.com>
4712
4713 * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
4714 (*setcc_si_1_and): Ditto.
4715 (*setcc_si_1_movzbl): Ditto.
4716 (*setcc_<mode>_2): Ditto.
4717 (*setcc_qi): Rename from *setcc_1.
4718 (*setcc_qi_slp): Rename from *setcc_2.
4719
4720 (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
4721 (*zero_extendqisi2_movzbw_and splitter): Ditto.
4722
4723 * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
4724 "if" condition, there is already assert with reload_completed present.
4725
57703d27
GP
47262009-10-11 Gerald Pfeifer <gerald@pfeifer.com>
4727
b09ee6aa 4728 * plugin.c (try_init_one_plugin): Improve constness of variable err.
c08766bc 4729
57703d27 47302009-10-10 Gerald Pfeifer <gerald@pfeifer.com>
b09ee6aa 4731
c08766bc
GP
4732 * doc/install.texi (Final install): Refer to
4733 http://gcc.gnu.org/bugs/ for bug reporting.
4734
47f67e51
PB
47352009-10-10 Peter Bergner <bergner@vnet.ibm.com>
4736
4737 * configure.ac: Add test for dci instruction.
4738 * configure: Regenerate.
4739 * config.in: Likewise.
4740 * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
4741 * doc/invoke.texi: Add cpu_type 476 and 476fp.
4742 (-mmulhw): Add 476 to description.
4743 (-mdlmzb): Likewise.
4744 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
4745 * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
4746 (processor_target_table): Add 476 and 476fp entries.
4747 (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
4748 (rs6000_issue_rate): Add CPU_PPC476.
4749 * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
4750 (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
4751 (processor_type): Add PROCESSOR_PPC476.
4752 (EXTRA_SPECS): Add asm_cpu_476 string.
bd62d832 4753 * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
47f67e51
PB
4754 (define_attr "cpu"): Add ppc476.
4755 Include 476.md.
4756 Update comments for 476.
4757 (isel_signed, isel_unsigned): Change to use "isel" type attribute.
4758 * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
4759 Update copyright year.
4760 * config/rs6000/476.md: New file.
4761 * config/rs6000/40x.md: Add description for "isel" attribute.
4762 Update copyright year.
4763 * config/rs6000/440.md: Likewise.
4764 * config/rs6000/603.md: Likewise.
4765 * config/rs6000/6xx.md: Likewise.
4766 * config/rs6000/7450.md: Likewise.
4767 * config/rs6000/7xx.md: Likewise.
4768 * config/rs6000/8540.md: Likewise.
4769 * config/rs6000/cell.md: Likewise.
4770 * config/rs6000/e300c2c3.md: Likewise.
4771 * config/rs6000/e500mc.md: Likewise.
4772 * config/rs6000/mpc.md: Likewise.
4773 * config/rs6000/power4.md: Likewise.
4774 * config/rs6000/power5.md: Likewise.
4775 * config/rs6000/power6.md: Likewise.
4776 * config/rs6000/power7.md: Likewise.
4777 * config/rs6000/rios1.md: Likewise.
4778 * config/rs6000/rios2.md: Likewise.
4779 * config/rs6000/rs64.md: Likewise.
4780
740bb6ad
RG
47812009-10-10 Richard Guenther <rguenther@suse.de>
4782
4783 PR tree-optimization/41654
4784 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
4785 a cond expr before calling gimple_cond_set_condition_from_tree.
4786 (ifcombine_iforif): Likewise.
4787
0c2edd9f
ILT
47882009-10-09 Ian Lance Taylor <iant@google.com>
4789
4790 * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
4791 * configure: Rebuild.
4792
2214382c
NV
47932009-10-09 Neil Vachharajani <nvachhar@google.com>
4794
4795 * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
4796 deprecated.
4797
e9e4b3a8
RG
47982009-10-09 Richard Guenther <rguenther@suse.de>
4799
4800 PR lto/41638
4801 * target-def.h (TARGET_BUILTIN_DECL): Define.
4802 (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
4803 * target.h (struct gcc_target): Add builtin_decl target hook.
4804 * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
4805 * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
4806 target builtins.
4807 * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
4808 not gcc_unreachable.
4809 (lto_output_builtin_tree): Sorry if the target does not support
4810 streaming target builtins.
4811 * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
4812 (rs6000_builtin_decl): New function.
4813 * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
4814 (ix86_builtin_decl): New function.
4815
78441afb
JJ
48162009-10-09 Jakub Jelinek <jakub@redhat.com>
4817
21ece9b2
JJ
4818 PR preprocessor/41445
4819 * c-ppoutput.c (do_line_change): New function.
4820 (cb_line_change): Use it.
4821 (scan_translation_unit): Call do_line_change if
4822 avoid_paste or PREV_WHITE and token location is on a different line
4823 than print.src_line.
4824
9c1e641a
JJ
4825 PR debug/40521
4826 * dwarf2out.c (dwarf2out_init): Test whether
4827 HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
4828 it is defined.
4829
78441afb
JJ
4830 PR rtl-optimization/41646
4831 * calls.c (expand_call): For BLKmode types returned in registers
4832 avoid likely spilled hard regs in copy_blkmode_from_reg generated
4833 insns.
4834
aabf6a03
RG
48352009-10-09 Richard Guenther <rguenther@suse.de>
4836
4837 PR tree-optimization/41634
4838 * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
4839 we remove the correct elements.
4840 (optimize_stmt): Make sure to update stmt operands before
4841 optimizing redundancies.
4842
22d72dbc
AK
48432009-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4844
4845 * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
4846
b1b07c92
RG
48472009-10-09 Richard Guenther <rguenther@suse.de>
4848
4849 PR driver/41637
4850 * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
4851 globals.
4852 (lto_wrapper_exit): New function.
4853 (fatal): Use it.
4854 (fatal_perror): Likewise.
4855 (fork_execute): Use global args_name, do not free it.
4856 (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
4857 * lto-streamer.h: Remove duplicate prototypes.
4858
9f3f7d13
RG
48592009-10-09 Richard Guenther <rguenther@suse.de>
4860
4861 * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
4862 before calling stmt_can_throw_external.
4863
3f49ba3f
EB
48642009-10-09 Eric Botcazou <ebotcazou@adacore.com>
4865
4866 PR tree-optimization/40071
4867 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
4868 pointer if the original data reference doesn't conflict with the
4869 created vector data reference. Fix long line.
4870
85760734
UB
48712009-10-09 Uros Bizjak <ubizjak@gmail.com>
4872
4873 * config/i386/i386.md (any_div): New code iterator.
4874 (u): Handle div and udiv.
4875 (sgnprefix): Ditto.
af2efb2b 4876 (<u>divqi3): Macroize insn from {,u}divqi3 using any_div
85760734
UB
4877 code iterator.
4878 (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
4879 lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
4880 (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
4881 lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
4882
23cd46a1
JM
48832009-10-08 Joseph Myers <joseph@codesourcery.com>
4884
4885 * gcc.c (main): Remove trailing "." from diagnostics.
4886
77831620
CC
48872009-10-08 Cary Coutant <ccoutant@google.com>
4888
4889 Add support for debugging with ICF (Identical Code Folding).
4890 * calls.c (debug.h): New #include.
4891 (emit_call_1): Call virtual_call_token debug hook.
4892 * common.opt (-fenable-icf-debug): New option.
4893 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
4894 locations in the source).
4895 (poc_label_num): New variable.
4896 (dcall_entry, vcall_entry): New typedefs.
4897 (dcall_table, vcall_table): New variables.
4898 (struct vcall_insn): New type.
4899 (vcall_insn_table): New variable.
4900 (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
4901 (size_of_dcall_table): New function.
4902 (output_dcall_table): New function.
4903 (size_of_vcall_table): New function.
4904 (output_vcall_table): New function.
4905 (dwarf2out_direct_call): New function.
4906 (vcall_insn_table_hash): New function.
4907 (vcall_insn_table_eq): New function.
4908 (dwarf2out_virtual_call_token): New function.
4909 (dwarf2out_virtual_call): New function.
4910 (dwarf2out_init): Allocate new tables and sections.
4911 (prune_unused_types): Mark DIEs referenced from direct call table.
4912 (dwarf2out_finish): Output direct and virtual call tables.
4913 * final.c (final_scan_insn): Call direct_call and virtual_call
4914 debug hooks.
4915 * debug.h (struct gcc_debug_hooks): Add direct_call,
4916 virtual_call_token, virtual_call hooks.
4917 (debug_nothing_uid): New function.
4918 * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
4919 (debug_nothing_uid): New function.
4920 * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
38265b74 4921 (xcoff_debug_hooks): Likewise.
77831620
CC
4922 * sdbout.c (sdb_debug_hooks): Likewise.
4923 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4924 * doc/invoke.texi (-fenable-icf-debug): New option.
4925
968e5728
AO
49262009-10-08 Alexandre Oliva <aoliva@redhat.com>
4927
4928 PR debug/41353
4929 * regmove.c (regmove_backward_pass): Replace src with dst in the
4930 debug insn, and check for dst before rather than after.
4931
42ccb890
JJ
49322009-10-08 Janis Johnson <janis187@us.ibm.com>
4933
4934 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
4935 (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
4936
625f802c
JH
49372009-10-08 Jan Hubicka <jh@suse.cz>
4938
4939 PR middle-end/41626
4940 * cgraphbuild.c (record_reference): When parameter DATA is NULL,
4941 do not mark cgraph nodes as needed.
4942 (record_references_in_initializer): Add new only_vars parameter.
4943 * cgraph.h (record_references_in_initializer): New parameter.
4944 * varasm.c (assemble_variable): Update call.
4945 * varpool.c (varpool_analyze_pending_decls): Always look for
4946 referenced vars.
4947
007a178c
AS
49482009-10-08 Anatoly Sokolov <aesok@post.ru>
4949
4950 * config/avr/avr.c (last_insn_address) Remove variable.
4951 (expand_prologue): Don't initialise last_insn_address variable.
4952 (final_prescan_insn): Don't output insn size.
4953 * config/avr/avr.opt (msize): Remove switch.
4954 * doc/invoke.texi (AVR Options): Remove documentation of -msize
4955 switch.
4956
e3104f55
AN
49572009-10-08 Adam Nemet <anemet@caviumnetworks.com>
4958
4959 * combine.c (label_tick_ebb_start): Fix comment.
4960 (combine_instructions): Set label_tick and label_tick_ebb_start before
4961 calling setup_incoming_promotions. Start them from 1. Increment
4962 label_tick instead of deriving it from the BB index. Rather than
4963 comparing ticks use the block from the previous iteration to decide
4964 whether to start a new EBB. Remove empty lines before function.
4965
6728ee79
MM
49662009-10-08 Michael Matz <matz@suse.de>
4967
4968 PR middle-end/41573
4969 * builtins.c (fold_builtin_isascii): Use fold_build2.
4970 (fold_builtin_isdigit): Ditto.
4971 * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
4972 * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
4973 remove_useless_stmts_cond, remove_useless_stmts_tf,
4974 remove_useless_stmts_tc, remove_useless_stmts_bind,
4975 remove_useless_stmts_goto, remove_useless_stmts_label,
4976 remove_useless_stmts_1, remove_useless_stmts,
4977 pass_remove_useless_stmts): Remove.
4978 * tree-pass.h (pass_remove_useless_stmts): Don't declare.
4979 * passes.c (init_optimization_passes): Don't add
4980 pass_remove_useless_stmts.
4981 * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
4982 * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
4983 static constants.
4984 * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
4985 for static constants.
4986 * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
4987 * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
4988
0d0bfe17
RG
49892009-10-08 Richard Guenther <rguenther@suse.de>
4990
4991 * gimple.c (free_gimple_type_tables): New function.
4992 * gimple.h (free_gimple_type_tables): Declare.
4993
90e1a349
MH
49942009-10-07 Mark Heffernan <meheff@google.com>
4995
4996 * ipa-prop.c (ipa_print_node_params) Only print
4997 names of named arguments.
4998
d520c7fb
RAE
49992009-10-08 Rafael Avila de Espindola <espindola@google.com>
5000
5001 * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
5002 being statically linked.
5003
d72ff618
RO
50042009-10-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5005
5006 * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
5007
b820a2f9
JH
50082009-10-08 Jan Hubicka <jh@suse.cz>
5009
5010 PR bootstrap/41620
5011 * ipa.c (cgraph_externally_visible_p,
5012 function_and_variable_visibility,
5013 whole_program_function_and_variable_visibility): Skip non-finalized
5014 nodes.
5015
611b7b5a
NC
50162009-10-08 Nick Clifton <nickc@redhat.com>
5017
5018 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
5019 CONST_DOUBLEs.
5020
4c93ed23
AT
50212009-10-08 Andreas Tobler <a.tobler@schweiz.org>
5022
5023 PR bootstrap/37739
5024 * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
5025
e5a94231
JM
50262009-10-07 Joseph Myers <joseph@codesourcery.com>
5027
5028 PR c/41182
5029 * c-common.c (c_fully_fold_internal): Strip nops from the result
5030 of recursive calls to c_fully_fold_internal.
5031 (c_wrap_maybe_const): New.
5032 (c_save_expr): Use c_wrap_maybe_const.
5033 * c-common.h (c_wrap_maybe_const): Declare.
5034 * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
5035 build_binary_op): Use c_wrap_maybe_const.
5036
7190c775
KG
50372009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5038
5039 * real.c: Fix comment to reflect actual exponent size.
5040
033016fa
BE
50412009-10-08 Ben Elliston <bje@au.ibm.com>
5042
5043 * config/rs6000/a2.md: Add FSF comment header.
5044
68bc0874
UB
50452009-10-07 Uros Bizjak <ubizjak@gmail.com>
5046
5047 * config/i386/i386.md (any_extend): New code iterator.
5048 (u, s): New code attributes.
5049 (sgnprefix): Ditto.
5050 (DWIH): Rewrite as code iterator for SI and DI modes.
5051 (DWI): Rewrite as mode attribute.
5052 (dwi): New mode attribute.
5053 (di): Depend on SI mode and DI mode.
5054 (doubleint_general_operand): Remove mode attribute.
5055
5056 (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
5057 DWIH mode iterator.
5058
5059 (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
5060 (*sub<mode>3_doubleword): Ditto.
5061
5062 (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
5063 using SWIM248 mode iterator.
5064 (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
5065 using SWI48 mode iterator.
5066 (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
5067 patterns using DWIH mode iterator and any_extend code iterator.
5068 (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
5069 using any_extend code iterator.
5070 (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
5071 patterns using DWIH mode iterator and any_extend code iterator.
5072 (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
5073 using any_extend code iterator.
5074 (<s>mul<mode>3_highpart): Macroize expander from
5075 {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
5076 and any_extend code iterator.
5077 (*<s>muldi3_highpart_1): Macroize insn from
5078 *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
5079 (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
5080 patterns using any_extend code iterator.
5081 (*<s>mulsi3_highpart_zext): Macroize insn from
5082 *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
5083
95a28767
JJ
50842009-10-07 Jakub Jelinek <jakub@redhat.com>
5085
5086 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
5087 DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
5088 refering to a DIE with DW_AT_const_value.
5089
7ba06dee
VM
50902009-10-07 Vladimir Makarov <vmakarov@redhat.com>
5091
5092 PR middle-end/22072
5093 * ira-lives.c (check_and_make_def_conflict): Process all operands.
5094
3621d5ec
JH
50952009-10-06 Jan Hubicka <jh@suse.cz>
5096
5097 * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
5098 correctly.
5099
f8921d7d
UB
51002009-10-06 Uros Bizjak <ubizjak@gmail.com>
5101
5102 * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
5103 *lea_2_rex64): Move before *add<mode>_1 pattern.
5104
13291c16
JH
51052009-10-07 Jan Hubicka <jh@suse.cz>
5106
5107 * collect2.c (main): Add -fno-whole-program.
5108 * gcc.c (set_collect_gcc_options): Do not remove whole program here.
5109
b20996ff
JH
51102009-10-07 Jan Hubicka <jh@suse.cz>
5111
85760734
UB
5112 * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
5113 has no address taken.
b20996ff
JH
5114 * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
5115 never needed.
5116 (cgraph_clone_node): Clear externally_visible flag for clones.
5117 * cgraph.h (cgraph_only_called_directly_p,
5118 cgraph_can_remove_if_no_direct_calls_p): New predicates.
5119 * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
5120 * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
5121 (ipcp_initialize_node_lattices, ipcp_estimate_growth,
5122 ipcp_insert_stage): Likwise.
5123 * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
5124 externally_visible flag.
5125 (verify_cgraph_node): Verify that inline clones look right.
5126 (process_function_and_variable_attributes): Do not set
5127 externally_visible flags.
5128 (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
5129 been already run.
5130 * lto-cgraph.c (lto_output_node): Assert that inline clones are not
5131 boundaries.
5132 * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
5133 clear externally_visible when turning into inline clones
5134 (cgraph_mark_inline_edge): Use new predicates.
5135 (cgraph_estimate_growth): Likewise.
5136 (cgraph_decide_inlining): Likewise.
5137 * ipa.c (cgraph_postorder): Likewise.
5138 (cgraph_remove_unreachable_nodes): Likewise; sanity check
5139 that inline clones are not needed.
5140 (cgraph_externally_visible_p): New predicate.
5141 (function_and_variable_visibility): Add whole_program parameter;
5142 always set externally_visible flag; handle COMDAT function
5143 privatization.
5144 (local_function_and_variable_visibility): New function.
5145 (gate_whole_program_function_and_variable_visibility): New function.
5146 (whole_program_function_and_variable_visibility): New function.
5147 (pass_ipa_whole_program_visibility): New function.
5148 * passes.c (init_optimization_passes): Add whole program visibility
5149 pass.
5150 (do_per_function_toporder, function_called_by_processed_nodes_p): Do
5151 not care about needed/reachable flags.
5152 * varpool.c: Include flags.h
5153 (decide_is_variable_needed): When doing LTO assume whole-program mode.
5154 (varpool_finalize_decl): When we are in LTO read-back, all variables
5155 are analyzed.
5156 (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
5157
4e7d730d
AK
51582009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5159
5160 * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
5161 add MASK_HARD_DFP.
5162
81dd9fd7
AK
51632009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5164
5165 * config.gcc: Don't include the makefile fragments intended for
5166 libgcc.
5167 * config/s390/fixdfdi.h: File removed.
5168 * config/s390/libgcc-glibc.ver: File removed.
5169 * config/s390/s390.h: Remove the fixdfdi.h hack.
5170 * config/s390/t-crtstuff: File moved to libgcc dir.
5171 * config/s390/t-linux: Likewise.
5172 * config/s390/t-tpf: libgcc specific parts removed.
5173 * config/s390/t-linux64: Likewise.
5174
66af4187
JQ
51752009-10-06 Jerry Quinn <jlquinn@optonline.net>
5176
5177 * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
5178 (lto-compress.o): Likewise.
09a6b8a4
DS
5179
51802009-10-07 Danny Smith <dannysmith@users.sourceforge.net>
5181
5182 PR target/41512
5183 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
5184 dllexport to class members here.
5185 (i386_pe_determine_dllimport_p): Only check static class data for
5186 definition.
5187 (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
5188 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
5189 functions for vague linkage.
5190 (i386_pe_type_dllexport_p): Fix formatting.
5191 (maybe_add_dllexport) New function.
5192 (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
5193 to class members.
f8921d7d 5194
0b9036f4 51952009-10-07 Ben Elliston <bje@au.ibm.com>
a5617632
BE
5196
5197 * config/rs6000/a2.md: Remove duplicated lines.
5198
ebde32fd
BE
51992009-10-07 Ben Elliston <bje@au.ibm.com>
5200
5201 * config.gcc (powerpc*-*-*): Handle a2.
5202 * config/rs6000/rs6000.md (cpu): Add ppca2. Include "a2.md".
5203 * config/rs6000/a2.md: New file.
5204 * config/rs6000/rs6000.opt (mno-update): New.
5205 (mupdate): Return to using a mask, not a var.
5206 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
5207 (enum processor_type): Add PROCESSOR_PPCA2.
5208 * config/rs6000/rs6000.c (ppca2_cost): New costs.
5209 (rs6000_override_options): Add "a2" to processor_target_table.
68bc0874
UB
5210 Update rs6000_always_hint logic. Correctly set rs6000_cost for a2.
5211 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
ebde32fd 5212
d2407a7a
UB
52132009-10-06 Uros Bizjak <ubizjak@gmail.com>
5214
458c00ff
UB
5215 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5216 Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
5217 reference to nonexistent gen_truncxfxf2 function.
5218
52192009-10-06 Uros Bizjak <ubizjak@gmail.com>
5220
5221 * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
d2407a7a
UB
5222 (DWIH, g, di, doubleint_general_operand): New mode attributes.
5223 (general_operand): Handle TI mode.
5224 (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
458c00ff 5225 using SDWIM mode iterator.
d2407a7a
UB
5226 (*add<mode>3_doubleword): New insn_and_split pattern. Macroize
5227 pattern from *add{di,ti}3_1 patterns and corresponding splitters
458c00ff 5228 using DWI mode iterator.
d2407a7a
UB
5229 (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
5230 patterns using SWI mode iterator.
5231 (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
5232 using SWI48 mode iterator.
5233 (*add<mode>_1): Ditto from add{si,di}_1 patterns.
5234 (*add<mode>_2): Ditto from add{si,di}_2 patterns.
5235 (*add<mode>_3): Ditto from add{si,di}_3 patterns.
5236 (*add<mode>_5): Ditto from add{si,di}_5 patterns.
5237 (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
458c00ff 5238 using SDWIM mode iterator.
d2407a7a
UB
5239 (*sub<mode>3_doubleword): New insn_and_split pattern. Macroize
5240 pattern from *sub{di,ti}3_1 patterns and corresponding splitters
458c00ff 5241 using DWI mode iterator.
d2407a7a
UB
5242 (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
5243 patterns using SWI mode iterator.
5244 (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
5245 (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
5246 (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
5247 (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
5248 patterns using plusminus code iterator.
5249 (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
5250 sub<mode>3 patterns using plusminus code iterator.
bfb59746 5251 * config/i386/i386.c (override_options): Update the call to
d2407a7a
UB
5252 gen_subdi_carry_rex64 for renamed function.
5253 (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
5254 and gen_adddi3_carry_rex64 for renamed functions. Use indirect
5255 calls to instruction expanders.
5256
7b7c01e7
MJ
52572009-10-06 Martin Jambor <mjambor@suse.cz>
5258
5259 PR bootstrap/41395
5260 * opts.c (decode_options): Run IPA-SRA at -O2.
5261
66cc270e
RG
52622009-10-06 Richard Guenther <rguenther@suse.de>
5263
5264 * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
5265
05927e0d
TB
52662009-10-06 Tobias Burnus <burnus@net-b.de>
5267
5268 PR lto/41591
5269 * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
5270 -flto and -fwhole-program flags can be combined.
5271
9ef3b476
RM
52722009-10-06 Ryan Mansfield <rmansfield@qnx.com>
5273
5274 PR driver/41217
5275 * gcc.c (process_command): Check that -o argument was specified.
5276
ddd4d0e1
JQ
52772009-10-06 Jerry Quinn <jlquinn@optonline.net>
5278
85760734 5279 * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
ddd4d0e1 5280
da667743
RW
52812009-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5282
5283 * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
5284 * doc/invoke.texi (Warning Options): Annotate allowed languages
5285 for -Wunsuffixed-float-constants.
5286
7555009a
JJ
52872009-10-05 Jakub Jelinek <jakub@redhat.com>
5288
4a24ddb9
JJ
5289 * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
5290 DW_TAG_{const,volatile}_type if its DW_AT_type already has the
5291 same name and isn't the main variant.
5292
7555009a
JJ
5293 PR debug/41558
5294 * dwarf2out.c (loc_by_reference): Removed.
5295 (dw_loc_list_1): New function.
5296 (dw_loc_list): Remove toplev argument, add want_address argument.
5297 Don't look at decl_by_reference_p at all. Use dw_loc_list_1.
5298 (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
5299 want_address == 2 to dw_loc_list. For successful dw_loc_list
5300 set have_address to 1 only if want_address is not 0.
5301
c640a3bd
RS
53022009-10-05 Richard Sandiford <rdsandiford@googlemail.com>
5303
5304 * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
5305 * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
5306 a code block followed by two pointers.
5307 (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
5308 * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
5309 (MIPS_MOVE): Likewise.
5310 (MIPS_LUI): Likewise.
5311 (MIPS_JR): Likewise.
5312 (MIPS_BAL): Likewise.
5313 (MIPS_NOP): Likewise.
5314 (mips_asm_trampoline_template): Delete.
5315 (mips_trampoline_code_size): New function.
5316 (mips_trampoline_init): Add shorter sequences for all cases
5317 except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
5318 Calculate the opcodes directly, rather than copying from a template.
5319 Only flush the code part of the trampoline.
5320 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
5321
293593b1
RS
53222009-10-05 Richard Sandiford <rdsandiford@googlemail.com>
5323
5324 * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
5325 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
5326 (INCOMING_RETURN_ADDR_RTX): Likewise.
5327 (FUNCTION_PROFILER): Likewise. Replace GP_REG_FIRST + 1
5328 with AT_REGNUM.
5329 * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
5330 with RETURN_ADDR_REGNUM.
5331 (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
5332 * config/mips/mips.c (mips16_build_call_stub): Replace
5333 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
5334 with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
5335 (mips_print_operand_punctuation): Likewise.
5336 (mips_frame_set): Likewise.
5337 (mips16e_output_save_restore): Likewise.
5338 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5339 (mips_save_reg_p): Likewise.
5340 (mips_return_addr): Likewise.
5341 (mips_set_return_address): Likewise.
5342 (mips_direct_save_slot_move_p): Likewise.
5343 (mips_output_function_prologue): Likewise.
5344 (mips_restore_reg): Likewise.
5345 (mips_expand_epilogue): Likewise.
5346 (mips_epilogue_uses): Likewise.
5347 * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
5348 (*mov<mode>_ra): Use it instead of a hard-coded 31.
5349 (clear_hazard_<mode>): Likewise.
5350 (call_internal): Likewise.
5351 (call_internal_direct): Likewise.
5352 (call_direct_split): Likewise.
5353 (call_value_internal): Likewise.
5354 (call_value_split): Likewise.
5355 (call_value_internal_direct): Likewise.
5356 (call_value_direct_split): Likewise.
5357 (call_value_multiple_internal): Likewise.
5358 (call_value_multiple_split): Likewise.
5359
9baea66c
EB
53602009-10-05 Eric Botcazou <ebotcazou@adacore.com>
5361 Jakub Jelinek <jakub@redhat.com>
5362
5363 PR rtl-optimization/41511
5364 * combine.c (record_value_for_reg): Pass explicit values as argument
5365 to get_last_value_validate.
5366 (get_last_value_validate): Document INSN parameter.
5367 For non-readonly MEMs, assume they might have been modified if INSN
5368 was in another basic block.
5369 (get_last_value): Minor reformatting.
5370
2bd1d2c8
AP
53712009-10-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
5372
5373 PR tree-opt/40992
5374 * final.c (asm_str_count): Split out from asm_insn_count.
5375 * rtl.h (asm_str_count): New prototype.
5376 * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
5377 asm_str_count.
5378
8fc7e474
ST
53792009-10-05 Sriraman Tallam <tmsriram@google.com>
5380
5381 * doc/plugins.texi: Change plugin_pass to register_pass_info.
c802b1cf
BS
5382
53832009-10-05 Basile Starynkevitch <basile@starynkevitch.net>
5384 Rafael Espindola <espindola@google.com>
5385
5386 * gengtype.c (write_types): Moved call to write_func_for_structure
5387 into seperate loops.
5388
a9cc4458
RG
53892009-10-05 Richard Guenther <rguenther@suse.de>
5390
5391 PR lto/41281
5392 * lto-cgraph.c (output_cgraph): Output toplevel asms.
5393 (input_cgraph_1): Input toplevel asms.
5394
fd7588bc
RG
53952009-10-05 Richard Guenther <rguenther@suse.de>
5396
5397 PR lto/40902
5398 * lto-symtab.c (lto_compatible_attributes_p): Remove.
5399 (external_aggregate_decl_p): Likewise.
5400 (lto_symtab_compatible): Re-structure. Remove dead code.
5401 For variables ignore toplevel qualifiers when comparing types.
5402 Issue warnings, not errors for mismatched user-alignment.
5403
1a735925
RG
54042009-10-05 Richard Guenther <rguenther@suse.de>
5405
5406 PR lto/41552
5407 PR lto/41487
5408 * lto-symtab.c (struct lto_symtab_base_def): Remove.
5409 (struct lto_symtab_identifier_def): Likewise.
5410 (struct lto_symtab_decl_def): Likewise.
5411 (struct lto_symtab_entry_def): New.
5412 (lto_symtab_identifier_t): Rename to ...
5413 (lto_symtab_entry_t): ... this.
5414 (lto_symtab_decls): Remove.
5415 (lto_symtab_base_hash): Rename to ...
5416 (lto_symtab_entry_hash): ... this.
5417 (lto_symtab_base_eq): Rename to ...
5418 (lto_symtab_entry_eq): ... this.
5419 (lto_symtab_base_marked_p): Rename to ...
5420 (lto_symtab_entry_marked_p): ... this.
5421 (lto_symtab_identifier_marked_p): Remove.
5422 (lto_symtab_decl_marked_p): Likewise.
5423 (lto_symtab_maybe_init_hash_tables): Rename to ...
5424 (lto_symtab_maybe_init_hash_table): ... this.
5425 (lto_symtab_set_resolution_and_file_data): Remove.
5426 (lto_symtab_register_decl): New function.
5427 (lto_symtab_get_identifier): Remove.
5428 (lto_symtab_get): New function.
5429 (lto_symtab_get_resolution): Adjust.
5430 (lto_symtab_get_identifier_decl): Remove.
5431 (lto_symtab_set_identifier_decl): Likewise.
5432 (lto_symtab_merge_decl): Rename to ...
5433 (lto_symtab_merge): ... this. Rewrite.
5434 (lto_symtab_merge_var): Remove.
5435 (lto_symtab_merge_fn): Likewise.
5436 (lto_symtab_prevailing_decl): Adjust.
5437 (lto_cgraph_replace_node): New function.
5438 (lto_symtab_merge_decls_2): Likewise.
5439 (lto_symtab_merge_decls_1): Likewise.
5440 (lto_symtab_fixup_var_decls): Likewise.
5441 (lto_symtab_resolve_symbols): Likewise.
5442 (lto_symtab_merge_decls): Likewise.
5443 (lto_symtab_prevailing_decl): Adjust.
5444 (lto_symtab_get_symtab_def): Remove.
5445 (lto_symtab_get_file_data): Likewise.
5446 (lto_symtab_clear_resolution): Adjust.
5447 (lto_symtab_clear_resolution): Likewise.
5448 * lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
5449 (input_cgraph_1): Likewise.
5450 * lto-streamer-in.c (get_resolution): Do not provide fake
5451 symbol resolutions here.
5452 (deferred_global_decls): Remove.
5453 (lto_register_deferred_decls_in_symtab): Likewise.
5454 (lto_register_var_decl_in_symtab): Change signature, register
5455 variable via lto_symtab_register_decl.
5456 (lto_register_function_decl_in_symtab): Likewise.
5457 (lto_read_tree): Adjust.
5458 * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
5459 (lto_symtab_merge_var): Likewise.
5460 (lto_symtab_merge_fn): Likewise.
5461 (lto_symtab_register_decl): Declare.
5462 (lto_symtab_merge_decls): Likewise.
5463
e9d85fa6
RG
54642009-10-05 Richard Guenther <rguenther@suse.de>
5465
5466 PR tree-optimization/23821
5467 * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
5468 * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
5469 simple IV increments.
5470
114bbac6
RR
54712009-10-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5472
d2407a7a
UB
5473 * config/arm/arm.c (arm_override_options): Really initialize
5474 flag_dwarf2_cfi_asm to 0.
114bbac6 5475
56fe3eff
DK
54762009-10-05 Doug Kwan <dougkwan@google.com>
5477
5478 PR rtl-optimization/41574
114bbac6 5479 * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
56fe3eff
DK
5480 floating point and we are not doing unsafe math optimizations.
5481
d7f09764
DN
54822009-10-03 Simon Baldwin <simonb@google.com>
5483 Cary Coutant <ccoutant@google.com>
5484 Rafael Espindola <espindola@google.com>
5485 Richard Guenther <rguenther@suse.de>
5486 Jan Hubicka <jh@suse.cz>
5487 Doug Kwan <dougkwan@google.com>
458c00ff 5488 H.J. Lu <hongjiu.lu@intel.com>
d7f09764
DN
5489 Bill Maddox <maddox@google.com>
5490 Ryan Mansfield <rmansfield@qnx.com>
5491 Diego Novillo <dnovillo@google.com>
5492 Ollie Wild <aaw@google.com>
5493 Kenneth Zadeck <zadeck@naturalbridge.com>
5494
5495 * lto-cgraph.c: New file.
5496 * lto-compress.c: New file.
5497 * lto-compress.h: New file.
5498 * lto-opts.c: New file.
5499 * lto-section-in.c: New file.
5500 * lto-section-out.c: New file.
5501 * lto-streamer-in.c: New file.
5502 * lto-streamer-out.c: New file.
5503 * lto-streamer.c: New file.
5504 * lto-streamer.h: New file.
5505 * lto-symtab.c: New file.
5506 * lto-wpa-fixup.c: New file.
5507 * lto-wrapper.c: New file.
5508
55092009-10-03 Simon Baldwin <baldwin@google.com>
5510 Ben Elliston <bje@au.ibm.com>
5511 Rafael Espindola <espindola@google.com>
5512 Nathan Froyd <froydnj@codesourcery.com>
5513 Jan Hubicka <jh@suse.cz>
5514 Doug Kwan <dougkwan@google.com>
5515 Diego Novillo <dnovillo@google.com>
5516 Kenneth Zadeck <zadeck@naturalbridge.com>
5517
5518 * Makefile.in (enable_lto): New.
85760734 5519 (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
d7f09764
DN
5520 (LINKER_PLUGIN_API_H): Define.
5521 (LTO_SYMTAB_H): Define.
5522 (LTO_STREAMER_H): Define.
5523 (TREE_VECTORIZER_H): Define.
5524 (INCLUDES): Add LIBELFINC.
5525 (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
85760734
UB
5526 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
5527 lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
d7f09764
DN
5528 (MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
5529 (native): Add lto-wrapper$(exeext)
5530 (lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
5531 lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
85760734
UB
5532 lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
5533 (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
d7f09764
DN
5534 (varasm.o): Add dependency on tree-iterator.h.
5535 (cgraph.o): Add dependency on cif-code.def.
5536 (ipa-reference.o): Add dependency on LTO_STREAMER_H.
5537 (ipa-pure-const.o): Likewise.
5538 (GTFILES): Add lto-symtab.c.
5539 (install-lto-wrapper): New.
85760734
UB
5540 * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
5541 and enable_lto. If LIBELFLIBS is set, define HAVE_libelf.
d7f09764
DN
5542 * config.in: Regenerate.
5543
55442009-10-03 Rafael Espindola <espindola@google.com>
5545 Diego Novillo <dnovillo@google.com>
5546
5547 * cgraphunit.c (ipa_passes): Prevent lto1 from calling
5548 ipa_write_summaries.
5549 Call execute_ipa_summary_passes for all_regular_ipa_passes and
5550 all_lto_gen_passes.
5551 (cgraph_optimize): Make extern.
5552
55532009-10-03 Nathan Froyd <froydnj@codesourcery.com>
5554 Kenneth Zadeck <zadeck@naturalbridge.com>
5555
5556 * toplev.c (in_lto_p): Declare.
5557 * collect2.c (scan_prog_file): Read all the output when reading
5558 information for LTO.
5559 (enum lto_mode_d): Declare.
5560
55612009-10-03 Richard Guenther <rguenther@suse.de>
5562 Diego Novillo <dnovillo@google.com>
5563
5564 * gimple.c: Include target.h and alias.h.
5565 (gimple_types): Declare.
5566 (type_hash_cache): Declare.
5567 (gimple_alloc_stat): Make extern.
5568 (gimple_build_eh_must_not_throw): Call
5569 gimple_eh_must_not_throw_set_fndecl.
5570 (struct type_pair_d): Declare.
5571 (type_pair_t): Declare.
5572 (type_pair_hash): New.
5573 (type_pair_eq): New.
5574 (lookup_type_pair): New.
5575 (gimple_force_type_merge): New.
5576 (compare_type_names_p): New.
5577 (compare_field_offset): New.
5578 (gimple_types_compatible_p): New.
5579 (struct sccs): Declare.
5580 (next_dfs_num): Declare.
5581 (iterative_hash_gimple_type): New.
5582 (visit): New.
5583 (iterative_hash_type_name): New.
5584 (iterative_hash_gimple_type): New.
5585 (gimple_type_hash): New.
5586 (gimple_type_eq): New.
5587 (gimple_register_type): New.
5588 (print_gimple_types_stats): New.
5589 (gimple_signed_or_unsigned_type): New.
5590 (gimple_unsigned_type): New.
5591 (gimple_signed_type): New.
5592 (gimple_get_alias_set): New.
5593 (gimple_decl_printable_name): Do not use DMGL_TYPES.
5594 * gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
5595 (gimple_force_type_merge): Declare.
5596 (gimple_types_compatible_p): Declare.
5597 (gimple_register_type): Declare.
5598 (print_gimple_types_stats): Declare.
5599 (gimple_unsigned_type): Declare.
5600 (gimple_signed_type): Declare.
5601 (gimple_get_alias_set): Declare.
5602 (gimple_eh_must_not_throw_set_fndecl): New.
5603
56042009-10-03 Jan Hubicka <jh@suse.cz>
5605 Kenneth Zadeck <zadeck@naturalbridge.com>
5606
5607 * ipa-pure-const.c: Include lto-streamer.h.
5608 (register_hooks): Factor out of ...
5609 (generate_summary): ... here.
5610 (pure_const_write_summary): New.
5611 (pure_const_read_summary): New.
5612 (pass_ipa_pure_const): Add pure_const_write_summary and
5613 pure_const_read_summary.
5614 * ipa-reference.c: Include lto-streamer.h.
5615 (add_new_function): New.
5616 (remove_node_data): New.
5617 (duplicate_node_data): New.
5618 (ipa_init): Guard against multiple calls.
5619 Move hook setup from analyze_function.
5620 (write_node_summary_p): New.
5621 (ipa_reference_write_summary): New.
5622 (ipa_reference_read_summary): New.
5623 (pass_ipa_reference): Add ipa_reference_write_summary and
5624 ipa_reference_read_summary.
5625 * cgraph.h (cgraph_local_info): Add field lto_file_data.
5626 (struct cgraph_edge): Add fields lto_stmt_uid and
5627 call_stmt_cannot_inline_p.
5628 (cgraph_optimize): Declare.
5629 (cgraph_decide_is_function_needed): Declare.
5630 (reset_inline_failed): Declare.
5631 (enum LTO_cgraph_tags): Declare.
5632 (LTO_cgraph_tag_names): Declare.
5633 (LCC_NOT_FOUND): Define.
5634
56352009-10-03 Doug Kwan <dougkwan@google.com>
5636 Rafael Espindola <espindola@google.com>
5637 Jan Hubicka <jh@suse.cz>
5638 Diego Novillo <dnovillo@google.com>
5639 Kenneth Zadeck <zadeck@naturalbridge.com>
5640
5641 * passes.c (all_regular_ipa_passes): New.
5642 (all_ipa_passes): Rename to all_small_ipa_passes.
5643 (init_optimization_passes): Init all_regular_ipa_passes.
5644 * tree-pass.h (all_regular_ipa_passes): New.
5645 (all_ipa_passes): Rename to all_small_ipa_passes.
5646 * passes.c (all_lto_gen_passes): New.
5647 (init_optimization_passes): Initialize all_lto_gen_passes.
5648 (execute_ipa_summary_passes): Make non-static.
5649 (ipa_write_summaries_1): New.
5650 (ipa_write_summaries_2): New.
5651 (ipa_write_summaries): New.
5652 (ipa_write_summaries_of_cgraph_node_set): New.
5653 (ipa_read_summaries_1): New.
5654 (ipa_read_summaries): New.
5655 (execute_ipa_pass_list): Call cgraph_process_new_functions.
5656 (execute_regular_ipa_pass_list): Remove.
5657 (init_optimization_passes): Schedule
5658 pass_rebuild_cgraph_edges and pass_early_inline outside
5659 of pass_all_early_optimizations. Document reason.
5660 (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
5661 pass_ipa_lto_finish_out): New pass.
85760734 5662 (pass_ipa_summary_passes): Start and stop timers if the pass has them.
d7f09764
DN
5663 (execute_all_ipa_transforms): New.
5664 (execute_one_pass): Don't call execute_one_ipa_transform_pass.
5665 (dump_properties, debug_properties): New.
5666 * tree-optimize.c (gate_all_early_local_passes): Return
5667 false if we are in lto1.
5668 (tree_rest_of_compilation): Call execute_all_ipa_transforms.
5669 * tree-pass.h (execute_all_ipa_transforms): Declare.
5670 (pass_ipa_function_and_variable_visibility): Declare.
5671 (pass_ipa_early_inline): Declare.
5672 (pass_ipa_lto_gimple_out): Declare.
5673 (pass_ipa_lto_wpa_fixup): Declare.
5674 (pass_ipa_lto_finish_out): Declare.
5675 (all_small_ipa_passes, all_regular_ipa_passes,
5676 all_lto_gen_passes): Declare.
5677 (execute_ipa_summary_passes): Declare.
5678 (execute_all_ipa_transforms): Declare.
5679 (ipa_write_summaries): Declare
5680 (ipa_write_summaries_of_cgraph_node_set): Declare.
5681 (ipa_read_summaries): Declare.
5682
56832009-10-03 Doug Kwan <dougkwan@google.com>
5684 Ollie Wild <aaw@google.com>
5685
85760734 5686 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.
d7f09764
DN
5687
5688 * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
5689 (lto_mode): New variable.
5690 (maybe_run_lto_and_relink): Handle the -fwpa option.
5691 (main): Handle the -fwpa option.
5692 (maybe_unlink_list): New function.
5693 * gcc.c (link_lto_options): Replace -flto with -fwpa.
5694 * common.opt (flto): New flag.
5695 * toplev.c (flag_generate_lto): Declare.
5696
56972009-10-03 Simon Baldwin <simonb@google.com>
5698
5699 * common.opt (flto-compression-level): New flag.
5700
5701 * opts.c: Include lto-opts.h.
5702 (handle_option): Call lto_register_user_option for each
5703 valid option handled.
85760734 5704 (decode_options): Clear registered options before the options
d7f09764
DN
5705 handling loop.
5706
57072009-10-03 Cary Coutant <ccoutant@google.com>
5708
5709 * collect2.c (is_elf): New function.
5710 (scan_prog_file): Require LTO object to be in ELF format.
5711
57122009-10-03 Rafael Espindola <espindola@google.com>
5713
5714 * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
5715 libgcc to the linker.
5716
85760734 5717 * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.
d7f09764
DN
5718
5719 * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
5720 (collect_execute): Add flags argument. Pass flags to pex_run. Update
5721 all callers.
5722 * collect2.h (collect_execute): Add flags argument.
5723 * tlink.c (tlink_execute): Update call to collect_execute.
5724 * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
5725 (use_linker_plugin): New.
5726 (use_linker_plugin_spec_function): New.
5727 (LINK_COMMAND_SPEC): Pass plugin options to the linker.
5728 (linker_plugin_file_spec): New.
5729 (lto_wrapper_spec): New.
5730 (lto_gcc_spec): New.
5731 (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
5732 (static_spec_functions): Add use-linker-plugin.
5733 (process_command): Handle -use-linker-plugin.
5734 (main): Use lto_wrapper_spec instead of lto_wrapper. Set
5735 linker_plugin_file_spec and lto_gcc_spec.
5736 (use_linker_plugin_spec_function): New.
5737
57382009-10-03 Richard Guenther <rguenther@suse.de>
5739
5740 PR lto/41547
5741 PR lto/41548
5742 * tree.h (is_lang_specific): Include LANG_TYPE.
5743 * tree.c (find_decls_types_r): Manually add interesting parts
5744 of TYPE_FIELDS. Walk BINFO_VIRTUALS. Do not walk TYPE_METHODS.
5745
5746 * gimple.c (type_pair_hash): Make symmetric.
5747 (type_pair_eq): Likewise.
5748 (lookup_type_pair): Increase initial hashtable size.
5749 (gimple_force_type_merge): Rely on type-pair symmetry.
5750 (visit): Remove excessive checking code.
85760734 5751 (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
d7f09764
DN
5752 (gimple_register_type): Remove getenv calls, shrink initial
5753 hashtable size.
5754
5755 PR middle-end/41502
5756 * cgraphunit.c (ipa_passes): Do not remove bodies of extern
5757 inline functions if not generating lto output.
5758
5759 PR lto/41379
5760 * toplev.c (finalize): In WPA mode remove the asm file.
5761
57622009-10-03 Doug Kwan <dougkwan@google.com>
5763
5764 * ipa-inline.c (cgraph_mark_inline): Check
5765 edge->call_stmt_cannot_inline_p instead of calling
5766 gimple_call_cannot_inline_p.
5767 (cgraph_decide_inlining): Do nothing in WPA and LTRANS.
85760734 5768 (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
d7f09764 5769 (inline_generate_summary): Do nothing in LTRANS.
85760734
UB
5770 * cgraph.c (initialize_inline_failed): Make sure e->call_stmt
5771 exists before calling gimple_call_cannot_inline_p.
d7f09764 5772 (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
85760734 5773 (cgraph_clone_edge): Add argument STMT_UID. Modify all callers.
d7f09764
DN
5774 Update new_edge->lto_stmt_uid.
5775 * cgraphbuild.c (reset_inline_failed): New.
5776
5777 * common.opt (fwpa): New flag.
5778 (fltrans): New option.
5779 * gcc.c (gcc_lto_option_t): New type.
5780 (current_lto_option): New variable.
5781 (lto_single_spec_function): Remove and is replaced by ..
5782 (lto_option_spec_function): New function.
5783 (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
5784 passing the -flto flag.
5785 (cc1_options): Separate non-LTO related parts into ..
5786 (cc1_non_lto_options): Non-LTO related options shared by all FEs.
5787 (lto1_options): New spec for lto FE.
5788 (link_lto_options): New spec for handling LTO flags in linker.
5789 (invoke_lto_single): Re-format to fit in 80 column. Replace
5790 lto-single with lto-option.
5791 (static_specs): Add cc1_non_lto_options, lto1_options and
5792 link_lto_options.
5793 (static_spec_function): Replace lto-single with lto-option.
85760734
UB
5794 (process_command): Handle -flto, -fwpa and -fltran by setting
5795 current_lto_option and not passing it to subprocess unconditionally.
d7f09764
DN
5796
57972009-10-03 Bill Maddox <maddox@google.com>
5798
5799 Add `gcc' driver support for link-time code generation (LTO).
5800
5801 * collect2.c (enum pass): Add new literal PASS_LTOINFO.
5802 (lto_flag, lto_objects, lto_o_file): New variables.
5803 (struct lto_object, struct lto_object_list): New structures.
5804 (collect_exit, handler): Remove LTO temporary output file on exit.
5805 (add_lto_object): New function.
5806 (maybe_run_lto_and_relink): New function. Perform link time code
5807 generation and relinking for object files containing LTO information.
5808 (main): Invoke maybe_run_lto_and_relink().
5809 (dump_argv): New function. For debugging, currently disabled.
5810 (scan_prog_file): Add LTO information pass.
5811 * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
5812 collect2.
5813 * toplev.c (compile_file): Emit assembler directive to create
5814 the `gnu_lto_v1' marker symbol when compiling with `-flto'.
5815
58162009-10-03 Diego Novillo <dnovillo@google.com>
5817
5818 * c.opt: Add LTO to warn_abi and warn_psabi.
5819
85760734
UB
5820 * tree.c (fld_worklist_push): Rename from PUSH. Convert to static
5821 inline function. Ignore language-specific nodes. Update all users.
d7f09764 5822 (find_decls_types_r): Do not traverse the subtrees of
85760734 5823 language-specific nodes. Do not traverse DECL_INITIAL for TYPE_DECLs.
d7f09764
DN
5824 * tree.h (is_lang_specific): New.
5825 * langhooks.h (struct lang_hooks_for_decls): Remove
5826 may_need_assembler_name_p. Update all users.
5827
5828 * c-common.c (set_builtin_user_assembler_name): Move ...
5829 * builtins.c (set_builtin_user_assembler_name): ... here.
5830 (is_builtin_name): Add comment
5831 (is_builtin_fn): New.
5832 * except.c (output_ttype): Only call
5833 lookup_type_for_runtime if TYPE is not a runtime type.
5834
5835 * passes.c (register_pass): Call position_pass on
85760734 5836 all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
d7f09764
DN
5837 * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
5838 (TV_IPA_LTO_DECL_IO): Define.
5839 (TV_IPA_LTO_CGRAPH_IO): Define.
5840 (TV_LTO): Define.
5841 (TV_WHOPR_WPA): Define.
5842 (TV_WHOPR_WPA_IO): Define.
5843 (TV_WHOPR_LTRANS): Define.
5844 (TV_WHOPR_WPA_FIXUP): Define.
5845 (TV_WHOPR_WPA_LTRANS_EXEC): Define.
5846 * tree-cfg.c (tree_node_can_be_shared): Make extern.
5847 * tree-flow.h (tree_node_can_be_shared): Declare.
5848 * tree-inline.c (tree_can_inline_p): Check that E has a
5849 statement associated with it.
5850 * tree.c (free_lang_data_in_binf): Factor out of ...
5851 (free_lang_data_in_type): ... here.
5852 Call RECORD_OR_UNION_TYPE_P.
85760734
UB
5853 (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
5854 set. Call lang_hooks.decls.may_need_assembler_name_p if set.
5855 (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
5856 (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE. Set
5857 write_symbols to NO_DEBUG. Set debug_hooks to do_nothing_debug_hooks.
5858 (gate_free_lang_data): Return true if flag_generate_lto is set.
d7f09764
DN
5859 (walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
5860 * c-common.h (set_builtin_user_assembler_name): Move ...
5861 * tree.h (set_builtin_user_assembler_name): ... here.
5862
5863 * common.opt (flto-report): New flag.
85760734 5864 * opts.c (complain_wrong_lang): Do not complain if running lto1.
d7f09764
DN
5865 * collect2.c (scan_prog_file): Send the error output of
5866 'nm' to HOST_BIT_BUCKET.
5867
58682009-10-03 Ollie Wild <aaw@google.com>
5869
5870 * langhooks-def.h (lhd_begin_section): New function declaration.
5871 (lhd_write_section): New function declaration.
5872 (lhd_end_section): New function declaration.
5873 (LANG_HOOKS_BEGIN_SECTION): New macro.
5874 (LANG_HOOKS_WRITE_SECTION_DATA): New macro.
5875 (LANG_HOOKS_END_SECTION): New macro.
5876 (LANG_HOOKS_LTO): New macro.
5877 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
5878 * langhooks.c (output.h): Add include.
5879 (saved_section): New static variable.
5880 (lhd_begin_section): New function.
5881 (lhd_write_section_data): New function.
5882 (lhd_end_section): New function.
5883 * langhooks.h (struct lang_hooks_for_lto): New structure.
5884 (struct lang_hooks): Add member lto.
5885 * Makefile.in (langhooks.o): Add dependency on output.h.
5886
5887 * c-opts.c (c_common_post_options): Handle -flto and -fwhopr.
5888
58892009-10-03 Richard Guenther <rguenther@suse.de>
5890
5891 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
5892 Handle LTO.
5893
58942009-10-03 Simon Baldwin <simonb@google.com>
5895 Richard Guenther <rguenther@suse.de>
5896 Janis Johnson <janis187@us.ibm.com>
5897 Doug Kwan <dougkwan@google.com>
5898 Diego Novillo <dnovillo@google.com>
5899 Ramana Radhakrishnan <ramana.r@gmail.com>
5900 Ollie Wild <aaw@google.com>
5901
5902 * doc/install.texi: Add documentation for libelf and --enable-lto.
85760734
UB
5903 * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
5904 -flto-report, -flto-compression-level and -use-linker-plugin.
5905 * doc/sourcebuild.texi: Document use of zlib. Document lto-plugin.
d7f09764
DN
5906 Add section for LTO Testing.
5907
15b3fbeb
CC
59082009-10-02 Cary Coutant <ccoutant@google.com>
5909
85760734
UB
5910 Add support for comdat type sections for DWARF v4.
5911 Merge from dwarf4 branch.
5912
15b3fbeb
CC
5913 * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
5914 (dw_die_ref): Define vector type.
5915 (enum dw_val_class): Add dw_val_class_data8.
5916 (struct dw_val_struct): Add v.val_data8.
5917 (comdat_type_node_ref): New type.
5918 (struct die_struct): Move die_symbol into a union; add new field
5919 die_type_node. Change all uses.
5920 (comdat_type_node): New type.
5921 (skeleton_chain_node): New type.
5922 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
5923 (comdat_type_list): New variable.
5924 (dwarf_tag_name): Add DW_TAG_type_unit.
5925 (dwarf_attr_name): Add DW_AT_signature.
5926 (add_AT_data8): New function.
5927 (replace_child): New function.
5928 (move_all_children): New function.
5929 (print_signature): New function.
5930 (print_die): Print signature information; add dw_val_class_data8.
5931 (attr_checksum): Support dw_val_class_data8.
85760734 5932 (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
15b3fbeb
CC
5933 (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
5934 (checksum_sleb128, checksum_uleb128): New functions.
5935 (checksum_die_context): New function.
5936 (loc_checksum_ordered): New function.
5937 (attr_checksum_ordered): New function.
5938 (struct checksum_attributes): New structure.
5939 (collect_checksum_attributes): New function.
5940 (die_checksum_ordered): New function.
5941 (generate_type_signature): New function.
5942 (same_dw_val_p): Add dw_val_class_data8.
5943 (is_symbol_die): Use new is_declaration_die function.
5944 (is_declaration_die): New function.
5945 (should_move_die_to_comdat): New function.
5946 (clone_die): New function.
5947 (clone_tree): New function.
5948 (clone_as_declaration): New function.
5949 (copy_declaration_context): New function.
5950 (generate_skeleton_ancestor_tree): New function.
5951 (generate_skeleton_bottom_up): New function.
5952 (generate_skeleton): New function.
5953 (remove_child_or_replace_with_skeleton): New function.
5954 (break_out_comdat_types): New function.
5955 (struct decl_table_entry): New type.
5956 (htab_decl_hash): New function.
5957 (htab_decl_eq): New function.
5958 (htab_decl_del): New function.
5959 (copy_ancestor_tree): New function.
5960 (copy_decls_walk): New function.
5961 (copy_decls_for_unworthy_types): New function.
5962 (build_abbrev_table): Don't assert on missing die_symbol when doing
5963 comdat type sections.
85760734 5964 (size_of_die): Use DW_FORM_sig8 for external references. Add
15b3fbeb
CC
5965 dw_val_class_data8.
5966 (unmark_dies): Don't assert for unmarked dies when doing comdat
5967 type sections.
5968 (value_format): Support DW_FORM_sig8 and dw_val_class_data8.
5969 (output_signature): New function.
5970 (output_die): Likewise.
5971 (output_compilation_unit_header): Mark output as DWARF version 3
5972 even if generating DWARF 4.
5973 (output_comdat_type_unit): New function.
5974 (output_line_info): Mark output as DWARF version 3 even if generating
5975 DWARF 4.
5976 (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
5977 DWARF-4.
5978 (dwarf2out_end_source_file): Likewise.
5979 (prune_unused_types_walk_attribs): Don't follow references into
5980 comdat type sections.
5981 (prune_unused_types_mark): When generating type units, do not mark
5982 children of non-defining declarations of types; do mark children of
5983 type entries.
5984 (prune_unused_types): Process comdat type sections.
5985 (htab_ct_hash): New function.
5986 (htab_ct_eq): New function.
5987 (dwarf2out_finish): Move types to comdat sections when using DWARF-4.
5988 Add a pointer to the line table from type unit entries so
5989 DW_AT_decl_file has meaning.
5990 * varasm.c (default_elf_asm_named_section): Use identifier name as
5991 comdat key instead of lang hook.
5992
ad467730
NV
59932009-10-02 Neil Vachharajani <nvachhar@google.com>
5994
85760734 5995 * gcov-io.c (gcov_open): Open files read-only when MODE < 0.
ad467730 5996
9e51149d
UB
59972009-10-02 Uros Bizjak <ubizjak@gmail.com>
5998
458c00ff
UB
5999 * config/i386/i386.md (SWIM248): New mode iterator.
6000 (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
6001 divmodhi4 patterns using SWIM248 macro.
9e51149d
UB
6002 (*divmod<mode>4): Macroize insn_and_split pattern from
6003 *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
458c00ff 6004 and their corresponding splitters usign SWIM248 macro. Split SImode
9e51149d
UB
6005 insn to generate cltd and DImode insn to generate cqto instead of
6006 move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
6007 (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
6008 (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
458c00ff 6009 *divmodsi_noext patterns using SWIM248 macro.
9e51149d 6010 (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
458c00ff 6011 udivmodhi4 patterns using SWIM248 macro.
9e51149d
UB
6012 (*udivmod<mode>4): Macroize insn_and_split pattern from
6013 *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
458c00ff 6014 corresponding splitters using SWIM248 macro.
9e51149d 6015 (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
458c00ff 6016 *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
9e51149d 6017
c2ce8cdc
EB
60182009-10-02 Eric Botcazou <ebotcazou@adacore.com>
6019
6020 * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
6021 of zero-sized element is zero-sized regardless of its extent.
6022
e1b243a8
JJ
60232009-10-02 Jakub Jelinek <jakub@redhat.com>
6024
7d45fb94
JJ
6025 PR debug/40521
6026 * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
6027 * configure: Regenerated.
6028 * config.in: Regenerated.
6029 * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
6030 !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
6031 (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
6032 not emitting .eh_frame, emit .cfi_sections .debug_frame
6033 directive.
6034
e1b243a8
JJ
6035 PR debug/41404
6036 PR debug/41353
6037 * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
85760734
UB
6038 CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
6039 with '\0'.
e1b243a8
JJ
6040 (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
6041 vars use DECL_RTL with resetting it back to NULL afterwards.
6042 * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
6043 rtx_equal_p instead of asserting it is a SYMBOL_REF.
6044 (value_format): For dw_val_class_addr only use DW_FORM_addr if
6045 the attribute type allows it, otherwise use DW_FORM_dataN.
6046 (mem_loc_descriptor): Handle CONST_STRING.
6047 (add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
6048 Handle MEM with CONST_STRING address using add_AT_string.
6049 (rtl_for_decl_init): Return MEM with CONST_STRING address instead of
6050 CONST_STRING for const arrays initialized with a string literal.
6051 (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
6052 (dwarf2out_finish): Call resolve_addr.
6053
74d174c6
AS
60542009-10-02 Andreas Schwab <schwab@linux-m68k.org>
6055 Maxim Kuvyrkov <maxim@codesourcery.com>
9e51149d 6056
74d174c6
AS
6057 * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.
6058
33561817
NC
60592009-10-02 Nick Clifton <nickc@redhat.com>
6060
6061 * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
6062 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
6063
03ec7d01
JH
60642009-10-01 Jan Hubicka <jh@suse.cz>
6065
6066 * cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
6067 (cgraph_create_virtual_clone): Just pass redirect_callers
6068 around.
6069 * cgraph.h (cgraph_clone_node): Update prototype.
6070 * ipa-pure-const.c (self_recursive_p): New function.
6071 (propagate): Use it.
6072 * ipa-inline.c (cgraph_clone_inlined_nodes,
6073 cgraph_decide_recursive_inlining): Update.
6074
916e9b31
DD
60752009-10-01 David Daney <ddaney@caviumnetworks.com>
6076
6077 * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
6078 instructions for TARGET_OCTEON.
6079
3a303360
RR
60802009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6081
6082 * config/arm/arm.c (arm_override_options): Turn off
6083 flag_dwarf2_cfi_asm for AAPCS variants.
6084
6096017e
MJ
60852009-10-01 Martin Jambor <mjambor@suse.cz>
6086
6087 PR middle-end/12392
6088 * tree-sra.c (convert_callers): Do not call
6089 compute_inline_parameters on one caller more than once.
6090
34f9cdb5
NC
60912009-10-01 Nick Clifton <nickc@redhat.com>
6092
6093 * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
6094 an empty string if not already defined.
6095
1e9fb3de
MJ
60962009-10-01 Martin Jambor <mjambor@suse.cz>
6097
6098 PR bootstrap/41395
6099 * tree-sra.c (is_va_list_type): New function.
6100 (find_var_candidates): Call is_va_list_type.
6101 (find_param_candidates): Check that the type or the type pointed
6102 to are not va_list types.
6103
ed9fa133
MJ
61042009-10-01 Martin Jambor <mjambor@suse.cz>
6105
6106 PR c++/41503
6107 * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
6108 DECL_ARTIFICIAL (param_decl) is true.
9e51149d 6109
7ecbca9d
GDR
61102009-09-30 Gabriel Dos Reis <gdr@cs.tamu.edu>
6111
6112 * tree.h (tree_decl_common::lang_flag_8): New.
6113 * c-common.c (c_common_reswords): Include "constexpr" as C++0x
9e51149d 6114 keyword.
7ecbca9d
GDR
6115 * c-common.h (RID_CONSTEXPR): New.
6116
1f063d10
UB
61172009-09-30 Uros Bizjak <ubizjak@gmail.com>
6118
6119 * config/alpha/alpha.c (alpha_gimplify_va_arg_1):
6120 Use ref-all pointers.
6121 (alpha_gimplify_va_arg): Ditto.
6122
53a51cef
JJ
61232009-09-30 Jakub Jelinek <jakub@redhat.com>
6124
6125 PR target/41279
6126 * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
6127 before insn counting loop now that BB_END (bb) is counted. Ensure
6128 the return value isn't zero.
6129
3c8348d3
NC
61302009-09-30 Nick Clifton <nickc@redhat.com>
6131
6132 * config.gcc (sh-symbianelf): Replace definition of extra_objs
6133 with separate definitions of c_target_objs and cxx_target_objs.
6134 * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
6135 and symbian-base.o.
6136 * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
6137 sh_symbian_import_export_class.
6138 * config/sh/sh-protos.h: Fix names of exported symbian functions.
6139 * config/sh/symbian.c: Delete, moving code into...
6140 * config/sh/symbian-base.c: ... here
6141 * config/sh/symbian-c.c: ... and here
6142 * config/sh/symbian-cxx.c: ... and here.
6143
08a4a761
UB
61442009-09-30 Uros Bizjak <ubizjak@gmail.com>
6145
6146 PR target/22093
6147 * config/alpha/alpha.md (unaligned_storehi_be): Force operand
6148 of plus RTX into register.
6149
0b70519f
RW
61502009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6151
6152 * doc/install.texi: Linguistic and markup fixes.
6153 (Configuration) <--disable-cpp>: Remove description.
6154 <--enable-maintainer-mode>: Autotools files are affected, too.
6155 <--with-sysroot>: Improve description.
6156 (Building): Bump required GNU make version.
6157
cbf2e4d4
HJ
61582009-09-29 Harsha Jagasia <harsha.jagasia@amd.com>
6159
6160 * config.gcc (i[34567]86-*-*): Include fma4intrin.h.
6161 (x86_64-*-*): Ditto.
1f063d10 6162
cbf2e4d4
HJ
6163 * config/i386/fma4intrin.h: New file, provide common x86 compiler
6164 intrinisics for FMA4.
6165 * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
6166 * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
6167 Add FMA4 check and fma4intrin.h.
6168 * config/i386/i386-c.c(ix86_target_macros_internal): Check
1f063d10 6169 ISA_FLAG for FMA4.
cbf2e4d4
HJ
6170 * config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
6171 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
6172 constant for FMA4 support.
6173 (UNSPEC_FMA4_FMADDSUB): Ditto.
6174 (UNSPEC_FMA4_FMSUBADD): Ditto.
6175 * config/i386/i386.opt (-mfma4): New switch for FMA4 support.
1f063d10 6176 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration.
cbf2e4d4
HJ
6177 (ix86_expand_fma4_multiple_memory): Ditto.
6178 * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
1f063d10
UB
6179 (OPTION_MASK_ISA_FMA4_UNSET): New.
6180 (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4.
6181 (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4.
cbf2e4d4
HJ
6182 (ix86_handle_option): Handle -mfma4.
6183 (isa_opts): Handle -mfma4.
6184 (enum pta_flags): Add PTA_FMA4.
1f063d10 6185 (override_options): Add FMA4 support.
cbf2e4d4
HJ
6186 (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
6187 (IX86_BUILTIN_VFMADDSD): Ditto.
6188 (IX86_BUILTIN_VFMADDPS): Ditto.
6189 (IX86_BUILTIN_VFMADDPD): Ditto.
6190 (IX86_BUILTIN_VFMSUBSS): Ditto.
6191 (IX86_BUILTIN_VFMSUBSD): Ditto.
6192 (IX86_BUILTIN_VFMSUBPS): Ditto.
6193 (IX86_BUILTIN_VFMSUBPD): Ditto.
6194 (IX86_BUILTIN_VFMADDSUBPS): Ditto.
6195 (IX86_BUILTIN_VFMADDSUBPD): Ditto.
6196 (IX86_BUILTIN_VFMSUBADDPS): Ditto.
6197 (IX86_BUILTIN_VFMSUBADDPD): Ditto.
6198 (IX86_BUILTIN_VFNMADDSS): Ditto.
6199 (IX86_BUILTIN_VFNMADDSD): Ditto.
6200 (IX86_BUILTIN_VFNMADDPS): Ditto.
6201 (IX86_BUILTIN_VFNMADDPD): Ditto.
6202 (IX86_BUILTIN_VFNMSUBSS): Ditto.
6203 (IX86_BUILTIN_VFNMSUBSD): Ditto.
6204 (IX86_BUILTIN_VFNMSUBPS): Ditto.
6205 (IX86_BUILTIN_VFNMSUBPD): Ditto.
6206 (IX86_BUILTIN_VFMADDPS256): Ditto.
6207 (IX86_BUILTIN_VFMADDPD256): Ditto.
6208 (IX86_BUILTIN_VFMSUBPS256): Ditto.
6209 (IX86_BUILTIN_VFMSUBPD256): Ditto.
6210 (IX86_BUILTIN_VFMADDSUBPS256): Ditto.
6211 (IX86_BUILTIN_VFMADDSUBPD256): Ditto.
6212 (IX86_BUILTIN_VFMSUBADDPS256): Ditto.
6213 (IX86_BUILTIN_VFMSUBADDPD256): Ditto.
6214 (IX86_BUILTIN_VFNMADDPS256): Ditto.
6215 (IX86_BUILTIN_VFNMADDPD256): Ditto.
6216 (IX86_BUILTIN_VFNMSUBPS256): Ditto.
6217 (IX86_BUILTIN_VFNMSUBPD256): Ditto.
6218 (enum multi_arg_type): New enum for describing the various FMA4
6219 intrinsic argument types.
6220 (bdesc_multi_arg): New table for FMA4 intrinsics.
6221 (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
6222 (ix86_expand_multi_arg_builtin): New function for creating FMA4
6223 intrinsics.
6224 (ix86_expand_builtin): Add FMA4 intrinsic support.
6225 (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
6226 operand instructions.
6227 (ix86_expand_fma4_multiple_memory): New function to split the
6228 second memory reference from FMA4 instructions.
6229 * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
6230 (ssemodesuffixf2s): Ditto.
6231 (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
6232 instructions.
6233 (fma4_fmsub<mode>4): Ditto.
6234 (fma4_fnmadd<mode>4): Ditto.
6235 (fma4_fnmsub<mode>4): Ditto.
6236 (fma4_vmfmadd<mode>4): Ditto.
6237 (fma4_vmfmsub<mode>4): Ditto.
6238 (fma4_vmfnmadd<mode>4): Ditto.
6239 (fma4_vmfnmsub<mode>4): Ditto.
6240 (fma4_fmadd<mode>4256): Ditto.
6241 (fma4_fmsub<mode>4256): Ditto.
6242 (fma4_fnmadd<mode>4256): Ditto.
6243 (fma4_fnmsub<mode>4256): Ditto.
6244 (fma4_fmaddsubv8sf4): Ditto.
6245 (fma4_fmaddsubv4sf4): Ditto.
6246 (fma4_fmaddsubv4df4): Ditto.
6247 (fma4_fmaddsubv2df4): Ditto.
6248 (fma4_fmsubaddv8sf4): Ditto.
6249 (fma4_fmsubaddv4sf4): Ditto.
6250 (fma4_fmsubaddv4df4): Ditto.
6251 (fma4_fmsubaddv2df4): Ditto.
6252 (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
6253 instructions for intrinsics.
6254 (fma4i_fmsub<mode>4): Ditto.
6255 (fma4i_fnmadd<mode>4): Ditto.
6256 (fma4i_fnmsub<mode>4): Ditto.
6257 (fma4i_vmfmadd<mode>4): Ditto.
6258 (fma4i_vmfmsub<mode>4): Ditto.
6259 (fma4i_vmfnmadd<mode>4): Ditto.
6260 (fma4i_vmfnmsub<mode>4): Ditto.
6261 (fma4i_fmadd<mode>4256): Ditto.
6262 (fma4i_fmsub<mode>4256): Ditto.
6263 (fma4i_fnmadd<mode>4256): Ditto.
6264 (fma4i_fnmsub<mode>4256): Ditto.
6265 (fma4i_fmaddsubv8sf4): Ditto.
6266 (fma4i_fmaddsubv4sf4): Ditto.
6267 (fma4i_fmaddsubv4df4): Ditto.
6268 (fma4i_fmaddsubv2df4): Ditto.
6269 (fma4i_fmsubaddv8sf4): Ditto.
6270 (fma4i_fmsubaddv4sf4): Ditto.
6271 (fma4i_fmsubaddv4df4): Ditto.
6272 (fma4i_fmsubaddv2df4): Ditto.
6273
6274 * doc/invoke.texi (-mfma4): Add documentation.
6275 * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.
6276
f8fd49b5
RH
62772009-09-29 Richard Henderson <rth@redhat.com>
6278
6279 * tree-eh.c (unsplit_eh): Do not unsplit if there's already
6280 an edge to the new destination block.
6281
062a5fd1
JDA
62822009-09-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6283
6284 PR target/41393
6285 * pa.c (hppa_profile_hook): Use
6286 make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.
6287
cd17b213
SE
62882009-09-29 Steve Ellcey <sje@cup.hp.com>
6289 Alexander Monakov <amonakov@ispras.ru>
6290
1f063d10 6291 PR target/41365
cd17b213
SE
6292 * config/ia64/predicates.md (not_postinc_destination_operand): New.
6293 (not_postinc_memory_operand): New.
6294 (not_postinc_move_operand): New.
6295 * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
6296 (*cmovsi_internal): Ditto.
6297
e7ada00d
PH
62982009-09-29 Pat Haugen <pthaugen@us.ibm.com>
6299
6300 * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
6301 restrict issue_rate in first pass when scheduling for register
6302 pressure.
6303
9b39cba9 63042009-09-29 Basile Starynkevitch <basile@starynkevitch.net>
aeaf114b 6305 Rafael Avila de Espindola <espindola@google.com>
9b39cba9
BS
6306
6307 * gengtype.c (plugin_output): New.
6308 (get_output_file_with_visibility): Return plugin_output for plugins.
6309 (main): Parse and use the -P option.
6310 * gty.texi: Update the command line format.
6311
08cc1e7f
JJ
63122009-09-29 Jakub Jelinek <jakub@redhat.com>
6313
6314 PR debug/41438
6315 * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
6316 functions.
6317 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
6318 out if !const_ok_for_output.
6319
6320 PR debug/41474
6321 * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
6322 case VAR_LOCATION>: Remove gcc_unreachable ().
6323
a795ca6e
HJ
63242009-09-29 Harsha Jagasia <harsha.jagasia@amd.com>
6325
6326 * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
1f063d10 6327 (x86_64-*-*): Ditto.
a795ca6e
HJ
6328 * config/i386/smmintrin.h: Move instructions in mmintrin-common.h
6329 back to smmintrin.h.
bd62d832 6330 * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit.
a795ca6e 6331 * config/i386/x86intrin.h: Remove SSE5.
1f063d10
UB
6332 * config/i386/mmintrin-common.h: Delete file.
6333 * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins.
a795ca6e 6334
b0e96404
RG
63352009-09-29 Richard Guenther <rguenther@suse.de>
6336
6337 * alias.c (ao_ref_from_mem): Properly deal with off decl accesses
6338 resulting from stack temporaries on STRICT_ALIGNMENT targets.
6339
c7ac4fb5
NC
63402009-09-29 Nick Clifton <nickc@redhat.com>
6341
6342 * function.c (current_function_name): If there is no current
6343 function just return "<none>".
6344
b80b0fd9
ST
63452009-09-28 Sriraman Tallam <tmsriram@google.com>
6346
1f063d10 6347 * tree-pass.h (register_pass_info): New structure.
b80b0fd9
ST
6348 (pass_positioning_ops): Move enum from gcc-plugin.h.
6349 (register_pass): New function.
6350 * gcc-plugin.h (plugin_pass): Delete structure.
6351 (pass_positioning_ops): Delete enum.
6352 * plugin.c (regsiter_pass): Delete function.
6353 (position_pass): Delete function.
6354 (added_pass_nodes): Delete variable.
6355 (prev_added_pass_nodes): Delete variable.
6356 (pass_list_node): Delete structure.
6357 * passes.c (make_pass_instance): New function.
6358 (next_pass_1): Change to call make_pass_instance.
6359 (pass_list_node): Move structure from gcc-plugin.h.
6360 (added_pass_nodes): Move variable from plugin.c.
6361 (prev_added_pass_nodes): Move variable from plugin.c.
6362 (position_pass): New function.
6363 (register_pass): New function.
6364
65026047
ER
63652009-09-28 Easwaran Raman <eraman@google.com>
6366
6367 * ifcvt.c (noce_try_abs): Recognize pattern and call
6368 expand_one_cmpl_abs_nojump.
6369 * optabs.c (expand_one_cmpl_abs_nojump): New function.
6370 * optabs.h (expand_one_cmpl_abs_nojump): Declare.
6371
13ebf17b
ILT
63722009-09-28 Ian Lance Taylor <iant@google.com>
6373
6374 PR middle-end/40500
6375 * c-opts.c (c_common_handle_option): Don't set
6376 warn_jump_misses_init for -Wall.
6377 * doc/invoke.texi (Warning Options): Update documentation.
6378
2bc98066
RW
63792009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6380
6381 * Makefile.in ($(out_object_file)): Depend on
6382 gt-$(basename $(notdir $(out_file))).h.
6383
384c400a
RH
63842009-09-28 Richard Henderson <rth@redhat.com>
6385
6386 * except.h (struct eh_region_d): Add use_cxa_end_cleanup.
6387 * except.c (gen_eh_region): Set it.
6388 (duplicate_eh_regions_1): Copy it.
6389 * tree-eh.c (lower_resx): Use it to determine which function
6390 to call to resume.
6391
6392 * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup.
6393 * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
6394 * builtins.def (BUILT_IN_CXA_END_CLEANUP): New.
6395 * tree.c (build_common_builtin_nodes): Remove parameter. Build
6396 BUILT_IN_CXA_END_CLEANUP if necessary.
6397
6398 * c-common.c (c_define_builtins): Update call to
6399 build_common_builtin_nodes.
6400
aa633255
AP
64012009-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
6402
6403 * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns.
6404
44e10129
MM
64052009-09-28 Michael Matz <matz@suse.de>
6406
6407 * builtins.c (interclass_mathfn_icode): New helper.
6408 (expand_builtin_interclass_mathfn): Use it here, and split folding
6409 into ...
6410 (fold_builtin_interclass_mathfn): ... this new folder.
6411 (build_call_nofold_loc): New static helper.
6412 (build_call_nofold): New wrapper macro for above.
6413 (expand_builtin_int_roundingfn): Use it instead of build_call_expr.
6414 (expand_builtin_pow): Ditto.
6415 (expand_builtin_memset_args): Ditto.
6416 (expand_builtin_printf): Ditto.
6417 (expand_builtin_fprintf): Ditto.
6418 (expand_builtin_sprintf): Ditto.
6419 (expand_builtin_memory_chk): Ditto.
6420 (expand_builtin_mempcpy_args): Ditto and don't call folders.
6421 (expand_builtin_stpcpy): Ditto.
6422 (expand_builtin_strcmp): Ditto.
6423 (expand_builtin_strncmp): Ditto.
6424 (expand_builtin_strcpy): Remove FNDECL and MODE arguments.
6425 (expand_builtin_strcpy_args): Don't call folders.
6426 (expand_builtin_memcmp): Ditto.
6427 (expand_builtin_strncpy): Ditto, and use target.
6428 (expand_builtin_memcpy): Ditto.
6429 (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
6430 expand_builtin_strpbrk, expand_builtin_memmove,
6431 expand_builtin_memmove_args, expand_builtin_bcopy,
6432 expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat,
6433 expand_builtin_strspn, expand_builtin_strcspn,
6434 expand_builtin_fputs): Remove these.
6435 (expand_builtin): Don't call the above, change calls to other
6436 expanders that changed prototype.
6437 (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy.
6438 (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call
6439 fold_builtin_interclass_mathfn.
6440 (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy.
6441 (fold_builtin_strcat): Add folding split from expand_builtin_strcat.
6442
6443 * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp.
6444 * passes.c (init_optimization_passes): Move pass_fold_builtins
6445 after last phiopt pass.
6446 * tree-inline.c (fold_marked_statements): When folding builtins
6447 iterate over all instruction potentially generated.
6448 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare
6449 earlier.
6450 (fold_gimple_call): Use it to always fold calls (into potentially
6451 multiple instructions).
6452 * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p
6453 calls into zero at this time.
1f063d10 6454 * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple
44e10129
MM
6455 statements generated by builtin folding.
6456
d813aaba
NC
64572009-09-28 Nick Clifton <nickc@redhat.com>
6458
85760734 6459 * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns.
d813aaba 6460
1d7d659d 64612009-09-28 Duncan Sands <baldrick@free.fr>
32c9b4e9
DS
6462
6463 * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event.
6464 * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES.
6465 (register_callback): Dispatch it.
6466 (invoke_plugin_callbacks): Incorporate in sanity check.
6467 * ggc.h (ggc_register_cache_tab): Add declaration.
6468 * ggc-common.c (ggc_register_root_tab): Simplify.
6469 (const_ggc_cache_tab_t): New typedef.
6470 (extra_cache_vec): New vector of dynamically added cache tables.
6471 (ggc_register_cache_tab): New function.
6472 (ggc_scan_cache_tab): New function.
6473 (ggc_mark_roots): Simplify dynamic roots. Handle dynamic caches.
6474 * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES.
6475
ff9d1adc
RH
64762009-09-27 Richard Henderson <rth@redhat.com>
6477
6478 * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under
6479 which we remove __builtin_stack_restore.
6480
cdf1bf8b
BS
64812009-09-27 Bernd Schmidt <bernd.schmidt@analog.com>
6482
6483 * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P,
6484 to test for GRD_INVARIANT.
6485 (simple_rhs_p): Anything that's function_invariant_p is fine.
6486
ea2ca633
RE
64872009-09-27 Rafael Avila de Espindola <espindola@google.com>
6488
6489 * gengtype.c (main): Use plunge_files instead of plugin_output.
6490
99be7084
BS
64912009-09-27 Basile Starynkevitch <basile@starynkevitch.net>
6492 Rafael Avila de Espindola <espindola@google.com>
6493
6494 * gengtype.c (write_root, write_roots): Add a emit_pch argument.
6495 Don't print pch related info if it is false.
6496 (main): Don't print pch info in plugin mode.
6497
4c0ce3c9 64982009-09-27 Eric Botcazou <ebotcazou@adacore.com>
afbd0665 6499
4c0ce3c9
EB
6500 * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long
6501 with dw_val_class_const_double.
6502 (struct dw_val_struct): Replace val_long_long with val_double and
6503 adjust for above change.
6504 (output_loc_operands): Likewise.
6505 (add_AT_long_long): Rename into...
6506 (add_AT_double): ...this.
6507 (print_die): Replace dw_val_class_long_long with
6508 dw_val_class_const_double and adjust.
6509 (attr_checksum): Likewise.
6510 (same_dw_val_p): Likewise.
6511 (size_of_die): Likewise.
6512 (value_format): Likewise.
6513 (output_die): Likewise.
6514 (loc_descriptor) <CONST_DOUBLE>: Likewise.
6515 (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double
6516 instead of add_AT_long_long.
6517 (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned
6518 value with the precision of its type.
6519
65202009-09-27 Andreas Schwab <schwab@linux-m68k.org>
6521
6522 PR c/41476
afbd0665
AS
6523 * c-typeck.c (build_conditional_expr): Use the readonly and
6524 volatile flags of the operand types, not of the operands itself.
6525
4c0ce3c9 65262009-09-27 Peter O'Gorman <pogma@thewrittenword.com>
88febe35 6527
85760734 6528 * collect2.c (main): Look for -brtl before adding libraries.
88febe35 6529
4c0ce3c9 65302009-09-27 Jonathan Gray <jsg@openbsd.org>
aa58f943
JG
6531
6532 * config.gcc: Update OpenBSD targets.
6533 * config/openbsd-stdint.h: New file.
6534 * config/openbsd-libpthread.h: New file.
6535 * config/openbsd.h: Update and break out LIB_SPEC definition.
6536 * config/alpha/openbsd.h: Overhaul to reflect ELF migration.
6537 * config/i386/openbsdelf.h: Correct types.
6538 * config/m68k/openbsd.h: Likewise.
6539 * config/mips/openbsd.h: Likewise.
6540 * config/vax/openbsd.h: Likewise.
6541
ffaf6f25
EB
65422009-09-27 Eric Botcazou <ebotcazou@adacore.com>
6543
6544 * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR.
6545 (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary.
6546 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum
6547 of the length and zero.
6548
c829a888
RW
65492009-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6550
464778c0
RW
6551 * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h.
6552 (FLAGS_H): Add options.h $(REAL_H).
6553 (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H).
6554 (TREE_VECTORIZER_H): New.
6555 (EBITMAP_H): Renamed from EBIMAP_H.
6556 (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o)
6557 (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o)
6558 (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o)
6559 (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o)
6560 (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o)
6561 (graphite-clast-to-gimple.o, graphite-dependences.o)
6562 (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o)
6563 (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o)
6564 (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o)
6565 (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o)
6566 (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o)
6567 (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o)
6568 (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o)
6569 (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o)
6570 (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies
6571 updated and fixed as per above changes and per
6572 check_makefile_deps.sh output.
6573
c829a888
RW
6574 PR bootstrap/40928
6575 * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
6576 * configure: Regenerate.
6577
3e661154
KG
65782009-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6579
6580 * doc/install.texi: Update minimum MPC version to 0.7.
6581
39088c66
GP
65822009-09-26 Gerald Pfeifer <gerald@pfeifer.com>
6583
6584 * doc/install.texi (Binaries): Remove reference to the binary
6585 distribution CD-ROM from the FSF.
6586
0ffd2048
MM
65872009-09-26 Michael Matz <matz@suse.de>
6588
6589 PR lto/40758
6590 PR middle-end/41470
6591 * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names
6592 that are mentioned in the body.
6593
87c93592
MM
65942009-09-26 Michael Matz <matz@suse.de>
6595
6596 PR tree-optimization/41454
6597 * tree-ssa-dom (stmts_to_rescan): Remove variable.
6598 (tree_ssa_dominator_optimize): Don't allocate and free it.
6599 (dom_opt_leave_block): Don't iterate over it.
6600 (eliminate_redundant_computations): Don't return a value.
6601 (cprop_operand, cprop_into_stmt): Ditto.
6602 (optimize_stmt): Don't defer updating stmts.
6603
7653f273 66042009-09-25 Dodji Seketeli <dodji@redhat.com>
072c87d1 6605
7653f273
DS
6606 * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies,
6607 generic_parameter_die, template_parameter_pack_die,
85760734
UB
6608 gen_formal_parameter_die, gen_subprogram_die): Adjust after
6609 renaming DW_TAG_formal_parameter_pack and
6610 DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack
6611 and DW_TAG_GNU_template_parameter_pack.
072c87d1 6612
14a878f3
AS
66132009-09-25 Anatoly Sokolov <aesok@post.ru>
6614
6615 * config/v850/v850.h (FUNCTION_VALUE): Remove.
6616 * config/v850/v850.c (v850_function_value): New function.
6617 (TARGET_FUNCTION_VALUE): Define.
6618
94c08201
JJ
66192009-09-25 Jakub Jelinek <jakub@redhat.com>
6620
7411b8f0
JJ
6621 * tree-vect-stmts.c (vectorizable_call): Call
6622 mark_symbols_for_renaming after vect_finish_stmt_generation.
6623
94c08201
JJ
6624 * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2
6625 to loc_descriptor_from_tree.
6626 (add_location_or_const_value_attribute): Pass 0 instead of 2
6627 for decl_by_reference_p decls.
6628
79441eca
RG
66292009-09-25 Richard Guenther <rguenther@suse.de>
6630
6631 PR middle-end/41463
6632 * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing
6633 arrays again.
6634
7930dab0
BE
66352009-09-25 Ben Elliston <bje@au.ibm.com>
6636
6637 * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma
6638 after `power7'.
6639
3025dff8
AM
66402009-09-25 Alan Modra <amodra@bigpond.net.au>
6641
6642 * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
6643 form of instruction.
6644
e3d5405d
KG
66452009-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6646
6647 PR middle-end/41435
6648 * fold-const.c (const_binop): Handle complex int division.
6649 * tree-complex.c (expand_complex_div_straight,
6650 expand_complex_div_wide): Update comments.
6651
18b80268
DD
66522009-09-24 DJ Delorie <dj@redhat.com>
6653
6654 PR target/41456
6655 * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
6656 (reg_class): Likewise.
6657 (REG_CLASS_NAMES): Likewise.
6658 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
85760734 6659 (m32c_override_options): Disable -fivopts for M32C.
18b80268 6660
368908d8
MM
66612009-09-24 Michael Meissner <meissner@linux.vnet.ibm.com>
6662
6663 * config/rs6000/predicates.md (indexed_or_indirect_operand):
6664 Delete VSX load/store with update support.
6665 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto.
6666 * config/rs6000/vsx.md (vsx_mov<mode>): Ditto.
6667 (vsx_movti): Ditto.
6668 (VSX_U): Delete.
6669 (VSbit): Ditto.
6670 (VStype_load_update): Ditto.
6671 (VStype_store_update): Ditto.
6672 (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto.
6673 (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto.
6674
6675 * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX
6676 load/store with update builtins.
6677
0a38153f
KT
66782009-09-24 Kai Tietz <kai.tietz@onevision.com>
6679
6680 * libgcc2.c (L_trampoline): Prototype for getpagesize
6681 and mprotect in WINNT case.
6682
3faa6313
AS
66832009-09-24 Anatoly Sokolov <aesok@post.ru>
6684
6685 * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro.
6686 * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove.
6687 * config/rs6000/rs6000.c (rs6000_function_value): Make static, add
6688 'outgoing' argument.
6689 (TARGET_FUNCTION_VALUE): Define.
6690
2d84a337
IS
66912009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6692
6693 * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1.
6694
047a3193
IS
66952009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6696
6697 PR bootstrap/41405
afbd0665 6698 * common.opt: Initialize dwarf_strict to -1.
047a3193
IS
6699 * toplev.c (process_options): Catch unset dwarf_strict
6700 and set to 0 for all targets not overriding.
6701 * config/darwin.c (darwin_override_options): Catch unset
6702 dwarf_strict and override to 1.
6703
b5dcb2b9
JL
67042009-09-24 Jeff Law <law@redhat.com>
6705
afbd0665 6706 * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks.
b5dcb2b9 6707
824ff0cd
RG
67082009-09-24 Richard Guenther <rguenther@suse.de>
6709
6710 PR tree-optimization/36143
6711 PR tree-optimization/38747
6712 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
6713 create VIEW_CONVERT_EXPRs for TBAA compatible accesses.
6714
22a3138f
JJ
67152009-09-24 Jakub Jelinek <jakub@redhat.com>
6716
6717 PR bootstrap/41457
6718 * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED,
6719 return false instead of gcc_unreachable (). For CONST return the
6720 value returned by recursive call instead of always returning true.
6721 (tree_add_const_value_attribute): Return the value returned by
6722 add_const_value_attribute instead of always returning true if rtl
6723 is non-NULL.
6724
67252009-09-23 Justin Seyster <jrseys@gmail.com>
6209e51c
JS
6726
6727 * Makefile.in (PLUGIN_HEADERS): Include real.h.
6728
9f62cb92
JJ
67292009-09-24 Jakub Jelinek <jakub@redhat.com>
6730
6731 * cgraphunit.c (cgraph_lower_function): Revert last change.
6732 * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN
6733 instead of DECL_NO_STATIC_CHAIN.
6734 * tree-cfg.c (verify_gimple_call): Likewise.
6735 * tree-nested.c (get_chain_decl, get_chain_field,
6736 convert_tramp_reference_op, convert_gimple_call): Likewise.
6737 (convert_all_function_calls): Likewise. Always set or clear
6738 DECL_STATIC_CHAIN initially, for !n->outer clear it.
6739 (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code.
6740 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN
6741 if nested.
6742 * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of
6743 DECL_NO_STATIC_CHAIN.
6744 * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN
6745 instead of DECL_NO_STATIC_CHAIN.
6746 (ix86_function_regparm, find_drap_reg): Likewise. Don't test
6747 decl_function_context.
6748 * varasm.c (initializer_constant_valid_p): Likewise.
6749 * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ...
6750 (DECL_STATIC_CHAIN): ... this.
6751 * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN
6752 instead of DECL_NO_STATIC_CHAIN.
6753
9f78bf05 67542009-09-23 Basile Starynkevitch <basile@starynkevitch.net>
6209e51c 6755 Rafael Avila de Espindola <espindola@google.com>
9f78bf05
BS
6756
6757 * gengtype.c (nb_plugin_files): Make it unsigned to match
6758 num_gt_files. Adjust other variables to avoid warnings.
6759 (main): Allocate an all zero lang_bitmap before each plugin file name
6760 to match regular file names.
6761
2b4fa409
RH
67622009-09-23 Richard Henderson <rth@redhat.com>
6763
6764 * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
6765 (TARGET_STATIC_CHAIN): Mention that this hook must be used for
6766 static chain passed in memory.
6767 * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison.
6768 * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN,
6769 STATIC_CHAIN_INCOMING. Issue a sorry if there's no
6770 STATIC_CHAIN_REGNUM defined.
6771
6772 * config/picochip/picochip-protos.h: s/class/klass/.
6773 * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New.
6774 (picochip_static_chain): New.
6775 * config/picochip/picochip.h (STATIC_CHAIN): Remove.
6776 (STATIC_CHAIN_INCOMING): Remove.
6777
6778 * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New.
6779 (xtensa_static_chain): New.
85760734
UB
6780 * config/xtensa/xtensa.h (STATIC_CHAIN): Remove.
6781 (STATIC_CHAIN_INCOMING): Remove.
2b4fa409 6782
9193312a
AS
67832009-09-23 Anatoly Sokolov <aesok@post.ru>
6784
6785 * config/pa/pa.h (FUNCTION_VALUE): Remove macro.
6786 * config/pa/pa-protos.h (function_value): Remove.
6787 * config/pa/pa.c (pa_function_value): Rename from function_value.
6788 Make static, add 'outgoing' argument.
6789 (TARGET_FUNCTION_VALUE): Define.
6790
9ed74235
AS
67912009-09-23 Anatoly Sokolov <aesok@post.ru>
6792
6793 * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf
6794 instead of cfun->machine->is_leaf.
6795 * config/avr/avr.h (machine_function): Remove is_leaf field.
6796
abab57ef
JJ
67972009-09-23 Jakub Jelinek <jakub@redhat.com>
6798
6799 PR debug/41439
6800 * dwarf2out.c (address_of_int_loc_descriptor): Don't emit
6801 DW_OP_piece after DW_OP_stack_value, adjust size calculations
6802 for it, when DW_OP_stack_value and DW_OP_implicit_value has
6803 the same size, prefer DW_OP_stack_value.
6804 (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref,
6805 loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value.
6806
7168dc47
AO
68072009-09-23 Alexandre Oliva <aoliva@redhat.com>
6808
6809 PR debug/41353
6810 * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses.
6811
dda2da58
AO
68122009-09-23 Alexandre Oliva <aoliva@redhat.com>
6813
6814 PR debug/41248
6815 * cfgexpand.c (convert_debug_memory_address): New.
6816 (expand_debug_expr): Convert base address and offset to the same
6817 mode. Use it to convert addresses to other modes. Accept
6818 ptr_mode addresses.
6819
a3119b91
DS
68202009-09-23 Dodji Seketeli <dodji@redhat.com>
6821
6822 PR debug/41065
6823 * function.h (types_used_by_vars_hash): Declare new hash table.
6824 (types_used_by_vars_eq, types_used_by_var_decl_insert): Declare
6825 equality and hash function for the hash table.
6826 (types_used_by_cur_var_decl): Declare a new global chained list.
6827 (types_used_by_var_decl_insert): Declare new function.
6828 * function.c (types_used_by_vars_hash): Define the hashtable ...
6829 (types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as
6830 its equality and hash functions.
6831 (hash_types_used_by_vars_entry): New hash helper.
6832 (types_used_by_cur_var_decl): Define the global chained list.
6833 (used_types_insert): Update the list of types used by the global
6834 variable being parsed.
6835 (types_used_by_var_decl_insert): Define new function.
6836 * c-common.h (record_types_used_by_current_var_decl): Declare ...
6837 * c-common.c (record_types_used_by_current_var_decl): ... new
6838 function.
6839 * c-decl.c (finish_decl): Record the types used by the global
6840 variable declaration we've just parsed.
6841 * dwarf2out.c (premark_used_types): Insert a new line between
6842 comment and function.
6843 (premark_used_types_helper): Fix comment.
6844 (premark_types_used_by_global_vars_helper,
6845 premark_types_used_by_global_vars): New functions.
6846 (prune_unused_types): Do not prune types used by global variables.
6847
4c685825
RG
68482009-09-23 Richard Guenther <rguenther@suse.de>
6849
6850 * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET
6851 produced for bigendian targets with promoted subregs.
6852
659ad88e
RG
68532009-09-23 Richard Guenther <rguenther@suse.de>
6854
6855 * value-prof.c (gimple_ic): Purge old EH edges only after building
6856 the new ones.
6857
b3901be5
NC
68582009-09-23 Nick Clifton <nickc@redhat.com>
6859
6860 * config/arc/arc.c (arc_trampoline_init): Fix typo.
6861
66f0e027
JJ
68622009-09-23 Jakub Jelinek <jakub@redhat.com>
6863
dc67413d
JJ
6864 PR bootstrap/41405
6865 * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf.
6866
66f0e027
JJ
6867 PR bootstrap/41436
6868 * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN
6869 on non-nested functions.
6870
457ff6a1
JJ
68712009-09-23 Jakub Jelinek <jakub@redhat.com>
6872 Jan Hubicka <jh@suse.cz>
6873
6874 * dwarf2out.c (loc_list_plus_const): Only define if
6875 DWARF2_DEBUGGING_INFO.
6876 (address_of_int_loc_descriptor): Likewise.
6877
6878 PR debug/41411
6879 * dwarf2out.c (mem_loc_descriptor): Handle HIGH.
6880
68812009-09-23 Uros Bizjak <ubizjak@gmail.com>
be123439
UB
6882
6883 PR c/39779
6884 * c-typeck.c (build_binary_op) <short_shift>: Check that integer
6885 constant is more than zero.
6886
d57c0139
AM
68872009-09-23 Alan Modra <amodra@bigpond.net.au>
6888
6889 PR target/40473
6890 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
6891 call final to emit non-scheduled prologue, instead insert at entry.
6892
f2431d5d
LR
68932009-09-22 Loren J. Rittle <ljrittle@acm.org>
6894 Joseph S. Myers <joseph@codesourcery.com>
6895
6896 * doc/install.texi (*-*-freebsd*): Add proper format codes.
6897
41e7ac51 68982009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
be123439 6899 Rafael Avila de Espindola <espindola@google.com>
41e7ac51
BS
6900
6901 * gengtype.c (is_file_equal): New function.
6902 (close_output_files): Use is_file_equal. Free of->buf.
6903
0182d016 69042009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
be123439 6905 Rafael Avila de Espindola <espindola@google.com>
0182d016
BS
6906
6907 * gengtype.c (write_types, write_local): Add the output_header
6908 argument. Update all callers.
6909
d40a19da
DS
69102009-09-22 Dodji Seketeli <dodji@redhat.com>
6911
6912 * dwarf2out.c (template_parameter_pack_die,
6913 gen_formal_parameter_pack_die ): New functions.
6914 (make_ith_pack_parameter_name): Remove this function.
6915 (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
6916 DW_TAG_formal_parameter_pack.
6917 (gen_generic_params_dies): Represent each template parameter pack
6918 by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
6919 represented by usual DW_TAG_template_*_parameter DIEs that are
6920 children of the DW_TAG_template_parameter_pack element DIE.
6921 (generic_parameter_die): This doesn't deal with parameter pack
be123439
UB
6922 names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
6923 of parameter pack DIEs.
d40a19da
DS
6924 (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
6925 in certain cases, e.g. for pack elements.
6926 (gen_formal_types_die, gen_decl_die): Adjust usage of
6927 gen_formal_parameter_die.
6928 (gen_subprogram_die): Represent each function parameter pack by a
6929 DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
6930 represented by usual DW_TAG_formal_parameter DIEs that are children
6931 of the DW_TAG_formal_parameter_pack DIE. Remove references to
6932 ____builtin_va_alist decls as no part of the compiler uses those
6933 anymore.
6934 * langhooks.h (struct lang_hooks_for_decls): Add
6935 function_parm_expanded_from_pack_p, get_generic_function_decl
6936 and function_parameter_pack_p hooks. Fix comment for
6937 get_innermost_generic_parms hook.
6938 * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
6939 LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
6940 macros and use them to initialize lang_hook.
6941
82497700
RH
69422009-09-22 Richard Henderson <rth@redhat.com>
6943
6944 * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
6945 (TRAMPOLINE_ADJUST_ADDRESS): Poison.
6946 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
6947 on TRAMPOLINE_TEMPLATE.
6948 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
6949 TRAMPOLINE_ADJUST_ADDRESS.
6950 * targhooks.c (default_asm_trampoline_template): Remove.
6951 (default_trampoline_adjust_address): Remove.
6952 (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
6953 * targhooks.h: Update decls.
6954
6a92b6c7
DK
69552009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
6956
6957 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
6958 * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
6959 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
6960
502a1e45
AO
69612009-09-22 Alexandre Oliva <aoliva@redhat.com>
6962
6963 PR debug/41295
6964 * reload1.c (reload): Reset debug insns with pseudos without
6965 equivalences.
6966
a9ab39d3
JJ
69672009-09-22 Janis Johnson <janis187@us.ibm.com>
6968
6969 * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
6970 unconditional true for decimal float modes.
6971 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
6972 * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.
6973
2208d2ac
LR
69742009-09-22 Loren J. Rittle <ljrittle@acm.org>
6975
6976 * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
6977 Enable a new case for __FreeBSD__ >= 7.
6978 * crtstuff.c: Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
6979 * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
6980 * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
6981 and USE_LD_AS_NEEDED.
6982
27ed7478
LR
6983 * doc/install.texi (*-*-freebsd*): Update target information.
6984
6eee506e
RH
69852009-09-22 Richard Guenther <rguenther@suse.de>
6986
6987 PR middle-end/41395
6988 * tree-dfa.c (get_ref_base_and_extent): Handle trailing
6989 arrays really properly.
6990
531ca746
RH
69912009-09-22 Richard Henderson <rth@redhat.com>
6992
6993 PR target/41246
6994 * target.h (struct gcc_target): Add asm_out.trampoline_template,
6995 calls.static_chain, calls.trampoline_init,
6996 calls.trampoline_adjust_address.
6997 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
6998 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
6999 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
7000 * builtins.c (expand_builtin_setjmp_receiver): Use
7001 targetm.calls.static_chain; only clobber registers.
7002 (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
7003 set up memory attributes properly for the trampoline block.
7004 (expand_builtin_adjust_trampoline): Use
7005 targetm.calls.trampoline_adjust_address.
7006 * calls.c (prepare_call_address): Add fndecl argument. Use
7007 targetm.calls.static_chain.
7008 * df-scan.c (df_need_static_chain_reg): Remove.
7009 (df_get_entry_block_def_set): Use targetm.calls.static_chain;
7010 consolodate static chain handling.
7011 * doc/tm.texi: Document new hooks.
7012 * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
7013 (init_emit_regs): Don't initialize them.
7014 * expr.h (prepare_call_address): Update decl.
7015 * final.c (profile_function): Use targetm.calls.static_chain.
7016 * function.c (expand_function_start): Likewise.
7017 * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
7018 * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
7019 only clobber registers.
7020 * targhooks.c (default_static_chain): New.
7021 (default_asm_trampoline_template, default_trampoline_init): New.
7022 (default_trampoline_adjust_address): New.
7023 * targhooks.h: Declare them.
7024 * varasm.c (assemble_trampoline_template): Use
7025 targetm.asm_out.trampoline_template. Make the memory block const
7026 and set its size.
7027
672f0baa
RH
7028 * config/alpha/alpha.c (alpha_trampoline_init): Rename from
7029 alpha_initialize_trampoline. Make static. Merge VMS parameter
7030 differences into the TARGET_ABI_OPEN_VMS code block.
7031 (TARGET_TRAMPOLINE_INIT): New.
7032 * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
7033 (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
7034 * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
7035 (INITIALIZE_TRAMPOLINE): Remove.
7036
7037 * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
7038 (TRAMPOLINE_TEMPLATE): Merge with ...
7039 (INITIALIZE_TRAMPOLINE): ... this and move ...
7040 * config/arc/arc.c (arc_trampoline_init): ... here.
2d7b663a 7041 (TARGET_TRAMPOLINE_INIT): New.
2d7b663a 7042
0ef9304b
RH
7043 * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7044 (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
7045 (arm_asm_trampoline_template): New.
7046 (arm_trampoline_init, arm_trampoline_adjust_address): New.
7047 * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
7048 THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
7049 code to arm_asm_trampoline_template.
7050 (TRAMPOLINE_ADJUST_ADDRESS): Move code to
7051 arm_trampoline_adjust_address.
7052 (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
7053 adjust for target hook parameters.
7054
be123439
UB
7055 * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
7056 Remove.
2df373c2 7057
92910d77
RH
7058 * config/bfin/bfin-protos.h (initialize_trampoline): Remove.
7059 * config/bfin/bfin.c (bfin_asm_trampoline_template): New.
7060 (bfin_trampoline_init): Rename from initialize_trampoline;
7061 make static; update for target hook parameters.
7062 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
7063 * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
7064 bfin_asm_trampoline_template.
7065 (INITIALIZE_TRAMPOLINE): Remove.
7066
3e322b77
RH
7067 * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7068 TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
7069 cris_trampoline_init): New.
7070 * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
7071 cris_asm_trampoline_template.
7072 (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
7073 adjust for target hook parameters.
7074
956c97fc
RH
7075 * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
7076
98689f5e
RH
7077 * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7078 TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
7079 fr30_trampoline_init): New.
7080 * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
7081 fr30_asm_trampoline_template.
7082 (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
7083 adjust for target hook parameters.
7084
e9d5fdb2
RH
7085 * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
7086 (frv_trampoline_init): Rename from frv_initialize_trampoline;
7087 make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
7088 * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
7089 * config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
7090
9f6ef043
RH
7091 * config/h8300/h8300.c (h8300_trampoline_init): New.
7092 (TARGET_TRAMPOLINE_INIT): New.
7093 * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
7094 to h8300_trampoline_init and adjust for hook parameters.
7095
2a1211e5
RH
7096 * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
7097 * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
7098 (ia64_trampoline_init): Rename from ia64_initialize_trampoline;
7099 make static; adjust for hook parameters.
7100 * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
7101
f4a33d37
RH
7102 * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7103 (TARGET_TRAMPOLINE_INIT): New.
7104 (iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
7105 * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
7106 iq2000_asm_trampoline_template.
7107 (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
7108 (TRAMPOLINE_CODE_SIZE): New.
7109 (TRAMPOLINE_SIZE): Use it.
7110 (TRAMPOLINE_ALIGNMENT): Follow Pmode.
7111
229fbccb
RH
7112 * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
7113 * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
7114 (m32c_trampoline_init): Rename from m32c_initialize_trampoline;
7115 adjust for hook parameters.
7116 * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
7117
1548bf05
RH
7118 * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
7119 (m32r_trampoline_init): New.
7120 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
7121 m32r_trampoline_init.
7122
0d7e5af1
RH
7123 * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
7124 (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
7125 make static; update for hook parameters.
7126 * config/m68hc11/m68hc11-protos.h: Update.
7127 * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.
7128
71e0af3c
RH
7129 * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7130 (TARGET_TRAMPOLINE_INIT): New.
7131 (mcore_function_value): Fix typo.
7132 (mcore_asm_trampoline_template, mcore_trampoline_init): New.
afbd0665 7133 * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
71e0af3c
RH
7134 to mcore_asm_trampoline_template.
7135 (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.
7136
87138d8d
RH
7137 * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
7138 * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
7139 (mep_trampoline_init): Rename from mep_init_trampoline; make static;
7140 update for hook parameters.
7141 * config/mep/mep-protos.h (mep_init_trampoline): Remove.
7142
a1d29c8c
RH
7143 * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7144 mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
7145 mips_trampoline_init): New.
7146 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
7147 mips_asm_trampoline_template.
7148 (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
7149 update for hook parameters.
7150
dbbdb385
RH
7151 * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7152 (TARGET_TRAMPOLINE_INIT): New.
7153 (mmix_trampoline_size): Remove.
7154 (mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
7155 make static. Remove out-of-date tetra vs octa comment.
7156 (mmix_trampoline_init): Rename from mmix_initialize_trampoline;
7157 make static; update for hook parameters.
7158 * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
7159 (INITIALIZE_TRAMPOLINE): Remove.
7160 (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
7161 (TRAMPOLINE_ALIGNMENT): New.
7162 * gcc/config/mmix/mmix-protos.h: Update.
7163
bdeb5f0c
RH
7164 * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7165 mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
7166 mn10300_trampoline_init): New.
7167 * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
7168 mn10300_asm_trampoline_template.
7169 (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.
7170
4601494d
RH
7171 * config/moxie/moxie.c (moxie_static_chain,
7172 moxie_asm_trampoline_template, moxie_trampoline_init,
7173 TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
7174 TARGET_TRAMPOLINE_INIT): New.
7175 * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
7176 moxie_trampoline_init.
7177 (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
7178 (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
7179
859c146c
RH
7180 * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7181 pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
7182 pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
7183 pa_trampoline_adjust_address): New.
7184 * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
7185 pa_asm_trampoline_template.
7186 (TRAMPOLINE_ALIGNMENT): New.
7187 (TRAMPOLINE_CODE_SIZE): Move to pa.c.
7188 (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
7189 adjust for hook parameters.
7190 (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.
7191
8dd65c37
RH
7192 * config/pdp11/pdp11.c (pdp11_trampoline_init): New.
7193 (TARGET_TRAMPOLINE_INIT): New.
7194 * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
7195 (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.
7196
454da451
RH
7197 * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.
7198
44d43e53
RH
7199 * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
7200 * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
7201 (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
7202 make static; adjust parameters for the hook.
7203 * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.
7204
b81ecf6f
RH
7205 * config/s390/s390.c (s390_asm_trampoline_template): Rename from
7206 s390_trampoline_template; make static.
7207 (s390_trampoline_init): Rename from s390_initialize_trampoline;
7208 make static; adjust for target hook.
7209 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
7210 * config/s390/s390-protos.h: Remove trampoline decls.
7211 * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
7212 (TRAMPOLINE_TEMPLATE): Remove.
7213 (TRAMPOLINE_ALIGNMENT): New.
7214
2f5bb28c
RH
7215 * config/score/score-protos.h (score_initialize_trampoline): Remove.
7216 * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7217 (TARGET_TRAMPOLINE_INIT): New.
7218 (score_asm_trampoline_template): New.
7219 (score_trampoline_init): Rename from score_initialize_trampoline;
7220 make static; adjust for hook parameters.
7221 * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
7222 score[37]_asm_trampoline_template.
7223 (INITIALIZE_TRAMPOLINE): Remove.
7224 * config/score/score3.c (score3_asm_trampoline_template): New.
7225 (score3_trampoline_init): Rename from score3_initialize_trampoline;
7226 adjust for target hook.
7227 * config/score/score7.c (score7_asm_trampoline_template): New.
7228 (score7_trampoline_init): Rename from score7_initialize_trampoline;
7229 adjust for target hook.
7230 * config/score/score3.h, config/score/score7.h: Update.
7231
994322ef
RH
7232 * config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
7233 * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
7234 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
7235 (sh_trampoline_init): Rename from sh_initialize_trampoline;
7236 make static; adjust for target hook parameters.
7237 (sh_trampoline_adjust_address): New.
7238 * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
7239 (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.
7240
809e78cc
RH
7241 * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
7242 (sparc32_initialize_trampoline): Rename from
7243 sparc_initialize_trampoline; make static; replace tramp parameter
7244 with m_tramp and update memory accesses.
7245 (sparc64_initialize_trampoline): Similarly.
7246 (sparc_trampoline_init): New.
7247 * config/sparc/sparc-protos.h: Remove trampoline decls.
7248 * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
7249 * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.
7250
a85b4c91
RH
7251 * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
7252 (array_to_constant): Make ARR parameter const.
7253 (spu_trampoline_init): Rename from spu_initialize_trampoline;
7254 make static; update for hook parameters.
7255 * config/spu/spu-protos.h: Update decls.
7256 * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.
7257
fb8d0fac
RH
7258 * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
7259 from xstormy16_initialize_trampoline; make static; update for
7260 hook parameters.
7261 (TARGET_TRAMPOLINE_INIT): New.
7262 * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.
7263
e0c6c273
RH
7264 * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7265 (TARGET_TRAMPOLINE_INIT): New.
7266 (v850_can_eliminate): Make static.
7267 (v850_asm_trampoline_template, v850_trampoline_init): New.
7268 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
7269 v850_asm_trampoline_template.
7270 (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
7271 and adjust for target hook parameters.
7272
3814318d
RH
7273 * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7274 (TARGET_TRAMPOLINE_INIT): New.
7275 (vax_asm_trampoline_template, vax_trampoline_init): New.
7276 * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
7277 vax_asm_trampoline_template.
7278 (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.
7279
3c1229cb
RH
7280 * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7281 (TARGET_TRAMPOLINE_INIT): New.
7282 (xtensa_asm_trampoline_template): Rename from
7283 xtensa_trampoline_template; make static.
7284 (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
7285 make static; update for hook parameters.
7286 * config/xtensa/xtensa-protos.h: Remove trampoline decls.
7287 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
7288 (INITIALIZE_TRAMPOLINE): Remove.
7289
3452586b
RH
7290 * config/i386/i386.c (ix86_function_regparm): Do not issue an
7291 error for nested functions with regparm=3.
7292 (ix86_compute_frame_layout): Adjust frame pointer offset for
7293 ix86_static_chain_on_stack.
7294 (ix86_expand_prologue): Handle ix86_static_chain_on_stack.
7295 (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
7296 don't reset to UNITS_PER_WORD.
7297 (ix86_emit_leave): Adjust ix86_cfa_state.
7298 (ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
7299 (ix86_static_chain): New.
7300 (ix86_trampoline_init): Rename from x86_initialize_trampoline;
7301 make static; update for target hook parameters; use ix86_static_chain.
7302 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
7303 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
7304 (INITIALIZE_TRAMPOLINE): Remove.
7305 (TRAMPOLINE_SIZE): Use 24 for 64-bit.
7306 (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
7307 to the end. Add static_chain_on_stack.
7308 (ix86_static_chain_on_stack): New.
7309
e0601576
RH
7310 * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
7311 (m68k_output_mi_thunk): Don't use static_chain_rtx.
7312 (m68k_trampoline_init): New.
7313 * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
7314 m68k_trampoline_init and adjust for hook parameters.
7315 * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
7316 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.
7317
39dbcfc3
JJ
73182009-09-22 Jakub Jelinek <jakub@redhat.com>
7319
9190e0a9
JJ
7320 * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
7321 for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
7322
39dbcfc3
JJ
7323 * reload1.c (reload): Call wrap_constant when substituting
7324 reg for equiv inside of DEBUG_INSNs.
7325
65f753a0
JJ
7326 PR bootstrap/41405
7327 * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
7328 add_call_src_coords_attributes, add_high_low_attributes,
7329 gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
7330 gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
7331 dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
7332 when -gdwarf-2 -gstrict-dwarf.
7333 (loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
7334 -gdwarf-[23] -gstrict-dwarf.
7335 (address_of_int_loc_descriptor, loc_descriptor,
7336 loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
7337 DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
7338 * common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
7339
f61e18ec
RG
73402009-09-22 Richard Guenther <rguenther@suse.de>
7341
7342 PR tree-optimization/41428
7343 * tree-ssa-ccp.c (ccp_fold_stmt): New function.
7344 (ccp_finalize): Pass it to substitute_and_fold.
7345
ff7ffb8f
RG
73462009-09-22 Richard Guenther <rguenther@suse.de>
7347
7348 * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
7349 (substitute_and_fold): Adjust prototype.
7350 * tree-vrp.c (vrp_evaluate_conditional): Make static.
7351 (simplify_stmt_using_ranges): Likewise.
7352 (fold_predicate_in): Move here from tree-ssa-propagate.c.
7353 (vrp_fold_stmt): New function.
7354 (vrp_finalize): Pass it to substitute_and_fold.
7355 * tree-flow.h (vrp_evaluate_conditional): Remove.
7356 (simplify_stmt_using_ranges): Likewise.
7357 * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
7358 * tree-ssa-copy.c (fini_copy_prop): Likewise.
7359 * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
7360 member.
7361 (fold_predicate_in): Move to tree-vrp.c.
7362 (substitute_and_fold): Use the callback instead of calling into
7363 tree-vrp.c functions directly.
7364
40742b42
JJ
73652009-09-22 Jakub Jelinek <jakub@redhat.com>
7366
8b659ecb
JJ
7367 * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
7368 comparison warning on rs6000.
7369
40742b42
JJ
7370 PR middle-end/41429
7371 * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
7372 GIMPLE_EH_MUST_NOT_THROW cleanup.
7373 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
7374
c9c80434
JH
73752009-09-22 Jack Howarth <howarth@bromo.med.uc.edu>
7376
7377 PR middle-end/41260
7378 * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
7379 * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
7380 LIB_SPEC for darwin10 and later since it always uses the unwinder in
7381 libSystem which is derived from the gcc 4.2.1 unwinder.
7382
e0fd7469
DK
73832009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
7384
7385 PR middle-end/41357
7386 * varasm.c (default_encode_section_info): Copy TLS model into
7387 sym_ref flags regardless of backend support for TLS, for all
7388 model types except TLS_MODEL_EMULATED.
7389
cf09842e
DK
73902009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
7391
7392 PR bootstrap/41404
7393 * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
7394 we can handle it correctly.
7395
c1493544
GP
73962009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
7397
7398 * doc/install.texi (os2): Remove section.
7399
2f55829e
GP
74002009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
7401
7402 * doc/standards.texi (Objective-C): Adjust two URLs.
7403
d9334061
GS
74042009-09-21 Giuseppe Scrivano <gscrivano@gnu.org>
7405
be123439
UB
7406 * tree-tailcall.c (process_assignment): Don't check if a
7407 multiplication or an addition are already present.
d9334061
GS
7408 (find_tail_calls): Combine multiple additions and multiplications.
7409 (adjust_accumulator_values): Emit accumulators.
7410
4b51caf2
KT
74112009-09-21 Kai Tietz <kai.tietz@onevision.com>
7412
7413 * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
7414 xmm register restore.
7415
5b5fba56
JH
74162009-09-21 Jan Hubicka <jh@suse.cz>
7417
7418 * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
7419 (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
7420 restore at the end.
7421
473ebbc5
EB
74222009-09-21 Eric Botcazou <ebotcazou@adacore.com>
7423
7424 * stor-layout.c (layout_type): Remove obsolete code.
7425
1dbb24a3
L
74262009-09-20 H.J. Lu <hongjiu.lu@intel.com>
7427
7428 PR middle-end/41395
7429 * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.
7430
ca75b926
KG
74312009-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7432
7433 PR middle-end/30789
7434 * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter.
7435 (do_mpc_ckconv): Accept FORCE_CONVERT parameter.
7436 (fold_builtin_2, do_mpc_arg1): Update accordingly.
7437 * fold-const.c (const_binop): Likewise.
7438 * real.h (do_mpc_arg2): Update prototype.
7439
c4a80a2d
JH
74402009-09-20 Jan Hubicka <jh@suse.cz>
7441
7442 * dwarf2out.c (add_const_value_attribute): Return true if successful.
be123439
UB
7443 (add_location_or_const_value_attribute): Rewrite using
7444 loc_list_from_tree.
c4a80a2d
JH
7445 (tree_add_const_value_attribute): Return true if successful.
7446 (tree_add_const_value_attribute_for_decl): Likewise.
7447
7448 * dwarf2out.c (address_of_int_loc_descriptor): Break out from ...
7449 (loc_descriptor): ... here;
7450 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
7451 (cst_pool_loc_descr): Break out from ...; do not reffer constant
7452 pool items that was not marked for output.
7453 (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR;
7454 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
7455 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
7456 handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR,
7457 IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of
7458 CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use
7459 DW_OP_stack_value to get address of items that are not available
7460 as addresses.
7461 (dw_loc_list): Handle single element lists correctly.
7462
0b1d7060
KT
74632009-09-20 Kai Tietz <kai.tietz@onevision.com>
7464 Pascal Obry <obry@adacore.com>
7465
7466 * unwind-dw2-fde.c (classify_object_over_fdes):
7467 Cast the constant 1 to _Unwind_Ptr.
7468 (add_fdes): Likewise.
7469 (linear_search_fdes): Likewise.
7470
d0566a63
EB
74712009-09-20 Eric Botcazou <ebotcazou@adacore.com>
7472
7473 * stor-layout.c (set_sizetype): Avoid useless type copy.
7474
49576e25
RS
74752009-09-20 Richard Sandiford <rdsandiford@googlemail.com>
7476
7477 * configure.ac (gcc_cv_ld_mips_personality_relaxation): New
7478 feature check.
7479 (HAVE_LD_PERSONALITY_RELAXATION): New macro definition.
7480 * configure, config.in: Regenerate.
7481 * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect |
7482 DW_EH_PE_absptr.
7483 * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro.
7484 (ASM_PREFERRED_EH_DATA_FORMAT): Define. Use MIPS_EH_INDIRECT
7485 for global data if the output could be used in a shared library.
7486 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
7487 to 0 if TARGET_WRITABLE_EH_FRAME.
7488
63c6c7e0
KT
74892009-09-20 Paolo Bonzini <bonzini@gnu.org>
7490
f8e25a2a 7491 PR rtl-optimization/39886
63c6c7e0
KT
7492 * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
7493 just when insn is equal to BB_END (bb).
7494
b53da244
AN
74952009-09-19 Adam Nemet <anemet@caviumnetworks.com>
7496
7497 * config/mips/mips.opt (mrelax-pic-calls): New option.
7498 * config/mips/mips.c (mips_strip_unspec_address): Move it up in
7499 the file.
7500 (mips_unspec_call): Change "unspec_call" expander into this.
7501 (mips_strip_unspec_call): New function.
7502 (mips_got_load): Call mips_unspec_call instead of
7503 gen_unspec_call<mode>.
7504 (mips16_build_call_stub): Fix comment for fp_code. Adjust call to
7505 MIPS_CALL.
7506 (mips_cfg_in_reorg): New function.
7507 (mips16_lay_out_constants): Use it to decide whether to call
7508 CFG-aware insn splitting.
7509 (r10k_insert_cache_barriers): Move CFG set-up code from here to
7510 mips_reorg. Move DF set-up code from here ...
7511 (mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
7512 from here.
7513 (mips_reorg): Call mips_df_reorg instead of
7514 r10k_insert_cache_barriers. Move CFG set-up code here from
7515 r10k_insert_cache_barriers.
7516 (mips_call_expr_from_insn): New function.
7517 (mips_pic_call_symbol_from_set): Likewise.
7518 (mips_find_pic_call_symbol): Likewise.
7519 (mips_annotate_pic_call_expr): Likewise.
7520 (mips_get_pic_call_symbol): Likewise.
7521 (mips_annotate_pic_calls): Likewise.
7522 (mips_override_options): Disable -mrelax-pic-calls unless PIC
7523 calls are used.
7524 (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
7525 * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
7526 * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
7527 directive.
7528 * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
7529 (unspec_call<mode>): Remove it.
7530 (sibcall_internal, sibcall_value_internal,
7531 sibcall_value_multiple_internal, call_internal, call_split,
7532 call_value_internal, call_value_split,
7533 call_value_multiple_internal, call_value_multiple_split): Pass
7534 SIZE_OPNO to MIPS_CALL.
7535 (call_internal_direct, call_direct_split,
7536 call_value_internal_direct, call_value_direct_split): Pass -1 as
7537 SIZE_OPNO to MIPS_CALL.
7538 * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
7539 * configure: Regenerate.
7540 * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
7541 and -mno-relax-pic-calls.
be123439 7542 (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.
b53da244 7543
1d93c860
RW
75442009-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7545
7546 PR bootstrap/35619
7547 * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created
7548 in the directory this rule is called from, rather than the
7549 toplevel 'gcc' directory, to fix in-tree build.
7550
74dc6a11
CD
75512009-09-19 Chris Demetriou <cgd@google.com>
7552
7553 PR preprocessor/28435:
7554 * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate
7555 to cpplib that the preprocessor output is needed.
7556
bc8b6c98
JJ
75572009-09-19 Jakub Jelinek <jakub@redhat.com>
7558
e0f3e75b
JJ
7559 * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>,
7560 *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>,
7561 *return_and_restore_fpregs_<mode>,
7562 *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier.
7563
bc8b6c98
JJ
7564 PR bootstrap/41397
7565 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse
7566 instead of assuming it has always a REG inside of it.
7567
ca94da48
GP
75682009-09-18 Gerald Pfeifer <gerald@pfeifer.com>
7569
7570 * config/freebsd.h: Update comment on types.
7571 (WINT_TYPE): Define.
7572
5f5babf1
JM
75732009-09-18 Jason Merrill <jason@redhat.com>
7574
7575 * c.opt: Add -fno-deduce-init-list.
7576
eb99f777
NV
75772009-09-18 Neil Vachharajani <nvachhar@google.com>
7578
7579 * value-prof.c (interesting_stringop_to_profile_p): Added output
7580 argument to indicate which parameter is the size parameter.
7581 * value-prof.c (gimple_stringop_fixed_value): Use
7582 INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
7583 * value-prof.c (gimple_stringops_transform): Update call sites to
7584 INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.
eb99f777 7585
2a79f8e4
UB
75862009-09-18 Uros Bizjak <ubizjak@gmail.com>
7587
7588 PR target/38288
7589 From David Binderman <dcb314@hotmail.com>:
7590 * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
7591 local variable f. Remove stale comments.
7592 (ix86_compute_frame_layout): Remove useless local variable total_size.
7593 Remove #if 0'd code.
7594 (legitimate_address_p): Remove useless local variables
7595 reason_rtx and reason.
7596 (ix86_split_copysign_const): Remove useless local variable op1.
7597 (scale_counter): Remove useless local variable piece_size_mask.
7598
2b5bcdee
JJ
75992009-09-18 Jakub Jelinek <jakub@redhat.com>
7600
7601 * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
7602 output decl.
7603
43eb8947
MH
76042009-09-17 Michael Haubenwallner <michael.haubenwallner@salomon.at>
7605
7606 PR target/40913
7607 * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
7608
591a8495
JJ
76092009-09-17 Jakub Jelinek <jakub@redhat.com>
7610
7611 * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
7612 TYPE_STUB_DECL.
7613
417b3023
AO
76142009-09-17 Alexandre Oliva <aoliva@redhat.com>
7615
7616 * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
7617 DW_OP_implicit_value even without dwarf_version 4.
7618
e7f373fa
JH
76192009-09-17 Jan Hubicka <jh@suse.cz>
7620
7621 * dwarf2out.c: Include tree-pass.h and gimple.h.
7622 (loc_list_plus_const): New function.
7623 (loc_descriptor_from_tree_1): Rename to ...
7624 (loc_descriptor_from_tree): ... remove original.
7625 (loc_list_from_tree): New function.
7626 (add_AT_location_description): Accept location list.
7627 (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
7628 (concatn_mem_loc_descriptor): Remove.
7629 (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
7630 returning NULL.
7631 (secname_for_decl): Move up.
7632 (hidden_reference_p): New function; break out from ...
7633 (loc_by_refernece): ... here; move up.
7634 (dw_loc_list): New function.
7635 (single_element_loc_list): New function.
7636 (single_element_loc_list_p): New function.
7637 (add_loc_descr_to_each): New function.
7638 (add_loc_list): New function.
7639 (loc_descr_from_tree): Make wraper of loc_list_from_tree.
7640 (loc_list_from_tree): Reroganized from loc_descr_from_tree;
7641 add diagnostics why expansion failed.
7642 (add_location_or_const_value_attribute): Support location lists.
7643 (add_bound_info): Likewise.
7644 (descr_info_loc): Update call of loc_descriptor_from_tree.
7645 (gen_variable_die): Work on location lists.
7646 * final.c (pass_final): Add dump file.
7647 * Makefile.in (dwarf2out.o): Add new dependencies.
7648
d2da4af2
JJ
76492009-09-17 Janis Johnson <janis187@us.ibm.com>
7650
7651 PR c/41049
7652 * real.c decimal_from_integer, decimal_integer_string): New.
7653 (real_from_integer): Use them as special case for decimal float.
7654 * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
7655 (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
7656 Do not append zero after the decimal point in string to convert.
7657
98f3eb1f
AM
76582009-09-17 Alexander Monakov <amonakov@ispras.ru>
7659
7660 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
7661 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds.
7662
07ffa034
MJ
76632009-09-17 Martin Jambor <mjambor@suse.cz>
7664
7665 * common.opt (fipa-sra): New switch.
7666 * opts.c (decode_options): Turn flag_ipa_sra on for opt2.
7667 * timevar.def (TV_IPA_SRA): New timevar.
7668 * params.def (ipa-sra-ptr-growth-factor): New parameter.
7669 * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
7670 * tree-sra.c: Include cgraph.c.
7671 (enum sra_mode): Added SRA_MODE_EARLY_IPA.
7672 (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
7673 and grp_not_necessarilly_dereferenced.
7674 (func_param_count): New variable.
7675 (encountered_apply_args): New variable.
7676 (bb_dereferences): New variable.
7677 (final_bbs): New variable.
7678 (no_accesses_representant): New variable.
7679 (no_accesses_p): New function.
7680 (dump_access): Dump the new fields.
7681 (sra_initialize): Set encountered_apply_args to false.
7682 (get_ssa_base_param): New function.
7683 (mark_parm_dereference): New function.
7684 (create_access): Caring for INIDRECT_REFs and different handling of
7685 varialble length accesses in early IPA SRA. Store the stmt - a new
7686 parameter - to the new access.
7687 (build_access_from_expr_1): New parameter stmt, passed to
7688 create_access. Handle INDIRECT_REFs.
7689 (build_access_from_expr): Pass the current statement to
7690 build_access_from_expr_1.
7691 (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
7692 passes.
7693 (build_accesses_from_assign): Pass the current statement to
7694 build_access_from_expr_1. Do not create assign links in IPA-SRA.
7695 (scan_function): Call handle_ssa_defs on phi nodes. Set bits in
7696 final_bbs when necessary. Check for calls to __builtin_apply_args.
7697 Fixup EH info if anythng was changed.
7698 (is_unused_scalar_param): New function.
7699 (ptr_parm_has_direct_uses): New function.
7700 (find_param_candidates): New function.
7701 (mark_maybe_modified): New function.
7702 (analyze_modified_params): New function.
7703 (propagate_dereference_distances): New function.
7704 (dump_dereferences_table): New function.
7705 (analyze_caller_dereference_legality): New function.
7706 (unmodified_by_ref_scalar_representative): New function.
7707 (splice_param_accesses): New function.
7708 (decide_one_param_reduction): New function.
7709 (enum ipa_splicing_result): New type.
7710 (splice_all_param_accesses): New function.
7711 (get_param_index): New function.
7712 (turn_representatives_into_adjustments): New function.
7713 (analyze_all_param_acesses): New function.
7714 (get_replaced_param_substitute): New function.
7715 (get_adjustment_for_base): New function.
7716 (replace_removed_params_ssa_names): New function.
7717 (sra_ipa_reset_debug_stmts): New function.
7718 (sra_ipa_modify_expr): New function.
7719 (sra_ipa_modify_assign): New function.
7720 (convert_callers): New function.
7721 (modify_function): New function.
7722 (ipa_sra_preliminary_function_checks): New function.
7723 (ipa_early_sra): New function.
7724 (ipa_early_sra_gate): New function.
7725 (pass_early_ipa_sra): New variable.
7726 * Makefile.in (tree-sra.o): Add cgraph.h to dependencies.
2a79f8e4 7727
040c6d51
MM
77282009-09-17 Michael Matz <matz@suse.de>
7729
7730 PR middle-end/41347
7731 * tree.c (build_type_attribute_qual_variant): Export.
7732 * tree.h (build_type_attribute_qual_variant): Declare.
7733 * tree-inline.c (remap_type_1): Use it to build variants with
7734 the original qualifiers and attributes.
7735
10e154df
AK
77362009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7737
7738 * cfglayout.c (fixup_reorder_chain): Accept conditional jumps
7739 without a fallthrough edge.
7740
402f2db8
DD
77412009-09-16 DJ Delorie <dj@redhat.com>
7742
7743 * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
7744 chip and ignore the "fast_interrupt" attribute if so.
7745
27b4689f
RH
77462009-09-16 Richard Henderson <rth@redhat.com>
7747
7748 PR middle-end/41360
7749 * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02
7750 barrier fix.
7751
fe663f4e
RH
77522009-09-16 Richard Henderson <rth@redhat.com>
7753
7754 PR target/41246
7755 * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain
7756 is set only if DECL_NO_STATIC_CHAIN is unset.
7757 * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New.
7758 (FOR_EACH_NEST_INFO): New.
7759 (walk_all_functions): Use it.
7760 (finalize_nesting_tree): Likewise.
7761 (unnest_nesting_tree): Likewise.
7762 (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next.
7763 (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN.
7764 (convert_gimple_call): Early out if gimple_call_chain already set.
7765 (convert_all_function_calls): Iterate until no new functions
7766 require a static chain.
7767 (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset
7768 when building a trampoline. Use dump_function_to_file instead
7769 of dump_function.
7770 (lower_nested_functions): Open dump_file. Validate that decls
7771 that have DECL_NO_STATIC_CHAIN from the front end don't have that
7772 bit reset by this pass.
7773
9b87db3c
MM
77742009-09-16 Michael Matz <matz@suse.de>
7775
7776 PR fortran/41212
7777 * tree.h (struct tree_decl_common): Add decl_restricted_flag,
7778 shorten decl_common_unused.
7779 (DECL_RESTRICTED_P): New accessor.
7780 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it
7781 to disambiguate marked decls and restrict pointers.
7782
79876307
RH
77832009-09-16 Richard Henderson <rth@redhat.com>
7784
7785 PR middle-end/41360
7786 * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix.
7787
e038c37b
JJ
77882009-09-16 Jakub Jelinek <jakub@redhat.com>
7789
7790 * integrate.c (set_block_abstract_flags): Call
7791 set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
7792
4075e7e8
RG
77932009-09-16 Richard Guenther <rguenther@suse.de>
7794
7795 PR middle-end/34011
7796 * tree-flow-inline.h (may_be_aliased): Compute readonly variables
7797 as non-aliased.
7798
21d05694
DD
77992009-09-16 DJ Delorie <dj@redhat.com>
7800 Kaz Kojima <kkojima@gcc.gnu.org>
7801
7802 * config/sh/sh.c (output_stack_adjust): Add new argument frame_p.
7803 (sh_expand_prologue): Update calls to output_stack_adjust.
2a79f8e4 7804 (sh_expand_epilogue): Likewise.
21d05694 7805
e484d1f0
AN
78062009-09-15 Adam Nemet <anemet@caviumnetworks.com>
7807
7808 PR bootstrap/41349
7809 * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when
7810 trying to limit the extent of searches in the insn stream.
7811
d7a9e7c5
NF
78122009-09-15 Nathan Froyd <froydnj@codesourcery.com>
7813 Jakub Jelinek <jakub@redhat.com>
7814
7815 PR target/41175
7816 PR target/40677
7817 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
7818 problem.
7819 (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7820 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits.
7821 (rs6000_savres_strategy): Always save FP registers inline if the
7822 target doesn't support hardware double-precision. Set the above
7823 bits in return value when needed.
7824 (rs6000_savres_routine_sym): Fix computation for cache selector.
7825 Mark the generated symbol as a function. Rename exitp argument to
7826 lr. Move code for determining the name of the symbol...
7827 (rs6000_savres_routine_name): ...here. New function. Add cases for
7828 getting the names right on AIX and 64-bit Linux.
7829 (savres_routine_name): New variable.
7830 (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert
7831 lr isn't set when savep. Use r12 resp. r1 instead of r11 depending
7832 on what the target routine uses as a base register. If savep && lr
7833 describe saving of r0 into memory slot.
7834 (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of
7835 line calls for AIX ABI.
7836 (rs6000_output_function_prologue): Use rs6000_savres_routine_name to
7837 determine FP save/restore functions.
7838 (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and
7839 frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of
7840 gen_addsi3.
7841 (rs6000_emit_epilogue): Adjust computation of restore_lr.
7842 Duplicate restoration of LR and execute the appropriate one
7843 depending on whether GPRs are being restored inline. Set r11 from
7844 offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is
7845 r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3.
7846 Fix out of line calls for AIX ABI.
7847 * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>):
7848 New insn.
7849 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for
7850 register 11.
7851 (*restore_gpregs_spe): Likewise.
7852 (*return_and_restore_gpregs_spe): Likewise.
7853 * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
7854 Define to empty string unconditionally.
7855 * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
7856 Define to empty string unconditionally.
7857 (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as
7858 !TARGET_64BIT.
7859
c7d68c96
JH
78602009-09-15 Jan Hubicka <jh@suse.cz>
7861
7862 * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50.
7863 * params.def (inline-insns-auto): Likewise.
7864
aa9dc284
MJ
78652009-09-15 Martin Jambor <mjambor@suse.cz>
7866
7867 * ipa-inline.c (estimate_function_body_sizes): Dump info about
7868 individual statements only at TDF_DETAILS dump level. Format
7869 source for 80 characters per line.
7870
78712009-09-15 Christian Bruel <christian.bruel@st.com>
56550f23 7872
2a79f8e4
UB
7873 * regrename.c (do_replace): Update REG_DEAD notes.
7874
0601d0cf
RE
78752009-09-15 Revital Eres <eres@il.ibm.com>
7876
7877 * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document.
7878 * targhooks.c (default_builtin_support_vector_misalignment):
7879 New builtin function.
7880 * targhooks.h (default_builtin_support_vector_misalignment):
7881 Declare.
7882 * target.h (builtin_support_vector_misalignment):
7883 New field in struct gcc_target.
7884 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call
7885 new builtin function.
7886 * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT):
7887 Define.
7888 * config/rs6000/rs6000.c
7889 (rs6000_builtin_support_vector_misalignment): New function.
7890 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define.
7891
e5e44796
JZ
78922009-09-15 Jie Zhang <jie.zhang@analog.com>
7893
7894 * config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P
7895 instead of INSN_P.
7896 (bfin_optimize_loop): Likewise.
7897 (bfin_gen_bundles): Likewise.
7898 (workaround_speculation): Likewise.
7899 (find_load): Return NULL_RTX for debug_insn.
7900
6dac2e8e
UB
79012009-09-15 Uros Bizjak <ubizjak@gmail.com>
7902
7903 * config/alpha/alpha.md (smaxsf3): Disable for IEEE mode.
7904 (sminsf3): Ditto.
7905
d839f1eb
DD
79062009-09-14 DJ Delorie <dj@redhat.com>
7907
7908 * config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
6dac2e8e
UB
7909 * config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in
7910 VLIW mode.
d839f1eb 7911
1c384bf1 79122009-09-14 Richard Henderson <rth@redhat.com>
6dac2e8e 7913 Jakub Jelinek <jakub@redhat.com>
1c384bf1
RH
7914
7915 * builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec.
7916 * cfgbuild.c (make_edges): Handle asm goto.
7917 * cfglayout.c (fixup_reorder_chain): Likewise.
7918 * cfgrtl.c (patch_jump_insn): Likewise.
7919 * gimple-pretty-print.c (dump_gimple_asm): Likewise.
7920 * gimple.c (gimple_build_asm_1): Add and use nlabels parameter.
7921 (gimple_build_asm_vec): Add and use labels parameter.
7922 (gimple_build_asm): Remove.
7923 (walk_gimple_asm): Walk labels too.
7924 * gimple.def (GIMPLE_ASM): Update docs.
7925 * gimple.h: Update decls.
7926 (struct gimple_statement_asm): Change nc to use unsigned char;
7927 add nl member.
7928 (gimple_asm_nlabels): New.
7929 (gimple_asm_label_op, gimple_asm_set_label_op): New.
7930 * gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR
7931 into gimple_build_asm_vec.
7932 * jump.c (mark_jump_label_asm): New.
7933 (mark_jump_label): Use it.
7934 (redirect_jump_1): Handle asm goto.
7935 (invert_jump_1): Soft fail if X is null.
7936 * recog.c (extract_asm_operands): New.
7937 (asm_noperands): Use it; handle asm labels.
7938 (decode_asm_operands): Use extract_asm_operands.
7939 (asm_operand_ok): Properly handle empty string.
7940 * reg-stack.c (get_asm_operands_in_out): Rename from
7941 get_asm_operand_n_inputs; use extract_asm_operands; return both
7942 inputs and outputs by reference; update all callers.
7943 * rtl.def (ASM_OPERANDS): Add label vector as operand 6.
7944 * rtl.h (ASM_OPERANDS_LABEL_VEC): New.
7945 (ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New.
7946 (ASM_OPERANDS_SOURCE_LOCATION): Renumber.
7947 (extract_asm_operands): Declare.
7948 * stmt.c (expand_asm_operands): Add and use labels parameter.
7949 (check_unique_operand_names): Likewise.
7950 (resolve_asm_operand_names, resolve_operand_name_1): Likewise.
7951 (expand_asm_stmt): Handle asm labels.
7952 * tree-cfg.c (make_gimple_asm_edges): New.
7953 (make_edges): Use it.
7954 (cleanup_dead_labels): Handle asm labels.
7955 (is_ctrl_altering_stmt): Likewise.
7956 (gimple_redirect_edge_and_branch): Likewise.
7957 * tree.def (ASM_EXPR): Add 5th operand.
7958 * tree.h (ASM_LABELS): New.
7959 (resolve_asm_operand_names): Update decl.
7960
7961 * c-parser.c (c_parser_asm_statement): Parse asm goto.
7962 (c_parser_asm_goto_operands): New.
7963 * c-tree.h (build_asm_expr): Update decl.
7964 * c-typeck.c (build_asm_expr): Add and use labels parameter.
7965 * doc/extend.texi: Document asm goto.
7966
1d65f45c
RH
79672009-09-14 Richard Henderson <rth@redhat.com>
7968
7969 * except.h: Update declarations.
7970 (struct pointer_map_t): Forward declare.
7971 (ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove.
7972 (struct eh_landing_pad_d, eh_landing_pad): New.
7973 (struct eh_catch_d, eh_catch): New.
7974 (struct eh_region_d): Remove next_region_sharing_label, aka,
7975 label, tree_label, landing_pad, post_landing_pad, resume,
7976 may_contain_throw. Rename region_number to index. Remove
7977 u.eh_catch, u.eh_throw. Rename u.eh_try.eh_catch to first_catch.
7978 Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg.
7979 (VEC(eh_landing_pad,gc)): New.
7980 (struct eh_status): Remove last_region_number. Add lp_array,
7981 throw_stmt_table, ttype_data, ehspec_data.
7982 (ehr_next, FOR_ALL_EH_REGION_AT): New.
7983 (FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New.
7984 * except.c (lang_protect_cleanup_actions): Return tree.
7985 (struct ehl_map_entry): Remove.
7986 (init_eh_for_function): Push zero entries for region and lp_array.
7987 (gen_eh_region): Add to region_array immediately.
7988 (gen_eh_region_catch): Operate on eh_catch objects.
7989 (gen_eh_landing_pad): New.
7990 (get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove.
7991 (get_eh_region_no_tree_label, set_eh_region_tree_label): Remove.
7992 (get_eh_region_from_number, get_eh_region_from_number_fn): New.
7993 (get_eh_landing_pad_from_number_fn): New.
7994 (get_eh_landing_pad_from_number): New.
7995 (get_eh_region_from_lp_number_fn): New.
7996 (get_eh_region_from_lp_number): New.
7997 (expand_resx_stmt, note_eh_region_may_contain_throw): Remove.
7998 (get_exception_pointer, get_exception_filter): Remove.
7999 (collect_eh_region_array, can_be_reached_by_runtime): Remove.
8000 (current_function_has_exception_handlers): Simplify.
8001 (bring_to_root, eh_region_replaceable_by_p): Remove.
8002 (replace_region, hash_type_list, hash_eh_region): Remove.
8003 (eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove.
8004 (label_to_region_map, num_eh_regions): Remove.
8005 (get_next_region_sharing_label, must_not_throw_labels): Remove.
8006 (find_exception_handler_labels): Remove.
8007 (duplicate_eh_regions_0, find_prev_try): Remove.
8008 (struct duplicate_eh_regions_data): New.
8009 (duplicate_eh_regions_1): Rewrite.
8010 (duplicate_eh_regions): Return a pointer map instead of an
8011 integer offset.
8012 (copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove.
8013 (redirect_eh_edge_to_label): Remove.
8014 (eh_region_outermost): Rewrite using eh_region pointers
8015 instead of integers.
8016 (add_ttypes_entry): Update for ttype_data move to eh_status.
8017 (add_ehspec_entry): Rewrite with VEC instead of varray.
8018 (assign_filter_values): Likewise. Export.
8019 (build_post_landing_pads, connect_post_landing_pads): Remove.
8020 (dw2_build_landing_pads): Rewrite to use lp_array.
8021 (struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove.
8022 (sjlj_assign_call_site_values): Rewrite to use lp_array.
8023 (sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise.
8024 (sjlj_mark_call_sites): Update for landing pad numbers.
8025 (finish_eh_generation): Rewrite.
8026 (gate_handle_eh): Do nothing for no eh tree.
8027 (pass_rtl_eh): Move up near finish_eh_generation.
8028 (remove_eh_landing_pad): New.
8029 (remove_eh_handler): Export.
8030 (remove_eh_region, remove_eh_handler_and_replace): Remove.
8031 (for_each_eh_label): Rewrite to use lp_array.
8032 (make_reg_eh_region_note): New.
8033 (make_reg_eh_region_note_nothrow_nononlocal): New.
8034 (insn_could_throw_p): New.
8035 (copy_reg_eh_region_note_forward): New.
8036 (copy_reg_eh_region_note_backward): New.
8037 (check_handled, add_reachable_handler): Remove.
8038 (reachable_next_level, foreach_reachable_handler): Remove.
8039 (arh_to_landing_pad, arh_to_label, reachable_handlers): Remove.
8040 (get_eh_region_and_lp_from_rtx): New.
8041 (get_eh_region_from_rtx): New.
8042 (can_throw_internal_1, can_throw_external_1): Remove.
8043 (can_throw_internal): Use get_eh_region_from_rtx.
8044 (can_throw_external): Use get_eh_region_and_lp_from_rtx.
8045 (insn_nothrow_p, can_nonlocal_goto): New.
8046 (expand_builtin_eh_common, expand_builtin_eh_pointer): New.
8047 (expand_builtin_eh_filter, expand_builtin_eh_copy_values): New.
8048 (add_action_record): Use VEC not varray.
8049 (collect_one_action_chain): Update for eh_region changes.
8050 (convert_to_eh_region_ranges): Make static. Use VEC not varray.
8051 Use get_eh_region_and_lp_from_rtx.
8052 (gate_convert_to_eh_region_ranges): New.
8053 (pass_convert_to_eh_region_ranges): Use it.
8054 (push_uleb128, push_sleb128): Use VEC not varray.
8055 (output_one_function_exception_table): Likewise.
8056 (dump_eh_tree): Update for eh_region changes.
8057 (verify_eh_tree): Likewise.
8058 (verify_eh_region, default_init_unwind_resume_libfunc): Remove.
8059 * tree-eh.c: Include target.h.
8060 (add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn.
8061 Don't disallow GIMPLE_RESX; adjust argument check.
8062 (add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region.
8063 (record_stmt_eh_region): Update for landing pad numbers;
8064 generate a landing pad if necessary.
8065 (remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region.
8066 (remove_stmt_from_eh_lp_fn): Similarly.
8067 (lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn.
8068 Update for lp numbers; don't special case missing throw_stmt_table.
8069 (lookup_expr_eh_lp): Similarly.
8070 (lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region.
8071 (eh_seq, eh_region_may_contain_throw): New.
8072 (struct leh_state): Add ehp_region.
8073 (struct leh_tf_state): Remove eh_label.
8074 (emit_post_landing_pad): New.
8075 (emit_resx, emit_eh_dispatch): New.
8076 (note_eh_region_may_contain_throw): New.
8077 (frob_into_branch_around): Take eh_region not eh label;
8078 emit eh code into eh_seq.
8079 (honor_protect_cleanup_actions): Early exit for no actions. Don't
8080 handle EXC_PTR_EXPR, FILTER_EXPR. Use gimple_build_eh_must_not_throw,
8081 lower_eh_must_not_throw. Emit code to eh_seq.
8082 (lower_try_finally_nofallthru): Emit eh code to eh_seq.
8083 (lower_try_finally_onedest): Likewise.
8084 (lower_try_finally_copy): Likewise.
8085 (lower_try_finally_switch): Likewise.
8086 (lower_try_finally): Initialize ehp_region.
8087 (lower_catch): Update for eh_catch objects.
8088 (lower_eh_filter): Don't handle must_not_throw.
8089 (lower_eh_must_not_throw): New.
8090 (lower_cleanup): Don't set eh_label.
8091 (lower_eh_constructs_2): Resolve eh builtins.
8092 Handle GIMPLE_EH_MUST_NOT_THROW.
8093 (lower_eh_constructs): Initialize eh_region_may_contain_throw.
8094 Add eh_seq to the end of the function body.
8095 (make_eh_dispatch_edges): New.
8096 (make_eh_edge): Remove.
8097 (make_eh_edges): Simplify for landing pads.
8098 (redirect_eh_edge_1): New.
8099 (redirect_eh_edge): Use it.
8100 (redirect_eh_dispatch_edge): New.
8101 (stmt_could_throw_p): Use a switch. Allow RESX.
8102 (stmt_can_throw_external): Use lookup_stmt_eh_lp.
8103 (stmt_can_throw_internal): Likewise.
8104 (maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New.
8105 (maybe_clean_or_replace_eh_stmt): Update for landing pads.
8106 (maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New.
8107 (gate_refactor_eh): New.
8108 (pass_refactor_eh): Use it.
8109 (lower_resx, execute_lower_resx, pass_lower_resx): New.
8110 (lower_eh_dispatch, execute_lower_eh_dispatch): New.
8111 (gate_lower_ehcontrol, pass_lower_eh_dispatch): New.
8112 (remove_unreachable_handlers): Rename from
8113 tree_remove_unreachable_handlers; rewrite for landing pads;
8114 call remove_eh_handler directly.
8115 (remove_unreachable_handlers_no_lp): New.
8116 (unsplit_eh, unsplit_all_eh): New.
8117 (tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove.
8118 (cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New.
8119 (cleanup_empty_eh_unsplit): New.
8120 (cleanup_empty_eh): Rewrite.
8121 (cleanup_all_empty_eh): New.
8122 (execute_cleanup_eh): Rename from cleanup_eh. Remove unreachable
8123 handlers first. Use unsplit_all_eh, cleanup_all_empty_eh.
8124 (gate_cleanup_eh): New.
8125 (pass_cleanup_eh): Use it.
8126 (verify_eh_edges): Move later in file. Expect one EH edge.
8127 (verify_eh_dispatch_edge): New.
8128
8129 * Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h.
8130 (gtype-desc.o): Add TARGET_H.
8131 (tree.o): Use EXCEPT_H, not except.h.
8132 (cfgbuild.o): Add EXPR_H.
8133 (GTFILES): Add vecprim.h.
8134 * builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER,
8135 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES.
8136 * builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER,
8137 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New.
8138 * calls.c (emit_call_1): Use make_reg_eh_region_note.
8139 * cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy
8140 calls to can_throw_internal.
8141 (rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx.
8142 (make_edges): Don't handle RESX; use can_nonlocal_goto.
8143 * cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX.
8144 (expand_gimple_stmt): Use make_reg_eh_region_note.
8145 (expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR.
8146 (gimple_expand_cfg): Don't call convert_from_eh_region_ranges,
8147 or find_exception_handler_labels.
8148 * cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX. Assert
8149 there is exacly one EH edge. Use can_nonlocal_goto and
8150 can_throw_internal.
8151 * cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn.
8152 (cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt.
8153 * combine.c (can_combine_p, try_combine): Use insn_nothrow_p.
8154 * cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p.
8155 * dce.c (deletable_insn_p_1): Don't test may_trap_p.
8156 (deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test.
8157 * dse.c (scan_insn): Use insn_could_throw_p.
8158 * emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward.
8159 * expr.c (expand_expr_real): Use make_reg_eh_region_note.
8160 (expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR.
8161 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle
8162 EXC_PTR_EXPR or FILTER_EXPR.
8163 (tree_expr_nonzero_warnv_p): Likewise.
8164 * function.h: Include vecprim.h, not varray.h
8165 (struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members;
8166 move ttype_data and ehspec_data members to struct eh_status; change
8167 action_record_data member to a VEC.
8168 * gcse.c (hash_scan_set): Use can_throw_internal.
8169 * gengtype.c (open_base_files): Add target.h to gtype-desc.c.
8170 * gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt.
8171 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
8172 (block_may_fallthru): Don't handle RESX_EXPR.
8173 * gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR.
8174 (dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New.
8175 (dump_gimple_stmt): Dump landing pad information with TDF_EH;
8176 handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH.
8177 * gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW,
8178 GIMPLE_EH_DISPATCH, GIMPLE_RESX.
8179 (gimple_size): Likewise.
8180 (gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New.
8181 (gimple_build_resx): Use gimple_build_with_ops.
8182 (DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR.
8183 (is_gimple_val): Likewise.
8184 (is_gimple_stmt): Remove RESX_EXPR.
8185 * gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New.
8186 (GIMPLE_RESX): Reorder with other EH constructs.
8187 * gimple.h (struct gimple_statement_eh_mnt): New.
8188 (struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx.
8189 (gimple_eh_filter_must_not_throw): Remove.
8190 (gimple_eh_filter_set_must_not_throw): Remove.
8191 (gimple_eh_must_not_throw_fndecl): New.
8192 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New.
8193 (is_gimple_resx): New.
8194 * gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR.
8195 Don't copy EH_FILTER_MUST_NOT_THROW.
8196 * gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New.
8197 * ipa-inline.c (estimate_function_body_sizes): Don't try to
8198 handle must_not_throw_labels specially.
8199 * ipa-pure-const.c (check_call): Update debug statement for LP.
8200 * ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER.
8201 * ipa-utils.c (get_base_var): Likewise.
8202 * libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove.
8203 * lower-subreg.c (move_eh_region_note): Remove.
8204 (resolve_simple_move): Use copy_reg_eh_region_note_forward.
8205 * omp-low.c (new_omp_context): Update for eh_lp_nr.
8206 (create_task_copyfn): Likewise.
8207 (maybe_catch_exception): Use gimple_build_eh_filter.
8208 * optabs.c (emit_libcall_block): Update test for no-nonlocal-goto
8209 REG_EH_REGION. Use make_reg_eh_region_note_nothrow_nononlocal.
8210 * passes.c (init_optimization_passes): Add pass_lower_eh_dispatch
8211 and pass_lower_resx.
8212 * print-tree.c (print_node): Dump EH_LANDING_PAD_NR.
8213 * recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward,
8214 can_throw_internal, can_nonlocal_goto.
8215 * reload1.c (fixup_eh_region_note): Use insn_could_throw_p,
8216 copy_reg_eh_region_note_forward.
8217 (emit_input_reload_insns): Use copy_reg_eh_region_note_forward.
8218 (emit_output_reload_insns): Likewise.
8219 (copy_eh_notes): Remove.
8220 * rtl.def (RESX): Remove.
8221 * rtl.h: Update declarations.
8222 * sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt.
8223 * tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH.
8224 (update_eh_label): Remove.
8225 (cleanup_dead_labels_eh): New.
8226 (cleanup_deal_labels): Use it instead of update_eh_label.
8227 (gimple_merge_blocks): Update landing pad data structure when
8228 removing a landing pad label.
8229 (remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw
8230 test; handle GIMPLE_EH_MUST_NOT_THROW.
8231 (is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH.
8232 (verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR.
8233 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH.
8234 (verify_stmt): Likewise. Verify landing pads.
8235 (gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH.
8236 (gimple_duplicate_bb): Use maybe_duplicate_eh_stmt.
8237 (struct move_stmt_d): Add eh_map.
8238 (move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New.
8239 (move_stmt_r): Remap eh region numbers in builtin calls,
8240 resx and eh_dispatch.
8241 (move_block_to_fn): Remove eh_offset parameter. Use
8242 maybe_duplicate_eh_stmt_fn.
8243 (find_outermost_region_in_block): Operate on eh_region pointers
8244 instead of region numbers.
8245 (move_sese_region_to_fn): Expect eh_map instead of eh_offset from
8246 duplicate_eh_regions.
8247 * tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge
8248 test earlier. Disallow EH landing pads.
8249 * tree-cfa.c (create_tree_common_ann): Don't set ann->rn.
8250 * tree-flow.h: Update declarations.
8251 (struct tree_ann_common_d): Replace rn with lp_nr.
8252 * tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR.
8253 (remap_eh_region_nr, remap_eh_region_tree_nr): New.
8254 (remap_gimple_stmt): Remap eh region numbers in builtin calls,
8255 resx and eh_dispatch.
8256 (copy_bb): Use maybe_duplicate_eh_stmt_fn.
8257 (copy_edges_for_bb): Use make_eh_dispatch_edges.
8258 (copy_cfg_body): Expect eh_map instead of eh_region_offset
8259 from duplicate_eh_regions.
8260 (estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR;
8261 update RESX; handle EH_DISPATCH.
8262 (expand_call_inline): Set eh_lp_nr, not eh_region.
8263 (maybe_inline_call_in_expr): Likewise.
8264 * tree-inline.h (struct copy_body_data): Replace eh_region with
8265 eh_lp_nr, eh_region_offset with eh_map.
8266 * tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt.
8267 * tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New.
8268 * tree-pretty-print.c (dump_generic_node): Don't handle
8269 EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR.
8270 * tree-sra.c (scan_function): Use maybe_clean_eh_stmt.
8271 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle
8272 EXC_PTR_EXPR, FILTER_EXPR.
8273 * tree-ssa-operands.c (get_expr_operands): Likewise.
8274 * tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise.
8275 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8276 (ao_ref_init_from_vn_reference): Likewise.
8277 * tree-ssa-sink.c (statement_sink_location): Likewise.
8278 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8279 (mark_virtual_phi_result_for_renaming): Export. Tidy.
8280 * tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle
8281 EXC_PTR_EXPR, FILTER_EXPR.
8282 (is_exception_related): Remove.
8283 (compute_avail): Don't call it.
8284 * tree-ssa-structalias.c: Remove VEC definitions for int and unsigned.
8285 * tree.c (find_decls_types_in_eh_region): Update for eh_region changes.
8286 (find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN.
8287 (build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter.
8288 Build EH builtins.
8289 (build_resx): Remove.
8290 * tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove.
8291 * tree.h: Update declarations.
8292 (EH_FILTER_MUST_NOT_THROW): Remove.
8293 (struct tree_label_decl): Add eh_landing_pad_nr.
8294 (EH_LANDING_PAD_NR): New.
8295 * value-prof.c (gimple_ic): Tidy variable names. Update for
8296 landing pad numbers.
8297 (gimple_stringop_fixed_value): Tidy variable names. Assert
8298 that neither call stmt can throw.
8299 * vecprim.h (uchar): New.
8300 (VEC(uchar,heap), VEC(uchar,gc)): New.
8301
8302 * c-common.c (c_define_builtins): Update call to
8303 build_common_builtin_nodes.
8304 * c-parser.c (c_parse_file): Don't call
8305 default_init_unwind_resume_libfunc.
8306
0c433c31
RS
83072009-09-14 Richard Sandiford <rdsandiford@googlemail.com>
8308
8309 * config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare.
8310 (mips_cprestore_address_p): Likewise.
8311 (mips_save_gp_to_cprestore_slot): Likewise.
8312 (mips_restore_gp): Rename to...
8313 (mips_restore_gp_from_cprestore_slot): ...this.
8314 (mips_must_initialize_gp_p): Declare.
8315 (mips_emit_save_slot_move): Likewise.
8316 (mips_output_load_label): Return nothing.
8317 (mips_eh_uses): Declare.
8318 * config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed.
8319 (TARGET_CPRESTORE_DIRECTIVE): New macro.
8320 (TARGET_ABSOLUTE_JUMPS): Likewise.
8321 (EH_USES): Likewise.
8322 (FIRST_PSEUDO_REGISTER): Update comment.
8323 (MIPS_ABSOLUTE_JUMP): New macro, extracted from...
8324 (MIPS_CALL): ...here.
8325 (REGISTER_NAMES): Add $cprestore.
8326 * config/mips/mips.c (machine_function): Remove has_gp_insn_p.
8327 Add load_label_length, has_inflexible_gp_insn_p,
8328 has_flexible_gp_insn_p, must_initialize_gp_p and
8329 must_restore_gp_when_clobbered_p.
8330 (mips_expand_call): Don't generate split instructions here.
8331 (mips_split_call): Update the call to mips_restore_gp after
8332 the above name change.
8333 (mips16_cfun_returns_in_fpr_p): Move earlier in file.
8334 (mips_find_gp_ref): New function.
8335 (mips_insn_has_inflexible_gp_ref_p): Likewise.
8336 (mips_cfun_has_inflexible_gp_ref_p): Likewise.
8337 (mips_insn_has_flexible_gp_ref_p): Likewise.
8338 (mips_cfun_has_flexible_gp_ref_p): Likewise.
8339 (mips_function_has_gp_insn): Delete.
8340 (mips_global_pointer): Drop the df_regs_ever_live_p check.
8341 Use the new functions above. Only return INVALID_REGNUM
8342 for TARGET_ABSOLUTE_JUMPS.
8343 (mips_must_initialize_gp_p): New function.
8344 (mips_get_cprestore_base_and_offset): New function, extracted from...
8345 (mips_cprestore_slot): ...here. Take a bool parameter.
8346 (mips_cfun_has_cprestore_slot_p): New function.
8347 (mips_cprestore_address_p): Likewise.
8348 (mips_save_gp_to_cprestore_slot): Likewise.
8349 (mips_restore_gp): Rename to...
8350 (mips_restore_gp_from_cprestore_slot): ...this. Assert
8351 epilogue_completed. Update the call to mips_cprestore_slot.
8352 Test cfun->machine->must_restore_gp_when_clobbered_p.
8353 (mips_direct_save_slot_move_p): New function.
8354 (mips_emit_save_slot_move): Likewise.
8355 (mips_output_cplocal): Test mips_must_initialize_gp_p () instead
8356 of cfun->machine->global_pointer.
8357 (mips_output_function_prologue): Check mips_must_initialize_gp_p ().
8358 (mips_save_reg): Use mips_emit_save_slot_move.
8359 (mips_expand_prologue): Set must_initialize_gp_p.
8360 Use mips_cfun_has_cprestore_slot_p. Use gen_potential_cprestore
8361 for all cprestore saves. Emit a use_cprestore instruction after
8362 setting up the cprestore slot.
8363 (mips_restore_reg): Use mips_emit_save_slot_move.
8364 (mips_process_load_label): New function.
8365 (mips_load_label_length): Likewise.
8366 (mips_output_load_label): Don't return asm: output it here instead.
8367 Use mips_process_load_label.
8368 (mips_adjust_insn_length): Adjust the length of branch instructions
8369 that have length MAX_PIC_BRANCH_LENGTH.
8370 (mips_output_conditional_branch): Update the call to
8371 mips_output_load_label. Assume the branch target is OPERANDS[0]
8372 rather than OPERANDS[1]. Use MIPS_ABSOLUTE_JUMP for absolute jumps.
8373 (mips_output_order_conditional_branch): Swap the meaning of
8374 OPERANDS[0] and OPERANDS[1].
8375 (mips_variable_issue): Don't count ghost instructions.
8376 (mips_expand_ghost_gp_insns): New function.
8377 (mips_reorg): Rerun mips_reorg_process_insns if it returns true.
8378 (mips_output_mi_thunk): Set must_initialize_gp_p.
8379 (mips_eh_uses): New function.
8380 * config/mips/predicates.md (cprestore_save_slot_operand)
8381 (cprestore_load_slot_operand): New predicates.
8382 * config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec.
8383 (UNSPEC_MOVE_GP): Likewise.
8384 (UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN)
8385 (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room.
8386 (CPRESTORE_SLOT_REGNUM): New register.
8387 (MAX_PIC_BRANCH_LENGTH): New constant.
8388 (jal_macro): Use MIPS_ABSOLUTE_JUMPS.
8389 (length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long
8390 branches. Fix commentary.
8391 (loadgp_newabi_<mode>): Change from unspec_volatile to unspec.
8392 Only split if mips_must_initialize_gp_p; expand to nothing otherwise.
8393 Change type to "ghost".
8394 (loadgp_absolute_<mode>): Likewise.
8395 (loadgp_rtp_<mode>): Likewise.
8396 (copygp_mips16): Likewise.
8397 (loadgp_blockage): Remove redundant mode attribute.
8398 (potential_cprestore): New instruction.
8399 (cprestore): Turn into an unspec set.
8400 (use_cprestore): New instruction.
8401 (*branch_fp): Swap operands 0 and 1. Remove redundant mode attribute.
8402 (*branch_fp_inverted): Likewise.
8403 (*branch_order<mode>): Likewise.
8404 (*branch_order<mode>_inverted): Likewise.
8405 (*branch_equality<mode>): Likewise.
8406 (*branch_equality<mode>_inverted): Likewise.
8407 (*branch_bit<bbv><mode>): Likewise.
8408 (*branch_bit<bbv><mode>_inverted): Likewise.
8409 (*branch_equality<mode>_mips16): Remove redundant mode.
8410 (jump): Turn into a define_expand.
8411 (*jump_absolute): New instruction.
8412 (*jump_pic): Likewise.
8413 (*jump_mips16): Rename previously-unnamed pattern. Remove
8414 redundant mode attribute.
8415 (restore_gp): Split on epilogue_completed rather than
8416 reload_completed. Change type to "ghost".
8417 (move_gp<mode>): New instruction.
8418 * config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1.
8419 Remove redundant mode attribute.
8420 * config/mips/mips-ps-3d.md (bc1any4t): Likewise.
8421 (bc1any4f, bc1any2t, bc1any2f): Likewise.
8422 (*branch_upper_lower, *branch_upper_lower_inverted): Likewise.
8423
5910fb59
MM
84242009-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8425
8426 PR target/41210
8427 * config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI
8428 are returned in the same register (vs34 or v2) that Altivec vector
8429 types are returned in.
8430 (rs6000_libcall_value): Ditto.
8431
8432 PR target/41331
8433 * config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn
8434 instead of explicit addsi3/adddi3 calls.
8435 (rs6000_split_multireg_move): Ditto.
8436 (rs6000_emit_allocate_stack): Ditto.
8437 (rs6000_emit_prologue): Ditto.
8438 (rs6000_output_mi_thunk): Ditto.
8439
8440 * config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer
8441 size is 64 bits if we can use 64-bit registers.
8442
49caeea1
BS
84432009-09-14 Bernd Schmidt <bernd.schmidt@analog.com>
8444
8445 * config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak
8446 symbols.
8447
8be6ada8
BS
8448 From Jie Zhang <jie.zhang@analog.com>:
8449 * config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to
8450 save FP and RETS with saveall attribute.
8451 (bfin_expand_epilogue): Ask do_unlink to restore FP and RETS
8452 with saveall attribute.
8453
6c1c1dfa
BS
8454 * config/bfin/bfin.c (bfin_expand_builtin,
8455 case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the
8456 operands.
6dac2e8e 8457
6c1c1dfa
BS
8458 From Jie Zhang <jie.zhang@analog.com>:
8459 * config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes
8460 before use in two places.
8461 * config/bfin/bfin.md (AREG): Define mode iterator.
8462 (reload_in, reload_out): Use mode iterator AREG.
8463
cdb4dde5
RG
84642009-09-14 Richard Guenther <rguenther@suse.de>
8465
8466 PR middle-end/41350
8467 * dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm
8468 EH personality path.
8469
f9417da1 84702009-09-13 Richard Guenther <rguenther@suse.de>
6dac2e8e 8471 Rafael Avila de Espindola <espindola@google.com>
f9417da1
RG
8472
8473 * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
8474 (LANG_HOOKS_EH_PERSONALITY): Likewise.
8475 (LANG_HOOKS_INITIALIZER): Adjust.
8476 (lhd_pass_through_t): Declare.
8477 * langhooks.h (struct lang_hooks): Add eh_runtime_type and
8478 eh_personality.
8479 * langhooks.c (lhd_pass_through_t): New function.
6dac2e8e 8480 * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc,
f9417da1 8481 dwarf2out_begin_prologue): Use personality from current_function_decl.
6dac2e8e 8482 * expr.h (get_personality_function): Declare.
f9417da1
RG
8483 * expr.c (get_personality_function): New function.
8484 (build_personality_function): Likewise.
6dac2e8e
UB
8485 * libfuncs.h (libfunc_index): Remove LTI_eh_personality.
8486 (eh_personality_libfunc): Remove.
8487 * optabs.c (build_libfunc_function): New function split out from ...
f9417da1 8488 (init_one_libfunc): ... here.
6dac2e8e
UB
8489 * tree.h (DECL_FUNCTION_PERSONALITY): New.
8490 (tree_function_decl): Add personality.
f9417da1
RG
8491 (lhd_gcc_personality): Declare.
8492 (build_personality_function): Likewise.
8493 * tree.c (gcc_eh_personality_decl): New.
8494 (lhd_gcc_personality): New function.
8495 * except.h (lang_eh_runtime_type): Remove.
8496 (enum eh_personality_kind): New.
8497 (build_personality_function): Declare.
8498 (function_needs_eh_personality): Declare.
6dac2e8e 8499 * except.c (lang_eh_runtime_type): Remove.
f9417da1
RG
8500 (function_needs_eh_personality): New function.
8501 (add_type_for_runtime): Call lang_hooks.type_for_runtime instead.
6dac2e8e
UB
8502 (sjlj_emit_function_enter, output_function_exception_table):
8503 Use personality from current_function_decl.
f9417da1
RG
8504 * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY.
8505 * tree-inline.c (tree_can_inline_p): Do not inline across different
8506 EH personalities.
8507 (expand_call_inline): Likewise. Adjust the callers EH personality.
8508 (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY.
8509 * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY.
8510 * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency.
8511 (c-parser.o): Likewise
8512 * c-tree.h (c_eh_initialized_p): Remove.
8513 (c_maybe_initialize_eh): Likewise.
8514 * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh.
8515 (finish_decl): Don't call c_maybe_initialize_eh.
8516 (c_eh_initialized_p): Remove.
8517 (c_maybe_initialize_eh): Likewise.
6dac2e8e 8518 * c-parser.c (c_parser_omp_construct): Likewise.
f9417da1
RG
8519 (c_parse_file): Initialize exception handling.
8520
933608b7
KT
85212009-09-13 Kai Tietz <kai.tietz@onevision.com>
8522
8523 * config.gcc (tm_file): Remove i386/biarch32.h
8524 for i?86-w64-mingw* case.
8525 (i?86-*-mingw* andx86_64-*-mingw*): Add multilib
8526 support.
22f34504
KT
8527 * config.host: Set for x64 mingw the option
8528 use_long_long_for_widest_fast_int to yes.
933608b7 8529
725730f2
EB
85302009-09-13 Eric Botcazou <ebotcazou@adacore.com>
8531
8532 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
8533 * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P.
8534 (dbxout_begin_function): Likewise.
8535 * final.c (dwarf2_debug_info_emitted_p): New predicate.
8536 (final_start_function): Do not emit debug info if DECL_IGNORED_P is
8537 set on the function.
8538 (final_end_function): Likewise.
8539 (final_scan_insn): Likewise.
8540 (rest_of_handle_final): Likewise.
8541 * varasm.c (assemble_start_function): Likewise.
8542 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8543
85442009-09-12 Jason Merrill <jason@redhat.com>
86373e7e
JM
8545
8546 * dbgcnt.c (dbg_cnt_process_single_pair): constify.
8547 * opts.c (common_handle_option): constify.
8548
8ff51917
GP
85492009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
8550
beb1adc1
GP
8551 * doc/install.texi (avr): Remove obsolete reference site.
8552
85532009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
afbd0665 8554
8ff51917
GP
8555 * doc/install.texi (Binaries): Adjust AIX link.
8556
460ba396
AD
85572009-09-12 Akim Demaille <demaille@gostai.com>
8558
8559 * doc/invoke.texi (-fstrict-aliasing): Correct two examples.
8560 Use an imperative sentence.
8561
f2c4a81c
RH
85622009-09-11 Richard Henderson <rth@redhat.com>
8563
8564 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
8565 structure-name and has-tree-operands arguments; update all entries.
8566 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
8567 update all entries.
8568 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
8569 (gsstruct_code_size): New.
8570 (gss_for_code_): New.
8571 (gss_for_code): Remove.
8572 (gimple_size): Rewrite using gsstruct_code_size.
8573 (gimple_statement_structure): Move to gimple.h.
8574 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
8575 (gss_for_code, gimple_statement_structure): New.
8576 (gimple_ops): Use new arrays; tidy.
8577
85ed9a33
JDA
85782009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8579
8580 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
8581 operand to be a PLUS expression.
8582 * config/pa/pa.c (pa_secondary_reload): Likewise.
8583
137a05d3
JJ
85842009-09-11 Jakub Jelinek <jakub@redhat.com>
8585
9258b4c1
JJ
8586 * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
8587
137a05d3
JJ
8588 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
8589 XEXP (in_rtx, 8).
8590
603bb63e
BS
85912009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
8592
8593 From Jie Zhang <jie.zhang@analog.com>:
8594 * doc/extend.texi (node Function Attributes): Document l2
8595 function attribute.
8596 (node Blackfin Variable Attributes): Document l2 variable attributes.
8597
8a47c6c4
LR
85982009-09-11 Loren J. Rittle <ljrittle@acm.org>
8599
8600 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
8601 to match the system compiler's configuration at inflection point.
8602 Add comment to remark a remaining difference with system compiler.
8603
61e1d511
LR
8604 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
8605 * configure: Regenerate.
8606
db689ed6
BS
86072009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
8608
8609 From Jie Zhang <jie.zhang@analog.com>:
8610 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
8611 (bfin_handle_l2_attribute): New.
8612 (bfin_attribute_table): Add l2 attribute.
8613
5c3ec539
MM
86142009-09-11 Michael Matz <matz@suse.de>
8615
8616 PR middle-end/41275
8617 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
8618 on the local_decls list.
8619
0b7e34d7
AO
86202009-09-11 Alexandre Oliva <aoliva@redhat.com>
8621
8622 PR debug/41276
8623 PR debug/41307
8624 * cselib.c (cselib_expand_value_rtx_cb): Document callback
8625 interface.
8626 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
8627 for VALUEs, to implement the documented interface.
8628 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
8629 Adjust for VALUEs and anything else, to implement the
8630 documented interface.
8631
b851135c
NF
86322009-09-10 Nathan Froyd <froydnj@codesourcery.com>
8633
8634 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
8635 with actual SPE/paired vector modes before using 64-bit alignment.
8636 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
8637
5ba863d7
DD
86382009-09-10 DJ Delorie <dj@redhat.com>
8639
8640 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
8641 emitted.
8642
8643 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
8644 * config/mep/mep.c (mep_legitimate_constant_p): New.
8645 * config/mep/mep-protos.h: Prototype it.
8646
68bcdeed
RH
86472009-09-10 Richard Henderson <rth@redhat.com>
8648
8649 * print-rtl.c (print_rtx): Fix JUMP_LABEL index.
8650
ad42ff1e
JM
86512009-09-10 Jason Merrill <jason@redhat.com>
8652
8653 * tree.c (chain_index): New fn.
8654 * tree.h: Declare it.
8655
0e6748ab
RO
86562009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8657
8658 * config/sol2-c.c (cmn_err_length_specs): Initialize
8659 scalar_identity_flag.
8660
671f9f30
RH
86612009-09-10 Richard Henderson <rth@redhat.com>
8662
b6777fea
RH
8663 * tree.h (struct tree_decl_common): Move align member earlier;
8664 move label_decl_uid member ...
8665 (struct tree_label_decl): ... here.
8666 (LABEL_DECL_UID): Update to match.
8667
feb4e5ba
RH
8668 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
8669 not TDF_DETAILS.
8670
1c061be5
RH
8671 * tree-cfg.c (gimple_redirect_edge_and_branch): Do
8672 gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
8673
88e24a5a
RH
8674 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
8675 dest_prev if the edge is complex.
8676
40a32862
RH
8677 * tree-cfg.c (is_ctrl_stmt): Use a switch.
8678
8e7c5fdd
RH
8679 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and
8680 loop latch tests earlier.
8681
07c358c6
RH
8682 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert
8683 before GIMPLE_RETURN, not after its predecessor; insert
8684 before GIMPLE_RESX.
8685
671f9f30
RH
8686 * gimple-iterator.c (gimple_find_edge_insert_loc): Use
8687 gimple_seq_empty_p to test for no PHI nodes.
8688 * tree-cfg.c (split_critical_edges): Likewise.
8689
15a15e8d
RH
8690 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.
8691
f90f4827
HS
86922009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
8693
8694 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
6dac2e8e 8695 introduced by the VTA branch merge.
f90f4827 8696
edb30094
UB
86972009-09-10 Uros Bizjak <ubizjak@gmail.com>
8698
8699 * ira-conflicts.c: Use fputs or putc instead of fprintf
8700 where appropriate.
8701 * cfg.c: Ditto.
8702 * toplev.c: Ditto.
8703 * tree-switch-conversion.c: Ditto.
8704
87052009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
f3d9e91b
HS
8706
8707 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
6dac2e8e 8708 introduced by the VTA branch merge.
f3d9e91b 8709
edb30094 87102009-09-10 Uros Bizjak <ubizjak@gmail.com>
3a3d54f2
UB
8711
8712 Revert:
8713 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
8714
8715 PR rtl-optimization/39779
8716 * expr.c (convert_modes): Return when mode == oldmode after
8717 CONST_INTs are processed.
8718
1c6679e2
NC
87192009-09-10 Nick Clifton <nickc@redhat.com>
8720
8721 * config/mep/mep.c (mep_encode_section_info): Copy weakness
8722 attribute and referring decl when creating renamed symbol.
8723
90097c67
RG
87242009-09-10 Richard Guenther <rguenther@suse.de>
8725
8726 PR middle-end/41257
8727 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
8728 reachable nodes.
8729 (cgraph_finalize_compilation_unit): Compute reachability
8730 before emitting thunks. Properly process aliases before
8731 possibly removing unreachable nodes.
8732
c7a3980a
RG
87332009-09-10 Richard Guenther <rguenther@suse.de>
8734
8735 PR middle-end/41254
8736 * tree.c (struct free_lang_data_d): Add worklist member.
8737 (find_decls_types_r): Push onto the worklist instead of recursing.
8738 Handle TREE_BINFOs properly.
8739 (find_decls_types): New function wrapped around find_decls_types_r
8740 to process the worklist.
8741 (find_decls_types_in_eh_region): Use it.
8742 (find_decls_types_in_node): Likewise.
8743 (find_decls_types_in_var): Likewise.
8744 (free_lang_data_in_cgraph): Likewise. Free the worklist.
8745 * tree.h (RECORD_OR_UNION_TYPE_P): New.
8746 (AGGREGATE_TYPE_P): Adjust.
8747
e00ded68
JM
87482009-09-09 Jason Merrill <jason@redhat.com>
8749
8750 * configure.ac: Check glibc version even if we have an in-tree
8751 assembler.
8752
75cd1c8f
AG
87532009-09-09 Anthony Green <green@moxielogic.com>
8754
8755 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
8756 the constant 0 when appropriate.
8757 * config/moxie/constraints.md: Add constraint O.
8758
8759 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
8760 to pass up to 6 32-bit argument values in registers.
8761 (moxie_function_arg): Ditto.
8762 (moxie_arg_partial_bytes): Ditto.
8763 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
8764 (REG_PARM_STACK_SPACE): Ditto.
8765 (FUNCTION_ARG_REGNO_P): Ditto.
8766
8767 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
8768 instruction to allocate stack space.
8769
93fbf857
SB
87702009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
8771
8772 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix
8773 unnecessarily stringent constraints. Fix address
8774 calculation in the splitters.
8775
ed9d5a4a
UB
87762009-09-09 Uros Bizjak <ubizjak@gmail.com>
8777
8778 PR rtl-optimization/39779
8779 * expr.c (convert_modes): Return when mode == oldmode after
8780 CONST_INTs are processed.
8781
3d887721
KT
87822009-09-09 Kai Tietz <kai.tietz@onevision.com>
8783
8784 PR/41315
ed9d5a4a 8785 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
3d887721
KT
8786 (ix86_expand_prologue): Take frame.padding0 into logic of
8787 to_allocate checks.
8788 (ix86_expand_epilogue): Likewise.
8789
80a76d1d
JJ
87902009-09-09 Jakub Jelinek <jakub@redhat.com>
8791
8792 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
8793 New variables.
8794 (SHLIB_LINK, SHLIB_INSTALL): Use them.
8795 * config/t-slibgcc-libgcc: New file.
8796 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
8797
ca1bb752
MJ
87982009-09-09 Martin Jambor <mjambor@suse.cz>
8799
8800 PR tree-optimization/41089
8801 * tree-sra.c (find_var_candidates): Do not consider va_lists in
8802 early SRA.
8803
8b9db065
RH
88042009-09-09 Richard Henderson <rth@redhat.com>
8805
8806 * gimple.h (CASE_GIMPLE_OMP): New.
8807 (is_gimple_omp): Use it.
8808 * tree-cfg.c (is_ctrl_altering_stmt): Likewise.
8809 (verify_gimple_debug): Likewise.
8810
70a6b17e
RG
88112009-09-09 Richard Guenther <rguenther@suse.de>
8812
8813 PR tree-optimization/41101
8814 * tree-ssa-pre.c (maximal_set): Remove.
8815 (compute_antic_aux): Treat the maximal set as implicitly all ones.
8816 Defer all blocks we didn't visit at least one successor.
8817 (add_to_exp_gen): Do not add to the maximal set.
8818 (make_values_for_phi): Likewise.
8819 (compute_avail): Likewise.
8820 (init_pre): Do not allocate the maximal set.
8821 (execute_pre): Do not dump it.
8822
7648edc4
MJ
88232009-09-09 Martin Jambor <mjambor@suse.cz>
8824
8825 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
8826 an SSA_NAME rather than a is_gimple_variable.
8827
5a4b005f
RG
88282009-09-09 Richard Guenther <rguenther@suse.de>
8829
8830 PR middle-end/41317
8831 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
8832 code dealing with plain pointer bases.
8833 (maybe_fold_offset_to_reference): Likewise.
8834 (maybe_fold_stmt_addition): Adjust.
8835
ccffb755
RG
88362009-09-09 Richard Guenther <rguenther@suse.de>
8837
8838 * tree.c (free_lang_data_in_type): Do not free the type variant
8839 chains.
8840 (free_lang_data): Merge char_type_node with its properly signed
8841 variant.
8842 (pass_ipa_free): Collect after freeing language specific data.
8843
4e18a7d4
MM
88442009-09-09 Michael Matz <matz@suse.de>
8845
8846 PR middle-end/41268
8847 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
8848 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
8849 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
8850 to reflect reality.
8851
5fb455bc
DD
88522009-09-08 DJ Delorie <dj@redhat.com>
8853
8854 * config/mep/mep.c (conversions[]): Add "ml" pattern.
8855
d5df7223
JM
88562009-09-04 Jason Merrill <jason@redhat.com>
8857
8858 * tree.c (tree_find_value): Remove.
8859 * tree.h: Remove prototype.
8860 * varasm.c (assemble_external): Use value_member instead.
8861
6a57e634
AO
88622009-09-08 Alexandre Oliva <aoliva@redhat.com>
8863
8864 * toplev.c (process_options): Choose default debugging type when
8865 gtoggle enables debug info and type is unset.
8866
da4a9479
AO
88672009-09-08 Alexandre Oliva <aoliva@redhat.com>
8868
8869 PR debug/41276
8870 PR debug/41307
8871 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of
8872 invalid subreg.
8873
713e2ea6
AO
88742009-09-08 Alexandre Oliva <aoliva@redhat.com>
8875
8876 * configure: Rebuilt with modified libtool.m4.
8877
91642126
AO
88782009-09-08 Alexandre Oliva <aoliva@redhat.com>
8879
8880 PR debug/41229
8881 PR debug/41291
8882 PR debug/41300
8883 * tree-ssa.c (execute_update_addresses_taken): Update debug insns.
8884
ae0a4449
AO
88852009-09-08 Alexandre Oliva <aoliva@redhat.com>
8886
8887 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
8888 (remove_statement): Likewise.
8889 (rewrite_use_nonlinear_expr): Adjust.
8890 (remove_unused_ivs): Collect SSA NAMEs to remove and call...
8891 * tree-ssa.c (release_defs_bitset): ... this. New.
8892 * tree-flow.h (release_defs_bitset): Declare.
8893
21719cea
AO
88942009-09-08 Alexandre Oliva <aoliva@redhat.com>
8895
8896 PR debug/41232
8897 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
8898 in the middle block.
8899
7c2a2dbf
KT
89002009-09-08 Kai Tietz <kai.tietz@onevision.com>
8901
34c6743c
KT
8902 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer
8903 via intptr_t to long type.
8904 (insert_operand_rank): Cast long type via intptr_t to
8905 pointer type.
8906 * genattrtab.c (RTL_HASH): Use intptr_t to cast from
8907 pointer to scalar.
8908 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast
8909 from pointer to unsigned via uintptr_t.
8910
7c2a2dbf
KT
8911 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
8912 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
8913 and HAVE_INTPTR_T.
8914 * configure: Regenerated.
8915 * config.in: Regenerated
8916 * system.h (stdint.h): Add include.
8917 (inttypes.h): Likewise.
8918 * Makefile.in (aclocal): Add config/stdint.m4.
8919 * aclocal.m4: Regenerated.
8920
8472b255
BS
89212009-09-08 Bernd Schmidt <bernd.schmidt@analog.com>
8922
8923 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static
8924 variables.
8925 (note_np_check_stores): New function.
8926 (harmless_null_pointer_p): New function.
8927 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers
8928 changed. Take into account whether we're in the shadow of a condjump
8929 that tested NP_REG for NULL.
8930 Lose all code that tested for SEQUENCEs.
8931 (workaround_speculation): Avoid inserting NOPs for loads that are
8932 either always executed or a NULL pointer.
8933
ac875c2e
JH
89342009-09-08 Jan Hubicka <jh@suse.cz>
8935
8936 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
8937 * params.def (early-inlining-insns): Likewise.
8938
1098d3a5
JJ
89392009-09-08 Jakub Jelinek <jakub@redhat.com>
8940
8941 PR rtl-optimization/41239
8942 * sched-int.h (struct deps): Add last_function_call_may_noreturn field.
8943 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
8944 lists.
8945 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
8946 across calls, as the calls might not always return normally.
8947 (call_may_noreturn_p): New function.
8948 (deps_analyze_insn): Update last_function_call_may_noreturn list.
8949 (init_deps): Initialize it.
8950 (remove_from_deps): Also remove calls from
8951 last_function_call_may_noreturn list.
8952
35ecd408
RH
89532009-09-07 Richard Henderson <rth@redhat.com>
8954
8955 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
8956 more VR->OPERANDS than LHS operands. Free LHS before returning.
8957
c7cb1555
BS
89582009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
8959
8960 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
8961 (attr "addrtype"): New member "spreg".
8962 Use it if mem_spfp_address_operand is true for the address.
8963 (attr "type"): New entry "stall".
8964 (cpu_unit "load"): New.
8965 (insn_reservations "load32", "loadp", "loadi"): Add reservation of
8966 "load".
8967 (insn_reservation "loadsp"): New.
8968 (insn_reservation "load_stall1"): New.
8969 (insn_reservation "load_stall3"): New.
ed9d5a4a 8970 (stall): New insn.
c7cb1555
BS
8971 * config/bfin/predicates.md (const1_operand, const3_operand): New.
8972 (mem_p_address_operand): Exclude stack and frame pointer based
8973 addresses.
8974 (mem_spfp_address_operand): New; match them here.
8975 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
8976 (bfin_reorg): Call it if scheduling insns.
8977 (bfin_gen_bundles): Remove dummy insns created by
8978 add_sched_insns_for_speculation.
8979
4dce27df
BS
8980 From Jie Zhang <jie.zhang@analog.com>:
8981 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
8982 bfin_si_revision, bfin_workarounds): Move these ...
8983 * config/bfin/bfin.h: ... here.
8984
5254cd50
BS
8985 From Mike Frysinger <michael.frysinger@analog.com>
8986 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
8987 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
ed9d5a4a
UB
8988 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
8989 bf547m, bf548m, and bf549m.
5254cd50 8990 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
ed9d5a4a
UB
8991 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
8992 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
8993 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
5254cd50
BS
8994 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8995 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
8996 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8997 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8998 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
8999 bf542m, bf544m, bf547m, bf548m, and bf549m.
9000
b3187e24 9001 From Jie Zhang <jie.zhang@analog.com>:
ed9d5a4a 9002 * config/bfin/predicates.md (p_register_operand): New predicate.
b3187e24
BS
9003 (dp_register_operand): New predicate.
9004 * config/bfin/bfin-protos.h (WA_05000074): Define.
9005 (ENABLE_WA_05000074): Define.
ed9d5a4a 9006 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
b3187e24
BS
9007 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
9008 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
ed9d5a4a 9009 (define_attr addrtype): Allow load/store register to be P register.
b3187e24
BS
9010 (define_attr storereg): New.
9011 (define_cpu_unit anomaly_05000074): New.
9012 (define_insn_reservation dsp32shiftimm): New.
9013 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
9014 (define_insn_reservation loadp): Cannot use slot2.
9015 (define_insn_reservation loadsp): Cannot use slot2.
9016 (define_insn_reservation storep): Cannot use slot2. Does not
9017 apply when working around 05000074.
9018 (define_insn_reservation storep_anomaly_05000074): New.
9019 (define_insn_reservation storei): Does not apply when working
9020 around 05000074.
9021 (define_insn_reservation storei_anomaly_05000074): New.
9022 (define_attr length): Add dsp32shiftimm case.
9023 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
9024 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
9025 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
9026 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
9027 Set type as dsp32shiftimm for dsp32shiftimm alternatives.
9028
4a50e99c
MJ
90292009-09-07 Martin Jambor <mjambor@suse.cz>
9030
9031 PR middle-end/41282
9032 * tree-sra.c (create_artificial_child_access): Return NULL if
9033 build_ref_for_offset fails.
9034 (propagate_subacesses_accross_link): Allow build_ref_for_offset
9035 and create_artificial_child_access to fail.
9036
e5b258a4
DG
90372009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
9038
9039 PR c++/41214
6dac2e8e 9040 * unwind-dw2.c (uw_init_context_1): Mark noinline.
e5b258a4
DG
9041 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
9042 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
9043
8ff7f824
BS
90442009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
9045
9046 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
9047 block, ensure it has an exit edge. Emit a barrier after a jump.
9048
3beb864c
NC
90492009-09-07 Nick Clifton <nickc@redhat.com>
9050
9051 * gcc.c (this_is_linker_script): New variable. Like
9052 this_is_library_file but for the %T constructor.
9053 (end_going_arg): If this_is_linker_script is set then locate the
9054 script and insert a --script switch before it
6dac2e8e
UB
9055 (do_spec_2): Initialise this_is_linker_script.
9056 (do_spec_1): Likewise. Handle %T construct.
9057 (eval_spec_function): Preserve this_is_linker_script.
3beb864c
NC
9058 * doc/invoke.texi: Document %T construct in spec files.
9059 * config/m32c/m32c.h (LIB_SPEC): Use it.
9060
3fce100b
AK
90612009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9062
ed9d5a4a 9063 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
3fce100b
AK
9064 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
9065 when volatile flag is set.
9066 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.
9067
1362aa31
EB
90682009-09-06 Eric Botcazou <ebotcazou@adacore.com>
9069
9070 PR bootstrap/41241
9071 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
9072 (combine_stack_adjustments_for_block): Allow insns between stack
7717df30
EB
9073 adjustments and stores with corresponding pre-(dec|inc)rement or
9074 pre-modify operation.
1362aa31 9075
90588a10
JJ
90762009-09-06 Jakub Jelinek <jakub@redhat.com>
9077
9078 PR bootstrap/41241
9079 * combine-stack-adj.c (struct csa_memlist): Rename to...
9080 (struct csa_reflist): ... this. Rename mem field to ref.
9081 (free_csa_memlist): Rename to...
9082 (free_csa_reflist): ... this.
9083 (record_one_stack_memref): Rename to...
9084 (record_one_stack_ref): ... this. Handle also REG_P.
9085 (try_apply_stack_adjustment): Handle also REG_P.
9086 (struct record_stack_memrefs_data): Rename to...
9087 (struct record_stack_refs_data): ... this. Rename memlist field to
9088 reflist.
9089 (record_stack_memrefs): Rename to...
9090 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing
9091 subexpressions instead of failing when a MEM contains SP references.
9092 For SP itself in DEBUG_INSNs queue it also onto reflist chain.
9093 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
9094
3797a0ff
RG
90952009-09-06 Richard Guenther <rguenther@suse.de>
9096
9097 PR middle-end/41144
9098 * tree.c (build_array_type): Do not record types marked
9099 with structural equality in the canonical type hashtable.
9100
3c45b96b
RG
91012009-09-06 Richard Guenther <rguenther@suse.de>
9102
9103 PR middle-end/41261
9104 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.
9105
6a129567
RG
91062009-09-05 Richard Guenther <rguenther@suse.de>
9107
9108 PR middle-end/41181
9109 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.
9110
432b4b31
RG
91112009-09-05 Richard Guenther <rguenther@suse.de>
9112
9113 PR debug/41273
9114 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.
9115
575140c2
RG
91162009-09-05 Richard Guenther <rguenther@suse.de>
9117
9118 PR middle-end/41271
9119 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
9120 before comparing function argument types.
9121
896237cd
FXC
91222009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9123
9124 PR target/41024
9125 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
9126 the assembler.
9127
e139ab34
UB
91282009-09-04 Uros Bizjak <ubizjak@gmail.com>
9129
9130 Revert:
9131 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
9132
9133 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
9134 locators before emit_insn is called.
9135
1fe28116
VM
91362009-09-04 Vladimir Makarov <vmakarov@redhat.com>
9137
9138 PR bootstrap/41241
9139 * ira.c (update_equiv_reg): Revert my previous patch for the PR.
9140 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
9141 (reginfo_init): Don't call allocate_reg_info.
9142
14e58be0
UB
91432009-09-04 Uros Bizjak <ubizjak@gmail.com>
9144
9145 PR target/41262
9146 * config/alpha/alpha.c (alpha_does_function_need_gp): Use
9147 NONDEBUG_INSN_P instead of INSN_P.
9148
3157b0c2
AO
91492009-09-04 Alexandre Oliva <aoliva@redhat.com>
9150
9151 PR debug/41225
9152 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
9153
510bc854
AO
91542009-09-04 Alexandre Oliva <aoliva@redhat.com>
9155
9156 PR target/41252
9157 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
9158 pattern of the split.
9159
6751b6f6
AO
91602009-09-04 Alexandre Oliva <aoliva@redhat.com>
9161
9162 * toplev.c (process_options): Move setter of flag_var_tracking
9163 before other tests that depend on it. Move down setter of
9164 flag_rename_registers. Don't enable var-tracking-assignments
9165 by default if selective scheduling is enabled. Warn if both
9166 are enabled.
9167
24277d34
AO
91682009-09-04 Alexandre Oliva <aoliva@redhat.com>
9169
9170 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
9171 comment. Use switch statement to catch overlaps between rtx
9172 and tree codes. Accept FUNCTION_DECLs in addition to those in...
9173 (IS_DECL_CODE): ... here. Remove.
9174 (check_value_is_not_decl): Remove.
9175 (dv_from_decl, dv_from_value): Check after conversion.
9176
5f1a9ebb
RG
91772009-09-04 Richard Guenther <rguenther@suse.de>
9178
9179 PR middle-end/41257
9180 * (cgraph_finalize_compilation_unit): Move finalizing aliases
9181 after emitting tunks. Move emitting thunks and ctors from ...
9182 (cgraph_optimize): ... here. Remove redundant
9183 cgraph_analyze_functions.
9184 * varasm.c (find_decl_and_mark_needed): Remove no longer
9185 necessary check.
9186 (finish_aliases_1): Adjust check for thunk aliases.
9187
8d142c15
DG
91882009-09-04 Daniel Gutson <dgutson@codesourcery.com>
9189
9190 * config/arm/arm.md (ctzsi2): Added braces
9191 to avoid warning that broke booststrap.
9192
22fc64b4
MJ
91932009-09-04 Martin Jambor <mjambor@suse.cz>
9194
9195 PR tree-optimization/41112
9196 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot
9197 handle variable-bounded arrays.
9198 (expr_with_var_bounded_array_refs_p): New function.
9199 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.
9200
2cdece44
WG
92012009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com>
9202
9203 * config/s390/2097.md: Removed two incorrect bypasses.
9204 (z10_fsimpdf): Fixed latency.
9205 (z10_fhex): New insn_reservation.
9206 (z10_floaddf): Fixed latency.
9207 (z10_floadsf): Fixed latency.
9208 (z10_ftrunctf): Fixed latency.
9209 (z10_ftruncdf): Fixed latency.
9210 * config/s390/s390.c (z10_cost): Fixed values.
9211 (s390_adjust_priority): Added z10 path.
9212 * config/s390/s390.md (type): Added fhex.
9213 (*mov<mode>_64dfp): Updated type attribute.
9214 (*mov<mode>_64): Updated type attribute.
9215 (*mov<mode>_31): Updated type attribute.
9216 (*mov<mode>"): Likewise.
9217 * config/s390/2084.md (x_fsimpdf): Updated condition.
9218
b09062ee
AK
92192009-09-04 Andreas Krebbel <krebbel1@de.ibm.com>
9220
9221 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
9222 RTXs in the predicate for operand 1.
9223
ca96ed43
DG
92242009-09-03 Daniel Gutson <dgutson@codesourcery.com>
9225
9226 * config/arm/arm.md (UNSPEC_RBIT): New constant.
9227 (rbitsi2): New insn.
9228 (ctzsi2): New expand.
9229 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
9230
687b5078
MJ
92312009-09-03 Martin Jambor <mjambor@suse.cz>
9232
9233 * tree-sra.c (duplicate_expr_for_different_base): Removed.
9234 (create_artificial_child_access): Use build_ref_for_offset instead
9235 of duplicate_expr_for_different_base.
9236 (propagate_subacesses_accross_link): Likewise.
14e58be0 9237
006b29ab
RS
92382009-09-03 Richard Sandiford <rdsandiford@googlemail.com>
9239
9240 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
9241 of INSN_P.
9242 (mips16e_collect_argument_saves): Skip debug instructions.
9243 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
9244 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
9245 (r10k_insert_cache_barriers): Likewise.
9246 (mips_reorg_process_insns): Likewise.
9247
691571d2
VM
92482009-09-03 Vladimir Makarov <vmakarov@redhat.com>
9249
9250 PR bootstrap/41241
9251 * ira.c (update_equiv_reg): Remove check on class likely spill.
9252
08ab0acf
JJ
92532009-09-03 Jakub Jelinek <jakub@redhat.com>
9254
7d4507cb
JJ
9255 PR debug/41236
9256 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
9257 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of
9258 it or SUBREG.
9259
08ab0acf
JJ
9260 PR debug/41238
9261 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
9262 the stack slot if it is passed by invisible reference.
755d55bb
EB
9263 * var-tracking.c (vt_add_function_parameters): Handle arguments passed
9264 by invisible reference.
08ab0acf 9265
9840d30a
BS
92662009-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
9267
9268 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
9269 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
9270 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
9271 0.
9272 * config/bfin/sync.md: New file.
9273 * config/bfin/bfin.md: Include it.
9274 (UNSPEC_ATOMIC): New.
9275 (UNSPEC_ONES): Provide a unique number.
9276
9277 From Jie Zhang <jie.zhang@analog.com>:
9278 * config/bfin/bfin.c (ret_regs): New.
9279 (must_save_fp_p): Don't return true because of frame_pointer_needed.
9280 (must_save_rets_p): New.
9281 (n_regs_saved_by_prologue): Use must_save_rets_p instead of
9282 current_function_is_leaf.
9283 (do_link): Likewise.
9284 (do_unlink): Likewise.
9285 (expand_interrupt_handler_prologue): Use ret_regs array.
9286 (expand_interrupt_handler_epilogue): Use ret_regs array and
9287 pass return register to gen_return_internal.
9288 (bfin_expand_epilogue): Pass return register to
9289 gen_return_internal.
9290 (bfin_expand_call): Explicitly clobber RETS.
9291 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
9292 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
9293 call_insn_fdpic, call_value_insn_fdpic, call_symbol,
9294 call_value_symbol, call_insn, call_value_insn): Explicitly clobber
9295 RETS.
9296 (return_internal): Take a reg rtx rather than the register number.
9297
8e094aa2
L
92982009-09-03 H.J. Lu <hongjiu.lu@intel.com>
9299
9300 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
9301 when comparing against estimated_loop_iterations_int return.
9302
e20c9328
RG
93032009-09-03 Richard Guenther <rguenther@suse.de>
9304
9305 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
9306 eh_personality_libfunc.
9307
c9630c40
RL
93082009-09-03 Razya Ladelsky <razya@il.ibm.com>
9309
9310 * tree-parloops.c (separate_decls_in_region): Add space.
14e58be0 9311
e7df16a5
RL
93122009-09-03 Razya Ladelsky <razya@il.ibm.com>
9313
14e58be0 9314 * tree-parloops.c (separate_decls_in_region): Change the condition
e7df16a5
RL
9315 checking if there are reductions in the loop.
9316
785aa2a7
RL
93172009-09-03 Razya Ladelsky <razya@il.ibm.com>
9318
9319 PR tree-optimization/38275
14e58be0 9320 * tree-parloops.c (parallelize_loops): Replace profitability condition
785aa2a7
RL
9321 for expected number of iterations.
9322
e12c4094
AO
93232009-09-03 Alexandre Oliva <aoliva@redhat.com>
9324
9325 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
9326 (bootstrap-debug): Explain conditions in which it becomes default.
9327 (bootstrap-debug-big): Rather than duplicate bootstrap-debug,
9328 make it add to it.
9329
95da10ea
NK
93302009-09-03 Namhyung Kim <namhyung@gmail.com>
9331
9332 * doc/invoke.texi (Optimize Options): Move
9333 -finline-small-functions to the -O2 list.
9334
73d598d5
AO
93352009-09-03 Alexandre Oliva <aoliva@redhat.com>
9336
9337 * toplev.c (process_options): Enable var-tracking-assignments
9338 by default if var-tracking is enabled.
9339
896aa4ea
DD
93402009-09-02 David Daney <ddaney@caviumnetworks.com>
9341
9342 * cfgbuild.c (find_bb_boundaries): Split blocks containing a
9343 barrier.
9344 * emit-rtl.c (prev_nonnote_insn_bb): New function.
9345 * rtl.h (prev_nonnote_insn_bb): Declare it.
9346
4537ec0c
DN
93472009-09-03 Diego Novillo <dnovillo@google.com>
9348
9349 * cgraph.c (cgraph_node_for_decl): New.
9350 * cgraph.h (cgraph_node_for_decl): Declare.
9351 * tree.c (host_integerp): Return 0 if T is NULL.
9352
93532009-09-03 Diego Novillo <dnovillo@google.com>
9354
9355 * tree.h (struct alias_pair): Move from varasm.c.
9356 (alias_pairs): Likewise.
9357 (TYPE_MAXVAL): Define.
9358 (TYPE_MINVAL): Define.
9359 (iterative_hash_host_wide_int): Declare.
9360 (remove_unreachable_alias_pairs): Declare.
9361 * tree-pass.h (pass_ipa_free_lang_data): Declare.
9362 * diagnostic.c (default_diagnostic_starter): Make extern.
9363 (default_diagnostic_finalizer): Make extern.
9364 * diagnostic.h (default_diagnostic_starter): Declare.
9365 (default_diagnostic_finalizer): Declare.
9366 (default_tree_printer): Declare.
9367 * toplev.c (default_tree_printer): Make extern.
9368
93692009-09-03 Richard Guenther <rguenther@suse.de>
9370 Diego Novillo <dnovillo@google.com>
9371
9372 * cgraph.c (cgraph_add_new_function): Remove gimplification.
9373 * cgraphunit.c (cgraph_expand_function): Do not emit
9374 associated thunks from here.
9375 (cgraph_emit_thunks): New.
9376 (cgraph_optimize): Call it.
9377 Return if any IPA pass finds an error.
9378 * varasm.c (finish_aliases_1): Ignore errorneous aliases used
9379 by thunks.
9380
93812009-09-03 Simon Baldwin <simonb@google.com>
9382 Rafael Espindola <espindola@google.com>
9383 Richard Guenther <rguenther@suse.de>
9384 Doug Kwan <dougkwan@google.com>
9385 Diego Novillo <dnovillo@google.com>
9386
9387 * tree.c: Include tree-pass.h, langhooks-def.h,
9388 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
9389 (free_lang_data_in_type): New.
9390 (need_assembler_name_p): New.
9391 (free_lang_data_in_block): New.
9392 (free_lang_data_in_decl): New.
9393 (struct free_lang_data_d): New.
9394 (add_tree_to_fld_list): New.
9395 (find_decls_types_r): New.
9396 (get_eh_types_for_runtime): New.
9397 (find_decls_types_in_eh_region): New.
9398 (find_decls_types_in_node): New.
9399 (find_decls_types_in_var): New.
9400 (free_lang_data_in_cgraph): New.
9401 (free_lang_data): New.
9402 (gate_free_lang_data): New.
9403 (pass_ipa_free_lang_data): New.
9404
94052009-09-03 Diego Novillo <dnovillo@google.com>
9406
9407 * timevar.def (TV_IPA_FREE_LANG_DATA): Define.
9408 * langhooks.h (struct lang_hooks): Add field free_lang_data.
9409 (lang_hooks): Remove const qualifier.
9410 * ipa.c (cgraph_remove_unreachable_nodes): Call
9411 remove_unreachable_alias_pairs.
9412 * except.c (add_type_for_runtime): Check if TYPE has
9413 already been converted.
9414 (lookup_type_for_runtime): Likewise.
9415 (check_handled): Handle converted types.
9416 * varasm.c (remove_unreachable_alias_pairs): New.
9417 * gimple.c: Include demangle.h.
9418 (gimple_decl_printable_name): New.
9419 (gimple_fold_obj_type_ref): New.
9420 * gimple.h (gimple_decl_printable_name): Declare.
9421 (gimple_fold_obj_type_ref): Declare.
9422 * passes.c (init_optimization_passes): Add pass
9423 pass_ipa_free_lang_data.
9424 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
9425 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.
9426
94272009-09-03 Diego Novillo <dnovillo@google.com>
9428
9429 * c-lang.c (lang_hooks): Remove const qualifier.
9430
02c8b4f8
LR
94312009-09-02 Loren James Rittle <ljrittle@acm.org>
9432
9433 * doc/install.texi (*-*-freebsd*): Update target information.
9434
adee59ae
AS
94352009-09-02 Anatoly Sokolov <aesok@post.ru>
9436
9437 * hard-reg-set.h (call_fixed_regs): Remove.
9438 * reginfo.c (call_fixed_regs): Remove.
9439 (init_reg_sets_1): Remove initialization of call_fixed_regs.
9440 (globalize_reg): Don't use call_fixed_regs.
9441 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
9442 call_fixed_regs.
9443
28ed065e
MM
94442009-09-01 Michael Matz <matz@suse.de>
9445
9446 * expr.h (emit_storent_insn, expand_expr_real_1,
9447 expand_expr_real_2): Declare.
9448 * expr.c (emit_storent_insn, expand_expr_real_1,
9449 expand_expr_real_2): Export.
ed9d5a4a 9450 (store_expr): Setting and evaluating dont_return_target is useless.
28ed065e
MM
9451 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
9452 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
9453 * except.c (expand_resx_expr): Rename to ...
9454 (expand_resx_stmt): ... this. Rewrite to take gimple statement.
9455 * except.h (expand_resx_stmt): Declare.
9456 * stmt.c: Add include gimple.h
9457 (expand_asm_expr): Rename to ...
9458 (expand_asm_stmt): ... this. Rewrite to take gimple statement.
9459 (expand_case): Rewrite to take gimple statement.
9460 * tree.h (expand_asm_stmt): Declare.
9461 (expand_case): Change prototype.
9462 * Makefile.in (stmt.o): Depend on gimple.h.
9463 * builtins.c (expand_builtin_synchronize): Build gimple asm
9464 statement, not an ASM_EXPR.
9465 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
9466 gimple_to_tree, release_stmt_tree): Remove.
9467 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
9468 ggc_free, but hold comparison code and operands separately.
9469 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
9470 (expand_call_stmt, expand_gimple_stmt_1,
9471 expand_gimple_stmt): New helpers.
9472 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
9473 release_stmt_tree. Call expand_gimple_stmt instead.
9474 (expand_gimple_basic_block): Ditto.
9475
9476 * calls.c (emit_call_1): Don't look at EH regions here, make
9477 fntree parameter useless.
9478 (expand_call): New local rettype for TREE_TYPE(exp), use it
9479 throughout. Remove local p, use addr instead.
9480 Don't look at EH regions here.
9481
ce18efcb
VM
94822009-09-02 Vladimir Makarov <vmakarov@redhat.com>
9483
9484 * doc/invoke.texi (-fsched-pressure): Document it.
9485 (-fsched-reg-pressure-heuristic): Remove it.
14e58be0 9486
ce18efcb
VM
9487 * reload.c (ira.h): Include.
9488 (find_reloads): Add choosing reload on number of small spilled
9489 classes.
14e58be0 9490
ce18efcb
VM
9491 * haifa-sched.c (ira.h): Include.
9492 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
9493 saved_reg_pressure, curr_reg_live, saved_reg_live,
9494 region_ref_regs): New variables.
9495 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
9496 initiate_reg_pressure_info, setup_ref_regs,
9497 initiate_bb_reg_pressure_info, save_reg_pressure,
9498 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
9499 functions.
9500 (setup_insn_reg_pressure_info): New function.
9501 (rank_for_schedule): Add pressure checking and insn issue time.
9502 Remove comparison of insn reg weights.
9503 (ready_sort): Set insn reg pressure info.
9504 (update_register_pressure, setup_insn_max_reg_pressure,
9505 update_reg_and_insn_max_reg_pressure,
9506 sched_setup_bb_reg_pressure_info): New functions.
ed9d5a4a 9507 (schedule_insn): Add code for printing and updating reg pressure info.
ce18efcb
VM
9508 (find_set_reg_weight, find_insn_reg_weight): Remove.
9509 (ok_for_early_queue_removal): Do nothing if pressure_only_p.
9510 (debug_ready_list): Print reg pressure info.
9511 (schedule_block): Ditto. Check insn issue time.
9512 (sched_init): Set up sched_pressure_p. Allocate and set up some
9513 reg pressure related info.
9514 (sched_finish): Free some reg pressure related info.
9515 (fix_tick_ready): Make insn always ready if pressure_p.
9516 (init_h_i_d): Don't call find_insn_reg_weight.
9517 (haifa_finish_h_i_d): Free insn reg pressure info.
14e58be0 9518
ce18efcb
VM
9519 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
9520 ira_memory_move_cost, ira_class_hard_regs,
9521 ira_class_hard_regs_num, ira_no_alloc_regs,
9522 ira_available_class_regs, ira_reg_class_cover_size,
9523 ira_reg_class_cover, ira_class_translate): Move to ira.h.
9524
9525 * ira-lives.c (single_reg_class): Check mode to find how many
9526 registers are necessary for operand.
9527 (ira_implicitly_set_insn_hard_regs): New.
9528
9529 * common.opt (fsched-pressure): New options.
9530 (fsched-reg-pressure-heuristic): Remove.
9531
9532 * ira.c (setup_eliminable_regset): Rename to
9533 ira_setup_eliminable_regset. Make it external.
9534 (expand_reg_info): Pass cover class to setup_reg_classes.
9535 (ira): Call resize_reg_info instead of allocate_reg_info.
9536
9537 * sched-deps.c: Include ira.h.
9538 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
9539 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
9540 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
9541 mark_insn_hard_regno_birth, mark_insn_reg_birth,
9542 mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
9543 mark_insn_reg_store, mark_insn_reg_clobber,
9544 setup_insn_reg_pressure_info): New.
9545 (sched_analyze_1): Update implicit_reg_pending_uses.
9546 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
9547 Use them to create dependencies. Set insn reg uses and pressure
9548 info. Process reg_pending_uses in one place.
9549 (free_deps): Free implicit sets.
9550 (remove_from_deps): Remove implicit sets if necessary. Check
9551 implicit sets when clearing reg_last_in_use.
9552 (init_deps_global): Clear implicit_reg_pending_clobbers and
9553 implicit_reg_pending_uses.
14e58be0 9554
ce18efcb
VM
9555 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
9556 ira_memory_move_cost, ira_class_hard_regs,
9557 ira_class_hard_regs_num, ira_no_alloc_regs,
9558 ira_available_class_regs, ira_reg_class_cover_size,
9559 ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
9560 (ira_setup_eliminable_regset, ira_set_pseudo_classes,
9561 ira_implicitly_set_insn_hard_regs): New prototypes.
14e58be0 9562
ce18efcb
VM
9563 * ira-costs.c (pseudo_classes_defined_p, allocno_p,
9564 cost_elements_num): New variables.
9565 (allocno_costs, total_costs): Rename to costs and
9566 total_allocno_costs.
9567 (COSTS_OF_ALLOCNO): Rename to COSTS.
9568 (allocno_pref): Rename to pref.
9569 (allocno_pref_buffer): Rename to pref_buffer.
9570 (common_classes): Rename to regno_cover_class.
9571 (COST_INDEX): New.
9572 (record_reg_classes): Set allocno attributes only if allocno_p.
ed9d5a4a 9573 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM.
ce18efcb
VM
9574 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
9575 and COSTS_OF_ALLOCNO.
9576 (print_costs): Rename to print_allocno_costs.
9577 (print_pseudo_costs): New.
9578 (process_bb_node_for_costs): Split into 2 functions with new
9579 function process_bb_for_costs. Pass BB to process_bb_for_costs.
9580 (find_allocno_class_costs): Rename to find_costs_and_classes. Add
9581 new parameter dump_file. Use cost_elements_num instead of
9582 ira_allocnos_num. Make one iteration if preferred classes were
9583 already calculated for scheduler. Make 2 versions of code
9584 depending on allocno_p.
9585 (setup_allocno_cover_class_and_costs): Check allocno_p. Use
9586 regno_cover_class and COSTS instead of common_classes and
9587 COSTS_OF_ALLOCNO.
9588 (init_costs, finish_costs): New.
9589 (ira_costs): Set up allocno_p and cost_elements_num. Call
9590 init_costs and finish_costs.
9591 (ira_set_pseudo_classes): New.
9592
9593 * rtl.h (allocate_reg_info): Remove.
9594 (resize_reg_info): Change return type.
9595 (reg_cover_class): New.
9596 (setup_reg_classes): Add new parameter.
14e58be0 9597
ce18efcb 9598 * sched-int.h (struct deps_reg): New member implicit_sets.
ed9d5a4a 9599 (sched_pressure_p, sched_regno_cover_class): New external definitions.
ce18efcb
VM
9600 (INCREASE_BITS): New macro.
9601 (struct reg_pressure_data, struct reg_use_data): New.
9602 (struct _haifa_insn_data): Remove reg_weight. Add members
9603 reg_pressure, reg_use_list, reg_set_list, and
9604 reg_pressure_excess_cost_change.
9605 (struct deps): New member implicit_sets.
9606 (pressure_p): New variable.
9607 (COVER_CLASS_BITS, INCREASE_BITS): New macros.
9608 (struct reg_pressure_data, struct reg_use_data): New.
9609 (INSN_REG_WEIGHT): Remove.
9610 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
ed9d5a4a 9611 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
ce18efcb
VM
9612 (sched_init_region_reg_pressure_info,
9613 sched_setup_bb_reg_pressure_info): New prototypes.
14e58be0
UB
9614
9615 * reginfo.c (struct reg_pref): New member coverclass.
ce18efcb
VM
9616 (reg_cover_class): New function.
9617 (reginfo_init, pass_reginfo_init): Move after free_reg_info.
9618 (reg_info_size): New variable.
9619 (allocate_reg_info): Make static. Setup reg_info_size.
9620 (resize_reg_info): Use reg_info_size. Return flag of resizing.
9621 (setup_reg_classes): Add a new parameter. Setup cover class too.
9622
ed9d5a4a
UB
9623 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
9624 the dependencies.
ce18efcb
VM
9625
9626 * sched-rgn.c (deps_join): Set up implicit_sets.
9627 (schedule_region): Set up region and basic blocks pressure
9628 relative info.
14e58be0 9629
ce18efcb
VM
9630 * passes.c (init_optimization_passes): Move
9631 pass_subregs_of_mode_init before pass_sched.
14e58be0 9632
fef94f76
MJ
96332009-09-02 Martin Jambor <mjambor@suse.cz>
9634
9635 * tree-sra.c (struct access): New field grp_hint.
9636 (dump_access): Dump grp_hint.
9637 (sort_and_splice_var_accesses): Set grp_hint if a group is read
9638 multiple times.
9639 (analyze_access_subtree): Only scalarize accesses with grp_hint set or
9640 those which have been specifically read and somehow written to.
9641 (propagate_subacesses_accross_link): Set grp_hint of right child and
9642 also possibly of the left child.
9643
ded97380
JJ
96442009-09-02 Jakub Jelinek <jakub@redhat.com>
9645
9646 * tree-object-size.c (addr_object_size): Always use object_size_type
9647 0 or 2 when determining the pointer pointed object size.
9648
63838157
RG
96492009-09-02 Richard Guenther <rguenther@suse.de>
9650
9651 Revert
9652 2009-08-31 Richard Guenther <rguenther@suse.de>
9653
9654 * builtins.c (fold_builtin_memory_op): Use the alias oracle
9655 to query if the memory regions for memmove overlap.
9656 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
9657 asserts on pointers, instead deal with odd trees.
9658 (ptr_derefs_may_alias_p): Likewise.
9659 (refs_may_alias_p_1): Constructor bases also never alias.
9660
c68e4eed
CB
96612009-08-01 Christian Bruel <christian.bruel@st.com>
9662
9663 Revert:
9664 2009-07-31 Christian Bruel <christian.bruel@st.com>
9665 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
14e58be0 9666
8fc68cba
AO
96672009-09-01 Alexandre Oliva <aoliva@redhat.com>
9668
9669 * doc/invoke.texi (-fvar-tracking-assignments): New.
9670 (-fvar-tracking-assignments-toggle): New.
9671 (-fdump-final-insns=file): Mark filename as optional.
9672 (--param min-nondebug-insn-uid): New.
9673 (-gdwarf-@{version}): Mention version 4.
9674 * opts.c (common_handle_option): Accept it.
9675 * tree-vrp.c (find_assert_locations_1): Skip debug stmts.
9676 * regrename.c (regrename_optimize): Drop last. Don't count debug
9677 insns as uses. Don't reject change because of debug insn.
9678 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
ed9d5a4a 9679 from the chain starter, and check for inexact matches in DEBUG_INSNS.
8fc68cba
AO
9680 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
9681 (build_def_use): Simplify and fix the marking of DEBUG_INSNs.
9682 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
9683 * fwprop.c (forward_propagate_and_simplify): ...into debug insns.
9684 * doc/gimple.texi (is_gimple_debug): New.
9685 (gimple_debug_bind_p): New.
9686 (is_gimple_call, gimple_assign_cast_p): End sentence with period.
9687 * doc/install.texi (bootstrap-debug): More details.
9688 (bootstrap-debug-big, bootstrap-debug-lean): Document.
9689 (bootstrap-debug-lib): More details.
9690 (bootstrap-debug-ckovw): Update.
9691 (bootstrap-time): New.
9692 * tree-into-ssa.c (mark_def_sites): Skip debug stmts.
9693 (insert_phi_nodes_for): Insert debug stmts.
9694 (rewrite_stmt): Take iterator. Insert debug stmts.
9695 (rewrite_enter_block): Adjust.
9696 (maybe_replace_use_in_debug_stmt): New.
9697 (rewrite_update_stmt): Use it.
9698 (mark_use_interesting): Return early for debug stmts.
9699 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
9700 stmts before replacing stmt.
9701 (move_computations_stmt): Likewise.
9702 * ira-conflicts.c (add_copies): Skip debug insns.
9703 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
9704 (regstat_bb_compute_ri): Skip debug insns.
9705 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
9706 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
9707 check_loop_closed_ssa_stmt): Skip debug stmts.
9708 * tree-tailcall.c (find_tail_calls): Likewise.
9709 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
9710 * tree.h (MAY_HAVE_DEBUG_STMTS): New.
9711 (build_var_debug_value_stat): Declare.
9712 (build_var_debug_value): Define.
9713 (target_for_debug_bind): Declare.
9714 * reload.c (find_equiv_reg): Skip debug insns.
9715 * rtlanal.c (reg_used_between_p): Skip debug insns.
9716 (side_effects_p): Likewise.
9717 (canonicalize_condition): Likewise.
14e58be0 9718 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
8fc68cba
AO
9719 insns never depend on debug insns.
9720 (create_ddg_dep_no_link): Likewise.
9721 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
9722 Don't add inter-loop dependencies for debug insns.
9723 (build_intra_loop_deps): Likewise.
9724 (create_ddg): Count debug insns.
9725 * ddg.h (struct ddg::num_debug): New.
9726 (num_backargs): Pair up with previous int field.
9727 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on
9728 -fcompare-debug-second.
9729 * final.c (get_attr_length_1): Skip debug insns.
9730 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
9731 * gcc.c (invoke_as): Call compare-debug-dump-opt.
9732 (driver_self_specs): Map -fdump-final-insns to
9733 -fdump-final-insns=..
9734 (get_local_tick): New.
9735 (compare_debug_dump_opt_spec_function): Test for . argument and
9736 compute output name. Compute temp output spec without flag name.
9737 Compute -frandom-seed.
9738 (OPT): Undef after use.
9739 * cfgloopanal.c (num_loop_insns): Skip debug insns.
9740 (average_num_loop_insns): Likewise.
9741 * params.h (MIN_NONDEBUG_INSN_UID): New.
9742 * gimple.def (GIMPLE_DEBUG): New.
9743 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
9744 * auto-inc-dec.c (merge_in_block): Skip debug insns.
9745 (merge_in_block): Fix whitespace.
9746 * toplev.c (flag_var_tracking): Update comment.
9747 (flag_var_tracking_assignments): New.
9748 (flag_var_tracking_assignments_toggle): New.
9749 (process_options): Don't open final insns dump file if we're not
9750 going to write to it. Compute defaults for var_tracking.
9751 * df-scan.c (df_insn_rescan_debug_internal): New.
9752 (df_uses_record): Handle debug insns.
9753 * haifa-sched.c (ready): Initialize n_debug.
9754 (contributes_to_priority): Skip debug insns.
9755 (dep_list_size): New.
9756 (priority): Use it.
14e58be0 9757 (rank_for_schedule): Likewise. Schedule debug insns as soon as
8fc68cba
AO
9758 they're ready. Disregard previous debug insns to make decisions.
9759 (queue_insn): Never queue debug insns.
9760 (ready_add, ready_remove_first, ready_remove): Count debug insns.
9761 (schedule_insn): Don't reject debug insns because of issue rate.
9762 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
9763 (queue_to_ready): Skip and discount debug insns.
9764 (choose_ready): Let debug insns through.
9765 (schedule_block): Check boundary debug insns. Discount debug
9766 insns, schedule them early. Adjust whitespace.
9767 (set_priorities): Check for boundary debug insns.
9768 (add_jump_dependencies): Use dep_list_size.
9769 (prev_non_location_insn): New.
9770 (check_cfg): Use it.
9771 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
9772 stmts.
9773 (remove_unused_ivs): Reset debug stmts.
9774 * modulo-sched.c (const_iteration_count): Skip debug insns.
9775 (res_MII): Discount debug insns.
9776 (loop_single_full_bb_p): Skip debug insns.
9777 (sms_schedule): Likewise.
9778 (sms_schedule_by_order): Likewise.
9779 (ps_has_conflicts): Likewise.
9780 * caller-save.c (refmarker_fn): New.
9781 (save_call_clobbered_regs): Replace regs with saved mem in
9782 debug insns.
9783 (mark_referenced_regs): Take pointer, mark and arg. Adjust.
9784 Call refmarker_fn mark for hardregnos.
9785 (mark_reg_as_referenced): New.
9786 (replace_reg_with_saved_mem): New.
9787 * ipa-pure-const.c (check_stmt): Skip debug stmts.
9788 * cse.c (cse_insn): Canonicalize debug insns. Skip them when
9789 searching back.
9790 (cse_extended_basic_block): Skip debug insns.
9791 (count_reg_usage): Likewise.
9792 (is_dead_reg): New, split out of...
9793 (set_live_p): ... here.
9794 (insn_live_p): Use it for debug insns.
9795 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
9796 (execute_optimize_stdarg): Likewise.
9797 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
9798 * tree-ssa-propagate.c (substitute_and_fold): Don't regard
9799 changes in debug stmts as changes.
9800 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
9801 (moveup_expr): Don't move across debug insns. Don't move
9802 debug insn if it would create a bookkeeping block.
9803 (moveup_expr_cached): Don't use cache for debug insns that
9804 are heads of blocks.
9805 (compute_av_set_inside_bb): Skip debug insns.
9806 (sel_rank_for_schedule): Schedule debug insns first. Remove
9807 dead code.
9808 (block_valid_for_bookkeeping_p); Support lax searches.
9809 (create_block_for_bookkeeping): Adjust block numbers when
9810 encountering debug-only blocks.
9811 (find_place_for_bookkeeping): Deal with debug-only blocks.
9812 (generate_bookkeeping_insn): Accept no place to insert.
9813 (remove_temp_moveop_nops): New argument full_tidying.
9814 (prepare_place_to_insert): Deal with debug insns.
9815 (advance_state_on_fence): Debug insns don't start cycles.
9816 (update_boundaries): Take fence as argument. Deal with
9817 debug insns.
9818 (schedule_expr_on_boundary): No full_tidying on debug insns.
9819 (fill_insns): Deal with debug insns.
9820 (track_scheduled_insns_and_blocks): Don't count debug insns.
9821 (need_nop_to_preserve_insn_bb): New, split out of...
9822 (remove_insn_from_stream): ... this.
9823 (fur_orig_expr_not_found): Skip debug insns.
9824 * rtl.def (VALUE): Move up.
9825 (DEBUG_INSN): New.
ed9d5a4a 9826 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
8fc68cba
AO
9827 (nearest_common_dominator_of_uses): Take debug_stmts argument.
9828 Set it if debug stmts are found.
9829 (statement_sink_location): Skip debug stmts. Propagate
9830 moving defs into debug stmts.
9831 * ifcvt.c (first_active_insn): Skip debug insns.
9832 (last_active_insns): Likewise.
9833 (cond_exec_process_insns): Likewise.
9834 (noce_process_if_block): Likewise.
9835 (check_cond_move_block): Likewise.
9836 (cond_move_convert_if_block): Likewise.
9837 (block_jumps_and_fallthru_p): Likewise.
9838 (dead_or_predicable): Likewise.
9839 * dwarf2out.c (debug_str_hash_forced): New.
9840 (find_AT_string): Add comment.
9841 (gen_label_for_indirect_string): New.
9842 (get_debug_string_label): New.
9843 (AT_string_form): Use it.
9844 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
9845 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
9846 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
9847 several operations that cannot be represented with DWARF opcodes.
9848 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
9849 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
9850 (dwarf2out_var_location): Take during-call mark into account.
9851 (output_indirect_string): Update comment. Output if there are
9852 label and references.
9853 (prune_indirect_string): New.
9854 (prune_unused_types): Call it if debug_str_hash_forced.
9855 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
9856 (dw_long_long_const): Remove.
9857 (struct dw_val_struct): Change val_long_long type to rtx.
9858 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
9859 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
9860 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
9861 component instead of HOST_BITS_PER_LONG.
14e58be0 9862 (output_loc_operands): Likewise. For const8* assert
8fc68cba
AO
9863 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
9864 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
9865 rather than HOST_BITS_PER_LONG is >= 64.
9866 (add_AT_long_long): Remove val_hi and val_lo arguments, add
9867 val_const_double.
9868 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
9869 HOST_BITS_PER_LONG for dw_val_class_long_long.
9870 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't
9871 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
9872 (dwarf_stack_op_name): Handle DW_OP_implicit_value and
9873 DW_OP_stack_value.
9874 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
9875 Handle DW_OP_implicit_value.
9876 (extract_int): Move prototype earlier.
9877 (mem_loc_descriptor): For SUBREG punt if inner
9878 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
9879 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
9880 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
9881 UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
9882 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
9883 instead of Pmode size.
9884 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
9885 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
9886 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
9887 (concat_loc_descriptor, concatn_loc_descriptor,
9888 loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
9889 (add_location_or_const_value_attribute): Likewise. For single
9890 location loc_lists attempt to use add_const_value_attribute
9891 for constant decls. Add DW_AT_const_value even if
9892 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
9893 in its expression.
9894 * cfgbuild.c (inside_basic_block_p): Handle debug insns.
9895 (control_flow_insn_p): Likewise.
ed9d5a4a 9896 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
8fc68cba
AO
9897 (separate_decls_in_region_debug_bind): New.
9898 (separate_decls_in_region): Process debug bind stmts afterwards.
9899 * recog.c (verify_changes): Handle debug insns.
9900 (extract_insn): Likewise.
9901 (peephole2_optimize): Skip debug insns.
9902 * dse.c (scan_insn): Skip debug insns.
9903 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
9904 Pass it on.
9905 (setup_id_for_insn): Handle debug insns.
9906 (maybe_tidy_empty_bb): Adjust whitespace.
9907 (tidy_control_flow): Skip debug insns.
9908 (sel_remove_insn): Adjust for debug insns.
9909 (sel_estimate_number_of_insns): Skip debug insns.
9910 (create_insn_rtx_from_pattern): Handle debug insns.
9911 (create_copy_of_insn_rtx): Likewise.
9912 * sel-sched-.h (sel_bb_end): Declare.
9913 (sel_bb_empty_or_nop_p): New.
9914 (get_all_loop_exits): Use it.
9915 (_eligible_successor_edge_p): Likewise.
9916 (return_nop_to_pool): Adjust.
9917 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
9918 * ira-lives.c (process_bb_node_lives): Skip debug insns.
9919 * gimple-pretty-print.c (dump_gimple_debug): New.
9920 (dump_gimple_stmt): Use it.
9921 (dump_bb_header): Skip gimple debug stmts.
9922 * regmove.c (optimize_reg_copy_1): Discount debug insns.
9923 (fixup_match_2): Likewise.
9924 (regmove_backward_pass): Likewise. Simplify combined
9925 replacement. Handle debug insns.
9926 * function.c (instantiate_virtual_regs): Handle debug insns.
9927 * function.h (struct emit_status): Add x_cur_debug_insn_uid.
9928 * print-rtl.h: Include cselib.h.
ed9d5a4a 9929 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs.
8fc68cba
AO
9930 * df.h (df_inns_rescan_debug_internal): Declare.
9931 * gcse.c (alloc_hash_table): Estimate n_insns.
9932 (cprop_insn): Don't regard debug insns as changes.
9933 (bypass_conditional_jumps): Skip debug insns.
9934 (one_pre_gcse_pass): Adjust.
9935 (one_code_hoisting_pass): Likewise.
9936 (compute_ld_motion_mems): Skip debug insns.
9937 (one_cprop_pass): Adjust.
9938 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
9939 (if_convertible_stmt_p): Handle debug stmts.
9940 * init-regs.c (initialize_uninitialized_regs): Skip debug insns.
9941 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
9942 * ira-build.c (create_bb_allocnos): Skip debug insns.
9943 * tree-flow-inline.h (has_zero_uses): Discount debug stmts.
9944 (has_single_use): Likewise.
9945 (single_imm_use): Likewise.
9946 (num_imm_uses): Likewise.
9947 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
9948 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
9949 (create_outofssa_var_map): Likewise.
9950 * lower-subreg.c (adjust_decomposed_uses): New.
9951 (resolve_debug): New.
9952 (decompose_multiword_subregs): Use it.
9953 * tree-dfa.c (find_referenced_vars): Skip debug stmts.
9954 * emit-rtl.c: Include params.h.
9955 (cur_debug_insn_uid): Define.
9956 (set_new_first_and_last_insn): Set cur_debug_insn_uid too.
9957 (copy_rtx_if_shared_1): Handle debug insns.
9958 (reset_used_flags): Likewise.
9959 (set_used_flags): LIkewise.
9960 (get_max_insn_count): New.
9961 (next_nondebug_insn): New.
9962 (prev_nondebug_insn): New.
9963 (make_debug_insn_raw): New.
9964 (emit_insn_before_noloc): Handle debug insns.
9965 (emit_jump_insn_before_noloc): Likewise.
9966 (emit_call_insn_before_noloc): Likewise.
9967 (emit_debug_insn_before_noloc): New.
9968 (emit_insn_after_noloc): Handle debug insns.
9969 (emit_jump_insn_after_noloc): Likewise.
9970 (emit_call_insn_after_noloc): Likewise.
9971 (emit_debug_insn_after_noloc): Likewise.
9972 (emit_insn_after): Take loc from earlier non-debug insn.
9973 (emit_jump_insn_after): Likewise.
9974 (emit_call_insn_after): Likewise.
9975 (emit_debug_insn_after_setloc): New.
9976 (emit_debug_insn_after): New.
9977 (emit_insn_before): Take loc from later non-debug insn.
9978 (emit_jump_insn_before): Likewise.
9979 (emit_call_insn_before): Likewise.
9980 (emit_debug_insn_before_setloc): New.
9981 (emit_debug_insn_before): New.
9982 (emit_insn): Handle debug insns.
9983 (emit_debug_insn): New.
9984 (emit_jump_insn): Handle debug insns.
9985 (emit_call_insn): Likewise.
9986 (emit): Likewise.
9987 (init_emit): Take min-nondebug-insn-uid into account.
9988 Initialize cur_debug_insn_uid.
9989 (emit_copy_of_insn_after): Handle debug insns.
9990 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
9991 location of single rhs in place.
9992 (maybe_dump_rtl_for_gimple_stmt): Dump lineno.
9993 (floor_sdiv_adjust): New.
9994 (cell_sdiv_adjust): New.
9995 (cell_udiv_adjust): New.
9996 (round_sdiv_adjust): New.
9997 (round_udiv_adjust): New.
9998 (wrap_constant): Moved from cselib.
9999 (unwrap_constant): New.
10000 (expand_debug_expr): New.
10001 (expand_debug_locations): New.
10002 (expand_gimple_basic_block): Drop hiding redeclaration. Expand
10003 debug bind stmts.
10004 (gimple_expand_cfg): Expand debug locations.
10005 * cselib.c: Include tree-pass.h.
10006 (struct expand_value_data): New.
10007 (cselib_record_sets_hook): New.
10008 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
10009 (cselib_clear_table): Move, and implemnet in terms of...
10010 (cselib_reset_table_with_next_value): ... this.
10011 (cselib_get_next_unknown_value): New.
10012 (discard_useless_locs): Don't discard preserved values.
10013 (cselib_preserve_value): New.
10014 (cselib_preserved_value_p): New.
10015 (cselib_preserve_definitely): New.
10016 (cselib_clear_preserve): New.
10017 (cselib_preserve_only_values): New.
10018 (new_cselib_val): Take rtx argument. Dump it in details.
10019 (cselib_lookup_mem): Adjust.
10020 (expand_loc): Take regs_active in struct. Adjust. Silence
10021 dumps unless details are requested.
10022 (cselib_expand_value_rtx_cb): New.
10023 (cselib_expand_value_rtx): Rename and reimplment in terms of...
10024 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
10025 without details. Copy more subregs. Try to resolve values
10026 using a callback. Wrap constants.
10027 (cselib_subst_to_values): Adjust.
10028 (cselib_log_lookup): New.
10029 (cselib_lookup): Call it.
ed9d5a4a 10030 (cselib_invalidate_regno): Don't count preserved values as useless.
8fc68cba
AO
10031 (cselib_invalidate_mem): Likewise.
10032 (cselib_record_set): Likewise.
10033 (struct set): Renamed to cselib_set, moved to cselib.h.
10034 (cselib_record_sets): Adjust. Call hook.
10035 (cselib_process_insn): Reset table when it would be cleared.
10036 (dump_cselib_val): New.
10037 (dump_cselib_table): New.
10038 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
10039 (remove_forwarder_block): Support moving debug stmts.
10040 * cselib.h (cselib_record_sets_hook): Declare.
10041 (cselib_expand_callback): New type.
10042 (cselib_expand_value_rtx_cb): Declare.
10043 (cselib_reset_table_with_next_value): Declare.
10044 (cselib_get_next_unknown_value): Declare.
10045 (cselib_preserve_value): Declare.
10046 (cselib_preserved_value_p): Declare.
10047 (cselib_preserve_only_values): Declare.
10048 (dump_cselib_table): Declare.
10049 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
10050 (try_crossjump_to_edge): Likewise.
10051 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after
10052 dominated blocks when debug stmts are present.
10053 * simplify-rtx.c (delegitimize_mem_from_attrs): New.
10054 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
10055 (set_var_live_on_entry): Likewise.
10056 * loop-invariant.c (find_invariants_bb): Skip debug insns.
10057 * cfglayout.c (curr_location, last_location): Make static.
10058 (set_curr_insn_source_location): Don't avoid bouncing.
10059 (get_curr_insn_source_location): New.
10060 (get_curr_insn_block): New.
10061 (duplicate_insn_chain): Handle debug insns.
10062 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
10063 into debug stmts.
10064 * common.opt (fcompare-debug): Move to sort order.
10065 (fdump-unnumbered-links): Likewise.
10066 (fvar-tracking-assignments): New.
10067 (fvar-tracking-assignments-toggle): New.
10068 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
10069 because of debug stmts.
10070 (mark_stmt_if_obviously_necessary): Mark debug stmts.
10071 (eliminate_unnecessary_stmts): Walk dominated blocks before
10072 dominators.
10073 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
10074 * ira.c (memref_used_between_p): Skip debug insns.
10075 (update_equiv_regs): Likewise.
10076 * sched-deps.c (sd_lists_size): Accept empty list.
10077 (sd_init_insn): Mark debug insns.
10078 (sd_finish_insn): Unmark them.
10079 (sd_add_dep): Reject non-debug deps on debug insns.
10080 (fixup_sched_groups): Give debug insns group treatment.
10081 Skip debug insns.
10082 (sched_analyze_reg): Don't mark debug insns for sched before call.
10083 (sched_analyze_2): Handle debug insns.
10084 (sched_analyze_insn): Compute next non-debug insn. Handle debug
10085 insns.
10086 (deps_analyze_insn): Handle debug insns.
10087 (deps_start_bb): Skip debug insns.
10088 (init_deps): Initialize last_debug_insn.
10089 * tree-ssa.c (target_for_debug_bind): New.
10090 (find_released_ssa_name): New.
10091 (propagate_var_def_into_debug_stmts): New.
10092 (propagate_defs_into_debug_stmts): New.
10093 (verify_ssa): Skip debug bind stmts without values.
10094 (warn_uninialized_vars): Skip debug stmts.
10095 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
10096 * rtl.c (rtx_equal_p_cb): Handle VALUEs.
10097 (rtx_equal_p): Likewise.
10098 * ira-costs.c (scan_one_insn): Skip debug insns.
10099 (process_bb_node_for_hard_reg_moves): Likewise.
10100 * rtl.h (DEBUG_INSN_P): New.
10101 (NONDEBUG_INSN_P): New.
10102 (MAY_HAVE_DEBUG_INSNS): New.
10103 (INSN_P): Accept debug insns.
10104 (RTX_FRAME_RELATED_P): Likewise.
10105 (INSN_DELETED_P): Likewise
10106 (PAT_VAR_LOCATION_DECL): New.
10107 (PAT_VAR_LOCATION_LOC): New.
10108 (PAT_VAR_OCATION_STATUS): New.
10109 (NOTE_VAR_LOCATION_DECL): Reimplement.
10110 (NOTE_VAR_LOCATION_LOC): Likewise.
10111 (NOTE_VAR_LOCATION_STATUS): Likewise.
10112 (INSN_VAR_LOCATION): New.
10113 (INSN_VAR_LOCATION_DECL): New.
10114 (INSN_VAR_LOCATION_LOC): New.
10115 (INSN_VAR_LOCATION_STATUS): New.
10116 (gen_rtx_UNKNOWN_VAR_LOC): New.
10117 (VAR_LOC_UNKNOWN_P): New.
10118 (NOTE_DURING_CALL_P): New.
10119 (SCHED_GROUP_P): Accept debug insns.
10120 (emit_debug_insn_before): Declare.
10121 (emit_debug_insn_before_noloc): Declare.
10122 (emit_debug_insn_beore_setloc): Declare.
10123 (emit_debug_insn_after): Declare.
10124 (emit_debug_insn_after_noloc): Declare.
10125 (emit_debug_insn_after_setloc): Declare.
10126 (emit_debug_insn): Declare.
10127 (make_debug_insn_raw): Declare.
10128 (prev_nondebug_insn): Declare.
10129 (next_nondebug_insn): Declare.
10130 (delegitimize_mem_from_attrs): Declare.
10131 (get_max_insn_count): Declare.
10132 (wrap_constant): Declare.
10133 (unwrap_constant): Declare.
10134 (get_curr_insn_source_location): Declare.
10135 (get_curr_insn_block): Declare.
10136 * tree-inline.c (insert_debug_decl_map): New.
10137 (processing_debug_stmt): New.
10138 (remap_decl): Don't create new mappings in debug stmts.
10139 (remap_gimple_op_r): Don't add references in debug stmts.
10140 (copy_tree_body_r): Likewise.
10141 (remap_gimple_stmt): Handle debug bind stmts.
10142 (copy_bb): Skip debug stmts.
10143 (copy_edges_for_bb): Likewise.
10144 (copy_debug_stmt): New.
10145 (copy_debug_stmts): New.
10146 (copy_body): Copy debug stmts at the end.
10147 (insert_init_debug_bind): New.
10148 (insert_init_stmt): Take id. Skip and emit debug stmts.
ed9d5a4a 10149 (setup_one_parameter): Remap variable earlier, register debug mapping.
8fc68cba
AO
10150 (estimate_num_insns): Skip debug stmts.
10151 (expand_call_inline): Preserve debug_map.
10152 (optimize_inline_calls): Check for no debug_stmts left-overs.
10153 (unsave_expr_now): Preserve debug_map.
10154 (copy_gimple_seq_and_replace_locals): Likewise.
10155 (tree_function_versioning): Check for no debug_stmts left-overs.
10156 Init and destroy debug_map as needed. Split edges unconditionally.
10157 (build_duplicate_type): Init and destroy debug_map as needed.
10158 * tree-inline.h: Include gimple.h instead of pointer-set.h.
10159 (struct copy_body_data): Add debug_stmts and debug_map.
10160 * sched-int.h (struct ready_list): Add n_debug.
10161 (struct deps): Add last_debug_insn.
10162 (DEBUG_INSN_SCHED_P): New.
10163 (BOUNDARY_DEBUG_INSN_P): New.
10164 (SCHEDULE_DEBUG_INSN_P): New.
10165 (sd_iterator_cond): Accept empty list.
10166 * combine.c (create_log_links): Skip debug insns.
10167 (combine_instructions): Likewise.
10168 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
10169 return value is always unshared.
10170 (struct rtx_subst_pair): New.
10171 (auto_adjust_pair): New.
10172 (propagate_for_debug_subst): New.
10173 (propagate_for_debug): New.
10174 (try_combine): Skip debug insns. Propagate removed defs into
10175 debug insns.
10176 (next_nonnote_nondebug_insn): New.
10177 (distribute_notes): Use it. Skip debug insns.
10178 (distribute_links): Skip debug insns.
10179 * tree-outof-ssa.c (set_location_for_edge): Likewise.
10180 * resource.c (mark_target_live_regs): Likewise.
10181 * var-tracking.c: Include cselib.h and target.h.
10182 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
10183 MO_VAL_SET.
10184 (micro_operation_type_name): New.
10185 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
10186 (struct micro_operation_def): Update comments.
10187 (decl_or_value): New type. Use instead of decls.
10188 (struct emit_note_data_def): Add vars.
10189 (struct attrs_def): Use decl_or_value.
10190 (struct variable_tracking_info_def): Add permp, flooded.
10191 (struct location_chain_def): Update comment.
10192 (struct variable_part_def): Use decl_or_value.
10193 (struct variable_def): Make var_part a variable length array.
10194 (valvar_pool): New.
10195 (scratch_regs): New.
10196 (cselib_hook_called): New.
10197 (dv_is_decl_p): New.
10198 (dv_is_value_p): New.
10199 (dv_as_decl): New.
10200 (dv_as_value): New.
10201 (dv_as_opaque): New.
10202 (dv_onepart_p): New.
10203 (dv_pool): New.
10204 (IS_DECL_CODE): New.
10205 (check_value_is_not_decl): New.
10206 (dv_from_decl): New.
10207 (dv_from_value): New.
10208 (dv_htab_hash): New.
10209 (variable_htab_hash): Use it.
10210 (variable_htab_eq): Support values.
10211 (variable_htab_free): Free from the right pool.
10212 (attrs_list_member, attrs_list_insert): Use decl_or_value.
10213 (attrs_list_union): Adjust.
10214 (attrs_list_mpdv_union): New.
10215 (tie_break_pointers): New.
10216 (canon_value_cmp): New.
10217 (unshare_variable): Return possibly-modified slot.
10218 (vars_copy_1): Adjust.
10219 (var_reg_decl_set): Adjust. Split out of...
10220 (var_reg_set): ... this.
10221 (get_init_value): Adjust.
10222 (var_reg_delete_and_set): Adjust.
10223 (var_reg_delete): Adjust.
10224 (var_regno_delete): Adjust.
10225 (var_mem_decl_set): Split out of...
10226 (var_mem_set): ... this.
10227 (var_mem_delete_and_set): Adjust.
10228 (var_mem_delete): Adjust.
10229 (val_store): New.
10230 (val_reset): New.
10231 (val_resolve): New.
10232 (variable_union): Adjust. Speed up merge of 1-part vars.
10233 (variable_canonicalize): Use unshared slot.
10234 (VALUED_RECURSED_INTO): New.
10235 (find_loc_in_1pdv): New.
10236 (struct dfset_merge): New.
10237 (insert_into_intersection): New.
10238 (intersect_loc_chains): New.
10239 (loc_cmp): New.
10240 (canonicalize_loc_order_check): New.
10241 (canonicalize_values_mark): New.
10242 (canonicalize_values_star): New.
10243 (variable_merge_over_cur): New.
10244 (variable_merge_over_src): New.
10245 (dataflow_set_merge): New.
10246 (dataflow_set_equiv_regs): New.
10247 (remove_duplicate_values): New.
10248 (struct dfset_post_merge): New.
10249 (variable_post_merge_new_vals): New.
10250 (variable_post_merge_perm_vals): New.
10251 (dataflow_post_merge_adjust): New.
10252 (find_mem_expr_in_1pdv): New.
10253 (dataflow_set_preserve_mem_locs): New.
10254 (dataflow_set_remove_mem_locs): New.
10255 (dataflow_set_clear_at_call): New.
10256 (onepart_variable_different_p): New.
10257 (variable_different_p): Use it.
ed9d5a4a 10258 (dataflow_set_different_1): Adjust. Make detailed dump more verbose.
8fc68cba
AO
10259 (track_expr_p): Add need_rtl parameter. Don't generate rtl
10260 if not needed.
10261 (track_loc_p): Pass it true.
10262 (struct count_use_info): New.
10263 (find_use_val): New.
10264 (replace_expr_with_values): New.
10265 (log_op_type): New.
10266 (use_type): New, partially split out of...
10267 (count_uses): ... this. Count new micro-ops.
10268 (count_uses_1): Adjust.
10269 (count_stores): Adjust.
10270 (count_with_sets): New.
10271 (VAL_NEEDS_RESOLUTION): New.
10272 (VAL_HOLDS_TRACK_EXPR): New.
10273 (VAL_EXPR_IS_COPIED): New.
10274 (VAL_EXPR_IS_CLOBBERED): New.
10275 (add_uses): Adjust. Generate new micro-ops.
10276 (add_uses_1): Adjust.
10277 (add_stores): Generate new micro-ops.
10278 (add_with_sets): New.
10279 (find_src_status): Adjust.
10280 (find_src_set_src): Adjust.
10281 (compute_bb_dataflow): Use dataflow_set_clear_at_call.
10282 Handle new micro-ops. Canonicalize value equivalances.
10283 (vt_find_locations): Compute total size of hash tables for
10284 dumping. Perform merge for var-tracking-assignments. Don't
10285 disregard single-block loops.
10286 (dump_attrs_list): Handle decl_or_value.
10287 (dump_variable): Take variable. Deal with decl_or_value.
10288 (dump_variable_slot): New.
10289 (dump_vars): Use it.
10290 (dump_dataflow_sets): Adjust.
10291 (set_slot_part): New, extended to support one-part variables
10292 after splitting out of...
10293 (set_variable_part): ... this.
10294 (clobber_slot_part): New, split out of...
10295 (clobber_variable_part): ... this.
10296 (delete_slot_part): New, split out of...
10297 (delete_variable_part): .... this.
10298 (check_wrap_constant): New.
10299 (vt_expand_loc_callback): New.
10300 (vt_expand_loc): New.
10301 (emit_note_insn_var_location): Adjust. Handle values. Handle
10302 EMIT_NOTE_AFTER_CALL_INSN.
10303 (emit_notes_for_differences_1): Adjust. Handle values.
10304 (emit_notes_for_differences_2): Likewise.
10305 (emit_notes_for_differences): Adjust.
ed9d5a4a
UB
10306 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes.
10307 Adjust. Handle new micro-ops.
8fc68cba
AO
10308 (vt_add_function_parameters): Adjust. Create and bind values.
10309 (vt_initialize): Adjust. Initialize scratch_regs and
10310 valvar_pool, flooded and perm.. Initialize and use cselib. Log
10311 operations. Move some code to count_with_sets and add_with_sets.
10312 (delete_debug_insns): New.
10313 (vt_debug_insns_local): New.
10314 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
10315 cselib.
10316 (var_tracking_main): If var-tracking-assignments is enabled
10317 but var-tracking isn't, delete debug insns and leave. Likewise
10318 if we exceed limits or fail the stack adjustments tests, and
10319 after all var-tracking processing.
10320 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
10321 (dataflow_set): Add traversed_vars.
10322 (value_chain, const_value_chain): New typedefs.
10323 (value_chain_pool, value_chains): New variables.
10324 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
10325 add_value_chains, add_cselib_value_chains, remove_value_chain,
10326 remove_value_chains, remove_cselib_value_chains): New functions.
10327 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
10328 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
10329 static inlines.
10330 (shared_hash_find_slot_unshare, shared_hash_find_slot,
10331 shared_hash_find_slot_noinsert, shared_hash_find): Update.
10332 (dst_can_be_shared): New variable.
10333 (unshare_variable): Unshare set->vars if shared, use shared_hash_*.
10334 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
10335 different from set->vars, look up slot again instead of using the
10336 passed in slot.
10337 (dataflow_set_init): Initialize traversed_vars.
10338 (variable_union): Use shared_hash_*. Use initially NO_INSERT
10339 lookup if set->vars is shared. Don't keep slot cleared before
10340 calling unshare_variable. Unshare set->vars if needed. Adjust
10341 unshare_variable callers. Clear dst_can_be_shared if needed.
10342 Even ->refcount == 1 vars must be unshared if set->vars is shared
10343 and var needs to be modified.
10344 (dataflow_set_union): Set traversed_vars during canonicalization.
10345 (VALUE_CHANGED, DECL_CHANGED): Define.
14e58be0 10346 (set_dv_changed, dv_changed_p): New static inlines.
8fc68cba
AO
10347 (track_expr_p): Clear DECL_CHANGED.
10348 (dump_dataflow_sets): Set it.
10349 (variable_was_changed): Call set_dv_changed.
10350 (emit_note_insn_var_location): Likewise.
10351 (changed_variables_stack): New variable.
10352 (check_changed_vars_1, check_changed_vars_2): New functions.
10353 (emit_notes_for_changes): Do nothing if changed_variables is
10354 empty. Traverse changed_variables with check_changed_vars_1,
10355 call check_changed_vars_2 on each changed_variables_stack entry.
10356 (emit_notes_in_bb): Add SET argument. Just clear it at the
ed9d5a4a 10357 beginning, use it instead of local &set, don't destroy it at the end.
8fc68cba
AO
10358 (vt_emit_notes): Call dataflow_set_clear early on all
10359 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
10360 computed set, dataflow_set_clear also VTI(bb)->in when we are
10361 done with the basic block. Initialize changed_variables_stack,
10362 free it afterwards. If ENABLE_CHECKING verify that after noting
10363 differences to an empty set value_chains hash table is empty.
10364 (vt_initialize): Initialize value_chains and value_chain_pool.
10365 (vt_finalize): Delete value_chains htab, free value_chain_pool.
10366 (variable_tracking_main): Call dump_dataflow_sets before calling
10367 vt_emit_notes, not after it.
10368 * tree-flow.h (propagate_defs_into_debug_stmts): Declare.
10369 (propagate_var_def_into_debug_stmts): Declare.
10370 * df-problems.c (df_lr_bb_local_compute): Skip debug insns.
10371 (df_set_note): Reject debug insns.
10372 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
10373 add notes to debug insns.
10374 (df_note_bb_compute): Adjust. Likewise.
10375 (df_simulate_uses): Skip debug insns.
10376 (df_simulate_initialize_backwards): Likewise.
10377 * reg-stack.c (subst_stack_regs_in_debug_insn): New.
10378 (subst_stack_regs_pat): Reject debug insns.
10379 (convert_regs_1): Handle debug insns.
10380 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
10381 (print-rtl.o): Depend on cselib.h.
10382 (cselib.o): Depend on TREE_PASS_H.
10383 (var-tracking.o): Depend on cselib.h and TARGET_H.
ed9d5a4a 10384 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
8fc68cba
AO
10385 (init_ready_list): Skip boundary debug insns.
10386 (add_branch_dependences): Skip debug insns.
ed9d5a4a 10387 (free_block_dependencies): Check for blocks with only debug insns.
8fc68cba
AO
10388 (compute_priorities): Likewise.
10389 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
10390 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
10391 all callers.
10392 (gimple_build_debug_bind_stat): New.
10393 (empty_body_p): Skip debug stmts.
10394 (gimple_has_side_effects): Likewise.
10395 (gimple_rhs_has_side_effects): Likewise.
10396 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
10397 (gimple_build_debug_bind_stat): Declare.
10398 (gimple_build_debug_bind): Define.
10399 (is_gimple_debug): New.
10400 (gimple_debug_bind_p): New.
10401 (gimple_debug_bind_get_var): New.
10402 (gimple_debug_bind_get_value): New.
10403 (gimple_debug_bind_get_value_ptr): New.
10404 (gimple_debug_bind_set_var): New.
10405 (gimple_debug_bind_set_value): New.
10406 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
10407 (gimple_debug_bind_reset_value): New.
10408 (gimple_debug_bind_has_value_p): New.
10409 (gsi_next_nondebug): New.
10410 (gsi_prev_nondebug): New.
10411 (gsi_start_nondebug_bb): New.
10412 (gsi_last_nondebug_bb): New.
10413 * sched-vis.c (print_pattern): Handle VAR_LOCATION.
10414 (print_insn): Handle DEBUG_INSN.
10415 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
10416 of first insn prevail.
10417 (first_stmt): Skip debug stmts.
10418 (first_non_label_stmt): Likewise.
10419 (last_stmt): Likewise.
10420 (has_zero_uses_1): New.
10421 (single_imm_use_1): New.
10422 (verify_gimple_debug): New.
10423 (verify_types_in_gimple_stmt): Handle debug stmts.
10424 (verify_stmt): Likewise.
10425 (debug_loop_num): Skip debug stmts.
10426 (remove_edge_and_dominated_blocks): Remove dominators last.
ed9d5a4a 10427 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
8fc68cba
AO
10428 (linearize_expr): Likewise.
10429 * config/i386/i386.c (ix86_delegitimize_address): Call
10430 default implementation.
ed9d5a4a 10431 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
8fc68cba
AO
10432 (group_barrier_needed): Skip debug insns.
10433 (emit_insn_group_barriers): Likewise.
10434 (emit_all_insn_group_barriers): Likewise.
10435 (ia64_variable_issue): Handle debug insns.
10436 (ia64_dfa_new_cycle): Likewise.
10437 (final_emit_insn_group_barriers): Skip debug insns.
10438 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
10439 def cfa without frame.
10440 (process_set): Likewise.
10441 (process_for_unwind_directive): Pass frame on.
10442 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
10443 (rs6000_delegitimize_address): New.
10444 (rs6000_debug_adjust_cost): Handle debug insns.
10445 (is_microcoded_insn): Likewise.
10446 (is_cracked_insn): Likewise.
10447 (is_nonpipeline_insn): Likewise.
10448 (insn_must_be_first_in_group): Likewise.
10449 (insn_must_be_last_in_group): Likewise.
10450 (force_new_group): Likewise.
10451 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
10452 contains only debug insns.
10453 (rtl_merge_blocks): Skip debug insns.
10454 (purge_dead_edges): Likewise.
10455 (rtl_block_ends_with_call_p): Skip debug insns.
10456 * dce.c (deletable_insn_p): Handle VAR_LOCATION.
10457 (mark_reg_dependencies): Skip debug insns.
10458 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
ed9d5a4a 10459 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
8fc68cba
AO
10460 * tree-ssa-threadedge.c
10461 (record_temporary_equivalences_from_stmts): Skip debug stmts.
10462 * regcprop.c (replace_oldest_value_addr): Skip debug insns.
10463 (replace_oldest_value_mem): Use ALL_REGS for debug insns.
10464 (copyprop_hardreg_forward_1): Handle debug insns.
10465 * reload1.c (reload): Skip debug insns. Replace unassigned
10466 pseudos in debug insns with their equivalences.
10467 (eliminate_regs_in_insn): Skip debug insns.
10468 (emit_input_reload_insns): Skip debug insns at first, adjust
10469 them later.
10470 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
10471 (get_indirect_ref_operands): Pass opf_no_vops on.
10472 (get_expr_operands): Likewise. Skip debug stmts.
10473 (parse_ssa_operands): Scan debug insns with opf_no_vops.
10474
cd6ea7a2
RH
104752009-09-01 Richard Henderson <rth@redhat.com>
10476
14e58be0 10477 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
cd6ea7a2
RH
10478 stmt_ends_pp_p statements at least once.
10479 * tree-vrp.c (vrp_initialize): Likewise.
10480 (vrp_visit_stmt): Be prepared for non-interesting stmts.
10481
d3bc57f2
DS
104822009-09-01 Dodji Seketeli <dodji@redhat.com>
10483
10484 PR bootstrap/41205
10485 Fix AIX bootstrap after PR debug/30161
10486 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
10487 that is a GNU extension.
10488 (tmpl_value_parm_die_table): Move the definition of this global
10489 outside #ifdef DWARF2_DEBUGGING_INFO region.
10490
71c00b5c
RG
104912009-09-01 Richard Guenther <rguenther@suse.de>
10492
10493 * tree.c (tree_expr_size): New function.
10494 * tree.h (tree_expr_size): Declare.
10495 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
10496 * builtins.c (fold_builtin_memory_op): Use tree_expr_size.
10497 * langhooks.c (lhd_expr_size): Remove.
10498 * langhooks.h (struct lang_hooks): Remove expr_size.
10499 * explow.c (expr_size): Use tree_expr_size.
10500 (int_expr_size): Likewise.
10501 * langhooks-def.h (lhd_expr_size): Remove.
10502 (LANG_HOOKS_EXPR_SIZE): Likewise.
10503 (LANG_HOOKS_INITIALIZER): Adjust.
10504
58f986ca
RG
105052009-09-01 Richard Guenther <rguenther@suse.de>
10506
10507 * tree-flow.h (mark_addressable): Move declaration ...
10508 * tree.h (mark_addressable): ... here.
10509 * stmt.c (expand_asm_operands): Use mark_addressable, not
10510 lang_hooks.mark_addressable.
10511 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
10512 LANG_HOOKS_MARK_ADDRESSABLE.
10513 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
10514 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
10515
5fa162c0
CD
105162009-08-31 Chris Demetriou <cgd@google.com>
10517
10518 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
10519 vectorize if not TARGET_SSE2.
10520
453503d6
DD
105212009-08-31 DJ Delorie <dj@redhat.com>
10522
10523 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
10524 registers if no coprocessor is enabled.
10525
f9329c35
DS
105262009-08-31 Dodji Seketeli <dodji@redhat.com>
10527
10528 PR debug/30161
10529 * cgraph.h (cgraph_get_node): Declare ...
10530 * cgraph.c (cgraph_get_node): ... new function.
10531 * dwarf2out.c (gen_generic_params_dies,
10532 generic_parameter_die, tree_add_const_value_attribute_for_decl,
10533 make_ith_pack_parameter_name,
10534 append_entry_to_tmpl_value_parm_die_table,
10535 gen_remaining_tmpl_value_param_die_attribute): New functions.
10536 (gen_subprogram_die): Generate debug info for template parameters
10537 if debug info level is higher than DINFO_LEVEL_TERSE.
10538 Use tree_add_const_value_attribute_for_decl instead of
10539 tree_add_const_value_attribute.
10540 (gen_const_die): Use tree_add_const_value_attribute_for_decl
10541 instead of tree_add_const_value_attribute.
10542 (gen_struct_or_union_type_die): Generate debug
10543 info for template parameters if debug info level is higher than
10544 DINFO_LEVEL_TERSE.
10545 (tree_add_const_value_attribute): Handle integral and pointer
10546 constants. Update comment.
10547 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
10548 (dwarf_attr_name): Support DW_AT_GNU_template_name.
10549 (reference_to_unused): Fix thinko. Remove redundant predicates from
10550 tests.
10551 (tree_add_const_value_attribute): Make this work for constant
10552 expressions only.
10553 tree_add_const_value_attribute_for_decl is to be used for variable
10554 DECLs now.
10555 (add_location_or_const_value_attribute): Use
10556 tree_add_const_value_attribute_for_decl now.
10557 (dwarf2out_finish): Emit the DW_AT_const_value attribute of
10558 DW_TAG_template_value_param DIEs after function DIEs have been
10559 emitted.
10560 * langhooks.h (lang_hooks_for_types): Add
10561 get_argument_pack_elems.
10562 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
10563 (lang_hooks): Added get_innermost_generic_parms,
10564 get_innermost_generic_args.
10565 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
10566 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
10567 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
10568 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
10569
e756464b
DD
105702009-08-31 DJ Delorie <dj@redhat.com>
10571
10572 * config/mep/mep.c (machine_function): Add frame_locked flag. Set
10573 it once we start generating the prologue or epilogue.
5fa162c0
CD
10574 (mep_call_saves_register): If the frame is locked, re-use
10575 cached values.
e756464b
DD
10576 (mep_assign_save_slots): New, broken out from mep_expand_prologue.
10577 (mep_expand_prologue): Call it.
10578 (mep_expand_epilogue): Likewise.
10579 (mep_start_function): Use the same logic as mep_expand_prologue.
10580 (mep_pass_by_reference): Make logic more readable.
10581 (mep_return_in_memory): Zero-sized objects are passed in memory.
10582 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
10583
e2abde5f
RG
105842009-08-31 Richard Guenther <rguenther@suse.de>
10585
10586 * builtins.c (fold_builtin_memory_op): Use the alias oracle
10587 to query if the memory regions for memmove overlap.
10588 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
10589 asserts on pointers, instead deal with odd trees.
10590 (ptr_derefs_may_alias_p): Likewise.
10591 (refs_may_alias_p_1): Constructor bases also never alias.
10592
c4331d93
GP
105932009-08-31 Gerald Pfeifer <gerald@pfeifer.com>
10594
10595 * doc/install.texi (Final install): Adjust reference on where to
10596 order printed manuals.
10597
40a99889
OH
105982009-08-30 Olivier Hainque <hainque@adacore.com>
10599
10600 * dwarf2out.c (switch_to_frame_table_section): Move
10601 definition prior to first use.
10602
a778c4e7
RG
106032009-08-30 Richard Guenther <rguenther@suse.de>
10604
10605 PR tree-optimization/41186
10606 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
10607 (ao_ref_init_from_ptr_and_size): New function.
10608 (ref_maybe_used_by_call_p_1): Be more precise tracking
10609 used ranges for builtin functions.
10610 (ref_maybe_used_by_call_p): Adjust.
10611 (call_may_clobber_ref_p_1): Be more precise tracking clobbered
10612 ranges for builtin functions.
10613 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
10614
e85122be
AM
106152009-08-30 Alan Modra <amodra@bigpond.net.au>
10616
10617 PR target/41081
10618 * fwprop.c (get_reg_use_in): Delete.
10619 (free_load_extend): New function.
10620 (forward_propagate_subreg): Use it.
10621
2d606e03
KK
106222009-08-29 Kaz Kojima <kkojima@gcc.gnu.org>
10623
10624 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
10625
ce557b74
KT
106262009-08-29 Kai Tietz<kai.tietz@onevision.com>
10627
d1eda136
L
10628 PR/41184
10629 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
10630 padding.
ce557b74 10631
6d83cb32
DR
106322009-08-29 Douglas B Rupp <rupp@gnat.com>
10633
10634 * crtstuff.c (__do_global_dtors_aux): Use atexit if no
10635 fini or fini_array section.
10636
211694b6
SP
106372009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10638
10639 * graphite-dependences.c (graphite_legal_transform_bb): Call
10640 pbb_remove_duplicate_pdrs.
10641 * graphite-poly.c (can_collapse_pdr): Removed.
10642 (pdr_find_duplicate): Removed.
10643 (can_collapse_pdrs): New.
10644 (pbb_remove_duplicate_pdrs): New.
10645 (new_poly_dr): Do not look for duplicates.
10646 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
10647 (PBB_PDR_DUPLICATES_REMOVED): New.
10648 (pbb_remove_duplicate_pdrs): Declared.
10649
7bd2a8a7
SP
106502009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10651
10652 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
10653 the strides by multiplying by PDR_NB_REFS.
10654 * graphite-poly.c (can_collapse_pdr): New.
10655 (pdr_find_duplicate): New.
10656 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
10657 Initialize PDR_NB_REFS.
10658 * graphite-poly.h (struct poly_dr): Add field nb_refs.
10659 (PDR_NB_REFS): New.
10660 (new_poly_dr): Number of subscripts is a graphite_dim_t.
10661
93b2db87
SP
106622009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10663
10664 PR middle-end/40965
10665 * graphite-poly.c (apply_poly_transforms): Remove legality test before
10666 any transform.
10667
d8eeb078
SP
106682009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10669
10670 * graphite-dependences.c (pddr_original_scattering): Return NULL
10671 for read-read dependence relations.
10672 * graphite-poly.h (enum poly_dr_type): Fix comment.
10673 (pdr_read_p): New.
10674 (pdr_write_p): New.
10675 (pdr_may_write_p): New.
10676
e6dec0fb
SP
106772009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10678
10679 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
10680 (struct poly_dr): Same.
10681 (new_poly_dr): Same.
10682 * graphite-poly.c (new_poly_dr): Same.
10683 * graphite-dependences.c (dot_deps): Disable call to system.
10684
3ff4c25d
CC
106852009-08-28 Cary Coutant <ccoutant@google.com>
10686
10687 PR debug/41063
10688 * dwarf2out.c (gen_type_die_with_usage): Use proper context for
10689 struct/union/enum types local to a function.
10690
baf4b881
KT
106912009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
10692 Sebastian Pop <sebastian.pop@amd.com>
10693
10694 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
10695 pbb_strip_mine_time_depth. Changed the implementation so that
10696 transformation is expressed as a transformation on
10697 time (scatttering) dimensions. Also, ensures that the 2d+1
10698 scheduling format is preserved.
10699 (pbb_strip_mine_profitable_p): Profitability is based on the
10700 iteration number of a given time (scattering) dimension,
10701 and not on a original loop depth dimension.
10702 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
10703 (pbb_do_strip_mine): Call psct_dynamic_dim.
10704 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
10705 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
10706 (pbb_nb_dynamic_scattering_transform): New.
10707 (psct_dynamic_dim): New.
10708
059a5f9f
KT
107092009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
10710
10711 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
10712 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
10713 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
10714 * graphite-interchange.c (build_linearized_memory_access): Same.
10715 (memory_stride_in_loop): Same.
10716
afae0207
SP
107172009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10718
10719 * graphite-dependences.c (pddr_original_scattering): New.
10720 (graphite_legal_transform_dr): Call pddr_original_scattering.
10721 (dot_deps_1): New.
10722 (dot_deps): New.
10723 * graphite-dependences.h (dot_deps): Declared.
10724 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
10725 (print_pdr): Print PDR_ID.
10726 * graphite-poly.h (struct poly_dr): Add field id.
10727 (PDR_ID): New.
10728 (pbb_index): New.
10729 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
10730
f8e0bb8b
SP
107312009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10732
10733 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
10734 not delete the original dependence relation.
10735
e37f165f
SP
107362009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10737
10738 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
10739 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
10740 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
10741 (free_poly_ddr): New.
10742 (pddr_is_empty): New.
10743 (dependence_polyhedron_1): Now returns a poly_ddr_p.
10744 (dependence_polyhedron): Same. Remove useless gcc_assert.
10745 Remove fprintfs.
10746 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
10747 (graphite_carried_dependence_level_k): Call pddr_is_empty.
10748 * graphite-dependences.h (enum poly_dependence_kind): New.
10749 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
10750 (PDRP_SOURCE): Renamed PDDR_SOURCE.
10751 (PDRP_SINK): Renamed PDDR_SINK.
10752 (PDRP_DDP): Renamed PDDR_DDP.
10753 (PDDR_KIND): New.
10754 (free_poly_ddr): Declared.
10755 * graphite-poly.c (new_scop): Use the new hash function names.
10756 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
10757 into original_pddrs.
10758 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
10759
45e76e9f
SP
107602009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10761
10762 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
10763 bounds with LT_EXPR to make niter analysis more precise on code
10764 generated by Graphite.
10765
66b466c3
SP
107662009-08-28 Sebastian Pop <sebastian.pop@amd.com>
10767
10768 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
10769 (graphite_legal_transform_bb): Same.
10770 (poly_drs_may_alias_p): Same.
10771
81fa17da
RG
107722009-08-28 Richard Guenther <rguenther@suse.de>
10773
10774 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
10775
a858e912
JB
107762009-08-28 Jan Beulich <jbeulich@novell.com>
10777
10778 * config/i386/netware.c: Include langhooks.h.
10779 (i386_nlm_encode_section_info): Simplify.
10780 (netware_override_options): Delete.
10781 * config/i386/netware.h (netware_override_options): Delete
10782 declaration.
10783 (OVERRIDE_OPTIONS): Delete definition.
10784 (SUBTARGET_OVERRIDE_OPTIONS): Define.
10785 (ASM_COMMENT_START): Define.
10786 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
10787
39ba7b7d
JB
107882009-08-28 Jan Beulich <jbeulich@novell.com>
10789
10790 * configure.ac: For in-tree ld, do a plain version check to
10791 determine whether comdat groups are supported.
10792 * configure: Regenerate.
10793
7e49a4b3
OH
107942009-08-28 Olivier Hainque <hainque@adacore.com>
10795
10796 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
10797 always defined. Reflect definition or absence of such for
10798 COLLECT_EXPORT_LIST. Readability helper.
10799 (scanfilter): New enum, to help control what symbols
10800 are to be considered or ignored by scan_prog_file.
10801 (enum pass): Rename as "scanpass", moved together with scanfilter
10802 prior to scan_prog_file's prototype.
10803 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
10804 Group prototype with the scanpass/scanfilter definitions, factorize
10805 head comments for the several implementations at the prototype.
10806 (main): Reorganize the first pass link control to let AIX
10807 drag only the needed frame tables in executables. Prevent
10808 frame tables collection during the scan aimed at static ctors.
10809 Pre-link and scan for frame tables later to compensate.
10810 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
10811 A C statement to issue assembly directives that create a reference
10812 to the given DWARF table identifier label from the current function
10813 section.
10814 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
10815 to differentiate first time section entry. Only emit a .data
10816 tables start identifier label the first time around.
10817 (switch_to_frame_table_section): New function. Helper for
10818 output_call_frame_info to switch possibly BACK into the eh_frame
10819 or the debug_frame section depending on FOR_EH.
10820 (output_call_frame_info): Use helper to first enter the proper
10821 frame section.
10822 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
10823 emit a link to the frame table start label from each function
10824 section.
10825 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
10826 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
10827 * config/rs6000/rs6000-protos.h: Declare it.
10828 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
10829
a7d6f306
KK
108302009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
10831
10832 * config/sh/sh.c (split_branches): Check the result of
10833 next_active_insn.
10834
715fda99
SE
108352009-08-27 Steve Ellcey <sje@cup.hp.com>
10836
10837 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
10838 using -pthread -fopenmp
10839
2711df18
GP
108402009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
10841
10842 * doc/service.texi (service directory): Update URL.
10843
2b3b22d3
UB
108442009-08-27 Uros Bizjak <ubizjak@gmail.com>
10845
10846 PR rtl-optimization/40861
10847 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
10848 extract word from a multi-word subreg for negative byte positions.
10849
30ed9d3d
TG
108502009-08-27 Tristan Gingold <gingold@adacore.com>
10851 Douglas B Rupp <rupp@gnat.com>
10852
2b3b22d3 10853 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
30ed9d3d
TG
10854 (SECTION_VMS_OVERLAY): Define.
10855 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
10856 attribute.
10857 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
10858 for common_object.
10859 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
10860 common_object declarations.
10861 (ia64_section_type_flags): Set section flag for common_object.
10862 * config/ia64/ia64-protos.h
10863 (ia64_vms_output_aligned_decl_common): Declare.
10864 (ia64_vms_elf_asm_named_section): Declare.
10865
f994f296
MM
108662009-08-27 Michael Matz <matz@suse.de>
10867
10868 * expr.c (expand_expr_real_2): New function taking exploded
10869 unary or binary expression, split out from ...
10870 (expand_expr_real_1): ... here. Move over all unary/binary
10871 switch parts to above function, in particular these codes:
10872 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
10873 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
10874 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
10875 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
10876 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
10877 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
10878 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
10879 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
10880 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
10881 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
10882 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
10883 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
10884 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
10885 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
10886 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
10887 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
10888 VEC_PACK_FIX_TRUNC_EXPR.
10889 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
10890 full expression.
10891
c6a21142
RG
108922009-08-27 Richard Guenther <rguenther@suse.de>
10893
10894 * gengtype.c (main): Handle uint64_t.
10895 * ipa-utils.c (get_base_var): Indent properly.
10896 * tree-ssa-live.c (debug_scope_block): New function.
10897 * tree-flow.h (debug_scope_block): Declare.
10898 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
10899 * basic-block.h (enum profile_status): Rename to
10900 enum profile_status_d.
10901 (x_profile_status): Adjust type.
10902
7842a9db
DS
109032009-08-27 Dodji Seketeli <dodji@redhat.com>
10904
d1eda136 10905 PR debug/41170
7842a9db
DS
10906 * dwarf2out.c (get_context_die): Declare this static function.
10907 (gen_type_die_with_usage): Make sure a DIE is a generated for
10908 the context of a typedef.
10909
98f6d48a
AS
109102009-08-26 Anatoly Sokolov <aesok@post.ru>
10911
10912 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
10913 switch.
10914
6f5a62e9
RS
109152009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
10916
10917 * config/mips/mips-protos.h (mips_output_sync): Declare.
10918 (mips_sync_loop_insns): Likewise.
10919 (mips_output_sync_loop): Replace first two parameters with an rtx.
10920 * config/mips/mips.c (mips_multi_member): New structure.
10921 (mips_multi_members): New variable.
10922 (mips_multi_start): New function.
10923 (mips_multi_add): Likewise.
10924 (mips_multi_add_insn): Likewise.
10925 (mips_multi_add_label): Likewise.
10926 (mips_multi_last_index): Likewise.
10927 (mips_multi_copy_insn): Likewise.
10928 (mips_multi_set_operand): Likewise.
10929 (mips_multi_write): Likewise.
10930 (mips_print_operand_punctuation): Remove '%|' and '%-'.
10931 (mips_init_print_operand_punct): Update accordingly.
10932 (mips_start_ll_sc_sync_block): New function.
10933 (mips_end_ll_sc_sync_block): Likewise.
10934 (mips_output_sync): Likewise.
10935 (mips_sync_insn1_template): Likewise.
10936 (mips_sync_insn2_template): Likewise.
10937 (mips_get_sync_operand): Likewise.
10938 (mips_process_sync_loop): Likewise.
10939 (mips_output_sync_loop): Use mips_process_sync_loop.
10940 (mips_sync_loop_insns): New function.
10941 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
10942 (MIPS_COMPARE_AND_SWAP_12): Likewise.
10943 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
10944 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
10945 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
10946 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
10947 (MIPS_SYNC_OLD_OP_12): Likewise.
10948 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
10949 (MIPS_SYNC_NEW_OP_12): Likewise.
10950 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
10951 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
10952 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
10953 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
10954 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
10955 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
10956 * config/mips/mips.md (sync_mem): New attribute.
10957 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
10958 (sync_exclusive_mask, sync_required_oldval): Likewise.
10959 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
10960 (sync_release_barrier): Likewise.
10961 (length): Handle sync loops.
10962 (sync): Use mips_output_sync.
10963 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
10964 (sync_compare_and_swap<mode>): Set the new sync_* attributes
10965 and use mips_output_sync_loop.
10966 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
10967 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
10968 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
10969 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
10970 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
10971 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
10972 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
10973 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
10974 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
10975
6b8b9e42
RG
109762009-08-26 Richard Guenther <rguenther@suse.de>
10977
10978 PR middle-end/41163
10979 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
10980 the types to not match.
10981 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
10982 verification.
10983 * tree-ssa.c (useless_type_conversion_p): Conversions to
10984 pointers to unprototyped functions are useless.
10985
bacd3fb6
RG
109862009-08-26 Richard Guenther <rguenther@suse.de>
10987
5fa162c0
CD
10988 * tree-ssa-structalias.c (create_variable_info_for): Remove strange
10989 whole-program condition, prepare to be called for non-globals.
bacd3fb6
RG
10990 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
10991 params build a representative with known type and track its fields.
10992
7b3d1847
UB
109932009-08-26 Uros Bizjak <ubizjak@gmail.com>
10994
10995 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
10996 clearing by a taken branch.
10997 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
10998 effectively after bbro pass.
10999 (sync_nand<mode>): Ditto.
11000 (sync_old_<fetchop_name><mode>): Ditto.
11001 (sync_old_nand<mode>): Ditto.
11002 (sync_new_<fetchop_name><mode>): Dito.
11003 (sync_new_nand<mode>): Ditto.
11004 (sync_compare_and_swap<mode>_1): Ditto.
11005 (*sync_compare_and_swap<mode>): Ditto.
11006 (sync_lock_test_and_set<mode>_1): Ditto.
11007 ("sync_lock_test_and_set<mode>): Ditto.
11008
edb89024
DR
110092009-08-25 Douglas B Rupp <rupp@gnat.com>
11010
11011 * hwint.h (HOST_LONG_FORMAT): New macro
11012 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
11013 Use HOST_PTR_PRINTF.
11014 * system.h (HOST_PTR_PRINTF): Resurrect old macro
11015 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
11016 (HOST_PTR_PRINTF): Document.
11017
5c1a2bb1
JH
110182009-08-25 Jan Hubicka <jh@suse.cz>
11019
11020 * config/i386/bmmintrin.h: Replace by #error.
11021
11022 Revert:
11023 Michael Meissner <michael.meissner@amd.com>
11024 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11025 Tony Linthicum <tony.linthicum@amd.com>
11026
11027 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
11028 (TARGET_ROUND): New macro for the round/ptest instructions which
11029 are shared between SSE4.1 and SSE5.
11030 (OPTION_MASK_ISA_ROUND): Ditto.
11031 (OPTION_ISA_ROUND): Ditto.
11032 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
11033 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
11034
11035 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
11036 (-mfused-madd): New switch to give users control over whether the
11037 compiler optimizes to use the multiply/add SSE5 instructions.
11038
11039 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
11040 (ix86_handle_option): Turn off 3dnow if -msse5.
11041 (override_options): Add SSE5 support.
11042 (print_operand): %Y prints comparison codes for SSE5 com/pcom
11043 instructions.
11044 (ix86_expand_sse_movcc): Add SSE5 support.
11045 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
11046 vector type to the next largest size.
11047 (ix86_expand_sse5_pack): New function to use pperm to pack a
11048 vector type to the next smallest size.
11049 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
11050 (IX86_BUILTIN_FMADDSD): Ditto.
11051 (IX86_BUILTIN_FMADDPS): Ditto.
11052 (IX86_BUILTIN_FMADDPD): Ditto.
11053 (IX86_BUILTIN_FMSUBSS): Ditto.
11054 (IX86_BUILTIN_FMSUBSD): Ditto.
11055 (IX86_BUILTIN_FMSUBPS): Ditto.
11056 (IX86_BUILTIN_FMSUBPD): Ditto.
11057 (IX86_BUILTIN_FNMADDSS): Ditto.
11058 (IX86_BUILTIN_FNMADDSD): Ditto.
11059 (IX86_BUILTIN_FNMADDPS): Ditto.
11060 (IX86_BUILTIN_FNMADDPD): Ditto.
11061 (IX86_BUILTIN_FNMSUBSS): Ditto.
11062 (IX86_BUILTIN_FNMSUBSD): Ditto.
11063 (IX86_BUILTIN_FNMSUBPS): Ditto.
11064 (IX86_BUILTIN_FNMSUBPD): Ditto.
11065 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
11066 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
11067 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
11068 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
11069 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
11070 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
11071 (IX86_BUILTIN_PPERM): Ditto.
11072 (IX86_BUILTIN_PERMPS): Ditto.
11073 (IX86_BUILTIN_PERMPD): Ditto.
11074 (IX86_BUILTIN_PMACSSWW): Ditto.
11075 (IX86_BUILTIN_PMACSWW): Ditto.
11076 (IX86_BUILTIN_PMACSSWD): Ditto.
11077 (IX86_BUILTIN_PMACSWD): Ditto.
11078 (IX86_BUILTIN_PMACSSDD): Ditto.
11079 (IX86_BUILTIN_PMACSDD): Ditto.
11080 (IX86_BUILTIN_PMACSSDQL): Ditto.
11081 (IX86_BUILTIN_PMACSSDQH): Ditto.
11082 (IX86_BUILTIN_PMACSDQL): Ditto.
11083 (IX86_BUILTIN_PMACSDQH): Ditto.
11084 (IX86_BUILTIN_PMADCSSWD): Ditto.
11085 (IX86_BUILTIN_PMADCSWD): Ditto.
11086 (IX86_BUILTIN_PHADDBW): Ditto.
11087 (IX86_BUILTIN_PHADDBD): Ditto.
11088 (IX86_BUILTIN_PHADDBQ): Ditto.
11089 (IX86_BUILTIN_PHADDWD): Ditto.
11090 (IX86_BUILTIN_PHADDWQ): Ditto.
11091 (IX86_BUILTIN_PHADDDQ): Ditto.
11092 (IX86_BUILTIN_PHADDUBW): Ditto.
11093 (IX86_BUILTIN_PHADDUBD): Ditto.
11094 (IX86_BUILTIN_PHADDUBQ): Ditto.
11095 (IX86_BUILTIN_PHADDUWD): Ditto.
11096 (IX86_BUILTIN_PHADDUWQ): Ditto.
11097 (IX86_BUILTIN_PHADDUDQ): Ditto.
11098 (IX86_BUILTIN_PHSUBBW): Ditto.
11099 (IX86_BUILTIN_PHSUBWD): Ditto.
11100 (IX86_BUILTIN_PHSUBDQ): Ditto.
11101 (IX86_BUILTIN_PROTB): Ditto.
11102 (IX86_BUILTIN_PROTW): Ditto.
11103 (IX86_BUILTIN_PROTD): Ditto.
11104 (IX86_BUILTIN_PROTQ): Ditto.
11105 (IX86_BUILTIN_PROTB_IMM): Ditto.
11106 (IX86_BUILTIN_PROTW_IMM): Ditto.
11107 (IX86_BUILTIN_PROTD_IMM): Ditto.
11108 (IX86_BUILTIN_PROTQ_IMM): Ditto.
11109 (IX86_BUILTIN_PSHLB): Ditto.
11110 (IX86_BUILTIN_PSHLW): Ditto.
11111 (IX86_BUILTIN_PSHLD): Ditto.
11112 (IX86_BUILTIN_PSHLQ): Ditto.
11113 (IX86_BUILTIN_PSHAB): Ditto.
11114 (IX86_BUILTIN_PSHAW): Ditto.
11115 (IX86_BUILTIN_PSHAD): Ditto.
11116 (IX86_BUILTIN_PSHAQ): Ditto.
11117 (IX86_BUILTIN_FRCZSS): Ditto.
11118 (IX86_BUILTIN_FRCZSD): Ditto.
11119 (IX86_BUILTIN_FRCZPS): Ditto.
11120 (IX86_BUILTIN_FRCZPD): Ditto.
11121 (IX86_BUILTIN_CVTPH2PS): Ditto.
11122 (IX86_BUILTIN_CVTPS2PH): Ditto.
11123 (IX86_BUILTIN_COMEQSS): Ditto.
11124 (IX86_BUILTIN_COMNESS): Ditto.
11125 (IX86_BUILTIN_COMLTSS): Ditto.
11126 (IX86_BUILTIN_COMLESS): Ditto.
11127 (IX86_BUILTIN_COMGTSS): Ditto.
11128 (IX86_BUILTIN_COMGESS): Ditto.
11129 (IX86_BUILTIN_COMUEQSS): Ditto.
11130 (IX86_BUILTIN_COMUNESS): Ditto.
11131 (IX86_BUILTIN_COMULTSS): Ditto.
11132 (IX86_BUILTIN_COMULESS): Ditto.
11133 (IX86_BUILTIN_COMUGTSS): Ditto.
11134 (IX86_BUILTIN_COMUGESS): Ditto.
11135 (IX86_BUILTIN_COMORDSS): Ditto.
11136 (IX86_BUILTIN_COMUNORDSS): Ditto.
11137 (IX86_BUILTIN_COMFALSESS): Ditto.
11138 (IX86_BUILTIN_COMTRUESS): Ditto.
11139 (IX86_BUILTIN_COMEQSD): Ditto.
11140 (IX86_BUILTIN_COMNESD): Ditto.
11141 (IX86_BUILTIN_COMLTSD): Ditto.
11142 (IX86_BUILTIN_COMLESD): Ditto.
11143 (IX86_BUILTIN_COMGTSD): Ditto.
11144 (IX86_BUILTIN_COMGESD): Ditto.
11145 (IX86_BUILTIN_COMUEQSD): Ditto.
11146 (IX86_BUILTIN_COMUNESD): Ditto.
11147 (IX86_BUILTIN_COMULTSD): Ditto.
11148 (IX86_BUILTIN_COMULESD): Ditto.
11149 (IX86_BUILTIN_COMUGTSD): Ditto.
11150 (IX86_BUILTIN_COMUGESD): Ditto.
11151 (IX86_BUILTIN_COMORDSD): Ditto.
11152 (IX86_BUILTIN_COMUNORDSD): Ditto.
11153 (IX86_BUILTIN_COMFALSESD): Ditto.
11154 (IX86_BUILTIN_COMTRUESD): Ditto.
11155 (IX86_BUILTIN_COMEQPS): Ditto.
11156 (IX86_BUILTIN_COMNEPS): Ditto.
11157 (IX86_BUILTIN_COMLTPS): Ditto.
11158 (IX86_BUILTIN_COMLEPS): Ditto.
11159 (IX86_BUILTIN_COMGTPS): Ditto.
11160 (IX86_BUILTIN_COMGEPS): Ditto.
11161 (IX86_BUILTIN_COMUEQPS): Ditto.
11162 (IX86_BUILTIN_COMUNEPS): Ditto.
11163 (IX86_BUILTIN_COMULTPS): Ditto.
11164 (IX86_BUILTIN_COMULEPS): Ditto.
11165 (IX86_BUILTIN_COMUGTPS): Ditto.
11166 (IX86_BUILTIN_COMUGEPS): Ditto.
11167 (IX86_BUILTIN_COMORDPS): Ditto.
11168 (IX86_BUILTIN_COMUNORDPS): Ditto.
11169 (IX86_BUILTIN_COMFALSEPS): Ditto.
11170 (IX86_BUILTIN_COMTRUEPS): Ditto.
11171 (IX86_BUILTIN_COMEQPD): Ditto.
11172 (IX86_BUILTIN_COMNEPD): Ditto.
11173 (IX86_BUILTIN_COMLTPD): Ditto.
11174 (IX86_BUILTIN_COMLEPD): Ditto.
11175 (IX86_BUILTIN_COMGTPD): Ditto.
11176 (IX86_BUILTIN_COMGEPD): Ditto.
11177 (IX86_BUILTIN_COMUEQPD): Ditto.
11178 (IX86_BUILTIN_COMUNEPD): Ditto.
11179 (IX86_BUILTIN_COMULTPD): Ditto.
11180 (IX86_BUILTIN_COMULEPD): Ditto.
11181 (IX86_BUILTIN_COMUGTPD): Ditto.
11182 (IX86_BUILTIN_COMUGEPD): Ditto.
11183 (IX86_BUILTIN_COMORDPD): Ditto.
11184 (IX86_BUILTIN_COMUNORDPD): Ditto.
11185 (IX86_BUILTIN_COMFALSEPD): Ditto.
11186 (IX86_BUILTIN_COMTRUEPD): Ditto.
11187 (IX86_BUILTIN_PCOMEQUB): Ditto.
11188 (IX86_BUILTIN_PCOMNEUB): Ditto.
11189 (IX86_BUILTIN_PCOMLTUB): Ditto.
11190 (IX86_BUILTIN_PCOMLEUB): Ditto.
11191 (IX86_BUILTIN_PCOMGTUB): Ditto.
11192 (IX86_BUILTIN_PCOMGEUB): Ditto.
11193 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
11194 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
11195 (IX86_BUILTIN_PCOMEQUW): Ditto.
11196 (IX86_BUILTIN_PCOMNEUW): Ditto.
11197 (IX86_BUILTIN_PCOMLTUW): Ditto.
11198 (IX86_BUILTIN_PCOMLEUW): Ditto.
11199 (IX86_BUILTIN_PCOMGTUW): Ditto.
11200 (IX86_BUILTIN_PCOMGEUW): Ditto.
11201 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
11202 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
11203 (IX86_BUILTIN_PCOMEQUD): Ditto.
11204 (IX86_BUILTIN_PCOMNEUD): Ditto.
11205 (IX86_BUILTIN_PCOMLTUD): Ditto.
11206 (IX86_BUILTIN_PCOMLEUD): Ditto.
11207 (IX86_BUILTIN_PCOMGTUD): Ditto.
11208 (IX86_BUILTIN_PCOMGEUD): Ditto.
11209 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
11210 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
11211 (IX86_BUILTIN_PCOMEQUQ): Ditto.
11212 (IX86_BUILTIN_PCOMNEUQ): Ditto.
11213 (IX86_BUILTIN_PCOMLTUQ): Ditto.
11214 (IX86_BUILTIN_PCOMLEUQ): Ditto.
11215 (IX86_BUILTIN_PCOMGTUQ): Ditto.
11216 (IX86_BUILTIN_PCOMGEUQ): Ditto.
11217 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
11218 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
11219 (IX86_BUILTIN_PCOMEQB): Ditto.
11220 (IX86_BUILTIN_PCOMNEB): Ditto.
11221 (IX86_BUILTIN_PCOMLTB): Ditto.
11222 (IX86_BUILTIN_PCOMLEB): Ditto.
11223 (IX86_BUILTIN_PCOMGTB): Ditto.
11224 (IX86_BUILTIN_PCOMGEB): Ditto.
11225 (IX86_BUILTIN_PCOMFALSEB): Ditto.
11226 (IX86_BUILTIN_PCOMTRUEB): Ditto.
11227 (IX86_BUILTIN_PCOMEQW): Ditto.
11228 (IX86_BUILTIN_PCOMNEW): Ditto.
11229 (IX86_BUILTIN_PCOMLTW): Ditto.
11230 (IX86_BUILTIN_PCOMLEW): Ditto.
11231 (IX86_BUILTIN_PCOMGTW): Ditto.
11232 (IX86_BUILTIN_PCOMGEW): Ditto.
11233 (IX86_BUILTIN_PCOMFALSEW): Ditto.
11234 (IX86_BUILTIN_PCOMTRUEW): Ditto.
11235 (IX86_BUILTIN_PCOMEQD): Ditto.
11236 (IX86_BUILTIN_PCOMNED): Ditto.
11237 (IX86_BUILTIN_PCOMLTD): Ditto.
11238 (IX86_BUILTIN_PCOMLED): Ditto.
11239 (IX86_BUILTIN_PCOMGTD): Ditto.
11240 (IX86_BUILTIN_PCOMGED): Ditto.
11241 (IX86_BUILTIN_PCOMFALSED): Ditto.
11242 (IX86_BUILTIN_PCOMTRUED): Ditto.
11243 (IX86_BUILTIN_PCOMEQQ): Ditto.
11244 (IX86_BUILTIN_PCOMNEQ): Ditto.
11245 (IX86_BUILTIN_PCOMLTQ): Ditto.
11246 (IX86_BUILTIN_PCOMLEQ): Ditto.
11247 (IX86_BUILTIN_PCOMGTQ): Ditto.
11248 (IX86_BUILTIN_PCOMGEQ): Ditto.
11249 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
11250 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
11251 (enum multi_arg_type): New enum for describing the various SSE5
11252 intrinsic argument types.
11253 (bdesc_multi_arg): New table for SSE5 intrinsics.
11254 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
11255 (ix86_expand_multi_arg_builtin): New function for creating SSE5
11256 intrinsics.
11257 (ix86_expand_builtin): Add SSE5 intrinsic support.
11258 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
11259 operand instructions.
11260 (ix86_expand_sse5_multiple_memory): New function to split the
11261 second memory reference from SSE5 instructions.
11262 (type_has_variadic_args_p): Delete in favor of stdarg_p.
11263 (ix86_return_pops_args): Use stdarg_p to determine if the function
11264 has variable arguments.
11265 (ix86_setup_incoming_varargs): Ditto.
11266 (x86_this_parameter): Ditto.
11267
11268 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
11269 declaration.
11270 (ix86_expand_sse5_pack): Ditto.
11271 (ix86_sse5_valid_op_p): Ditto.
11272 (ix86_expand_sse5_multiple_memory): Ditto.
11273
11274 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
11275 constant for SSE5 support.
11276 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
11277 (UNSPEC_SSE5_TRUEFALSE): Ditto.
11278 (UNSPEC_SSE5_PERMUTE): Ditto.
11279 (UNSPEC_SSE5_ASHIFT): Ditto.
11280 (UNSPEC_SSE5_LSHIFT): Ditto.
11281 (UNSPEC_FRCZ): Ditto.
11282 (UNSPEC_CVTPH2PS): Ditto.
11283 (UNSPEC_CVTPS2PH): Ditto.
11284 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
11285 (PCOM_TRUE): Ditto.
11286 (COM_FALSE_S): Ditto.
11287 (COM_FALSE_P): Ditto.
11288 (COM_TRUE_S): Ditto.
11289 (COM_TRUE_P): Ditto.
11290 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
11291 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
11292 types.
11293 (memory attribute): Ditto.
11294 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
11295 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
11296 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
11297 (floor<mode>2): Ditto.
11298 (ceil<mode>2): Ditto.
11299 (btrunc<mode>2): Ditto.
11300 (nearbyintdf2): Ditto.
11301 (nearbyintsf2): Ditto.
11302 (sse_setccsf): Disable if SSE5.
11303 (sse_setccdf): Ditto.
11304 (sse5_setcc<mode>): New support for SSE5 conditional move.
11305 (sse5_pcmov_<mode>): Ditto.
11306
11307 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
11308 (SSEMODEF4): Ditto.
11309 (SSEMODEF2P): Ditto.
11310 (ssemodesuffixf4): New mode attribute for SSE5.
11311 (ssemodesuffixf2s): Ditto.
11312 (ssemodesuffixf2c): Ditto.
11313 (sserotatemax): Ditto.
11314 (ssescalarmode): Ditto.
11315 (sse_maskcmpv4sf3): Disable if SSE5.
11316 (sse_maskcmpv2df3): Ditto.
11317 (sse_vmmaskcmpv4sf3): Ditto.
2b3b22d3 11318 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
5c1a2bb1
JH
11319 (sse5_vmfmadd<mode>4): Ditto.
11320 (sse5_fmsub<mode>4): Ditto.
11321 (sse5_vmfmsub<mode>4): Ditto.
11322 (sse5_fnmadd<mode>4): Ditto.
11323 (sse5_vmfnmadd<mode>4): Ditto.
11324 (sse5_fnmsub<mode>4): Ditto.
11325 (sse5_vmfnmsub<mode>4): Ditto.
11326 (sse5i_fmadd<mode>4): Ditto.
11327 (sse5i_fmsub<mode>4): Ditto.
11328 (sse5i_fnmadd<mode>4): Ditto.
11329 (sse5i_fnmsub<mode>4): Ditto.
11330 (sse5i_vmfmadd<mode>4): Ditto.
11331 (sse5i_vmfmsub<mode>4): Ditto.
11332 (sse5i_vmfnmadd<mode>4): Ditto.
11333 (sse5i_vmfnmsub<mode>4): Ditto.
11334 (mulv16qi3): Add SSE5 support.
11335 (mulv4si3): Ditto.
11336 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
11337 (sse2_mulv4si3): Disable if SSE5.
11338 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
11339 (sse4_1_roundps): Ditto.
11340 (sse4_1_roundsd): Ditto.
11341 (sse4_1_roundss): Ditto.
11342 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
11343 be generated.
11344 (sse_maskcmpsf3): Ditto.
11345 (sse_vmmaskcmpv4sf3): Ditto.
11346 (sse2_maskcmpv2df3): Ditto.
11347 (sse2_maskcmpdf3): Ditto.
11348 (sse2_vmmaskcmpv2df3): Ditto.
11349 (sse2_eq<mode>3): Ditto.
11350 (sse2_gt<mode>3): Ditto.
11351 (sse5_pcmov_<mode>): Add SSE5 support.
11352 (vec_unpacku_hi_v16qi): Ditto.
11353 (vec_unpacks_hi_v16qi): Ditto.
11354 (vec_unpacku_lo_v16qi): Ditto.
11355 (vec_unpacks_lo_v16qi): Ditto.
11356 (vec_unpacku_hi_v8hi): Ditto.
11357 (vec_unpacks_hi_v8hi): Ditto.
11358 (vec_unpacku_lo_v8hi): Ditto.
11359 (vec_unpacks_lo_v8hi): Ditto.
11360 (vec_unpacku_hi_v4si): Ditto.
11361 (vec_unpacks_hi_v4si): Ditto.
11362 (vec_unpacku_lo_v4si): Ditto.
11363 (vec_unpacks_lo_v4si): Ditto.
11364 (sse5_pmacsww): New SSE5 intrinsic insn.
11365 (sse5_pmacssww): Ditto.
11366 (sse5_pmacsdd): Ditto.
11367 (sse5_pmacssdd): Ditto.
11368 (sse5_pmacssdql): Ditto.
11369 (sse5_pmacssdqh): Ditto.
11370 (sse5_pmacsdqh): Ditto.
11371 (sse5_pmacsswd): Ditto.
11372 (sse5_pmacswd): Ditto.
11373 (sse5_pmadcsswd): Ditto.
11374 (sse5_pmadcswd): Ditto.
11375 (sse5_pcmov_<move>): Conditional move support on SSE5.
11376 (sse5_phaddbw): New SSE5 intrinsic insn.
11377 (sse5_phaddbd): Ditto.
11378 (sse5_phaddbq): Ditto.
11379 (sse5_phaddwd): Ditto.
11380 (sse5_phaddwq): Ditto.
11381 (sse5_phadddq): Ditto.
11382 (sse5_phaddubw): Ditto.
11383 (sse5_phaddubd): Ditto.
11384 (sse5_phaddubq): Ditto.
11385 (sse5_phadduwd): Ditto.
11386 (sse5_phadduwq): Ditto.
11387 (sse5_phaddudq): Ditto.
11388 (sse5_phsubbw): Ditto.
11389 (sse5_phsubwd): Ditto.
11390 (sse5_phsubdq): Ditto.
11391 (sse5_pperm): Ditto.
11392 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
11393 (sse5_pperm_zero_v16qi_v8hi): Ditto.
11394 (sse5_pperm_sign_v8hi_v4si): Ditto.
11395 (sse5_pperm_zero_v8hi_v4si): Ditto.
11396 (sse5_pperm_sign_v4si_v2di): Ditto.
11397 (sse5_pperm_sign_v4si_v2di): Ditto.
11398 (sse5_pperm_pack_v2di_v4si): Ditto.
11399 (sse5_pperm_pack_v4si_v8hi): Ditto.
11400 (sse5_pperm_pack_v8hi_v16qi): Ditto.
11401 (sse5_perm<mode>): New SSE5 intrinsic insn.
11402 (rotl<mode>3): Ditto.
11403 (sse5_rotl<mode>3): Ditto.
11404 (sse5_ashl<mode>3): Ditto.
11405 (sse5_lshl<mode>3): Ditto.
11406 (sse5_frcz<mode>2): Ditto.
11407 (sse5s_frcz<mode>2): Ditto.
11408 (sse5_cvtph2ps): Ditto.
11409 (sse5_cvtps2ph): Ditto.
11410 (sse5_vmmaskcmp<mode>3): Ditto.
11411 (sse5_com_tf<mode>3): Ditto.
11412 (sse5_maskcmp<mode>3): Ditto.
11413 (sse5_maskcmp_uns<mode>3): Ditto.
11414 (sse5_maskcmp_uns2<mode>3): Ditto.
11415 (sse5_pcom_tf<mode>3): Ditto.
7b3d1847
UB
11416
11417 * config/i386/predicates.md (sse5_comparison_float_operator):
11418 New predicate to match the comparison operators supported by
11419 the SSE5 com instruction.
5c1a2bb1
JH
11420 (ix86_comparison_int_operator): New predicate to match just the
11421 signed int comparisons.
11422 (ix86_comparison_uns_operator): New predicate to match just the
11423 unsigned int comparisons.
11424
11425 * doc/invoke.texi (-msse5): Add documentation.
11426 (-mfused-madd): Ditto.
11427
11428 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
11429
11430 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
11431 mmintrin-common.h.
11432 (x86_64-*-*): Ditto.
11433
11434 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
11435
11436 * config/i386/bmmintrin.h: New file, provide common x86 compiler
11437 intrinisics for SSE5.
11438
11439 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
11440 mmintrin-common.h.
11441
11442 * config/i386/mmintrin-common.h: New file, to contain common
11443 instructions between SSE4.1 and SSE5.
11444
11445 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
11446 FOREACH_FUNCTION_ARGS to iterate over the argument list.
11447 (gen_regparm_prefix): Ditto.
11448
11449 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
11450 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
11451 prototype_p to determine if a function is prototyped.
11452
f4e8a943
VV
114532009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
11454
11455 * c-common.c (c_common_reswords) add the alignof keyword,
11456 with same RID as __alignof and __alignof__
11457
7b5cbb57
AS
114582009-08-25 Anatoly Sokolov <aesok@post.ru>
11459
11460 * hooks.h (hook_bool_const_int_const_int_true): Declare.
11461 * hooks.c (hook_bool_const_int_const_int_true): New function.
11462 * target.h (struct gcc_target): Add can_eliminate field.
11463 * target-def.h (TARGET_CAN_ELIMINATE): Define.
11464 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
11465 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
11466 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
11467 (elim_table): Revise comment.
11468 * system.h (CAN_ELIMINATE): Poison.
11469 * defaults.h (CAN_ELIMINATE): Remove.
11470 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
11471
11472 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
11473 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
11474 Define macro.
11475 (alpha_vms_can_eliminate): Declare as static, change return type to
11476 bool.
11477 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
11478
11479 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
11480 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
11481 (arm_can_eliminate): New function.
11482
11483 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
11484 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
11485 (avr_can_eliminate): Declare as static.
11486 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
11487
11488 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
11489 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
11490 (bfin_can_eliminate): New function.
11491
11492 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
11493 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
11494 (crx_can_eliminate): New function.
7b3d1847 11495
7b5cbb57
AS
11496 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
11497 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
11498 (fr30_can_eliminate): New function.
11499
11500 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
11501 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
11502 (frv_can_eliminate): New function.
11503
11504 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
11505 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
11506 (h8300_can_eliminate): New function.
11507
11508 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
11509 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
11510 (i386_can_eliminate): Declare as static, change return type to bool.
11511 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
11512
11513 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
11514 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
11515 (ia64_can_eliminate): New function.
11516
11517 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
11518 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
11519 (iq2000_can_eliminate): New function.
11520
11521 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
11522 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
11523 (m32r_can_eliminate): New function.
11524
11525 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
11526 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
11527 (m68hc11_can_eliminate): New function.
11528
11529 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
11530 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
11531 (m68k_can_eliminate): New function.
11532
11533 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
11534 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
11535 (mep_can_eliminate): New function.
11536
11537 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
11538 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
11539 (mips_can_eliminate): New function.
11540
11541 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
11542 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
11543 (rs6000_can_eliminate): New function.
11544
11545 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
11546 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
11547 (s390_can_eliminate): Declare as static.
11548 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
11549
11550 * config/score/score.h (CAN_ELIMINATE): Remove macro.
11551 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
11552 (score_can_eliminate): New function.
11553
11554 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
11555 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
11556 (sparc_can_eliminate): Declare as static.
11557 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
11558
11559 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
11560 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
11561 (xstormy16_can_eliminate): New function.
11562
11563 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
11564 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
11565 (v850_can_eliminate): New function.
11566
e7f8fba9
UB
115672009-08-25 Uros Bizjak <ubizjak@gmail.com>
11568
11569 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
11570 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
11571 (*movdfcc_ext[1234]): Disable for IEEE mode.
11572
f76d6e6f
EB
115732009-08-25 Eric Botcazou <ebotcazou@adacore.com>
11574
11575 * gimplify.c (prepare_gimple_addressable): New static function.
11576 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
11577 it addressable.
11578 (gimplify_addr_expr): Invoke it similarly on the operand instead of
11579 manually fiddling with it.
11580
4df62c77
MM
115812009-08-25 Michael Matz <matz@suse.de>
11582
11583 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
11584 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
11585 full expression.
11586 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
11587 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
11588 (do_jump): Split out code for simple binary comparisons into ...
11589 (do_jump_1): ... this, taking the individual operands and code.
11590 Change callers to helper function above accordingly.
11591 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
11592 comparisons.
11593
8e7aa1f9
MM
115942009-08-25 Michael Matz <matz@suse.de>
11595
11596 * expr.h (struct separate_ops, sepops): New type for passing
11597 around an exploded simple expression.
11598 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
11599 Use this structure instead of expression tree.
11600 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
11601 expression, only its type.
11602 (expand_vec_cond_expr): Take type and individual operands instead
11603 of full expression.
11604 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
11605 expand_vec_shift_expr): Change prototype accordingly.
11606 * tree-vect-stmts.c (vectorizable_condition): Change call of
11607 expand_vec_cond_expr_p to pass only type.
11608 * expr.c (do_store_flags): Change prototype and implementation
11609 to take an exploded expression.
11610 (expand_expr_real_1): New local ops initialized with details
11611 of the full expression. Use it instead of full
11612 expression in calls to do_store_flags, expand_vec_cond_expr,
11613 expand_widen_pattern_expr and expand_vec_shift_expr.
11614
b32e7cdb
MM
116152009-08-25 Michael Matz <matz@suse.de>
11616
11617 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
11618 treeop2 initialized with first three operands of the full expression.
11619 Substitute all TREE_OPERAND (exp, [012]) calls with them.
11620
ce4a9de3
KT
116212009-08-25 Kai Tietz <kai.tietz@onevision.com>
11622
11623 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
11624 (__gthread_objc_condition_allocate): Mark arguments as unused.
11625 (__gthread_objc_condition_deallocate): Likewise.
11626 (__gthread_objc_condition_wait): Likewise.
11627 (__gthread_objc_condition_broadcast): Likewise.
11628 (__gthread_objc_condition_signal): Likewise.
11629 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
11630 (__gthread_objc_thread_id): Likewise.
11631
d69b8a03
JW
116322009-08-25 Janus Weil <janus@gcc.gnu.org>
11633
11634 PR middle-end/41149
11635 * tree-pretty-print.c (print_call_name): Print the correct call name
11636 for procedure pointer components.
11637
c3313412
SE
116382009-08-24 Steve Ellcey <sje@cup.hp.com>
11639
11640 * config/ia64/ia64.c (ia64_promote_function_mode): Call
11641 default_promote_function_mode when not VMS.
11642
c767899e
OH
116432009-08-24 Olivier Hainque <hainque@adacore.com>
11644
11645 * convert.c (convert_to_integer): Don't assume an input pointer is
11646 POINTER_SIZE wide. Fetch from the type instead.
11647
df58e648
RW
116482009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11649
11650 * configure.ac (AC_PREREQ): Bump to 2.64.
11651
2ef4a8e1
RAE
116522009-08-24 Rafael Avila de Espindola <espindola@google.com>
11653
11654 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
11655 (process_command): Don't search standard_exec_prefix_1 and
11656 standard_exec_prefix_2.
11657
c7e9ab97
RR
116582009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11659
7b3d1847
UB
11660 * config/arm/arm.c (output_return_instruction): Handle for
11661 unified syntax.
c7e9ab97 11662
3e2d9dcf
RR
116632009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11664
7b3d1847 11665 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
3e2d9dcf 11666
54f52b81
RR
116672009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11668
7b3d1847
UB
11669 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
11670 (*arm_movdf_vfp): Likewise.
54f52b81 11671
d44463a9
RR
116722009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11673
7b3d1847
UB
11674 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
11675 (vashr<mode>3): Rename from ashr<mode>3.
11676 (vlshr<mode>3): Rename from lshr<mode>3.
d44463a9 11677
b241b475
KT
116782009-08-24 Kai Tietz <kai.tietz@onevision.com>
11679
11680 PR/40786
5fa162c0 11681 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
b241b475
KT
11682 (check_format_info_main): Use scalar_identify_flag.
11683 (check_format_types): Check for scalar size identity if
11684 scalar_identify_flag is set.
11685 (printf_length_specs): Extend by new field.
11686 (asm_fprintf_length_specs): Likewise.
11687 (gcc_diag_length_specs): Likewise.
11688 (scanf_length_specs): Likewise.
11689 (strfmon_length_specs): Likewise.
11690 (gcc_gfc_length_specs): Likewise.
11691 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
11692 (ms_printf_flag_specs): Likewise.
11693 * c-format.h (format_length_info): Add new member scalar_identity_flag.
11694
8c40d061
UB
116952009-08-23 Uros Bizjak <ubizjak@gmail.com>
11696
11697 PR target/40718
11698 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
fe62197b 11699 (*call_value_pop_1): Ditto.
8c40d061 11700 (*sibcall_pop_1): New insn pattern.
fe62197b 11701 (*sibcall_value_pop_1): Ditto.
8c40d061 11702
0aa580f4
AM
117032009-08-23 Alan Modra <amodra@bigpond.net.au>
11704
11705 PR target/41081
11706 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
11707 ashrsi3_64): New.
11708
e25b7843
AM
117092009-08-23 Alan Modra <amodra@bigpond.net.au>
11710
11711 PR target/41081
11712 * fwprop.c (try_fwprop_subst): Allow multiple sets.
11713 (get_reg_use_in): New function.
11714 (forward_propagate_subreg): Propagate through subreg of zero_extend
11715 or sign_extend.
11716
79052be3
KK
117172009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
11718
11719 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
11720 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
11721
5213506e
RW
117222009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11723
70fa0efa
RW
11724 * configure.ac: Remove --with-datarootdir, --with-docdir,
11725 --with-htmldir switches. No need to call AC_SUBST for
11726 datarootdir, docdir, htmldir any more.
11727 * configure: Regenerate.
11728 * doc/install.texi (Configuration): Document --datarootdir,
11729 --docdir, --htmldir, --pdfdir; update documentation for
11730 --infodir, --mandir.
e7f8fba9
UB
11731 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
11732 M4 to 1.4.6.
70fa0efa 11733
5213506e
RW
11734 * aclocal.m4: Regenerate.
11735 * config.in: Regenerate.
11736 * configure: Regenerate.
11737
f2972bf8
DR
117382009-08-21 Douglas B Rupp <rupp@gnat.com>
11739 Olivier Hainque <hainque@adacore.com>
11740
11741 * config/ia64/ia64.c: Include libfuncs.h.
11742 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
11743 (ia64_expand_call): Use reg 25 on VMS.
11744 (ia64_initialize_trampoline): Fix for VMS ABI.
11745 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
11746 (ia64_function_arg): Initialize reg 25 on VMS.
11747 Fix OpenVMS ABI issues for varargs.
11748 For OpenVMS, emit the Argument Information register set in the
11749 incoming/sibcall case as well.
11750 (ia64_arg_type): New function.
11751 (ia64_function_arg_advance): Keep track of cum->words.
11752 Fix OpenVMS ABI issues for varargs.
11753 (ia64_function_value): On VMS, promote mode of non-aggregate types.
11754 (ia64_override_options): Set flag_no_common on VMS.
11755 (ia64_init_builtins): Disable FWRITE builtin.
11756 (ia64_asm_output_external): Call DO_CRTL_NAMES.
11757 (ia64_vms_init_libfuncs): Add decc$ routines.
11758 (ia64_vms_valid_pointer_mode): New function.
11759 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
11760 (ia64_promote_function_mode): New function
11761 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
11762 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
11763 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
11764 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
11765 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
11766 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
11767 Suppress trailing '#' if VALUE is numeric.
11768 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
11769 ia64_promote_function_mode.
11770 (TARGET_VALID_POINTER_MODE): Define.
11771
30402573
MM
117722009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11773
11774 PR target/40671
11775 * config/rs6000/rs6000.c (rs6000_override_options): Use
8c40d061 11776 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
30402573
MM
11777
11778 PR target/41145
11779 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
c89f5009 11780 reporting of vector + decimal/boolean/complex error.
30402573 11781
08ffd640
JJ
117822009-08-21 Jakub Jelinek <jakub@redhat.com>
11783
11784 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
11785 __vector double TYPE_DECL.
11786
46107b99
RE
117872009-08-21 Richard Earnshaw <rearnsha@arm.com>
11788
11789 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
11790 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
11791 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
11792 to pointer to enum machine_mode. Update all callers as needed.
11793
0f032845 117942009-08-21 Uros Bizjak <ubizjak@gmail.com>
7450a081
UB
11795
11796 * config/alpha/alpha.md (exception_receiver): Emit alternative
11797 GP load sequence if flag_reorder_blocks_and_partition is set.
11798 (*exception_receiver_2): Also enable when
11799 flag_reorder_blocks_and_partition is set.
11800
6d383c5e
MR
118012009-08-20 Matt Rice <ratmice@gmail.com>
11802 Diego Novillo <dnovillo@google.com>
11803
11804 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
11805 tree-ssa-sccvn.h.
11806
29cc57cf
RG
118072009-08-20 Richard Guenther <rguenther@suse.de>
11808
8c40d061 11809 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
29cc57cf
RG
11810 * c-tree.h (c_dup_lang_specific_decl): Remove.
11811 (struct lang_decl, struct lang_type): Move definitions ...
11812 * c-lang.h: ... here. New file.
11813 * c-decl.c: Include c-lang.h.
11814 (c_dup_lang_specific_decl): Remove.
11815 * c-typeck.c: Include c-lang.h.
11816 * Makefile.in (c-decl.o): Add c-lang.h dependency.
11817 (c-typeck.o): Likewise.
11818 * c-config-lang.in (gtfiles): Add c-lang.h.
11819 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
11820 like c-tree.h.
11821
7e9f2c0f
UB
118222009-08-20 Uros Bizjak <ubizjak@gmail.com>
11823
11824 * config/alpha/alpha.c (alpha_end_function): Do not clear
11825 crtl->emit structure and free insn locators if cfun->is_thunk is true,
11826 this is now handled in generic code.
11827
b0f86a7e
AK
118282009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
11829
11830 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
11831 (s390_z10_fix_long_loop_prediction): New function.
11832 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
11833 (s390_reorg): Walk over the INSNs and invoke
11834 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
11835
f1149235
AK
118362009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
11837
11838 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
11839 "*brx_64bit", "*brx_31bit"): New patterns.
11840 * config/s390/s390.c ('E'): New output modifier.
11841
a552b644 118422009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7e9f2c0f 11843 Richard Earnshaw <richard.earnshaw@arm.com>
a552b644 11844
7e9f2c0f
UB
11845 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
11846 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
a552b644 11847
2fd74bff
JDA
118482009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11849
11850 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
11851 patterns.
11852 * pa.c (emit_move_sequence): Check if address of operand1 is valid
11853 for mode mode of operand0 when doing secondary reload for SAR.
11854
b8e444f4
JJ
118552009-08-19 Jakub Jelinek <jakub@redhat.com>
11856
11857 PR middle-end/41123
11858 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
11859 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
11860
6c879482
JM
118612009-08-19 Jason Merrill <jason@redhat.com>
11862
11863 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
11864 supported template depth in C++0x.
11865
dc0c6451
JJ
118662009-08-19 Jakub Jelinek <jakub@redhat.com>
11867
11868 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
11869 free_after_compilation.
11870 * config/score/score7.c (score7_output_mi_thunk): Likewise.
11871 * config/score/score3.c (score3_output_mi_thunk): Likewise.
11872 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
11873 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
11874 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
11875 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
11876 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11877
9302a061
ILT
118782009-08-19 Ian Lance Taylor <iant@google.com>
11879
11880 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
11881 of (plus (mult (neg B) C) A).
11882
9600efe1
MM
118832009-08-18 Michael Matz <matz@suse.de>
11884
11885 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
11886 instead of comparing TYPE_MAIN_VARIANT for equality.
11887 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
11888 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
11889 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
11890 * gimplify.c (goa_lhs_expr_p): Ditto and use
11891 STRIP_USELESS_TYPE_CONVERSION.
11892
10174ddf
MM
118932009-08-18 Michael Matz <matz@suse.de>
11894
11895 * tree-ssa-structalias.c (create_variable_info_for): Also mark
11896 first field in a struct.
11897 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
11898
e72cee90
UB
118992009-08-18 Uros Bizjak <ubizjak@gmail.com>
11900
11901 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
11902 locators before emit_insn is called. Remove assert that
11903 cfun->is_thunk.
11904 (alpha_end_function): Clear crtl->emit structure and free insn
11905 locators if cfun->is_thunk is true.
11906
e31bcd1b
JM
119072009-08-18 Jason Merrill <jason@redhat.com>
11908
11909 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
11910 type if available.
11911 * configure.ac: Test for it.
11912 * configure, config.in: Regenerate.
11913 * doc/install.texi: Document --enable-gnu-unique-object.
11914
776e7174
RG
119152009-08-18 Richard Guenther <rguenther@suse.de>
11916
11917 PR middle-end/41094
11918 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
11919 pow(x,y*z) only if x is nonnegative.
11920
68a31530
JJ
119212009-08-18 Jakub Jelinek <jakub@redhat.com>
11922
11923 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
11924 on jumps.
11925
f3252b3c
JJ
11926 PR target/40971
11927 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
11928 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
11929
65655f79
DD
119302009-08-17 DJ Delorie <dj@redhat.com>
11931
11932 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
11933 * config/m32c/prologue.md (epilogue_freit): New.
11934 (fset_b): New.
11935 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
11936 (bank_switch_p): Likewise.
11937 (fast_interrupt_p): Likewise.
11938 (interrupt_p): Likewise.
11939 (m32c_conditional_register_usage): Round memregs size up.
11940 (need_to_save): We only need to save $a0 when we use ENTER.
11941 (interrupt_p): Check for fast_interrupt too.
11942 (bank_switch_p): New.
11943 (fast_interrupt_p): New.
11944 (m32c_attribute_table): Add bank_switch and fast_interrupt.
11945 (m32c_emit_prolog): Support bank switching and fast interrupts.
11946 * doc/extend.texi (Function Attributes): Add bank_switch and
11947 fast_interrupt.
11948
dfe6ba6d
DR
119492009-08-17 Douglas B Rupp <rupp@gnat.com>
11950
11951 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
11952 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
11953
dcad28fd
DR
119542009-08-16 Douglas B Rupp <rupp@gnat.com>
11955
8c40d061 11956 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
dcad28fd
DR
11957 (menu): Add IA-64/VMS Options.
11958 (IA-64/VMS Options): Likewise.
11959
30fff3d8
RS
119602009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
11961
11962 PR target/38599
11963 * config/mips/mips.md (*lwxs): Use :P for pointer values.
11964
cf5fb4b0
RS
119652009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
11966
11967 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
11968 (mips_pop_asm_switch): Likewise.
11969 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
11970 with...
11971 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
11972 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
11973 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
11974 (mips_print_operand_punctuation): Use them. Check mips_noreorder
11975 instead of set_noreorder.
11976 (mips_output_function_prologue): Use the new functions.
11977 (mips_output_function_epilogue): Likewise.
11978 (mips_need_noat_wrapper_p): New function, split out from...
11979 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
11980 Use mips_push_asm_switch and mips_pop_asm_switch.
11981 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
11982 and mips_pop_asm_switch.
11983 (ASM_OUTPUT_REG_POP): Likewise.
11984 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
11985 Use mips_pop_asm_switch.
11986 (mips_asm_switch): New structure.
11987 (set_noreorder, set_nomacro): Replace with...
11988 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
11989 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
11990 instead of set_nomacro.
11991 (fix_truncsfsi2_macro): Likewise.
11992 (cprestore): Likewise.
11993 (hazard): Use mips_noreorder instead of set_noreorder.
11994 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
11995
3eb96d01
UB
119962009-08-16 Uros Bizjak <ubizjak@gmail.com>
11997
8a067ce4 11998 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
3eb96d01
UB
11999 from prev_active_insn.
12000
164709cf
AS
120012009-08-16 Anatoly Sokolov <aesok@post.ru>
12002
12003 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
12004 * config/avr/avr.c (avr_override_options): Initialize
12005 avr_current_arch variable.
12006 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
12007 __AVR_HAVE_16BIT_SP__ according to the device type.
12008 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
12009 TARGET_TINY_STACK.
12010 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
12011 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
12012
5782bb7a
DS
120132009-08-16 Dodji Seketeli <dodji@redhat.com>
12014
52ac997d 12015 PR debug/37801
5782bb7a
DS
12016 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
12017 generating inlined subroutine die only. We shouldn't be
12018 called for anything else.
12019 (gen_block_die): Don't generate inline subroutine debug info for
12020 abstract blocks.
12021
07636543
SP
120222009-08-15 Sebastian Pop <sebastian.pop@amd.com>
12023
12024 * graphite-poly.c (print_pbb): Print PBB index.
12025
f263917c
SP
120262009-08-15 Sebastian Pop <sebastian.pop@amd.com>
12027
12028 PR middle-end/40981
12029 * graphite-interchange.c (ppl_max_for_le): Moved...
12030 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
12031 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
12032 ppl_Pointset_Powerset_C_Polyhedron_maximize.
12033 * graphite-ppl.h (ppl_max_for_le): Declared.
12034
c54d7dc9
OR
120352009-08-14 Olatunji Ruwase <tjruwase@google.com>
12036
12037 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
12038 supported on all platforms.
8c40d061
UB
12039 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
12040 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
c54d7dc9
OR
12041 * c-pragma.c: Likewise.
12042 * target-def.h (TARGET_INITIALIZER): Remove
12043 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
8c40d061 12044 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
c54d7dc9 12045
b874a90d
DR
120462009-08-14 Douglas B Rupp <rupp@gnat.com>
12047
12048 * config/ia64/fde-vms.c: New file.
12049 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
12050 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
12051 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
12052 (uw_frame_state_for): Only register a personality routine if it is
12053 known to be compatible with our expectations.
12054 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
12055 Declare unw_table_entry stack variable and
12056 mod all calls to _Unwind_FindTableEntry to add arg.
12057 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
12058 (_Unwind_FindTableEntry): Add arg to prototype.
12059
ac77b88e
EB
120602009-08-14 Eric Botcazou <ebotcazou@adacore.com>
12061
12062 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
12063 field 'signal_pfs_loc'.
12064 (uw_frame_state_for): Remove duplicate code dealing with leaf
12065 procedures without unwind info.
12066 If in the frame after unwinding through a signal handler, restore
12067 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
12068 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
12069 'pfs_loc' to the AR.PFS location in the signal context; instead
12070 set 'signal_pfs_loc'.
12071 Manually generate the unwind info for the AR.PFS register.
12072 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
12073 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
12074 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
12075 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
12076 instead set 'signal_pfs_loc'.
12077 Remove code preventing the AR.PFS register from being restored
12078 from the signal context.
12079
c24db304
DR
120802009-08-14 Douglas B Rupp <rupp@gnat.com>
12081 Tristan Gingold <gingold@adacore.com>
12082
12083 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
12084 * config/ia64/t-vms: New file.
12085 * config/ia64/vms64.h: New file.
12086 * config/ia64/vms.h: New file.
12087 * config/ia64/vms-crtinit.asm: New file.
12088 * config/ia64/vms_symvec_libgcc_s.opt: New file.
12089 * config/ia64/vms-unwind.h: New file.
12090
387c39e1
UB
120912009-08-14 Uros Bizjak <ubizjak@gmail.com>
12092
12093 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
12094 TFmode compares.
12095
2f440f6a
KG
120962009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12097
12098 PR middle-end/30789
8c40d061
UB
12099 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
12100 Move declaration...
2f440f6a
KG
12101 * real.h (do_mpc_arg2): ... here.
12102 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
12103 and RDIV_EXPR.
12104
fe83055d
RAE
121052009-08-14 Rafael Avila de Espindola <espindola@google.com>
12106
c54d7dc9
OR
12107 * final.c (add_debug_prefix_map): Don't use GC memory for
12108 old_prefix and new_prefix.
fe83055d 12109
1a15bfdc
RG
121102009-08-14 Richard Guenther <rguenther@suse.de>
12111
12112 * ipa-prop.c (compute_complex_pass_through): If we cannot
12113 compute a non-varying offset for IPA_JF_ANCESTOR punt.
12114
065312cf
UW
121152009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12116
12117 * c-lex.c (c_lex_with_flags): Increase size of local variable
12118 to avoid memory clobber.
12119
371015a8
PB
121202009-08-14 Paolo Bonzini <bonzini@gnu.org>
12121
12122 PR target/40934
12123 * config/i386/i386.c (ix86_fp_comparison_strategy):
387c39e1 12124 Only enable/disable sahf at function granularity.
371015a8 12125
94aca67a
HPN
121262009-08-14 Hans-Peter Nilsson <hp@axis.com>
12127
12128 PR rtl-optimization/41064
12129 * reload1.c (reload_as_needed): Don't call extract_insn
12130 for known invalid replacements after calling
12131 validate_replace_rtx_group and verify_changes.
12132
1262fd02
UB
121332009-08-14 Uros Bizjak <ubizjak@gmail.com>
12134
12135 PR target/41019
12136 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
12137 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
12138 ix86_expand_fp_vcond.
12139 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
12140 Assert that operation is supported by ix86_expand_int_vcond.
12141 (vcondu<SSEMODE124C8:mode>): Ditto.
12142
3e3877f8
DD
121432009-08-13 DJ Delorie <dj@redhat.com>
12144
12145 * config/i386/djgpp-stdint.h: New.
12146 * config.gcc (djgpp): Use it.
12147
91d1d521
KK
121482009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
12149
12150 * config/sh/sh.c (sh_override_options): When flag_exceptions or
1262fd02 12151 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
91d1d521 12152
2c6dd136
GS
121532009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
12154
387c39e1
UB
12155 * tree-ssa-loop-prefetch.c
12156 (prune_ref_by_group_reuse): Enhance probabilistic analysis
2c6dd136
GS
12157 for long-stride pruning.
12158 (compute_miss_rate): New function to compute the probability
387c39e1 12159 that two memory references access different cache lines.
2c6dd136 12160
241547bb
DK
121612009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
12162
12163 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
12164
e5fdcd8c
RG
121652009-08-13 Richard Guenther <rguenther@suse.de>
12166
12167 PR middle-end/41047
12168 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
12169 use the constant pointer type.
12170 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
12171 of CV qualifiers on the target pointer type.
12172 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
12173 conversion check before restrict check.
12174
d5652a5a
KK
121752009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
12176
12177 PR target/41029
12178 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
12179
d8158ff1
KK
121802009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
12181
12182 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
12183
88ccda10
RG
121842009-08-12 Richard Guenther <rguenther@suse.de>
12185
12186 PR tree-optimization/41011
12187 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
12188 and reference constructing.
12189
6eb29714
XDL
121902009-08-12 Xinliang David Li <davidxl@google.com>
12191
12192 PR tree-optimization/41012
12193 * tree-flow.h : New external interface.
12194 * gimple-low.c (check_call_arg): Change to public function.
12195 Remove argument mismatch check in lowering.
12196 * tree-inline.h (tree_can_inline_p): Interface change.
12197 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
12198 into this function.
f100a4a8 12199 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
6eb29714
XDL
12200 Call change to tree_can_inline_p function.
12201 (cgraph_decide_inlining_incrementally): Ditto.
12202
b2a58473
RS
122032009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
12204
12205 PR tree-optimization/41031
12206 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
12207 on the partition variable rather than promote_mode on the source
12208 type. Assert that the partition variable's type has the same
12209 mode as the source value's.
12210
666e3ceb
PB
122112009-08-12 Paolo Bonzini <bonzini@gnu.org>
12212
12213 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
12214 for for_return == 2.
12215 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
12216 comments.
12217 * calls.c (expand_call): Fix typo.
12218 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
12219 and PARM_DECL.
12220 * stmt.c (expand_value_return): Use promote_function_mode to copy out
12221 of pseudo.
12222 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
12223 * config/cris/cris.c (cris_promote_function_mode): Likewise.
12224 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
12225 * config/pa/pa.c (pa_promote_function_mode): Likewise.
12226
46107b99 122272009-08-12 Andrew Haley <aph@redhat.com>
353a58f7
AH
12228
12229 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
12230
4654745d
SP
122312009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12232
12233 PR bootstrap/40103
12234 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
12235
daad0278
RG
122362009-08-12 Richard Guenther <rguenther@suse.de>
12237
12238 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
12239 * gimplify.c (gimplify_modify_expr): Do not use
12240 lang_hooks.types_compatible_p.
12241 * tree-ssa.c (useless_type_conversion_p): For aggregates
12242 just return false if the canonical types differ.
12243
30de1632
SP
122442009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12245
12246 PR middle-end/40980
12247 * sese.c (convert_for_phi_arg): New.
12248 (add_guard_exit_phis): Use convert_for_phi_arg.
12249
8c31ebfa
SP
122502009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12251
12252 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
12253 unknown subscript upper bounds.
12254
fb9fb290
SP
122552009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12256 Pranav Garg <pranav.garg2107@gmail.com>
12257
12258 * graphite-interchange.c (gather_access_strides): Removed.
12259 (ppl_max_for_le): New.
12260 (build_linearized_memory_access): New.
12261 (memory_stride_in_loop): New.
12262 (pbb_interchange_profitable_p): Reimplemented.
12263 * graphite-ppl.h (ppl_new_id_map): New.
12264 (ppl_interchange): New.
12265
312aea7f
SP
122662009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12267
12268 * graphite-interchange.c (compute_subscript): Removed.
12269 (compute_array_size_cstr): Removed.
12270 (compute_array_size_poly): Removed.
12271 (compute_array_size): Removed.
12272 (gather_access_strides_poly): Removed.
12273 (gather_access_strides): Empty.
12274
25d7cc15
SP
122752009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12276
12277 * graphite-dependences.c (dependence_polyhedron_1): Replace
12278 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
12279 (graphite_legal_transform_dr): Same.
12280 (graphite_carried_dependence_level_k): Same.
12281 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
12282 Initialize PDR_NB_SUBSCRIPTS.
12283 (print_pdr_access_layout): Replace pdr_nb_subscripts with
12284 PDR_NB_SUBSCRIPTS.
12285 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
12286 (PDR_NB_SUBSCRIPTS): New.
12287 (pdr_nb_subscripts): Removed.
12288 (pdr_dim): Simplified.
12289 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
12290 with PDR_NB_SUBSCRIPTS.
12291
66096911
SP
122922009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12293
12294 * graphite-interchange.c (compute_array_size): Remove use of
12295 PDR_DATA_CONTAINER.
12296 * graphite-poly.c (new_poly_dr): Remove argument data_container.
12297 Do not initialize PDR_DATA_CONTAINER.
12298 (print_pdr): Do not print PDR_DATA_CONTAINER.
12299 * graphite-poly.h (struct poly_dr): Remove data_container field.
12300 (PDR_DATA_CONTAINER): Removed.
12301 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
12302 PDR_DATA_CONTAINER.
12303 (build_poly_dr): Same.
12304
7491e5f0
KT
123052009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
12306 Sebastian Pop <sebastian.pop@amd.com>
12307
12308 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
12309 copy of the dependence polyhedron. Free the temporary objects.
12310 (graphite_carried_dependence_level_k): Free unused objects before
12311 returning.
12312
f4648ed1
SP
123132009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12314
12315 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
12316 Early return without analyzing the data dependences if no
12317 transform has been done. Call restore_scattering if the transform
12318 is not legal.
12319 (graphite-interchange.c): Same.
1262fd02
UB
12320 * graphite-poly.c (print_scattering_function): Test for
12321 PBB_TRANSFORMED.
f4648ed1
SP
12322 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
12323 (apply_poly_transforms): Do not gcc_assert that
12324 the transform is legal.
1262fd02 12325 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
f4648ed1
SP
12326 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
12327 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
12328 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
12329 * graphite-poly.h (struct poly_scattering): New.
12330 (struct poly_bb): Add original, transformed, and saved fields.
1262fd02
UB
12331 Remove transformed_scattering, original_scattering,
12332 nb_local_variables and nb_scattering_transform fields.
f4648ed1
SP
12333 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
12334 (poly_scattering_new): New.
12335 (poly_scattering_free): New.
12336 (poly_scattering_copy): New.
12337 (store_scattering_pbb): New.
12338 (store_scattering): New.
12339 (restore_scattering_pbb): New.
12340 (restore_scattering): New.
12341 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
12342 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
12343
e31a5bd4
SP
123442009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12345
12346 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
12347 (print_scop): Same.
12348
8e88f9fd
SP
123492009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12350
12351 * Makefile.in (graphite.o): Depends on PREDICT_H.
12352 * graphite.c: Include predict.h.
12353 (graphite_finalize): Call tree_estimate_probability.
12354 * predict.c (predict_loops): Do not call scev_initialize and
12355 scev_finalize.
12356 (tree_estimate_probability_bb): New.
12357 (tree_estimate_probability): Do not initialize loops: move that
12358 code to the driver. Call tree_estimate_probability_bb.
12359 (tree_estimate_probability_driver): New.
12360 (pass_profile): Use tree_estimate_probability_driver.
12361 * predict.h (tree_estimate_probability): Declared.
12362
87d4d0ee
SP
123632009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12364
12365 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
12366 * graphite-dependences.c (graphite_legal_transform): Add time to
12367 TV_GRAPHITE_DATA_DEPS.
12368 (dependency_between_pbbs_p): Same.
12369 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
12370
4c7af939
AB
123712009-08-12 Andrey Belevantsev <abel@ispras.ru>
12372
12373 PR rtl-optimization/41033
f100a4a8 12374 * alias.c (nonoverlapping_component_refs_p): Punt when strict
4c7af939
AB
12375 aliasing is disabled.
12376
b2c9d70f
AN
123772009-08-11 Adam Nemet <anemet@caviumnetworks.com>
12378
12379 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
12380 si_mask_operand, and_load_operand, low_bitmask_operand,
12381 and_reg_operand, and_operand): New predicates.
12382 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
12383 * config/mips/mips.c (and_operands_ok): New function.
12384 * config/mips/mips-protos.h (and_operands_ok): Declare it.
12385 * config/mips/mips.md (move_type): Add ext_ins and logical.
12386 (type): Handle them.
1262fd02 12387 (and<mode>3): Use and_reg_operand as the second operand's predicate.
b2c9d70f
AN
12388 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
12389 shift_shift. Remove commutative constraint modifier.
12390 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
12391 shift_shift.
12392 (*clear_upper32_dext): Remove define_insn_and_split.
12393 (*clear_upper32): Turn this define_insn_and_split ...
12394 (splitter for ANDing register with 0xffff_ffff): .. into this.
12395
842e098c
AN
123962009-08-11 Adam Nemet <anemet@caviumnetworks.com>
12397
12398 * combine.c (try_widen_shift_mode): Factor out code to check if an
f100a4a8 12399 integer constant is a low-order bitmask from here ...
842e098c
AN
12400 * rtlanal.c (low_bitmask_len): ... to here.
12401 * rtl.h (low_bitmask_len): Declare.
12402
c53c2591
UB
124032009-08-11 Uros Bizjak <ubizjak@gmail.com>
12404
12405 PR target/8603
12406 * config/alpha/alpha.md (addsi3): Remove expander.
12407 (addsi3): Rename from *addsi3_internal insn pattern.
12408 (subsi3): Remove expander.
12409 (subsi3): Rename from *subsi3_internal insn pattern.
12410
b0d0a8a7
DR
124112009-08-11 Douglas B Rupp <rupp@gnat.com>
12412
12413 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
12414 FWRITE_UNLOCKED.
12415
050d3f9d 124162009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
c53c2591
UB
12417 Eric Botcazou <botcazou@adacore.com>
12418 Douglas B Rupp <rupp@gnat.com>
050d3f9d
VF
12419
12420 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
12421 that records that fit in 64 bits are returned by immediate value,
12422 as required by OpenVMS Calling Standard.
12423 (function_value): Adjust for above modification.
12424 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
12425 virtual_incoming_args_rtx as base object, not next_arg.
bd62d832 12426 * config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
050d3f9d 12427
2fa8205d
UW
124282009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12429
12430 * reload.c (find_reloads_subreg_address): Check the original
12431 req_equiv_mem address to detect the case where an address is
12432 not valid in the outer mode.
12433
ac8f7e42 124342009-08-11 Richard Guenther <rguenther@suse.de>
f100a4a8 12435
c53c2591
UB
12436 PR bootstrap/40788
12437 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
ac8f7e42 12438
fddeba6d
DR
124392009-08-10 Douglas B Rupp <rupp@gnat.com>
12440
12441 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
12442 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
12443
1d3499d8 124442009-08-10 Olivier Hainque <hainqueu@adacore.com>
c53c2591 12445 Douglas B Rupp <rupp@gnat.com>
1d3499d8
OH
12446
12447 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
12448 PT_STACK when frame_pointer_needed on OpenVMS.
12449 (alpha_pv_save_size, alpha_using_fp): Remove.
12450 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
12451 with proper processing for PT_NULL.
12452 (alpha_vms_initial_elimination_offset): New function. Support for
12453 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
12454 (alpha_sa_size): Force procedure type to PT_STACK when
12455 frame_pointer_needed on OpenVMS.
12456 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
12457 (alpha_using_fp): Likewise.
12458 (alpha_vms_can_eliminate): Add prototype.
12459 (alpha_vms_initial_elimination_offset): Likewise.
12460 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
12461 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
12462
18fd5621 124632009-08-10 Eric Botcazou <botcazou@adacore.com>
c53c2591 12464 Douglas B Rupp <rupp@gnat.com>
18fd5621
EB
12465
12466 * config/alpha/alpha.c (common_object_handler): New function.
12467 (vms_attribute_table): Declare a single attribute "common_object".
12468 (vms_output_aligned_decl_common): New global function.
12469 (SECTION_VMS_OVERLAY): Delete.
12470 (SECTION_VMS_GLOBAL): Likewise.
12471 (SECTION_VMS_INITIALIZE): Likewise.
12472 (vms_asm_named_section): Remove support for above flags.
12473 (vms_section_type_flags): Delete.
12474 (TARGET_SECTION_TYPE_FLAGS): Likewise.
12475 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
12476 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
12477 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
12478
092f3f97
ST
124792009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
12480
12481 PR target/41015
12482 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
12483 (sub_ddmmss): Likewise.
12484
35076532
AT
124852009-08-10 Andreas Tobler <a.tobler@schweiz.org>
12486
12487 PR bootstrap/41018
12488 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
12489 year.
12490
0159ec79
UW
124912009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12492
12493 PR target/37053
12494 * reload1.c (reload_as_needed): Use cancel_changes to completely
12495 undo a failed replacement attempt.
12496
4f4e722e
RG
124972009-08-10 Richard Guenther <rguenther@suse.de>
12498
12499 PR middle-end/41006
12500 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
12501 (useless_type_conversion_p): ... here. Require pointer targets
12502 to be compatible.
12503
b1d82db0
DS
125042009-08-10 Dodji Seketeli <dodji@redhat.com>
12505
12506 PR c++/40866
12507 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
12508 loose the original type of the statement list.
12509
5e3fef6c
DR
125102009-08-09 Douglas B Rupp <rupp@gnat.com>
12511
12512 * config/alpha/alpha.c: Include libfuncs.h
12513 (avms_asm_output_extern): New function.
12514 (alpha_init_libfuncs): Init some decc libfuncs.
12515 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
12516 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
12517 (DO_CRTL_NAMES): Define.
12518 (LIB_SPEC): Remove.
bd62d832 12519 * config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef.
5e3fef6c
DR
12520 (LONG_TYPE_SIZE): Define.
12521 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
12522 (SUBTARGET_SWITCHES): Define malloc64 switch.
12523 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
12524 (MASK_RETURN_ADDR): Define.
12525 doc/invoke.texi (mmalloc64): Document switch.
12526
221cf9ab 125272009-08-09 Olivier Hainque <hainque@adacore.com>
c53c2591 12528 Douglas B Rupp <rupp@gnat.com>
221cf9ab
OH
12529
12530 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
12531 uses_condition_handler.
12532 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
12533 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
12534 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
12535 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
12536 (code_for_builtin): New insn codes for the new alpha_builtins.
12537 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
12538 (alpha_sa_size): Account for uses_condition_handler.
12539 (alpha_expand_prologue): Likewise.
12540 (alpha_start_function): Likewise.
12541 (alpha_expand_epilogue): Likewise.
12542 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
12543 establish/revert expanders.
12544 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
12545 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
12546 New expander, resorting to the alpha.c associated function.
12547 (builtin_revert_vms_condition_handler): Likewise.
12548 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
12549 __gcc_shell_handler, the static VMS condition handler used as
12550 an indirection wrapper to the current dynamically established
12551 handler.
12552 * config/alpha/vms-unwind.h: Complete rewrite.
12553 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
12554 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
f100a4a8 12555
b714133e 125562009-08-09 Eric Botcazou <botcazou@adacore.com>
c53c2591 12557 Douglas B Rupp <rupp@gnat.com>
b714133e
EB
12558
12559 * config/alpha/alpha.c (alpha_links): Add 'target' field.
12560 (alpha_need_linkage): Handle aliases. Return function symbol.
12561 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
12562 Use ultimate alias target for the linkage name.
12563 * config/alpha/alpha.md (movmemdi): Use the symbol returned
12564 by alpha_need_linkage for the function symbol.
12565 (setmemdi): Likewise.
12566
3bd1b109
DR
125672009-08-09 Douglas B Rupp <rupp@gnat.com>
12568
12569 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
12570 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
12571 (ASM_WEAKEN_LABEL): Define.
12572 (CRT_CALL_STATIC_FUNCTION): Define.
12573 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
12574 (ENDFILE_SPEC): Define.
12575 (INIT_SECTION_ASM_OP): Define.
12576 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
12577 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
12578 crtend.o crtendS.o.
12579 (MULTILIB_OSDIRNAMES): Define.
12580 (shlib_version): Define.
12581 (SHLIB_EXT): Define.
12582 (SHLIB_OBJS): Define.
12583 (SHLIB_NAME): Define.
12584 (SHLIB_MULTILIB): Define.
12585 (SHLIB_INSTALL): Define.
12586 (SHLIB_SYMVEC): Define.
12587 (SHLIB_SYMVECX2): Define.
12588 (SHLIB_LINK): Define.
12589
fe2786f5
DR
125902009-08-09 Douglas B Rupp <rupp@gnat.com>
12591
12592 * config/alpha/alpha.c (alpha_initialize_trampoline):
12593 Initialize VMS trampoline IAW ABI for bounded procedure calls.
12594 (alpha_start_function): Emit transfer address on nested functions
12595 for VMS trampoline call.
12596 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
12597 since no longer used.
12598 * config/alpha/vms-tramp.asm: Remove.
12599 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
12600 since now only data initialized at runtime.
12601
c889a16f
DR
126022009-08-09 Douglas B Rupp <rupp@gnat.com>
12603
12604 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
12605 (LINK_GCC_C_SEQUENCE_SPEC): Define.
12606 (MD_EXEC_PREFIX): Remove, no longer used.
12607 (MD_STARTFILE_PREFIX): Likewise.
12608 (INCLUDE_DEFAULTS): Likewise.
12609 * config/alpha/t-vms:
12610 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
12611
a6450905
RG
126122009-08-09 Richard Guenther <rguenther@suse.de>
12613
12614 PR tree-optimization/41016
c53c2591 12615 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
a6450905
RG
12616 (operand_precision): Remove.
12617 (integral_operand_p): Likewise.
12618 (recognize_single_bit_test): Adjust.
12619
f5178456
RS
126202009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
12621
12622 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
12623 operation overflows. Likewise non-cast unary arithmetic.
12624 If one arm of a conditional expression is always taken,
12625 inhibit evaluation warnings for the other arm. Likewise inhibit
12626 evaluation warnings for the second && or || operand if the first
12627 operand is enough to determine the result.
12628 * c-typeck.c (build_conditional_expr): Apply the same inhibition
12629 rules here.
12630 (build_binary_op): Prevent duplicate evaluation warnings.
12631
8f048d2f
RS
126322009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
12633
12634 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
12635 and destination have different modes, Use promote_mode to
12636 determine the signedness of the conversion. Assert that the
12637 promoted source mode matches the destination mode. Don't pass
12638 the destination and destination mode to expand_expr if the source
12639 mode is different. Simplify conversion logic.
12640
6f4454fc
IR
126412009-08-09 Ira Rosen <irar@il.ibm.com>
12642
12643 PR tree-optimization/41008
12644 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
f100a4a8 12645 from condition only in case it's a comparison. Adjust checks.
6f4454fc 12646
2c08497a
BS
126472009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
12648
12649 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
12650 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
12651 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
12652 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
12653 (dump_cand): Handle them.
12654 (struct iv_cand): New members COST_STEP and AINC_USE.
12655 (stmt_after_increment): Likewise.
12656 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
12657 callers changed. Use gimple_uid comparison instead of scanning.
12658 (add_candidate_1): When looking for identical candidates, take
12659 AINC_USE into account. Set it for new candidates.
12660 (force_expr_to_var_cost): Cast target_spill_cost to int.
12661 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
12662 All callers changed. Check for availability of autoinc addressing
c53c2591 12663 modes, both in general for a given mode, and in the specific use case.
2c08497a
BS
12664 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
12665 changed.
12666 (get_computation_cost): Likewise.
12667 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
12668 add_autoinc_candidates): New static functions.
12669 (add_candidate): Call add_autoinc_candidates for candidates based on
12670 a USE_ADDRESS use.
12671 (find_iv_candidates): Call set_autoinc_for_original_candidates.
12672 (determine_use_iv_cost_address): If we have an autoinc candidate at
12673 the matching use, verify autoinc is possible and subtract the cost
12674 of the candidate's step from the cost.
12675 (determine_iv_cost): Record the cost of the increment in the COST_STEP
12676 member of the candidate.
12677 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
12678 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
12679
a9a25daa
DR
126802009-08-09 Douglas B Rupp <rupp@gnat.com>
12681
12682 * config.build (ia64-hp-*vms*): New target.
12683 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
12684 with ia64-hp-*vms*.
12685 * config.gcc (ia64-hp-*vms*): New target.
12686 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
12687 with ia64-hp-*vms*.
12688 * config.host (ia64-hp-*vms*): New target.
12689 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
12690 with ia64-hp-*vms*.
12691
55194b0b
RG
126922009-08-08 Richard Guenther <rguenther@suse.de>
12693
12694 PR tree-optimization/40991
12695 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
12696
d686d892
RS
126972009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
12698
12699 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
12700 mode check. Do truncations in an integer mode.
12701 (force_to_mode): Handle subregs for all mode types. Only do
12702 arithmetic simplifications on integer modes.
12703
0adef8e9
RG
127042009-08-07 Richard Guenther <rguenther@suse.de>
12705
12706 PR tree-optimization/40999
12707 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
12708 (maybe_fold_reference): Lookup constant initializers.
12709 (fold_gimple_assign): Likewise.
12710
60419cc8
RG
127112009-08-07 Richard Guenther <rguenther@suse.de>
12712
12713 * tree-ssa.c (useless_type_conversion_p_1): Only for types
12714 that require structural equality defer to the langhook.
12715
685b0d13
MJ
127162009-08-07 Martin Jambor <mjambor@suse.cz>
12717
12718 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
12719 comments.
12720 (struct ipa_pass_through_data): New type.
12721 (struct ipa_ancestor_jf_data): New type.
12722 (union jump_func_value): Removed field formal_id, added fields
12723 pass_through and ancestor.
12724 (struct ipa_param_call_note): Changed type of formal_id to int from
12725 unsigned.
12726 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
12727 operations jump functions and ancestor jump functions.
12728 (compute_complex_pass_through): New function.
12729 (compute_scalar_jump_functions): Call compute_complex_pass_through,
12730 reflect changes in the jump function strucutre.
12731 (update_jump_functions_after_inlining): Ignore complex pass-through
12732 and ancestor jump functions.
12733 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
12734 polynomial pass-through with operation jump functions.
12735
17f6e37d
JJ
127362009-08-07 Jakub Jelinek <jakub@redhat.com>
12737
12738 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
12739 fde->dw_fde_begin as begin label instead of hot/cold label.
12740 Use LLSDAC label instead of LLSDA for second section lsda.
12741 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
12742 label instead of LLSDA if it is true.
12743 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
12744 callers.
12745 * except.c (add_call_site, dw2_size_of_call_site_table): Add
12746 SECTION argument. Use it as index into crtl->eh.call_site_record
12747 array.
12748 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
12749 use it to determine how to print table entries instead of using
12750 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
12751 label instead of normal begin label as base.
12752 (sjlj_assign_call_site_values): Adjust add_call_site caller.
12753 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
12754 ensure no EH range spans between sections and that landing pads
12755 are always in the corresponding section.
12756 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
12757 for crtl->eh.call_site_record being an array rather than scalar.
12758 (output_one_function_exception_table): New function, copied
12759 from output_function_exception_table. Adjust
12760 dw2_size_of_call_site_table, dw2_output_call_site_table
12761 callers. For SECOND section use *C suffixed labels.
12762 (output_function_exception_table): Call
12763 output_one_function_exception_table and, when doing hot/cold
12764 partitioning, also another time for the second section.
12765 * opts.c: Include except.h.
12766 (decode_options): Allow -freorder-blocks-and-partition with
12767 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
12768 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
12769 * function.h (struct rtl_eh): Change call_site_record from
12770 scalar into array of 2 elements.
12771
3f84bf08
MJ
127722009-08-07 Martin Jambor <mjambor@suse.cz>
12773
12774 * ipa-prop.c (count_formal_params_1): New function.
12775 (ipa_get_vector_of_formal_parms): New function.
12776 (get_vector_of_formal_parm_types): New function.
12777 (ipa_modify_formal_parameters): New function.
12778 (ipa_modify_call_arguments): New function.
12779 (index_in_adjustments_multiple_times_p): New function.
12780 (ipa_combine_adjustments): New function.
12781 (ipa_dump_param_adjustments): New function.
12782 * ipa-prop.h (struct ipa_parm_adjustment): New type.
12783 (ipa_get_vector_of_formal_parms): Declare.
12784 (ipa_modify_formal_parameters): Declare.
12785 (ipa_modify_call_arguments): Declare.
12786 (ipa_combine_adjustments): Declare.
12787 (ipa_dump_param_adjustments): Declare.
12788 (build_ref_for_offset): Declare.
12789 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
12790 * tree-sra.c: Include ipa-prop.c.
f100a4a8 12791 (build_ref_for_offset): Make public.
3f84bf08 12792
ee26a76d
NV
127932009-08-06 Neil Vachharajani <nvachhar@gmail.com>
12794
12795 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
f100a4a8 12796
48c4de16
TS
127972009-08-06 Thomas Schwinge <tschwinge@gnu.org>
12798
12799 * gcc/doc/extend.texi (__builtin_extract_return_address)
12800 (__builtin_frob_return_address): Document.
12801
f36d140e
PB
128022009-08-06 Paul Brook <paul@codesourcery.com>
12803
12804 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
12805 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
12806 implementation on ARMv6-M.
12807
14a782c8
RE
128082009-08-06 Richard Earnshaw <rearnsha@arm.com>
12809
12810 * doc/extend.texi (pcs): Document new attribute for ARM.
12811
0f1a24df
RE
128122009-08-06 Richard Earnshaw <rearnsha@arm.com>
12813
12814 * arm.c (pcs_attribute_args): Comment out unsupported attribute
12815 variants.
12816
a9717079
RE
128172009-08-06 Richard Earnshaw <rearnsha@arm.com>
12818
12819 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
12820 warning ().
12821
d8e6aede
RE
128222009-08-06 Richard Earnshaw <rearnsha@arm.com>
12823
12824 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
12825
390b17c2
RE
128262009-08-06 Richard Earnshaw <rearnsha@arm.com>
12827
12828 Merge ARM/hard_vfp_branch to trunk.
12829
12830 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
12831
12832 * arm.c (libcall_eq): New function.
12833 (libcall_hash): New function.
12834 (add_libcall): New function.
12835 (arm_libcall_uses_aapcs_base): New function.
12836 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
12837 libcalls using the base PCS.
12838 (arm_init_cumulative_args): Likewise.
12839
12840 2009-07-20 Joseph Myers <joseph@codesourcery.com>
12841
12842 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
12843 Use base ABI for conversion libfuncs between HFmode and SFmode.
12844
12845 2009-05-12 Joseph Myers <joseph@codesourcery.com>
12846
12847 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
12848 V4SImode as representatives of all 64-bit and 128-bit vector
12849 types. Allow vector types without vector modes.
12850 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
12851 without vector modes like BLKmode.
12852 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
12853 BLKmode. Avoid unsupported vector modes or TImode moves for
12854 non-TARGET_NEON.
12855 (aapcs_vfp_allocate_return_reg): Likewise.
12856 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
12857 V8QImode if TARGET_NEON || TARGET_IWMMXT.
12858
12859 2009-05-12 Joseph Myers <joseph@codesourcery.com>
12860
12861 * config/arm/arm.c (arm_handle_pcs_attribute): New.
12862 (arm_get_pcs_model): Pass attribute arguments to
12863 arm_pcs_from_attribute.
12864 (arm_init_cumulative_args): Use base AAPCS for conversions from
12865 floating-point types to DImode.
12866 (arm_attribute_table): Add pcs attribute.
12867 (arm_handle_pcs_attribute): New.
12868 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
12869 conversions from floating-point types to DImode, also declare them
12870 to use base AAPCS and declare functions they call to use base
12871 AAPCS and their RTABI names.
12872
12873 2009-05-12 Joseph Myers <joseph@codesourcery.com>
12874
12875 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
12876 -mfloat-abi=hard not being supported for VFP.
12877
12878 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
12879
12880 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
12881 SYMBOL_REF to hard_libcall_value.
12882
12883 2009-03-05 Joseph Myers <joseph@codesourcery.com>
12884 Richard Earnshaw <rearnsha@arm.com>
12885
12886 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
12887 has been put on the stack, all remaining co-processory arguments for
12888 that co-processor also go on the stack.
12889
12890 2009-03-05 Joseph Myers <joseph@codesourcery.com>
12891
12892 * config/arm/arm.c (arm_return_in_memory): Handle returning
12893 vectors of suitable size in registers also for AAPCS case.
12894
12895 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
12896
12897 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
12898
12899 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
12900
12901 ARM Hard-VFP calling convention
12902 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
12903 * target.h (gcc_target): Add libcall_value to table of call hooks.
12904 * targhooks.h (default_libcall_value): Default implementation.
12905 * targhooks.c (default_libcall_value): Likewise.
12906 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
12907 * optabs.c (expand_unop): Use it.
12908 * expr.h (hard_libcall_value): Pass the function RTX through.
f100a4a8 12909 * calls.c (emit_library_call_value_1): Update call to
390b17c2
RE
12910 hard_libcall_value.
12911 * explow.c (hard_libcall_value): Use new target hook.
390b17c2
RE
12912 * config/arm/arm.c: Include cgraph.h
12913 (TARGET_FUNCTION_VALUE): Override default hook.
12914 (arm_pcs_default): New variable.
12915 (arm_override_options): Don't fault hard calling convention with VFP.
12916 Add support for AAPCS variants.
12917 (arm_function_value): Make static. Handle AAPCS variants.
12918 (arm_libcall_value): New function.
12919 (arm_apply_result_size): Handle VFP registers in results.
12920 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
12921 conventions.
12922 (pcs_attribute_args): New variable.
12923 (arm_pcs_from_attribute): New function.
12924 (arm_get_pcs_model): New function.
12925 (aapcs_vfp_cum_init): New function.
12926 (aapcs_vfp_sub_candidate): New function.
12927 (aapcs_vfp_is_return_candidate): New function.
12928 (aapcs_vfp_is_call_candidate): New function.
12929 (aapcs_vfp_allocate): New function.
12930 (aapcs_vfp_allocate_return_reg): New function.
12931 (aapcs_vfp_advance): New function.
12932 (aapcs_cp_arg_layout): New variable.
12933 (aapcs_select_call_coproc): New function.
12934 (aapcs_select_return_coproc): New function.
12935 (aapcs_allocate_return_reg): New function.
12936 (aapcs_libcall_value): New function.
12937 (aapcs_layout_arg): New function.
12938 (arm_init_cumulative_args): Initialize AAPCS args data.
12939 (arm_function_arg): Handle AAPCS variants using new interface.
12940 (arm_arg_parital_bytes): Likewise.
12941 (arm_function_arg_advance): New function.
12942 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
12943 calling conventions.
12944 (arm_setup_incoming_varargs): Handle new AAPCS args data.
12945 * arm.h (NUM_VFP_ARG_REGS): Define.
12946 (LIBCALL_VALUE): Update.
12947 (FUNCTION_VALUE): Delete.
12948 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
12949 (arm_pcs): New enum.
12950 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
12951 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
12952 (FUNCTION_ARG_REGNO_P): Add VFP regs.
12953 * arm-protos.h (arm_function_arg_advance): Add.
12954 (aapcs_libcall_value): Add.
12955 (arm_function_value): Delete.
12956
4dbf26d5
UB
129572009-08-06 Uros Bizjak <ubizjak@gmail.com>
12958 H.J. Lu <hongjiu.lu@intel.com>
12959
12960 PR target/40957
12961 * config/i386/i386.c (standard_sse_mode_p): Remove.
12962 (standard_sse_constant_p): Return 2 for integer mode
12963 vector_all_ones_operand when SSE2 is enabled.
12964 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
12965 (ix86_expand_vector_move): Do not check for negative values from
12966 standard_sse_constant_p.
12967
e52201b6
RG
129682009-08-06 Richard Guenther <rguenther@suse.de>
12969
12970 * tree-ssa.c (useless_type_conversion_p_1): Make function and
12971 array type comparisons frontend independent.
12972 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
12973 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
12974 out array reference lower bound and element size operands.
12975 (ao_ref_init_from_vn_reference): Properly compute the offset
12976 for ARRAY_RANGE_REF.
12977 (vn_reference_fold_indirect): Fill out array reference lower
12978 bound and element size operands.
12979 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
12980 a non gimple valued reference operand which can happen for
12981 array reference lower bound or element size.
12982 (create_component_ref_by_pieces_1): Properly generate the
12983 element size operand for array references.
12984
b92fbdd7
RB
129852009-08-06 Richard Guenther <rguenther@suse.de>
12986
12987 PR tree-optimization/40964
12988 * tree.c (iterative_hash_host_wide_int): Export.
12989 * tree.h (iterative_hash_host_wide_int): Declare.
12990 * tree-ssa-structalias.c (heapvar_map): New struct.
12991 (heapvar_map_eq): New function.
12992 (heapvar_map_hash): Likewise.
12993 (heapvar_lookup): Adjust.
12994 (heapvar_insert): Likewise.
12995 (make_constraint_from_heapvar): Allow multiple heap variables
12996 per decl at different offsets.
12997 (init_alias_heapvars): Adjust.
12998
068ca03a
DD
129992009-08-04 David Daney <ddaney@caviumnetworks.com>
13000
13001 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
13002 * mips_output_sync_loop (mips_output_sync_loop): Only emit
13003 trailing sync if TARGET_SYNC_AFTER_SC.
13004
40a4a37b
DD
130052009-08-05 David Daney <ddaney@caviumnetworks.com>
13006
13007 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
13008 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
13009 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
13010 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
13011 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
13012 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
13013 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
13014 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
13015 test_and_set_12): Rewrite calls to mips_output_sync_loop.
13016 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
13017 the prototype declaration match the definition.
13018 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
13019 instructions explicitly. Add barrier_before and operands
13020 parameters.
13021 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
13022 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
13023 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
13024 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
13025 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
13026 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
13027
dcbd7063
AP
130282009-08-05 Andrew Pinski <pinskia@gmail.com>
13029
13030 * tree-ssa-alias.c: Fix intervals to use [) syntax.
13031
2c4389d8
UB
130322009-08-05 Uros Bizjak <ubizjak@gmail.com>
13033 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
13034
13035 PR target/40906
13036 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
13037 source operand.
13038
403c7520
JJ
130392009-08-05 Jakub Jelinek <jakub@redhat.com>
13040
13041 PR rtl-optimization/40924
13042 * dse.c (canon_address): Before calling cselib_expand_value_rtx
13043 make sure canon_rtx (mem_address) isn't simpler than
13044 canon_rtx (expanded_mem_address).
13045
64393e40
LF
130462009-08-05 Li Feng <nemokingdom@gmail.com>
13047
13048 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
13049 for each poly_bb_p.
13050 (build_scop_drs): Build alias set for each SCoP.
13051
5dce6dbd
SL
130522009-08-04 Sandra Loosemore <sandra@codesourcery.com>
13053
13054 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
13055 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
13056 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
13057 (MIPS_ARCH_FLOAT_SPEC): Likewise.
13058 (BASE_DRIVER_SELF_SPECS): Likewise.
13059
f9fc1a02
AP
130602009-08-04 Andrew Pinski <pinskia@gmail.com>
13061
13062 * tree-ssa-alias.c: Fix some comment typos.
13063
09a7d0af
KK
130642009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
13065
13066 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
13067 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
13068
50cd60be
JJ
130692009-08-03 Janis Johnson <janis187@us.ibm.com>
13070
13071 PR c/39902
13072 * simplify-rtx.c (simplify_binary_operation_1): Disable
13073 simplifications for decimal float operations.
13074
1768a052
JJ
130752009-08-03 Jakub Jelinek <jakub@redhat.com>
13076
13077 PR middle-end/40943
13078 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
13079 operand of INDIRECT_REF.
13080
42a9ba1d
UB
130812009-08-03 Uros Bizjak <ubizjak@gmail.com>
13082
13083 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
13084 constants referencing TLS symbols.
13085
9f774cb0
ST
130862009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
13087
13088 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
13089 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
13090
907dd6ae
RG
130912009-08-03 Richard Guenther <rguenther@suse.de>
13092
13093 * tree.c (make_vector_type): Build a main variant first,
13094 get the canonical one and then build the variant.
13095 * tree-ssa.c (useless_type_conversion_p_1): Handle
13096 fixed-point types.
13097 (useless_type_conversion_p): Conversions to pointers to
13098 incomplete record types are useless.
13099
2329c6f5
RG
131002009-08-03 Richard Guenther <rguenther@suse.de>
13101
13102 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
13103 file will be created.
13104 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
13105 * toplev.c (compile_file): Adjust comment.
13106
d055ce45
KK
131072009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
13108
13109 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
13110 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
13111 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13112 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
13113 (sh_promote_function_mode): Fix typo.
13114
b1680483
AK
131152009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
13116
42a9ba1d 13117 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
b1680483 13118
4ce3042d
JDA
131192009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13120
13121 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
13122 declaration arguments.
13123
0589e07d
UB
131242009-08-02 Uros Bizjak <ubizjak@gmail.com>
13125
13126 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
13127 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
13128 (ix86_split_ashl): Ditto.
13129 (ix86_expand_vector_init_one_nonzero): Ditto.
13130 (ix86_expand_vector_set): Ditto.
13131 (ix86_expand_reduc_v4sf): Ditto.
13132
131332009-08-02 Paolo Bonzini <bonzini@gnu.org>
6e957ac8
PB
13134
13135 * explow.c (promote_function_mode): Remove assert.
13136 * config/sh/sh.c (sh_promote_function_mode): Declare.
13137
be3e4ef6
JDA
131382009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13139
6e957ac8
PB
13140 * config/pa/pa.c (pa_promote_function_mode): Declare.
13141 Change to static. Fix promote_mode call.
02095c50 13142
1f7ec57e
JDA
13143 * gthr-dce.h (CONST_CAST2): Define if not defined.
13144 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
13145
be3e4ef6
JDA
13146 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
13147
6e957ac8 131482009-08-01 Paolo Bonzini <bonzini@gnu.org>
cde0f3fd
PB
13149
13150 * expr.c (store_constructor): Use promote_decl_mode. Remove
13151 now write-only variable unsignedp.
13152 (expand_expr_real_1): Use promote_decl_mode.
13153 * expr.h (promote_function_mode, promote_decl_mode): New.
13154 (promote_mode): Remove last argument.
13155 * function.c (assign_temp): Drop last argument of promote_mode.
13156 (assign_parm_find_data_types): Use promote_function_mode.
13157 (assign_parm_setup_reg): Likewise.
13158 (expand_function_end): Use promote_function_mode.
13159 * calls.c (initialize_argument_information): Use promote_function_mode.
13160 (precompute_arguments): Use promote_mode instead of checking if
13161 only PROMOTE_FUNCTION_MODE is defined.
13162 (expand_call): When making sibcall decisions, use promote_function_mode.
13163 Below, remove an if for targetm.calls.promote_function_return and
13164 and use promote_function_mode.
13165 (emit_library_call_value_1): Use promote_function_mode, fix bug
13166 where promote_mode was passed FOR_CALL == 0 for a return value in an
13167 assertion.
13168 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
13169 * explow.c (promote_function_mode, promote_decl_mode): New.
13170 (promote_mode): Keep only the FOR_CALL == 0 case.
13171 * combine.c (setup_incoming_promotion): Remove test of
13172 promote_function_args. Use promote_function_mode.
13173 * stmt.c (expand_value_return): Use promote_decl_mode.
13174 (expand_decl): Use promote_decl_mode.
13175
13176 * expr.c (store_constructor): Use promote_decl_mode. Remove
13177 now write-only variable unsignedp.
13178 (expand_expr_real_1): Use promote_decl_mode.
13179 * expr.h (promote_function_mode, promote_decl_mode): New.
13180 (promote_mode): Remove last argument.
13181 * function.c (assign_temp): Drop last argument of promote_mode.
13182 (assign_parm_find_data_types): Use promote_function_mode.
13183 (assign_parm_setup_reg): Likewise.
13184 (expand_function_end): Use promote_function_mode.
13185 * calls.c (initialize_argument_information): Use promote_function_mode.
13186 (precompute_arguments): Use promote_mode instead of checking if
13187 only PROMOTE_FUNCTION_MODE is defined.
13188 (expand_call): When making sibcall decisions, use promote_function_mode.
13189 Below, remove an if for targetm.calls.promote_function_return and
13190 and use promote_function_mode.
13191 (emit_library_call_value_1): Use promote_function_mode, fix bug
13192 where promote_mode was passed FOR_CALL == 0 for a return value in an
13193 assertion.
13194 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
13195 * explow.c (promote_function_mode, promote_decl_mode): New.
13196 (promote_mode): Keep only the FOR_CALL == 0 case.
13197 * combine.c (setup_incoming_promotion): Remove test of
13198 promote_function_args. Use promote_function_mode.
13199 * stmt.c (expand_value_return): Use promote_decl_mode.
13200 (expand_decl): Use promote_decl_mode.
13201
13202 * explow.c (promote_function_mode): Just call the target hook.
13203 * targhooks.c (default_promote_function_mode,
13204 default_promote_function_mode_always_promote): New.
13205 * targhooks.h (default_promote_function_mode,
13206 default_promote_function_mode_always_promote): Declare.
13207 * target.h (promote_function_args, promote_function_return): Remove.
13208 (promote_function_mode): New.
13209 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
13210 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13211 (TARGET_PROMOTE_FUNCTION_MODE): New.
13212 (TARGET_CALLS): Adjust.
13213 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
13214 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
13215
13216 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
13217 * config/s390/s390.c (s390_promote_function_mode): ... here,
13218 with pointer handling.
13219 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13220 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13221
13222 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
13223 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
13224 with pointer handling.
13225 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13226 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
f100a4a8 13227
cde0f3fd
PB
13228 * config/sh/sh-protos.h (sh_promote_function_mode): New.
13229 * config/sh/sh.c (sh_promote_function_mode): New.
13230 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13231 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13232
13233 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
13234 * config/cris/cris.c (cris_promote_function_mode): ... here.
13235 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13236 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
13237
13238 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
13239 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
13240 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13241 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
13242
13243 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
0589e07d
UB
13244 * config/arm/arm.c (arm_promote_function_mode): ... here, without
13245 complex type handling.
cde0f3fd
PB
13246 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13247 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13248
13249 * config/pa/pa.c (pa_promote_function_mode): New.
13250 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13251 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13252
13253 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
13254 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13255 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
13256 * config/xtensa/xtensa.c: Likewise.
13257 * config/stormy16/stormy16.c: Likewise.
13258 * config/iq2000/iq2000.c: Likewise.
13259 * config/rs6000/rs6000.c: Likewise.
13260 * config/picochip/picochip.c: Likewise.
13261 * config/arc/arc.c: Likewise.
13262 * config/mcore/mcore.c: Likewise.
13263 * config/score/score.c: Likewise.
13264 * config/mips/mips.c: Likewise.
13265 * config/bfin/bfin.c: Likewise.
13266 * config/ia64/ia64.c: Likewise (disabled though).
13267
13268 * config/frv/frv.h: Remove pointless remark.
13269
13270 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
13271 TARGET_PROMOTE_FUNCTION_ARGS,
13272 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
13273 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
13274
3cf0e270
SP
132752009-08-01 Sebastian Pop <sebastian.pop@amd.com>
13276
13277 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
13278 -floop-parallelize-all.
13279 * toplev.c (process_options): Rename flag_graphite_force_parallel to
13280 flag_loop_parallelize_all.
13281 * tree-ssa-loop.c (gate_graphite_transforms): Same.
13282 * graphite.c (graphite_transform_loops): Same.
13283 * common.opt: Same.
13284 * graphite-poly.c (apply_poly_transforms): Same.
13285
6f7b8b70
RE
132862009-07-31 Richard Earnshaw <rearnsha@arm.com>
13287
13288 PR tree-optimization/40914
13289 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
13290 if set, then check the delta field of the PMF record.
13291 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
13292 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
13293 call is stored in the delta.
13294
17320477
AN
132952009-07-31 Adam Nemet <anemet@caviumnetworks.com>
13296
13297 * config/mips/mips.md (*clear_upper32_dext): New pattern.
13298
e61c6562
UB
132992009-07-31 Uros Bizjak <ubizjak@gmail.com>
13300
13301 * config/i386/bsd.h (ASM_BYTE): New define.
13302 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
13303 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
13304 .byte. Use fputs or putc instead of fprintf where appropriate.
13305 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
13306 fputs or putc instead of fprintf where appropriate.
13307 * config/i386/i386elf.h: Ditto.
13308 * config/i386/sysv4.h: Ditto.
f100a4a8 13309
e61c6562
UB
13310 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
13311 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
13312 (*tls_global_dynamic_64): Ditto.
13313
f100a4a8 133142009-07-31 Christian Bruel <christian.bruel@st.com>
ea2002ba
CB
13315
13316 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
f100a4a8 13317
17eb4921
RR
133182009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13319
f100a4a8 13320 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
17eb4921
RR
13321 Remove dead code for MINUS.
13322
23865616
AG
133232009-07-31 Anthony Green <green@moxielogic.com>
13324
13325 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
13326 $r12 in prologue.
13327 (moxie_expand_epilogue): Ditto for epilogue.
13328 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
13329 incoming arguments.
13330 (moxie_function_arg): Ditto.
13331 (moxie_pass_by_reference): Ditto.
13332 (moxie_arg_partial_bytes): Ditto.
13333 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
13334 (FUNCTION_ARG_ADVANCE) Ditto.
13335 (REG_PARM_STACK_SPACE) Ditto.
13336 (FUNCTION_ARG_REGNO_P) Dito.
13337
13338 * config.gcc: Add moxie linux config support.
13339 * gcc/config/moxie/uclinux.h: New file.
13340
20e19db4
DD
133412009-07-31 DJ Delorie <dj@redhat.com>
13342
13343 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
13344 (UNSPECV_SP_SWITCH_E): New.
13345 (sp_switch_1): Change to an unspec.
13346 (sp_switch_2): Change to an unspec. Don't use post-inc when we
13347 replace $r15.
13348 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
13349 reference the new stack's address
13350
204b560f
SP
133512009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13352
13353 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
13354 graphite-clast-to-gimple.o, graphite-dependences.o,
13355 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
13356 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
13357 (graphite-blocking.o,
13358 graphite-clast-to-gimple.o, graphite-dependences.o,
13359 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
13360 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
13361 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
13362 * cfgloop.h (struct loop): Add can_be_parallel field.
13363 * common.opt (fgraphite-identity): Moved up.
13364 (fgraphite-force-parallel): New flag.
13365 * graphite.c: Rewrite.
13366 * graphite.h: Rewrite.
13367 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
13368 after Graphite.
13369 * toplev.c (graphite_out_file): New file descriptor.
13370 (graphite_in_file): New.
13371 (process_options): flag_graphite_force_parallel cannot be used without
13372 Graphite.
13373 * tree-ssa-loop.c: Include toplev.h.
13374 (gate_graphite_transforms): Enable flag_graphite for
13375 flag_graphite_force_parallel.
13376
2abae5f1
SP
133772009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13378
13379 * ChangeLog.graphite: New.
13380 * graphite-blocking.c: New.
13381 * graphite-clast-to-gimple.c: New.
13382 * graphite-clast-to-gimple.h: New.
13383 * graphite-dependences.c: New.
13384 * graphite-dependences.h: New.
13385 * graphite-interchange.c: New.
13386 * graphite-poly.c: New.
13387 * graphite-poly.h: New.
13388 * graphite-ppl.c: New.
13389 * graphite-ppl.h: New.
13390 * graphite-scop-detection.c: New.
13391 * graphite-scop-detection.h: New.
13392 * graphite-sese-to-poly.c: New.
13393 * graphite-sese-to-poly.h: New.
13394 * sese.c: New.
13395 * sese.h: New.
13396
e7c705bb
SP
133972009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13398
13399 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
13400 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
13401
765deab7
SP
134022009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13403
13404 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
13405 (scev_is_linear_expression): Return false if the evolution is not
13406 affine multivariate.
13407
ed91d661
SP
134082009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13409
13410 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
13411 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
13412
a37d995a
SP
134132009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13414
13415 * tree-data-ref.c (debug_data_references): New.
13416 (debug_data_reference): New.
13417 * tree-data-ref.h (debug_data_references): Declared.
13418 (debug_data_reference): Declared.
13419
ae5b9860
SP
134202009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13421
13422 * tree-data-ref.c (stmt_simple_memref_p: Removed.
13423 * tree-data-ref.h (scop_p): Removed.
13424 (struct data_reference): Remove field scop.
13425 (DR_SCOP): Removed.
13426 (stmt_simple_memref_p): Removed.
13427
8e74b397
SP
134282009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13429
13430 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
13431 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
13432 basic block empty.
13433
109e0d57
SP
134342009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13435
13436 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
13437
66a7961b
SP
134382009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13439
13440 * doc/invoke.texi (-fgraphite-identity): Documented.
13441
52bdd655
SP
134422009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13443
13444 * tree-scalar-evolution.c: Fix comment.
13445 (instantiate_scev_1): Return unknow from scev instantiation if the
13446 result is not above instantiate_below.
13447
42e6eec5
SP
134482009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13449
13450 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
13451 static anymore. Instantiate the symbols that may have been introduced
13452 by chrec_apply.
13453 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
13454 Declared.
13455
77806925
DD
134562009-07-30 DJ Delorie <dj@redhat.com>
13457
13458 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
13459 .vliw directive to VLIW sections.
13460
6efbd53f
RW
134612009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13462
13463 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
13464 New variables.
13465 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
13466 (AUTOHEADER): New variable.
13467 ($(srcdir)/cstamp-h.in): Use it.
13468
29e6733c
MM
134692009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
13470 Pat Haugen <pthaugen@us.ibm.com>
13471 Revital Eres <ERES@il.ibm.com>
13472
13473 * config/rs6000/vector.md (VEC_F): Add VSX support.
13474 (VEC_A): Ditto.
13475 (VEC_N): Ditto.
13476 (mov<mode>): Ditto.
13477 (vector_load_<mode>): Ditto.
13478 (vector_store_<mode>): Ditto.
13479 (vector GPR move split): Ditto.
13480 (vec_reload_and_plus_<mptrsize>): Ditto.
13481 (vec_reload_and_reg_<mptrsize>): Ditto.
13482 (add<mode>3): Ditto.
13483 (sub<mode>3): Ditto.
13484 (mul<mode>3): Ditto.
13485 (neg<mode>2): Ditto.
13486 (abs<mode>2): Ditto.
13487 (smin<mode>3): Ditto.
13488 (smax<mode>3): Ditto.
13489 (vector_eq<mode>): Ditto.
13490 (vector_gt<mode>): Ditto.
13491 (vector_ge<mode>): Ditto.
13492 (vector_gtu<mode>): Ditto.
13493 (vector_select_<mode>_uns): Ditto.
13494 (vector_eq_<mode>_p): Ditto.
13495 (vector_gt_<mode>_p): Ditto.
13496 (vector_ge_<mode>_p): Ditto.
13497 (vector_gtu_<mode>_p): Ditto.
13498 (cr6_test_for_zero): Ditto.
13499 (cr6_test_for_zero_reverse): Ditto.
13500 (cr6_test_for_lt): Ditto.
13501 (cr6_test_for_lt_reverse): Ditto.
13502 (xor<mode>3): Ditto.
13503 (ior<mode>3): Ditto.
13504 (and<mode>3): Ditto.
13505 (one_cmpl<mode>2): Ditto.
13506 (nor<mode>2): Ditto.
13507 (andc<mode>2): Ditto.
13508 (float<VEC_int<mode>2): Ditto.
13509 (unsigned_float<VEC_int><mode>2): Ditto.
13510 (fix_trunc<mode><VEC_int>2): Ditto.
13511 (fixuns_trunc<mode><VEC_int>2): Ditto.
13512 (vec_init<mode>):
13513 (vec_set<mode>): Ditto.
13514 (vec_extract<mode>): Ditto.
13515 (vec_interleave_highv4sf): Ditto.
13516 (vec_interleave_lowv4sf): Ditto.
13517 (vec_realign_load_<mode>): Ditto.
13518 (vec_shl_<mode>): Ditto.
13519 (vec_shr_<mode>): Ditto.
13520 (div<mode>3): New patterns for VSX.
13521 (vec_interleave_highv2df): Ditto.
13522 (vec_interleave_lowv2df): Ditto.
13523 (vec_pack_trunc_v2df): Ditto.
13524 (vec_pack_sfix_trunc_v2df): Ditto.
13525 (vec_pack_ufix_trunc_v2df): Ditto.
13526 (vec_unpacks_hi_v4sf): Ditto.
13527 (vec_unpacks_lo_v4sf): Ditto.
13528 (vec_unpacks_float_hi_v4si): Ditto.
29e6733c 13529 (vec_unpacks_float_lo_v4si): Ditto.
1262fd02
UB
13530 (vec_unpacku_float_hi_v4si): Ditto.
13531 (vec_unpacku_float_lo_v4si): Ditto.
29e6733c
MM
13532 (movmisalign<mode>): Ditto.
13533 (vector_ceil<mode>2): New patterns for vectorizing math library.
13534 (vector_floor<mode>2): Ditto.
13535 (vector_btrunc<mode>2): Ditto.
13536 (vector_copysign<mode>3): Ditto.
13537
13538 * config/rs6000/predicates.md (easy_vector_constant_msb): New
e61c6562 13539 predicate for setting the high bit in each word, used for copysign.
29e6733c
MM
13540
13541 * config/rs6000/ppc-asm.h (f19): Whitespace.
13542 (f32-f63): Define if VSX.
13543 (v0-v31): Define if Altivec.
13544 (vs0-vs63): Define if VSX.
13545
13546 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
13547
13548 * config/rs6000/power7.md: New file, provide tuning parameters for
13549 -mcpu=power7.
13550
e61c6562 13551 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
29e6733c
MM
13552 (rs6000_cpu_cpp_builtins): Ditto.
13553 (altivec_overloaded_builtins): Ditto.
13554 (altivec_resolve_overloaded_builtin): Ditto.
13555
13556 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
13557 debug switch to disable vectorizing simple math builtin
13558 functions.
13559
13560 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
13561 Vectorize simple math builtin functions.
13562 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
13563 hook to vectorize math builtins.
13564 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
13565 (rs6000_builtin_conversion): Add VSX/power7 support.
13566 (rs6000_builtin_vec_perm): Ditto.
13567 (vsplits_constant): Add support for loading up a vector constant
13568 with just the high bit set in each part.
13569 (rs6000_expand_vector_init): Add VSX/power7 support.
13570 (rs6000_expand_vector_set): Ditto.
13571 (rs6000_expand_vector_extract): Ditto.
13572 (rs6000_emit_move): Ditto.
13573 (bdesc_3arg): Ditto.
13574 (bdesc_2arg): Ditto.
13575 (bdesc_1arg): Ditto.
13576 (rs6000_expand_ternop_builtin): Ditto.
13577 (altivec_expand_builtin): Ditto.
13578 (rs6000_expand_unop_builtin): Ditto.
13579 (rs6000_init_builtins): Ditto.
13580 (altivec_init_builtins): Ditto.
13581 (builtin_function_type): Ditto.
13582 (rs6000_common_init_builtins): Ditto.
13583 (rs6000_handle_altivec_attribute); Ditto.
13584 (rs6000_mangle_type): Ditto.
13585 (rs6000_vector_mode_supported_p): Ditto.
13586 (rs6000_mode_dependent_address): Altivec addresses with AND -16
13587 are mode dependent.
13588
13589 * config/rs6000/vsx.md: New file for VSX support.
13590
13591 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
13592 identifing values with just the most significant bit set.
13593 (enum rs6000_builtins): Add builtins for VSX. Add simple math
13594 vectorized builtins.
13595
13596 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
13597 (UNSPEC_VRFIM): Delete.
13598 (splitter for loading up vector with most significant bit): New
13599 splitter for vectorizing copysign.
13600 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
13601 vectorizing simple math functions.
e61c6562 13602 (altivec_vrfip): Add support for vectorizing simple math functions.
29e6733c
MM
13603 (altivec_vrfim): Ditto.
13604 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
13605
13606 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
13607 (power7.md, vsx.md): Include for power7 support.
13608 (copysigndf3): Use VSX instructions if -mvsx.
13609 (negdf2_fpr): Ditto.
13610 (absdf2_fpr): Ditto.
13611 (nabsdf2_fpr): Ditto.
13612 (adddf3_fpr): Ditto.
13613 (subdf3_fpr): Ditto.
13614 (muldf3_fpr): Ditto.
13615 (divdf3_fpr): Ditto.
13616 (fix_truncdfdi2_fpr): Ditto.
13617 (cmpdf_internal1): Ditto.
13618 (fred, fred_fpr): Convert into expander/insn to add VSX support.
13619 (btruncdf2, btruncdf2_fpr): Ditto.
13620 (ceildf2, ceildf2_fpr): Ditto.
13621 (floordf2, floordf2_fpr): Ditto.
13622 (floatdidf2, floatdidf2_fpr): Ditto.
13623 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
13624 (fmsubdf4_fpr): Ditto.
13625 (fnmadddf4_fpr_1): Ditto.
13626 (fnmadddf4_fpr_2): Ditto.
13627 (fnmsubdf4_fpr_1): Ditto.
13628 (fnmsubdf4_fpr_2): Ditto.
13629 (fixuns_truncdfdi2): Add expander for VSX support.
13630 (fix_truncdfdi2): Ditto.
13631 (fix_truncdfsi2): Ditto.
13632 (ftruncdf2): Ditto.
13633 (btruncsf2): Whitespace.
13634 (movdf_hardfloat32): Add support for VSX registers.
13635 (movdf_softfloat32): Ditto.
13636 (movdf_hardfloat64): Ditto.
13637 (movdf_hardfloat64_mfpgpr): Ditto.
13638 (movdf_softfloat64): Ditto.
13639 (movti splitters): Add check for vector registers supporting
13640 TImode in the future.
13641 (bpermd): Add power7 bpermd instruction.
13642
13643 * config/rs6000/altivec.h (vec_div): Define if VSX.
13644 (vec_mul): Ditto.
13645 (vec_msub): Ditto.
13646 (vec_nmadd): Ditto.
13647 (vec_nearbyint): Ditto.
13648 (vec_rint): Ditto.
13649 (vec_sqrt): Ditto.
e61c6562
UB
13650 (all predicates): Use the generic builtin function, and not the V4SF
13651 specific function so that the predicates will work with VSX's V2DF.
29e6733c
MM
13652 (vec_all_*): Ditto.
13653 (vec_any_*): Ditto.
13654
13655 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
13656 Document new VSX functions and types.
13657
13658 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
13659 switches.
13660
13661 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
13662 "wa", and "j" constraints. Modify "v" to talk about Altivec
13663 instead of just vector.
13664
f5045c96
AM
136652009-07-30 Andrew MacLeod <amacleod@redhat.com>
13666
13667 PR debug/26475
13668 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
13669 location for phi arguments.
13670 (rewrite_update_phi_arguments): Find locations for reaching defs.
13671 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
13672 Add location to add_phi_arg calls.
13673 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
13674 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
13675 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
13676 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
13677 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
13678 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
13679 * tree-phinodes.c (make_phi_node): Initialize location.
13680 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
13681 (add_phi_arg): Add location parameter.
13682 (remove_phi_arg_num): Move location when moving phi argument.
f100a4a8 13683 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
f5045c96
AM
13684 location.
13685 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
13686 slpeel_update_phi_nodes_for_guard1,
13687 slpeel_update_phi_nodes_for_guard2,
13688 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
13689 vect_loop_versioning): Set locations.
13690 * tree-parloops.c (create_phi_for_local_result,
13691 transform_to_exit_first_loop, create_parallel_loop): Add locations.
13692 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
13693 * tree-vect-loop.c (get_initial_def_for_induction,
13694 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
13695 locations.
13696 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
13697 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
13698 (gimple_phi_arg_set_location): New. Set locus.
13699 (gimple_phi_arg_has_location): New. Check for locus.
13700 (redirect_edge_var_map_location): New. Return locus from var_map.
13701 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
13702 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
13703 combining PHI arguments.
13704 (cond_store_replacement): Set location.
13705 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
13706 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
13707 scop_add_exit_phis_edge): Add locations.
13708 * tree-cfgcleanup.c (remove_forwarder_block,
13709 remove_forwarder_block_with_phi): Add locations.
13710 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
13711 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
13712 locations.
13713 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
13714 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
13715 flush_pending_stmts): Add source location.
13716 * lambda-code.c (perfect_nestify): Maintain location stack with argument
13717 stack to preserve locations.
13718 * tree-vect-stmts.c (vectorizable_load): Add location.
13719 * tree-inline.c (copy_phis_for_bb): Copy locus.
13720 (setup_one_parameter): Add call locus to inlined parameter stmts.
13721 (initialize_inlined_parameters): Pass in call location as parameter
13722 assignment locus.
13723 (tree_function_versioning): Pass location to setup_one_parameter.
13724 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
13725 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
13726 copy and edge lists.
13727 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
f100a4a8 13728 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
f5045c96
AM
13729 locus parameter and override the stmt default if provided.
13730 (new_elim_graph, clear_elim_graph, delete_elim_graph,
13731 elim_graph_add_edge, elim_graph_remove_succ_edge,
13732 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
13733 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
13734 eliminate_phi): Add locus info in elimination graph for each edge and
13735 value copy.
13736 (insert_backedge_copies): Copy locus if present.
13737 * tree-flow.h (struct _edge_var_map): Add locus field.
13738 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
13739 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
f100a4a8 13740 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
f5045c96
AM
13741 locations.
13742 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
f100a4a8 13743
2d4b90b1
MJ
137442009-07-30 Martin Jambor <mjambor@suse.cz>
13745
13746 PR tree-optimization/40570
13747 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
13748 use inlining loops.
13749
08dab97a
RL
137502009-07-30 Razya Ladelsky <razya@il.ibm.com>
13751
13752 * ssa-loop-manip.c: Include langhooks.h.
13753 (rewrite_phi_with_iv): New.
13754 (rewrite_all_phi_nodes_with_iv): New.
13755 (canonicalize_loop_ivs): Move here from tree-parloops.c.
13756 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
13757 * tree-parloops.c (loop_parallel_p): Move out all conditions
13758 except dependency check.
13759 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
13760 (gen_parallel_loop): Call canonicalize_loop_ivs without
13761 reduction_list argument.
13762 (build_new_reduction): New.
13763 (gather_scalar_reductions): New.
13764 (try_get_loop_niter): New.
13765 (try_create_reduction_list): New.
13766 (parallleize_loops): Change the parallel conditions check.
13767 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
13768 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
13769
88c2fd3d
DK
137702009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
13771
13772 * opt-functions.awk (opt_args): Allow argument to be enclosed in
13773 curly braces.
13774 * doc/options.texi (Option properties): Mention new quoting syntax.
13775
5ea8f977
DR
137762009-07-29 Douglas B Rupp <rupp@gnat.com>
13777
13778 * config/alpha/alpha.c (alpha_start_function):
13779 Handle VMS_DEBUG_MAIN_POINTER
13780 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
13781 * doc/invoke.texi: Document -mdebug-main switch.
13782
9b2a5ef7
RH
137832009-07-29 Richard Henderson <rth@redhat.com>
13784
13785 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
13786 (cgraph_create_edge_including_clones): Likewise.
13787 * tree-inline.c (copy_bb): Operate on the correct edges
13788 when updating the callgraph.
13789
71cd2220
DR
137902009-07-29 Douglas B Rupp <rupp@gnat.com>
13791
13792 * config/alpha/vms-cc.c: Deleted.
13793 * config/alpha/vms-ld.c: Deleted.
13794 * config/alpha/t-vms64: Moved to config/vms
13795 * config/alpha/vms-crt0-64.c: Moved to config/vms
13796 * config/alpha/vms-crt0.c: Moved to config/vms
13797 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
13798 * config/alpha/vms-psxcrt0.c: Moved to config/vms
13799 * config/alpha/xm-vms.h: Moved to config/vms
13800 * config/alpha/x-vms: Moved to config/vms
13801 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
13802 config/vms/t-vms.
13803 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
13804 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
13805 (version): Set.
13806 * config/vms/t-vms64: Moved here from config/alpha
13807 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
13808 (argc,argv,envp): Enforce 32bit malloc'ing.
13809 * config/vms/vms-psxcrt0-64.c: Likewise.
13810 * config/vms/vms-crt0.c: Moved here from config/alpha.
13811 * config/vms/vms-psxcrt0.c: Likewise.
13812 * config/vms/vms-crtl-64.h: New file.
13813 * config/vms/vms-crtl.h: New file.
13814 * config/vms/vms.opt: New file.
13815 * config/vms/xm-vms64.h: New file.
13816 * config/vms/xm-vms.h: Moved here from config/alpha.
13817 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
13818 Set.
13819 * config/vms/x-vms: Moved here from config/alpha.
13820 (version, VMS_EXTRA_PARTS): Moved to t-vms.
13821 (vms-ld.o, vms-cc.o): Removed.
13822 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
13823
82b75b46
DR
138242009-07-29 Douglas B Rupp <rupp@gnat.com>
13825
13826 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
13827 correct stack (obvious VMS fix).
13828
c2cffdc8
DR
138292009-07-29 Douglas B Rupp <rupp@gnat.com>
13830
13831 * dwarf2out.c (output_file_names): Output VMS style file name, size,
13832 date, version info if VMS_DEBUGGING_INFO defined.
13833 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
13834 size, date calculating code moved here.
13835
0244b03f
PB
138362009-07-29 Paul Brook <paul@codesourcery.com>
13837
13838 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
13839 do_push/do_pop.
13840
bc4eac6d
UB
138412009-07-29 Uros Bizjak <ubizjak@gmail.com>
13842
13843 PR target/40577
13844 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
13845 to DImode when generating insq_le insn.
13846
6f1595d3
DR
138472009-07-28 Douglas B Rupp <rupp@gnat.com>
13848
13849 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
13850 New macro set for VMS_DEBUGGGING_INFO.
13851 (AT_string_form): Use it.
13852
820ca276
DD
138532009-07-28 DJ Delorie <dj@redhat.com>
13854
13855 * config/mep/mep.c (vtext_section): New.
13856 (vftext_section): New.
13857 (ftext_section): New.
13858 (mep_select_section): Add support for functions.
13859 (mep_unique_section): Likewise.
13860 (mep_asm_init_sections): Likewise.
3fb0a660 13861 (mep_encode_section_info): Remove it from here.
820ca276
DD
13862
13863 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
13864
e2121f17
PB
138652009-07-28 Paolo Bonzini <bonzinI@gnu.org>
13866
13867 * tree.h (TREE_DEPRECATED): Document it is used for types too.
13868 (TYPE_VECTOR_OPAQUE): Use default_def_flag
13869
dde08f9b
DR
138702009-07-28 Douglas B Rupp <rupp@gnat.com>
13871
13872 * dwarf2out.c (output_file_names): Test new macro
13873 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
13874 (add_comp_dir_attribute): Likewise.
13875
032502c2
KT
138762009-07-28 Kai Tietz <kai.tietz@onevision.com>
13877
13878 * config/i386/mingw-w64.h (LINK_SPEC): Add
13879 separating space between commands.
13880
b29c2ffd
JH
138812009-07-28 Jan Hubicka <jh@suse.cz>
13882
13883 PR tree-optimization/40759
13884 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
13885 for renaming.
13886
683a1be6
DD
138872009-07-27 DJ Delorie <dj@redhat.com>
13888
13889 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
13890 types are dword-aligned.
13891 (mep_expand_va_start): Likewise.
13892
cf157324 138932009-07-27 Olivier Hainque <hainque@adacore.com>
bc4eac6d 13894 Douglas B Rupp <rupp@gnat.com>
cf157324
OH
13895
13896 * convert.c (convert_to_pointer): Don't assume the target
13897 pointer type is POINTER_SIZE long. Fetch its precision instead.
13898
d4d798a3
DR
138992009-07-27 Douglas B Rupp <rupp@gnat.com>
13900
13901 * system.h (fopen): Undefine if macro.
13902
5823ade1
JJ
139032009-07-27 Jakub Jelinek <jakub@redhat.com>
13904
13905 * dwarf2out.c (output_cfi_p): Removed.
13906 (output_cfis): New function.
13907 (output_fde): New function, split from output_call_frame_info.
13908 (output_call_frame_info): Use it.
13909 (dwarf2out_switch_text_section): Use output_cfis.
13910
648abd76
KT
139112009-07-24 Kai Tietz <kai.tietz@onevision.com>
13912
13913 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
13914 TARGET_BI_ARCH is specified without enabling SJLJ.
13915 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
13916 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
13917
4b89636e
MP
139182009-07-26 Mikael Pettersson <mikpe@it.uu.se>
13919
13920 * arm.md (negdi2): Use DImode if forcing a value into a register.
13921
63827fb8
IR
139222009-07-26 Ira Rosen <irar@il.ibm.com>
13923
13924 PR tree-optimization/40801
13925 * tree-vect-stmts.c (vectorizable_call): Get previous copy
13926 of vector operand from the previous copy of vector statement.
13927 Pass the correct definition type value to
13928 vect_get_vec_def_for_stmt_copy().
13929
db9369bb
JDA
139302009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13931
13932 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
13933 const char ** conversion.
13934
2df77822
DD
139352009-07-25 David Daney <ddaney@caviumnetworks.com>
13936
13937 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
13938 fancy_abort() if !ENABLE_ASSERT_CHECKING.
13939 (gcc_unreachable): Invoke __builtin_unreachable() if
13940 !ENABLE_ASSERT_CHECKING.
13941
1e211590
DD
139422009-07-25 David Daney <ddaney@caviumnetworks.com>
13943
13944 PR rtl-optimization/40445
13945 * emit-rtl.c (next_nonnote_insn_bb): New function.
13946 * rtl.h (next_nonnote_insn_bb): Declare new function.
13947 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
13948 with no successors that is the successor of the ENTRY_BLOCK.
13949 Continue from the top after removing an empty fallthrough block.
13950 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
13951 of next_nonnote_insn.
13952
ba21aba3
DD
139532009-07-25 David Daney <ddaney@caviumnetworks.com>
13954
bc4eac6d 13955 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
f100a4a8 13956
86631ea3
MJ
139572009-07-25 Martin Jambor <mjambor@suse.cz>
13958
13959 * c-common.c (c_common_attribute_table): New element for noclone.
13960 (handle_noclone_attribute): New function. Forward-declare.
13961 * tree-inline.c (tree_versionable_function_p): Check for noclone
13962 attribute.
13963 * doc/extend.texi (Labels as Values): Document need for noclone.
13964 (Function Attributes): Document noclone attribute.
13965
0cf856b7
JJ
139662009-07-25 Jakub Jelinek <jakub@redhat.com>
13967
13968 PR rtl-optimization/34999
13969 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
13970 and dw_fde_switched_cold_to_hot fields.
13971 (output_cfi_p): New function.
13972 (output_call_frame_info): If fde->dw_fde_switched_sections,
13973 output 2 FDEs instead of one with corrupted header.
13974 (dwarf2out_do_cfi_startproc): New function.
13975 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
13976 and fde->dw_fde_switched_cold_to_hot.
13977 (dwarf2out_switch_text_section): Compute
13978 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
13979 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
13980 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
13981 Otherwise, compute fde->dw_fde_switch_cfi.
13982
2a2869d6
CC
139832009-07-24 Cary Coutant <ccoutant@google.com>
13984
13985 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
13986
cbea518e
CC
139872009-07-24 Cary Coutant <ccoutant@google.com>
13988
13989 * cfghooks.c (split_block): Copy discriminator to new block.
13990 * tree-cfg.c (assign_discriminator): Check location of last
13991 instruction in block as well as first.
13992
87da3843
UB
139932009-07-24 Uros Bizjak <ubizjak@gmail.com>
13994
13995 * config/i386/linux.c: Use fputs or putc instead of fprintf
13996 where appropriate.
13997 * config/i386/gas.h: Ditto.
13998 * config/i386/x86-64.h: Ditto.
13999 * config/i386/att.h: Ditto.
14000
a22fb74c
AK
140012009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14002
14003 * expmed.c (emit_store_flag): Use a recursive call to optimize the
14004 xor case.
14005
5b9633c8
MJ
140062009-07-24 Martin Jambor <mjambor@suse.cz>
14007
14008 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
14009 (ipa_push_func_to_list_1): Declare.
14010 (ipa_push_func_to_list): New function.
14011
14012 * ipa-prop.c (ipa_push_func_to_list_1): New function.
14013 (ipa_init_func_list): Call ipa_push_func_to_list_1.
14014 (ipa_push_func_to_list): Removed.
14015 (ipa_pop_func_from_list): Clear node_enqueued flag.
14016
ff5b964d 140172009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
f100a4a8 14018
ff5b964d
AK
14019 * config/s390/s390.c (override_options): Default
14020 max-unrolled-insns to 100 for z10 tuning.
14021
223cf84d
TG
140222009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
14023
14024 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
14025 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
14026 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
14027 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
14028 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
14029 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
14030 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
14031
3a802a9e
KT
140322009-07-24 Kai Tietz <kai.tietz@onevision.com>
14033
14034 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
14035 use default set in mingw32.h header.
14036 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
14037 64-bit /mingw/include path.
14038 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
14039 path.
14040
c580edc8
NV
140412009-07-23 Neil Vachharajani <nvachhar@google.com>
14042
14043 PR rtl-optimization/40209
14044 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
14045
0d42d490
UB
140462009-07-23 Uros Bizjak <ubizjak@gmail.com>
14047
14048 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
14049 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
14050 with the rest of string where appropriate. Use fputs or putc
14051 instead of fprintf where appropriate.
14052
a72c65c7
MM
140532009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
14054 Pat Haugen <pthaugen@us.ibm.com>
14055 Revital Eres <ERES@il.ibm.com>
14056
14057 * config/rs6000/vector.md: New file. Move most of the vector
14058 expander support here from altivec.md to allow for the VSX vector
14059 unit in the future. Add support for secondary_reload patterns.
14060 Rewrite the patterns for vector comparison, and vector comparison
14061 predicate instructions so that the RTL expresses the desired
14062 behavior, instead of using unspec.
14063
14064 * config/rs6000/constraints.md ("f" constraint): Use
14065 rs6000_constraints to hold the precalculated register class.
14066 ("d" constraint): Ditto.
14067 ("wd" constraint): New constraint for VSX.
14068 ("wf" constraint): Ditto.
14069 ("ws" constraint): Ditto.
14070 ("wa" constraint): Ditto.
14071 ("wZ" constraint): Ditto.
14072 ("j" constraint): Ditto.
14073
14074 * config/rs6000/predicates.md (vsx_register_operand): New
14075 predicate for VSX.
14076 (vfloat_operand): New predicate for vector.md.
14077 (vint_operand): Ditto.
14078 (vlogical_operand): Ditto.
14079 (easy_fp_constant): If VSX, 0.0 is an easy constant.
14080 (easy_vector_constant): Add VSX support.
14081 (altivec_indexed_or_indirect_operand): New predicate for
14082 recognizing Altivec style memory references with AND -16.
14083
14084 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
14085 for vector secondary reload support.
87da3843
UB
14086 (rs6000_vector_reg_class): Delete, replacing it with
14087 rs6000_constraints.
a72c65c7
MM
14088 (rs6000_vsx_reg_class): Ditto.
14089 (rs6000_constraints): New array to hold the register classes of
14090 each of the register constraints that can vary at runtime.
14091 (builtin_mode_to_type): New static array for builtin function type
14092 creation.
14093 (builtin_hash_table): New static hash table for builtin function
14094 type creation.
14095 (TARGET_SECONDARY_RELOAD): Define target hook.
14096 (TARGET_IRA_COVER_CLASSES): Ditto.
14097 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
0d42d490 14098 registers are 128 bits if VSX memory reference instructions are used.
a72c65c7
MM
14099 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
14100 unit is being used.
14101 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
14102 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
14103 Print several of the scheduling related parameters.
14104 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
14105 rs6000_constraints instead of rs6000_vector_reg_class. Move
14106 -mdebug=reg code to rs6000_debug_reg_global. Add support for
14107 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
14108 Altivec. Add VSX support. Setup for secondary reload support on
14109 Altivec/VSX registers.
14110 (rs6000_override_options): Make power7 set the scheduling groups
14111 like the power5. Add support for new debug switches to override
14112 the scheduling defaults. Temporarily disable -mcpu=power7 from
14113 setting -mvsx. Add support for debug switches -malways-hint,
14114 -msched-groups, and -malign-branch-targets.
14115 (rs6000_buitlin_conversion): Add support for returning unsigned
14116 vector conversion functions to fix regressions due to stricter
14117 type checking.
14118 (rs6000_builtin_mul_widen_even): Ditto.
14119 (rs6000_builtin_mul_widen_odd): Ditto.
14120 (rs6000_builtin_vec_perm): Ditto.
14121 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
14122 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
14123 to zero a register.
14124 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
14125 generated upstream.
14126 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
14127 VSX types for bit operations. Changes to accomidate vector.md.
14128 (bdesc_2arg): Ditto.
14129 (bdesc_1arg): Ditto.
14130 (struct builtin_description_predicates): Rewrite predicate
14131 handling so that RTL describes the operation, instead of passing
14132 the instruction to be used as a string argument.
14133 (bdesc_altivec_preds): Ditto.
14134 (altivec_expand_predicate_builtin): Ditto.
14135 (altivec_expand_builtin): Ditto.
14136 (rs6000_expand_ternop_builtin): Use a switch instead of an if
14137 statement for vsldoi support.
0d42d490 14138 (altivec_expand_ld_builtin): Change to use new names from vector.md.
a72c65c7
MM
14139 (altivec_expand_st_builtin): Ditto.
14140 (paired_expand_builtin): Whitespace changes.
14141 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
14142 builtin_mode_to_type table for secondary reload. Call
14143 builtin_function_type to build random builtin functions.
14144 (altivec_init_builtins): Change to use builtin_function_type to
14145 create builtin function types dynamically as we need them.
14146 (builtin_hash_function): New support for hashing the tree types
14147 for builtin function as we need it, rather than trying to build
0d42d490 14148 all of the trees that we need. Add initial preliminary VSX support.
a72c65c7
MM
14149 (builtin_function_type): Ditto.
14150 (builtin_function_eq): Ditto.
14151 (builtin_hash_struct): Ditto.
14152 (rs6000_init_builtins): Ditto.
14153 (rs6000_common_init_builtins): Ditto.
14154 (altivec_init_builtins): Ditto.
14155 (rs6000_common_init_builtins): Ditto.
14156 (enum reload_reg_type): New enum for simplifing reg classes.
14157 (rs6000_reload_register_type): Simplify register classes into GPR,
0d42d490 14158 Vector, and other registers. Altivec and VSX addresses in reload.
a72c65c7
MM
14159 (rs6000_secondary_reload_inner): Ditto.
14160 (rs6000_ira_cover_classes): New target hook, that returns the
14161 appropriate cover classes, based on -mvsx being used or not.
14162 (rs6000_secondary_reload_class): Add VSX support.
14163 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
14164 (get_vsel_insn): Ditto.
14165 (rs6000_emit_vector_compare): Rewrite vector conditional support
14166 so that where we can, we use RTL operators, instead of blindly use
14167 UNSPEC.
14168 (rs6000_emit_vector_select): Ditto.
14169 (rs6000_emit_vector_cond_expr): Ditto.
0d42d490 14170 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
a72c65c7 14171 (create_TOC_reference): Add -mdebug=addr support.
0d42d490 14172 (emit_frame_save): VSX loads/stores need register indexed addressing.
a72c65c7
MM
14173
14174 * config/rs6000/rs6000.md: Include vector.md.
14175
14176 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
14177
14178 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14179 support for V2DI, V2DF in logical, permute, select operations.
14180
14181 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
14182 switch for vsx/power7.
14183 (-mvsx-scalar-memory): Ditto.
14184 (-mvsx-align-128): Ditto.
14185 (-mallow-movmisalign): Ditto.
14186 (-mallow-df-permute): Ditto.
14187 (-msched-groups): Ditto.
14188 (-malways-hint): Ditto.
14189 (-malign-branch-targets): Ditto.
f100a4a8 14190
a72c65c7
MM
14191 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
14192 hook instead.
14193 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
14194 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
14195 (rs6000_vector_reg_class): Delete.
14196 (rs6000_vsx_reg_class): Ditto.
14197 (enum rs6000_reg_class_enum): New enum for the constraints that
14198 vary based on target switches.
14199 (rs6000_constraints): New array to hold the register class for all
14200 of the register constraints that vary based on the switches used.
14201 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
14202 (enum rs6000_builtins): Add unsigned varients for the builtin
14203 declarations returned by target hooks for expanding multiplies,
14204 select, and permute operations. Add VSX builtins.
14205 (enum rs6000_builtin_type_index): Add entries for VSX.
14206 (V2DI_type_node): Ditto.
14207 (V2DF_type_node): Ditto.
14208 (unsigned_V2DI_type_node): Ditto.
14209 (bool_long_type_node): Ditto.
14210 (intDI_type_internal_node): Ditto.
14211 (uintDI_type_internal_node): Ditto.
14212 (double_type_internal_node): Ditto.
14213
14214 * config/rs6000/altivec.md (whole file): Move all expanders to
14215 vector.md from altivec.md. Rename insn matching functions to be
14216 altivec_foo.
14217 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
14218 (altivec_vcmp*): Ditto.
14219 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
14220 (VM): New iterator for moves that includes the VSX types.
14221 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
14222 (altivec_vperm_<mode>_uns): New, for unsigned types.
0d42d490 14223 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
a72c65c7
MM
14224 (altivec_eq<mode>): Ditto.
14225 (altivec_gt<mode>): Ditto.
14226 (altivec_gtu<mode>): Ditto.
14227 (altivec_eqv4sf): Ditto.
14228 (altivec_gev4sf): Ditto.
14229 (altivec_gtv4sf): Ditto.
14230 (altivec_vcmpbfp_p): Ditto.
14231
6d53a79f
RE
142322009-07-23 Richard Earnshaw <rearnsha@arm.com>
14233
f100a4a8 14234 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
6d53a79f
RE
14235 unsigned HWI.
14236
33ecc126
UB
142372009-07-23 Uros Bizjak <ubizjak@gmail.com>
14238
14239 PR target/40832
011a3198 14240 * config/i386/i386.c (output_387_ffreep): Rewrite to use
33ecc126
UB
14241 ASM_SHORT instead of .word.
14242 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
14243 instead of .word in asm template.
14244
db1a8d98
VM
142452009-07-22 Vladimir Makarov <vmakarov@redhat.com>
14246
14247 PR target/37488
14248 * ira-lives.c (bb_has_abnormal_call_pred): New function.
14249 (process_bb_node_lives): Use it.
14250
14251 * ira.c (setup_cover_and_important_classes): Don't setup
14252 ira_important_class_nums. Add cover classes to the end of
14253 important classes.
011a3198
UB
14254 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
14255 New.
db1a8d98
VM
14256 (find_reg_class_closure): Use reorder_important_classes.
14257
14258 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
14259
14260 * config/i386/i386.c (i386_ira_cover_classes): New function.
14261 (TARGET_IRA_COVER_CLASSES): Redefine.
14262
14263 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
14264 importance of order of cover classes in the array.
f100a4a8 14265
cae63f88
DN
142662009-07-22 Diego Novillo <dnovillo@google.com>
14267
14268 * tree-pass.h (TDF_EH): Define.
14269 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
14270 contains TDF_EH, print the EH region number holding GS.
14271 * tree-dump.c (dump_options): Add "eh".
14272 * doc/invoke.texi: Document it.
14273
61ed6392
DK
142742009-07-22 Doug Kwan <dougkwan@google.com>
14275
14276 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
14277
a8338640
MM
142782009-07-22 Michael Matz <matz@suse.de>
14279
14280 PR tree-optimization/35229
14281 PR tree-optimization/39300
14282
14283 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
14284 (inhibit_phi_insertion): New function.
14285 (insert_into_preds_of_block): Call it for REFERENCEs.
14286 (init_pre): Initialize and finalize scalar evolutions.
14287 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
14288
1a66936f
UB
142892009-07-22 Uros Bizjak <ubizjak@gmail.com>
14290
14291 * config/i386/predicates.md (zero_extended_scalar_load_operand):
14292 Use CONST_VECTOR_NUNITS to determine number of elements.
14293
4fe6dea8
AK
142942009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
14295
14296 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
14297 (U, W): Constraints are now deprecated and will be removed if we
f100a4a8 14298 run out of letters.
4fe6dea8
AK
14299 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
14300 the file.
14301 ("prefetch"): Add the stcmh instruction for prefetching.
14302 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
14303 changes.
14304 (s390_short_displacement): Return always true if compiling for
14305 machines not providing the long displacement facility.
14306 (s390_mem_constraint): Support the new constraint letter Z.
14307 (s390_check_qrst_address): New function.
14308
072ebd49
DD
143092009-07-21 DJ Delorie <dj@redhat.com>
14310
14311 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
14312 alone too.
14313
4afe7ad7
JM
143142009-07-21 Jason Merrill <jason@redhat.com>
14315
14316 * c-common.c (max_tinst_depth): Increase default to 1024.
14317
848e6317
UB
143182009-07-21 Uros Bizjak <ubizjak@gmail.com>
14319
14320 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
14321 (vec_unpacku_float_lo_v4si): Ditto.
14322
54e86f6b
UB
143232009-07-21 Uros Bizjak <ubizjak@gmail.com>
14324
14325 PR target/40811
14326 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
14327 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
14328 (builtin_description): Add __builtin_ia32_cvtudq2ps.
14329 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
14330
4a2b7f24
JJ
143312009-07-21 Jakub Jelinek <jakub@redhat.com>
14332
14333 PR tree-optimization/40813
14334 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
14335 it.
14336
a1516d08
KK
143372009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
14338
14339 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
14340 with a NOP_EXPR if needed.
14341
cba146eb
PB
143422009-07-21 Paul Brook <paul@codesourcery.com>
14343
14344 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
14345 Terminate debug dump with newline.
14346
ef8d9a0e
JDA
143472009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14348
14349 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
14350 Cast "1" to unsigned HOST_WIDE_INT.
14351 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
14352 deposit length to the maximum length - lsb. Extend length if
14353 HOST_BITS_PER_WIDE_INT is 32.
14354
d48e9cea
OR
143552009-07-20 Olatunji Ruwase <tjruwase@google.com>
14356
14357 * cgraph.h (constant_pool_htab): New function.
14358 (constant_descriptor_tree): Move from varasm.c.
14359 * varasm.c (constant_pool_htab): New function.
14360 (constant_descriptor_tree): Move to cgraph.h.
14361
9c8e65c3
OR
143622009-07-20 Olatunji Ruwase <tjruwase@google.com>
14363
848e6317 14364 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
9c8e65c3 14365
3e014341
SZ
143662009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
14367
14368 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
14369 $(VARRAY_H).
14370
d0763469
XDL
143712009-07-20 Xinliang David Li <davidxl@google.com>
14372
14373 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
14374
752fd2a8
AN
143752009-07-20 Adam Nemet <anemet@caviumnetworks.com>
14376
14377 * config/mips/mips.md (move_type): Add arith.
14378 (type): Handle arith.
14379 (zero_extendsidi2): Rename this into ...
14380 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
14381 (zero_extendsidi2): New expander.
14382 (*zero_extendsidi2_dext): New pattern.
14383
621114bc
NC
143842009-07-20 Nick Clifton <nickc@redhat.com>
14385
14386 * config.gcc (mips64-*-*): Add definition of tm_defines in order
14387 to set MIPS_ABI_DEFAULT.
14388 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
14389
e338758d
JJ
143902009-07-20 Jakub Jelinek <jakub@redhat.com>
14391
38027156
JJ
14392 * tree-object-size.c (addr_object_size): Handle unions with
14393 array in it as last field of structs in __bos (, 1) as __bos (, 0).
14394
e338758d
JJ
14395 PR tree-optimization/40792
14396 * tree.c (build_function_type_skip_args): Remove bogus assert.
14397
08ad1d6d 143982009-07-20 Jan Hubicka <jh@suse.cz>
848e6317 14399 Martin Jambor <mjambor@suse.cz>
08ad1d6d
JH
14400
14401 * cgraph.h (combined_args_to_skip): New field.
14402 * cgraph.c (cgraph_create_virtual_clone): Properly handle
14403 combined_args_to_skip and args_to_skip.
14404 * tree-inline.c (update_clone_info): New function.
14405 (tree_function_versioning): Call update_clone_info.
bd62d832 14406 * cgraphunit.c (cgraph_materialize_clone): Dump materialized
1a66936f 14407 functions.
08ad1d6d
JH
14408 (cgraph_materialize_all_clones): More extensive dumping, working
14409 with combined_args_to_skip rather than args_to_skip.
14410
4bbe8262
IR
144112009-07-20 Ira Rosen <irar@il.ibm.com>
14412
14413 * tree-vectorizer.h (vectorizable_condition): Add parameters.
14414 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
14415 (get_initial_def_for_reduction): Likewise.
14416 (vectorizable_reduction): Skip the check of first operand in case
14417 of COND_EXPR. Add check that it is outer loop vectorization if
f100a4a8 14418 nested cycle was detected. Call vectorizable_condition() for
4bbe8262
IR
14419 COND_EXPR. If reduction epilogue cannot be created do not fail for
14420 nested cycles (if it is not double reduction). Assert that there
14421 is only one type in the loop in case of COND_EXPR. Call
14422 vectorizable_condition() to vectorize COND_EXPR.
14423 * tree-vect-stmts.c (vectorizable_condition): Update comment.
f100a4a8 14424 Add parameters. Allow nested cycles if called from
4bbe8262
IR
14425 vectorizable_reduction(). Use reduction vector variable if provided.
14426 (vect_analyze_stmt): Call vectorizable_reduction() before
14427 vectorizable_condition().
14428 (vect_transform_stmt): Update call to vectorizable_condition().
14429
6a799f6e 144302009-07-20 Christian Bruel <christian.bruel@st.com>
f100a4a8 14431
6a799f6e
CB
14432 * config/sh/sh.opt (-mfmovd): Resurrect and document.
14433 * doc/invoke.texi (-mfmovd): Likewise.
14434 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
f100a4a8 14435
eab09a51
JH
144362009-07-20 Jan Hubicka <jh@suse.cz>
14437
14438 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
14439 when handling SSA name.
14440
a915ab00
JH
144412009-07-19 Jan Hubicka <jh@suse.cz>
14442
14443 PR tree-optimization/40676
14444 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
14445 virtual PHIs in empty BBs.
14446
827f4079
AN
144472009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14448
14449 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
14450 re-expanded the compound use gen_lowpart instead to convert to the
14451 desired mode.
14452
f3ce1088
AN
144532009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14454
14455 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
14456 OUTER_CONST arguments.
14457 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
14458 the new wider mode will be masked off.
14459 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
14460
3e63dd3a
AN
144612009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14462
14463 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
14464 high-order bits are zero.
14465
b641d7fc
AN
144662009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14467
14468 * combine.c (simplify_shift_const_1): Split code to determine
14469 shift_mode into ...
14470 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
14471 new bits shifted in are identical to the old sign bit.
14472
33922890
RG
144732009-07-18 Richard Guenther <rguenther@suse.de>
14474
14475 PR c/40787
14476 * gimplify.c (gimplify_call_expr): Reject code using results from
14477 functions returning void.
14478
1d447995
RS
144792009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
14480
14481 * doc/md.texi: Document the new PowerPC "es" constraint.
14482 Document that "m" can include automodified addresses on this target,
14483 and explain how %U must be used. Extend the "Q" and "Z" documentation
14484 to suggest "es" as well as "m".
14485 * config/rs6000/constraints.md (es): New memory constraint.
14486 (Q, Z): Update strings to match new documentation.
14487
406d1650
RS
144882009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
14489
14490 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
14491 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
14492 * config/rs6000/predicates.md (volatile_mem_operand): Use
14493 offsettable_nonstrict_memref_p.
14494 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
14495 (*floatunssidf2_internal): Likewise.
14496 (*fix_truncdfsi2_internal): Likewise.
14497 (*fix_trunctfsi2_internal): Likewise.
14498
a0ce0e6e
AS
144992009-07-17 Anatoly Sokolov <aesok@post.ru>
14500
14501 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
14502 atmega32u2 devices.
14503 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14504
a406865a
RG
145052009-07-17 Richard Guenther <rguenther@suse.de>
14506
14507 PR c/40401
14508 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
14509 (pass_warn_unused_result): Likewise.
14510 (TODO_set_props): Remove.
14511 * omp-low.c (diagnose_omp_structured_block_errors): Change to
14512 run as a pass.
14513 (pass_diagnose_omp_blocks): Define.
14514 * c-decl.c (pop_file_scope): Do not finalize the CU here.
14515 (c_gimple_diagnostics_recursively): Remove.
14516 (finish_function): Do not call it.
14517 (c_write_global_declarations): Continue after errors.
14518 Finalize the CU here.
14519 * c-gimplify.c (c_genericize): Do not gimplify here.
14520 * c-common.c (c_warn_unused_result): Move ...
14521 * tree-cfg.c (do_warn_unused_result): ... here.
14522 (run_warn_unused_result): New function.
14523 (gate_warn_unused_result): New function.
14524 (pass_warn_unused_result): New pass.
14525 * c-common.h (c_warn_unused_result): Remove.
14526 * flags.h (flag_warn_unused_result): Declare.
14527 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
14528 * opts.c (flag_warn_unused_result): Initialize to false.
14529 * toplev.c (compile_file): Add comment.
14530 * omp-low.c (create_omp_child_function): Do not register
14531 the function with the frontend.
14532 (diagnose_omp_structured_block_errors): Prepare to be
14533 called as optimization pass.
14534 (gate_diagnose_omp_blocks): New function.
14535 (pass_diagnose_omp_blocks): New pass.
14536 * cgraph.h (cgraph_optimize): Remove.
14537 (cgraph_analyze_function): Likewise.
14538 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
14539 * cgraphunit.c (cgraph_lower_function): Lower nested functions
14540 before their parents here.
14541 (cgraph_finalize_function): Not here.
14542 (cgraph_analyze_function): Gimplify functions here.
14543 (cgraph_finalize_compilation_unit): Continue after errors.
14544 Optimize the callgraph from here.
14545 (cgraph_optimize): Make static.
14546 * langhooks.c (write_global_declarations): Finalize the CU.
14547 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
14548 (gimplify_function_tree): Assert we gimplify only once.
14549 Set PROP_gimple_any property.
14550 * tree-nested.c (gimplify_all_functions): New function.
14551 (lower_nested_functions): Gimplify all nested functions.
14552 * gimple.h (diagnose_omp_structured_block_errors): Remove.
14553 * passes.c (init_optimization_passes): Add pass_warn_unused_result
14554 and pass_diagnose_omp_blocks after gimplification. Do not
14555 set TODO_set_props on all_lowering_passes.
14556 (execute_one_pass): Do not handle TODO_set_props.
14557 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
14558 (gimplify.o): Add tree-pass.h dependency.
14559 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
14560 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
14561 (unsave_r): Likewise.
14562 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
14563 temporary variable.
14564
2e687c2c
SL
145652009-07-17 Sandra Loosemore <sandra@codesourcery.com>
14566
14567 * doc/service.texi (Service): Restore previously removed link,
14568 which isn't broken after all.
14569
7763473e
RG
145702009-07-17 Richard Guenther <rguenther@suse.de>
14571
14572 PR tree-optimization/40321
14573 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
14574 PHI nodes to the maximal set.
14575 (make_values_for_phi): Add PHI arguments to the maximal set.
14576 (execute_pre): Dump PHI_GEN and the maximal set.
14577
4f934809
JJ
145782009-07-17 Jakub Jelinek <jakub@redhat.com>
14579
14580 PR c++/40780
14581 * gimplify.c (gimplify_conversion): Don't change non-conversions into
14582 VIEW_CONVERT_EXPR.
14583
63a26b78
SL
145842009-07-16 Sandra Loosemore <sandra@codesourcery.com>
14585
14586 * doc/extend.texi (Nested Functions): Replace broken link with
14587 textual reference.
14588 * doc/service.texi (Service): Remove broken link.
14589
3ac337c3
L
145902009-07-16 H.J. Lu <hongjiu.lu@intel.com>
14591
14592 PR bootstrap/40781
14593 * builtins.c (expand_builtin_memcmp): Use loc instead of
14594 EXPR_LOCATION (exp).
14595 (expand_builtin_strncmp): Likewise.
14596
db3927fb
AH
145972009-07-17 Aldy Hernandez <aldyh@redhat.com>
14598 Manuel López-Ibáñez <manu@gcc.gnu.org>
14599
f100a4a8 14600 PR 40435
db3927fb
AH
14601 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
14602 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
14603 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
14604 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
14605 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
14606 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
14607 tree-inline.c, c-common.c, c-common.h, gimple.c,
14608 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
14609 convert.c: Add location argument to fold_{unary,binary,ternary},
14610 fold_build[123], build_call_expr, build_size_arg,
14611 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
14612 fold_build1_initializer, fold_build2_initializer,
14613 fold_build3_initializer, fold_build_call_array,
14614 fold_build_call_array_initializer, fold_single_bit_test,
14615 omit_one_operand, omit_two_operands, invert_truthvalue,
14616 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
14617 combine_comparisons, fold_builtin_*, fold_call_expr,
14618 build_range_check, maybe_fold_offset_to_address, round_up,
14619 round_down.
14620
c32097d8
JM
146212009-07-16 Jason Merrill <jason@redhat.com>
14622
14623 PR libstdc++/37907
14624 * c-common.c (c_common_reswords): Add __is_standard_layout
14625 and __is_trivial.
14626 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
14627 * doc/implement-cxx.texi: New.
14628 * doc/gcc.texi: Include it.
14629
b3c5a409
DD
146302009-07-16 DJ Delorie <dj@redhat.com>
14631
14632 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
14633 compares that may be indirectly affected by previous instructions.
14634
a41d064d
KG
146352009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14636
14637 * builtins.c (do_mpc_arg2): New.
14638 (fold_builtin_2): Fold builtin cpow.
14639 * real.h (HAVE_mpc_pow): New.
14640
db87b56d
BM
146412009-07-16 Bingfeng Mei <bmei@broadcom.com>
14642
9e7c935a
UB
14643 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
14644 comparison to skip unprofitable schedule
14645
ba0c638e
SB
146462009-07-16 Simon Baldwin <simonb@google.com>
14647
14648 * gcc.c (option_map): New flag -no-canonical-prefixes.
14649 * (display_help): Print help text for new flag.
14650 * (process_command): Move options translation and language specifics
14651 and handle new flag early. Use it to set a function pointer to a
14652 prefix builder. Replace make_relative_prefix calls with calls to
14653 the function pointed to. Ignore new flag in regular options handling.
14654 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
14655
11af2d7b
DD
146562009-07-15 DJ Delorie <dj@redhat.com>
14657
14658 * config/mep/mep.md (sibcall_internal): Change register to avoid
14659 argument registers.
14660 (sibcall_value_internal): Likewise.
14661
9d2bb902
EB
146622009-07-15 Eric Botcazou <ebotcazou@adacore.com>
14663
14664 PR rtl-optimization/40710
14665 * resource.c (mark_target_live_regs): Reset DF problem to LR.
14666
da45599c
AN
146672009-07-15 Adam Nemet <anemet@caviumnetworks.com>
14668
14669 * config/mips/mips.md (*extenddi_truncate<mode>,
14670 *extendsi_truncate<mode>): Change type attribute to move_type
14671 with shift_shift. Split out code handling exts from here ...
14672 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
14673 pattern.
14674 (*extendhi_truncateqi): Change type attribute to move_type with
14675 shift_shift. Split out code handling exts from here ...
14676 (*extendhi_truncateqi_exts): ... to this new pattern.
14677
31f44cd0 146782009-07-15 Uros Bizjak <ubizjak@gmail.com>
1fba7394 14679
31f44cd0
UB
14680 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
14681 instead of "and" with inverted sign bit mask value. Use
14682 "nonimmediate_operand" for operand 1 and operand 2 predicate.
14683 Allocate registers only for operand 4 and operand 5.
1fba7394 14684
b4e4232d
JJ
146852009-07-15 Jakub Jelinek <jakub@redhat.com>
14686
14687 PR middle-end/40747
14688 * fold-const.c (fold_cond_expr_with_comparison): When folding
14689 < and <= to MIN, make sure the MIN uses the same type as the
14690 comparison's operands.
14691
fa01135d
RE
146922009-07-15 Richard Earnshaw <rearnsha@arm.com>
14693
14694 * arm.md (ior_xor): New code iterator.
14695 (split for ior/xor with shift and zero-extend): New split pattern.
14696 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
14697
b41e33fe
RG
146982009-07-15 Richard Guenther <rguenther@suse.de>
14699
14700 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
14701 offset member.
14702
c9b2f286
RG
147032009-07-15 Richard Guenther <rguenther@suse.de>
14704
14705 PR middle-end/40753
1fba7394 14706 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
c9b2f286 14707
31d29c40
MK
147082009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
14709
14710 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
14711 handle 2.6.30 kernel.
14712
18e67adf
DD
147132009-07-15 DJ Delorie <dj@redhat.com>
14714
14715 * config/mep/mep.md (sibcall_internal): Change register to allow
14716 for 24-bit addresses.
14717 (sibcall_value_internal): Likewise.
14718
96809b41 147192009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
f100a4a8 14720
1fba7394
UB
14721 * doc/invoke.texi: Added descriptions of the scheduling heuristics
14722 that are enabled/disabled by the flags introduced by a previous patch.
f100a4a8 14723
54a1e1d0
DD
147242009-07-14 DJ Delorie <dj@redhat.com>
14725
14726 * config/mep/mep.md (sibcall_internal): Include non-toggling
14727 non-jmp case.
14728 (sibcall_value_internal): Likewise.
14729
2a4c0366
TG
147302009-07-14 Taras Glek <tglek@mozilla.com>
14731 Rafael Espindola <espindola@google.com>
14732
14733 * doc/sourcebuild.texi: Document install-plugin target.
14734 * configure.ac: Added install-plugin target to language makefiles.
14735 * configure: Regenerate.
bd62d832 14736 * Makefile.in (install-plugin): Install more headers,
2a4c0366
TG
14737 depend on lang.install-plugin.
14738
2349c14b
MLI
147392009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
14740
14741 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
14742 translation.
f100a4a8 14743
a9d1723f
DD
147442009-07-14 DJ Delorie <dj@redhat.com>
14745
14746 * config/mep/mep.c (mep_vliw_jmp_match): New function.
14747 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
14748 * config/mep/mep.md (sibcall_internal): Change test from
14749 mep_vliw_mode_match to mep_vliw_jmp_match.
14750 (sibcall_value_internal): Likewise.
14751
af766f2d
UB
147522009-07-14 Uros Bizjak <ubizjak@gmail.com>
14753
14754 * config/i386/sse.md (copysign<mode>3): New expander.
14755 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
14756 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
14757 Use ix86_build_const_vector.
14758 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
14759 IX86_BUILTIN_CPYSGNPD.
14760 (builtin_description): Add __builtin_ia32_copysignps and
14761 __builtin_ia32_copysignpd.
14762 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
14763 and BUILT_IN_COPYSIGNF.
14764
b35c8160
JM
147652009-07-13 Jason Merrill <jason@redhat.com>
14766
14767 * builtins.c (can_trust_pointer_alignment): New fn.
14768 (get_pointer_alignment): Factor it out from here.
14769 * tree.h: Declare it.
14770
e02e8e58
DE
147712009-07-14 David Edelsohn <edelsohn@gnu.org>
14772
14773 * config/rs6000/predicates.md (offsettable_mem_operand): Test
14774 RTX_AUTOINC class.
14775
4fdaccea
DS
147762009-07-14 Dodji Seketeli <dodji@redhat.com>
14777
14778 PR debug/40705
14779 PR c++/403057
14780 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
14781
0b200b80 147822009-07-14 Richard Guenther <rguenther@suse.de>
af766f2d 14783 Andrey Belevantsev <abel@ispras.ru>
0b200b80
RG
14784
14785 PR middle-end/40745
14786 * cfgexpand.c (partition_stack_vars): Do not bother to update
14787 alias information when not optimizing.
14788
55b34b5f 147892009-07-14 Richard Guenther <rguenther@suse.de>
848e6317 14790 Andrey Belevantsev <abel@ispras.ru>
55b34b5f
RG
14791
14792 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
14793 (pt_solution_set): Likewise.
14794 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
14795 * tree-ssa-structalias.c (pt_solution_set): New function.
14796 * final.c (rest_of_clean_state): Free SSA data structures.
14797 * print-rtl.c (print_decl_name): Remove.
14798 (print_mem_expr): Implement in terms of print_generic_expr.
14799 * alias.c (ao_ref_from_mem): New function.
14800 (rtx_refs_may_alias_p): Likewise.
14801 (true_dependence): Query alias-export info.
14802 (canon_true_dependence): Likewise.
14803 (write_dependence_p): Likewise.
14804 * tree-dfa.c (get_ref_base_and_extent): For void types leave
14805 size unknown.
14806 * emit-rtl.c (component_ref_for_mem_expr): Remove.
14807 (mem_expr_equal_p): Use operand_equal_p.
14808 (set_mem_attributes_minus_bitpos): Do not use
14809 component_ref_for_mem_expr.
14810 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
14811 (update_alias_info_with_stack_vars): Likewise.
14812 (partition_stack_vars): Call update_alias_info_with_stack_vars.
14813 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
14814 explicitly nor clear stmt operands.
14815 Free the decl-to-pointer map.
14816 * tree-optimize.c (execute_free_datastructures): Do not free
14817 SSA data structures here.
14818 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
14819 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
14820 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
14821 dependencies.
14822 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
14823
a46f0964
DD
148242009-07-13 DJ Delorie <dj@redhat.com>
14825
1700c2e7
DD
14826 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
14827 unrolling at the right iteration count.
14828
a46f0964
DD
14829 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
14830 calculations.
14831
ee4764a8 148322009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
f100a4a8 14833
af766f2d
UB
14834 * haifa-sched.c (rank_for_schedule): Introduced flags to
14835 enable/disable individual scheduling heuristics.
14836 * common.opt: Introduced flags to enable/disable individual
f100a4a8 14837 heuristics in the scheduler.
af766f2d
UB
14838 * doc/invoke.texi: Introduced flags to enable/disable individual
14839 heuristics in the scheduler.
f100a4a8 14840
9122666c
KT
148412009-07-13 Kai Tietz <kai.tietz@onevision.com>
14842
14843 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
14844 config/i386/mingw-tls.c.
14845 * config/i386/mingw-tls.c: Removed.
14846
2f3e235b
IR
148472009-07-13 Ira Rosen <irar@il.ibm.com>
14848
f100a4a8 14849 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
2f3e235b
IR
14850 checks access only relevant statements.
14851 (vectorizable_reduction): Likewise.
14852
f345f84a
KT
148532009-07-12 Kai Tietz <kai.tietz@onevision.com>
14854
14855 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
14856 just for 32-bit case.
14857
f645e9a2
JH
148582009-07-12 Jan Hubicka <jh@suse.cz>
14859
14860 PR tree-optimization/40585
14861 * except.c (expand_resx_expr): When there already is resume
14862 instruction, produce linked list.
14863 (build_post_landing_pads): Assert that resume is empty.
14864 (connect_post_landing_pads): Handle resume lists.
14865 (dump_eh_tree): Dump resume list.
14866
06066f92
IR
148672009-07-12 Ira Rosen <irar@il.ibm.com>
14868
14869 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
14870 with additional argument.
7c8b1a77 14871 * tree-vectorizer.h (enum vect_def_type): Add
06066f92
IR
14872 vect_double_reduction_def.
14873 (vect_is_simple_reduction): Add argument.
7c8b1a77 14874 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
06066f92
IR
14875 indentation.
14876 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
14877 vect_is_simple_reduction with additional argument.
14878 (vect_analyze_loop_operations): Handle exit phi nodes in case of
14879 double reduction.
14880 (reduction_code_for_scalar_code): Handle additional codes by
14881 returning ERROR_MARK for them. Fix comment and indentation.
14882 (vect_is_simple_reduction): Fix comment, add argument to specify
14883 double reduction. Detect double reduction.
14884 (get_initial_def_for_induction): Fix indentation.
14885 (get_initial_def_for_reduction): Fix comment and indentation.
14886 Handle double reduction. Create initial definitions that do not
14887 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
14888 (vect_create_epilog_for_reduction): Fix comment, add argument to
14889 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
14890 epilogue result extraction. Create double reduction phi node and
14891 replace relevant uses.
14892 (vectorizable_reduction): Call vect_is_simple_reduction with
14893 additional argument. Fix indentation. Update epilogue code treatment
7c8b1a77 14894 according to the changes in reduction_code_for_scalar_code. Check
06066f92
IR
14895 for double reduction. Call vect_create_epilog_for_reduction with
14896 additional argument.
14897 * tree-vect-stmts.c (process_use): Handle double reduction, update
14898 documentation.
14899 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
14900 (vect_get_vec_def_for_operand): Likewise.
14901
b20231fe
DS
149022009-07-12 Danny Smith <dansmister@gmail.com>
14903
14904 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
14905 dllexport if !TREE_PUBLIC.
14906 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
14907
97c281da
AS
149082009-07-11 Anatoly Sokolov <aesok@post.ru>
14909
14910 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
14911 (avr_extra_arch_macro) Remove declatation.
14912 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
14913 (avr_extra_arch_macro) Declare as static.
14914 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
14915
6b45de00
JH
149162009-07-11 Jan Hubicka <jh@suse.cz>
14917
14918 PR middle-end/48388
14919 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
14920
dd67163f
JJ
149212009-07-11 Jakub Jelinek <jakub@redhat.com>
14922
3e3a9a6a
JJ
14923 PR debug/40713
14924 * dwarf2out.c (dw_fde_struct): Add in_std_section and
14925 cold_in_std_section bits.
14926 (dwarf2out_begin_prologue): Initialize them.
14927 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
14928 if already covered by text_section or cold_text_section range.
14929
ae58e548
JJ
14930 PR rtl-optimization/40667
14931 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
14932 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
14933 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
14934 * config/i386/i386.c (ix86_minimum_alignment): New function.
14935 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
14936 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
14937 * emit-rtl.c (gen_reg_rtx): Likewise.
14938 * function.c (assign_parms): Likewise. If nominal_type needs
14939 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
14940 rather than passed_type's alignment.
14941
dd67163f
JJ
14942 PR target/40668
14943 * function.c (assign_parm_setup_stack): Adjust
14944 MEM_OFFSET (data->stack_parm) if promoted_mode is different
14945 from nominal_mode on big endian.
14946
e9edda23
PB
149472009-07-11 Paolo Bonzini <bonzini@gnu.org>
14948
14949 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
14950
82e45095
DD
149512009-07-10 DJ Delorie <dj@redhat.com>
14952
14953 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
14954
98ac6510
MM
149552009-07-10 Mark Mitchell <mark@codesourcery.com>
14956
14957 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
14958 attribute.
14959 (thumb2_cbnz): Likewise.
14960
b96c5923
DD
149612009-07-10 David Daney <ddaney@caviumnetworks.com>
14962
14963 PR target/39079
14964 * config.gcc (supported_defaults): Add synci.
14965 (with_synci): Add validation.
14966 (all_defaults): Add synci.
14967 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
14968 ISA_HAS_SYNCI.
14969 (synci): Same.
14970 * config/mips/mips.opt (msynci): New option.
14971 * config/mips/mips.c (mips_override_options): Warn on use of
14972 -msynci for targets that do now support it.
14973 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14974 msynci.
14975 * gcc/doc/invoke.texi (-msynci): Document the new option.
14976 * doc/install.texi (--with-synci): Document the new option.
14977
182e00b1
RG
149782009-07-10 Richard Guenther <rguenther@suse.de>
14979
14980 PR tree-optimization/40496
14981 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
14982 the PHI result with a compatible type.
14983
156f545a
MLI
149842009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
14985
14986 PR 25509
14987 PR 40614
14988 * c.opt (Wunused-result): New.
14989 * doc/invoke.texi: Document it.
14990 * c-common.c (c_warn_unused_result): Use it.
14991
06c43499
DD
149922009-07-09 DJ Delorie <dj@redhat.com>
14993
5cec9f59
DD
14994 * targhooks.c (default_target_can_inline_p): Rename from
14995 default_target_option_can_inline_p.
14996 * targhooks.h (default_target_can_inline_p): Likewise.
14997 * target-def.h (TARGET_CAN_INLINE_P): Rename from
14998 TARGET_OPTION_CAN_INLINE_P.
14999 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
15000 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
15001 (mep_target_can_inline_p): Rename from
15002 mep_target_option_can_inline_p.
15003
15004 PR target/40626
b9263ae5
DD
15005 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
15006 registers used to pass vectors.
15007
06c43499
DD
15008 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
15009
a80b0574
TT
150102009-07-09 Tom Tromey <tromey@redhat.com>
15011
15012 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
15013 * config/mmix/mmix.c: Include dwarf2.h.
15014 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
15015 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
15016 * config/sh/sh.c: Include dwarf2.h.
15017 * config/i386/i386.c: Include dwarf2.h.
15018 * Makefile.in (DWARF2_H): Remove 'elf'.
15019 * except.c: Include dwarf2.h.
15020 * unwind-dw2.c: Include dwarf2.h.
15021 * dwarf2out.c: Include dwarf2.h.
15022 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
15023 * unwind-dw2-fde.c: Include dwarf2.h.
15024 * dwarf2asm.c: Include dwarf2.h.
15025
356c23b3 150262009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
7c8b1a77 15027
356c23b3 15028 * haifa-sched.c (insn_finishes_cycle_p): New static function.
7c8b1a77
UB
15029 (max_issue): Use it.
15030 * sched-int.h (struct sched_info: insn_finishes_block_p): New
15031 scheduler hook.
15032 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
15033 (region_sched_info): Update.
15034 * sched-ebb.c (ebb_sched_info): Update.
15035 * modulo-sched.c (sms_sched_info): Update.
356c23b3
MK
15036 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
15037
5223c588
MK
150382009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
15039
15040 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
8d4cf6d7
BS
15041
150422009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
15043
f100a4a8 15044 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
8d4cf6d7 15045
b9da76de
JJ
150462009-07-09 Jakub Jelinek <jakub@redhat.com>
15047
15048 PR middle-end/40692
15049 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
15050 arg1 with arg01 if arg1 is already INTEGER_CST.
15051
fcaf7e12
AN
150522009-07-08 Adam Nemet <anemet@caviumnetworks.com>
15053
7c8b1a77
UB
15054 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
15055 Transform (and (truncate)) into (truncate (and)).
fcaf7e12 15056
3f36bac2
AN
150572009-07-08 Adam Nemet <anemet@caviumnetworks.com>
15058
15059 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
15060 creating LHS paradoxical subregs. Fix surrounding returns to
15061 use NULL_RTX rather than 0.
15062
ae30c1fa
DD
150632009-07-08 DJ Delorie <dj@redhat.com>
15064
bd62d832 15065 * config/mep/mep.c (mep_option_can_inline_p): New.
ae30c1fa
DD
15066 (TARGET_OPTION_CAN_INLINE_P): Define.
15067
3d78d293
MW
150682009-07-08 Mark Wielaard <mjw@redhat.com>
15069
15070 PR debug/40659
15071 * dwarf2out.c (add_data_member_location_attribute): When we have
15072 only a constant offset don't emit a new location description using
15073 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
15074 dwarf_version > 2.
15075
ac2e563f
RH
150762009-07-08 Richard Henderson <rth@redhat.com>
15077
15078 PR target/38900
15079 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
15080 (enum reg_class): Add CLOBBERED_REGS.
15081 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
15082 * config/i386/i386.c (ix86_conditional_register_usage): Moved
15083 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
15084 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
15085 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
15086 force 64-bit sibcalls into R11.
15087 * config/i386/constraints.md (U): New constraint.
15088 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
15089 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
15090 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
15091
8ed77e22
SZ
150922009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
15093
15094 * basic-block.h (dump_regset, debug_regset): Remove duplicate
15095 prototypes.
15096 * c-objc-common.h (c_initialize_diagnostics): Ditto.
15097 * ebitmap.h (dump_ebitmap): Ditto.
15098 * optabs.h (optab_libfunc): Ditto.
15099 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
15100 * tree-flow.h (vect_can_force_dr_alignment_p,
3f36bac2 15101 get_vectype_for_scalar_type): Ditto.
8ed77e22 15102 (vectorize_loops): Move prototype to ...
3f36bac2 15103 * tree-vectorizer.h: ... here. Also, adjust comment.
8ed77e22
SZ
15104 (vect_set_verbosity_level): Remove duplicate prototype.
15105 * tree-ssa-loop.c: Include tree-vectorizer.h.
15106 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
15107
c6075b13
NC
151082009-07-08 Nick Clifton <nickc@redhat.com>
15109
15110 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
15111 forward slash.
15112
d1b5afd5
DD
151132009-07-08 DJ Delorie <dj@redhat.com>
15114
15115 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
15116 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
15117 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
15118 written to.
15119 * config/mep/intrinsics.md: Regenerated.
15120 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
15121 registers when asm() or calls are detected.
3f36bac2 15122
d665b6e5
MLI
151232009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
15124
15125 PR c++/31246
15126 * gimplify.c (gimplify_expr): Propagate no_warning flag when
15127 gimplifying.
15128 * gimple (gimple_build_call_from_tree): Likewise.
15129 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
15130 no_warning flag before warning.
3f36bac2 15131
5e278028
MLI
151322009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15133
15134 * tree.c (set_expr_locus): Remove.
15135 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
15136 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
15137 EXPR_LOCATION.
15138 * gimplify.c (internal_get_tmp_var): Likewise.
15139 (gimplify_call_expr): Likewise.
15140 (gimplify_one_sizepos): Likewise.
15141
ed3346c2
EB
151422009-07-07 Eric Botcazou <ebotcazou@adacore.com>
15143
15144 PR debug/40666
15145 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
15146 to variables for debugging purposes.
15147
4db19cc7
ML
151482009-06-23 Mark Loeser <mark@halcy0n.com>
15149
15150 PR build/40010
15151 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
15152
72f90fde
MLI
151532009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15154
15155 * pretty-print.c (pp_base_format): Remove %J.
15156 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
15157 gcc_cxxdiag_char_table): Likewise.
15158 (init_dynamic_diag_info): Likewise.
4db19cc7 15159
dcb91ebe
MLI
151602009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15161
15162 * pretty-print.c (pp_base_format): Remove %H.
15163 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
15164 gcc_cxxdiag_char_table): Likewise.
15165 (init_dynamic_diag_info): Likewise.
15166 * config/mep/mep.c (mep_select_section): Likewise.
15167
cf400ddb
DS
151682009-07-07 Duncan Sands <baldrick@free.fr>
15169
7c8b1a77
UB
15170 * final.c (pass_clean_state): Give the pass a name.
15171 * passes.c (pass_rest_of_compilation): Likewise.
15172 * tree-optimize.c (pass_all_optimizations): Likewise.
cf400ddb 15173
d575725b
L
151742009-07-07 H.J. Lu <hongjiu.lu@intel.com>
15175
15176 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
15177 an extra 'decl' for error_at.
15178
535536b4
JJ
151792009-07-07 Jakub Jelinek <jakub@redhat.com>
15180
15181 PR middle-end/40669
15182 * tree-tailcall.c (adjust_return_value_with_ops,
15183 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
15184 if it has complex or vector type.
15185
f062f8f2
OH
151862009-07-07 Olivier Hainque <hainque@adacore.com>
15187
d575725b
L
15188 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
15189 pthread symbols.
f062f8f2 15190
cac1b0ee
BS
151912009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
15192
15193 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
15194
c5d75364
MLI
151952009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15196
7c8b1a77 15197 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
c5d75364
MLI
15198 * c-decl.c: Likewise.
15199 * function.c: Likewise.
15200 * varasm.c: Likewise.
15201 * tree-ssa.c: Likewise.
15202 * c-common.c: Likewise.
15203 * tree-cfg.c: Likewise.
15204 * config/spu/spu.c: Likewise.
15205 * config/ia64/ia64.c: Likewise.
15206 * config/v850/v850.c: Likewise.
15207
b932c20b
DD
152082009-07-06 DJ Delorie <dj@redhat.com>
15209
15210 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
15211 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
15212 unspecified accesses to control registers.
15213 * config/mep/intrinsics.md: Regenerate.
15214 * config/mep/intrinsics.h: Regenerate.
15215 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 15216
fab922b1
MLI
152172009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15218
15219 * c-lex.c: Replace %H by an explicit location. Update all calls.
15220 * c-common.c: Likewise.
15221 * c-decl.c: Likewise.
15222 * c-typeck.c: Likewise.
15223 * fold-const.c: Likewise.
15224 * gimplify.c: Likewise.
15225 * stmt.c: Likewise.
15226 * tree-cfg.c: Likewise.
15227 * tree-ssa-loop-niter.c: Likewise.
15228 * tree-vrp.c: Likewise.
15229 * value-prof.c: Likewise.
15230
66350781
DN
152312009-07-06 Diego Novillo <dnovillo@google.com>
15232
15233 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
15234 if it has one. Handle cases where VAR does not have an
15235 annotation or cfun is NULL.
15236
d251bfca
DN
152372009-07-06 Diego Novillo <dnovillo@google.com>
15238
15239 * tree.c: Include debug.h.
15240 (initialize_tree_contains_struct): New.
15241 (init_ttree): Call it.
15242 (tree_node_structure_for_code): Factor out of ...
15243 (tree_node_structure): ... here.
15244 * treestruct.def (TS_PHI_NODE): Remove.
15245 (TS_GIMPLE_STATEMENT): Remove.
15246
e923c8ea
DN
152472009-07-06 Diego Novillo <dnovillo@google.com>
15248
7c8b1a77 15249 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
e923c8ea
DN
15250 (debug_tree_chain): Handle cycles.
15251
7a61cf6f
NC
152522009-07-06 Nick Clifton <nickc@redhat.com>
15253 DJ Delorie <dj@redhat.com>
15254
15255 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
15256 __FMOVD_ENABLED__ is defined.
15257 * config/sh/sh.h
15258 (TARGET_FMOVD): Provide a default definition.
15259 (MASK_FMOVD): Likewise.
15260 (TARGET_CPU_CPP_BUILTINS): Define
15261 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
15262 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7c8b1a77 15263 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
7a61cf6f
NC
15264 (split for DF load from memory into register): Also handle
15265 MEMs which consist of REG+DISP addressing.
15266 (split for DF store from register to memory): Likewise.
15267 (movsf_ie): Always use single fp_mode.
15268 * config/sh/sh.c (sh_override_options): Do not automatically
15269 enable TARGET_MOVD for the SH2A when supporting doubles - leave
15270 that to the -mfmovd command line switch.
15271 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
15272 (fldi_ok): Always allow.
15273 * config/sh/sh.opt (mfmovd): Remove this switch.
15274 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
15275
83f63251
R
152762009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
15277 Kaz Kojima <kkojima@gcc.gnu.org>
15278
15279 PR rtl-optimization/30807
15280 * postreload.c (reload_combine): For every new use of REG_SUM,
15281 record the use of BASE.
15282
172d54e0
JH
152832009-07-06 Jan Hubicka <jh@suse.cz>
15284
15285 * params.def: Revert my accidental commit at 2009-06-30.
15286
34097e36
ILT
152872009-07-04 Ian Lance Taylor <iant@google.com>
15288
15289 PR target/40636
15290 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
15291 EXPORTED_CONST.
15292 (mingw_format_attribute_overrides): Likewise.
15293
bd5b2c2d
JJ
152942009-07-04 Jakub Jelinek <jakub@redhat.com>
15295
15296 PR debug/40596
15297 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
15298 don't check cfa.reg. Instead of cfa.indirect use
15299 fde && fde->drap_reg != INVALID_REGNUM test.
15300
39ba6ab7
EB
153012009-07-04 Eric Botcazou <ebotcazou@adacore.com>
15302
15303 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
15304
54a0ac2d
VM
153052009-07-03 Vladimir Makarov <vmakarov@redhat.com>
15306
15307 PR target/40587
7c8b1a77 15308 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
3f36bac2 15309
fae1034e
RG
153102009-07-03 Richard Guenther <rguenther@suse.de>
15311
15312 PR tree-optimization/40640
15313 * tree-switch-conversion.c (build_arrays): Perform arithmetic
15314 in original type.
15315
ba8978d0
JH
153162009-07-03 Jan Hubicka <jh@suse.cz>
15317
15318 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
15319 for size, reduce amount of inlining.
15320
d73fb533
RG
153212009-07-03 Richard Guenther <rguenther@suse.de>
15322
15323 PR middle-end/34163
7c8b1a77
UB
15324 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
15325 if t +- x is known to not overflow and the conversion widens the
15326 operation.
d73fb533
RG
15327 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
15328
7351bcaa
JH
153292009-07-03 Jan Hubicka <jh@suse.cz>
15330
15331 * ipa-pure-const.c (analyze): Update loop optimizer init.
15332 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
15333 try_remove_empty_loop, remove_empty_loops): Remove.
15334 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
15335 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
15336 to mark regular loops as neccesary.
15337 (degenerate_phi_p): New function.
15338 (propagate_necessity, remove_dead_phis): Use it.
15339 (forward_edge_to_pdom): Likewise.
15340 (eliminate_unnecessary_stmts): Take care to remove uses of results of
15341 virtual PHI nodes that became unreachable.
15342 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
15343 * tree-flow.h (remove_empty_loops): Remove.
15344 * passes.c (init_optimization_passes): Remove.
15345
5071eab7
UB
153462009-07-03 Uros Bizjak <ubizjak@gmail.com>
15347
15348 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
15349 can_create_pseudo_p.
15350 (*fix_trunc<mode>_i387_1): Ditto.
15351 (*floathi<mode>2_1): Ditto.
15352 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
15353 (*fistdi2_1): Ditto.
15354 (*fist<mode>2_1): Ditto.
15355 (frndintxf2_floor): Ditto.
15356 (*fist<mode>2_floor_1): Ditto.
15357 (frndintxf2_ceil): Ditto.
15358 (*fist<mode>2_ceil_1): Ditto.
15359 (frndintxf2_trunc): Ditto.
15360 (frndintxf2_mask_pm): Ditto.
15361 (fxam<mode>2_i387_with_temp): Ditto.
15362 * config/i386/sse.md (mulv16qi3): Ditto.
15363 (*sse2_mulv4si3): Ditto.
15364 (mulv2di3): Ditto.
15365 (sse4_2_pcmpestr): Ditto.
15366 (sse4_2_pcmpistr): Ditto.
15367
1fc41282
JH
153682009-07-03 Jan Hubicka <jh@suse.cz>
15369
15370 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
15371 (mark_stmt_necessary): Set it.
15372 (mark_operand_necessary): Set it.
15373 (mark_control_dependent_edges_necessary): Set it.
15374 (mark_virtual_phi_result_for_renaming): New function.
15375 (get_live_post_dom): New function.
15376 (forward_edge_to_pdom): New function.
15377 (remove_dead_stmt): Fix handling of control dependences.
15378 (tree_dce_init): Init new bitmap.
15379 (tree_dce_done): Free it.
15380
02583d3c
RG
153812009-07-02 Richard Guenther <rguenther@suse.de>
15382
15383 PR bootstrap/40617
15384 * tree-ssa-structalias.c (new_var_info): Initialize
15385 is_restrict_var.
15386
3c1832c3
JH
153872009-07-02 Jan Hubicka <jh@suse.cz>
15388
15389 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
15390 local.
15391
92355a9c
PB
153922009-07-02 Paolo Bonzini <bonzini@gnu.org>
15393
15394 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
15395 instead of recomputing it. Adjust calls.
15396 (emit_store_flag): Adjust recursive calls.
15397
91deb937
RG
153982009-07-02 Richard Guenther <rguenther@suse.de>
15399
15400 * tree-ssa-live.c (remove_unused_locals): Do not remove
15401 heap variables.
15402 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
15403 of DECL_EXTERNAL for HEAP variables.
15404 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
15405 HEAP variables. Do not adjust RESTRICT vars.
15406 (find_what_var_points_to): Nobody cares if something
15407 points to READONLY.
15408
2011dbb0
BE
154092009-07-02 Ben Elliston <bje@au.ibm.com>
15410
15411 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
15412 pc_low and pc_high declarations to the top of the function.
15413
f2082f90
DD
154142009-07-01 DJ Delorie <dj@redhat.com>
15415
15416 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
15417 registers as fixed.
5071eab7 15418 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
f2082f90
DD
15419 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
15420 unspecified accesses to control registers.
15421 * config/mep/intrinsics.md: Regenerate.
15422 * config/mep/intrinsics.h: Regenerate.
15423 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 15424
9df748c0
AG
154252009-07-01 Anthony Green <green@moxielogic.com>
15426
15427 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
15428 instruction when possible.
15429 (moxie_expand_prologue): Ditto. Also, save an instruction and
3f36bac2 15430 some complexity by popping off of $r12 instead of $sp.
9df748c0
AG
15431 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
15432 operands.
3f36bac2 15433
997704f1
RH
154342009-07-01 Richard Henderson <rth@redhat.com>
15435
15436 PR bootstrap/40347
15437 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
15438 contained no insns, reposition note before last insn.
15439
9f2af3ce
RH
154402009-07-01 Richard Henderson <rth@redhat.com>
15441
15442 PR debug/40431
15443 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
15444 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
15445
d66a97e2
MM
154462009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
15447
15448 PR bootstrap/40558
15449 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
15450 darwin9 for printing reg addresses with %y.
15451
479b1013
AN
154522009-07-01 Adam Nemet <anemet@caviumnetworks.com>
15453
15454 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
15455 truncation from operands in binary operations.
15456
c600a155
AN
154572009-07-01 Adam Nemet <anemet@caviumnetworks.com>
15458
15459 Revert:
15460 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15461 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15462 subreg of op0 to the original op0.
15463
15464 * expmed.c (store_bit_field_1): Use a temporary as the destination
15465 instead of a paradoxical subreg when we need to truncate the result.
15466
a12e9a5f
DD
154672009-07-01 DJ Delorie <dj@redhat.com>
15468
5071eab7
UB
15469 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
15470 names to VLIW variants.
a12e9a5f
DD
15471 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
15472 * config/mep/intrinsics.md: Regenerate.
15473 * config/mep/intrinsics.h: Regenerate.
15474 * config/mep/mep-intrin.h: Regenerate.
15475
2a5bd62a
JJ
154762009-07-01 Jakub Jelinek <jakub@redhat.com>
15477
15478 PR debug/40462
15479 * jump.c (returnjump_p): Revert last patch.
15480 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
15481
3232e9d8
JDA
154822009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15483
4aa7f896
JDA
15484 PR target/40575
15485 * pa.md (casesi32p): Use jump table label to determine the offset
15486 of the jump table.
15487 (casesi64p): Likewise.
15488
5071eab7
UB
15489 * pa.c (forward_branch_p): Return bool type. Use instruction
15490 addresses when available. Assert that INSN has a jump label.
3232e9d8
JDA
15491 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
15492 have a jump label.
15493
14c41b9b
RG
154942009-07-01 Richard Guenther <rguenther@suse.de>
15495
15496 PR tree-optimization/19831
15497 * tree-ssa-dce.c (propagate_necessity): Calls to functions
5071eab7 15498 that only act as barriers do not make any previous stores necessary.
14c41b9b
RG
15499 * tree-ssa-structalias.c (handle_lhs_call): Delay making
15500 HEAP variables global, do not add a constraint from nonlocal.
15501 (find_func_aliases): Handle escapes through return statements.
15502 (compute_points_to_sets): Make escaped HEAP variables global.
15503
1ed20a40
PB
155042009-07-01 Paolo Bonzini <bonzini@gnu.org>
15505
15506 PR bootstrap/40597
15507 * expmed.c (emit_store_flag): Perform a conversion if necessary,
15508 after reducing a DImode cstore to SImode.
15509
ce3aea35
PB
155102009-07-01 Paolo Bonzini <bonzini@gnu.org>
15511
15512 * expr.c (expand_expr_real_1): Reinstate fallthrough to
15513 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
15514
1df34d4d
MR
155152009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
15516
15517 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
15518 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
15519 to 0.
15520 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
15521 and umod_optab if TARGET_BSD_DIVMOD.
15522 * config/vax/lib1funcs.asm: New file.
15523 * config/vax/t-linux: New file.
15524 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
15525
085e05ac
JJ
155262009-06-30 Jakub Jelinek <jakub@redhat.com>
15527
5ccde5a0
JJ
15528 PR c++/40566
15529 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
15530 to type arguments that have void type.
15531
085e05ac
JJ
15532 PR debug/40573
15533 * dwarf2out.c (gen_formal_parameter_die): Call
15534 equate_decl_number_to_die if node is different from origin.
15535
9fb374d6
AG
155362009-06-30 Anthony Green <green@moxielogic.com>
15537
15538 Clean up moxie port for --enable-build-with-cxx.
15539 * config/moxie/moxie.c (moxie_function_value): First two
15540 parameters are const_tree, not tree.
15541 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
15542 (REG_CLASS_NAMES): Ditto.
15543 (REGNO_REG_CLASS): Ditto.
15544 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
15545 (moxie_function_value): Fix constyness of arguments.
15546
f82a627c
EB
155472009-06-30 Eric Botcazou <ebotcazou@adacore.com>
15548
15549 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
15550 finalize_size_functions before further processing.
15551 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
15552 (variable_size): Call self_referential_size on size expressions
15553 that contain a PLACEHOLDER_EXPR.
15554 (size_functions): New static variable.
15555 (copy_self_referential_tree_r): New static function.
15556 (self_referential_size): Likewise.
15557 (finalize_size_functions): New global function.
15558 * tree.c: Include tree-inline.h.
15559 (push_without_duplicates): New static function.
15560 (find_placeholder_in_expr): New global function.
15561 (substitute_in_expr) <tcc_declaration>: Return the replacement object
15562 on equality.
15563 <tcc_expression>: Likewise.
15564 <tcc_vl_exp>: If the replacement object is a constant, try to inline
15565 the call in the expression.
15566 * tree.h (finalize_size_functions): Declare.
15567 (find_placeholder_in_expr): Likewise.
15568 (FIND_PLACEHOLDER_IN_EXPR): New macro.
15569 (substitute_placeholder_in_expr): Update comment.
15570 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
15571 is true.
15572 (copy_tree_body_r): Likewise.
15573 (copy_tree_body): New static function.
15574 (maybe_inline_call_in_expr): New global function.
15575 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
15576 (maybe_inline_call_in_expr): Declare.
15577 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
15578 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
15579 GIMPLE_H.
15580
67635176
RG
155812009-06-30 Richard Guenther <rguenther@suse.de>
15582
15583 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
15584 continue walking.
15585 (propagate_necessity): Do not mark reaching defs of stores
15586 as necessary.
15587
2de58650
JH
155882009-06-30 Jan Hubicka <jh@suse.cz>
15589
15590 * cfgloopanal.c (check_irred): Move into ...
15591 (mark_irreducible_loops): ... here; return true if ireducible
15592 loops was found.
15593 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
15594 (analyze_function): Try to prove loop finiteness.
15595 * cfgloop.h (mark_irreducible_loops): Update prototype.
15596 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
15597
46db44cc
BS
155982009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
15599
15600 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
15601
1825a1f3
IR
156022009-06-30 Ira Rosen <irar@il.ibm.com>
15603
15604 PR tree-optimization/40542
f100a4a8 15605 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
1825a1f3
IR
15606 types.
15607
71d4d3eb
MJ
156082009-06-30 Martin Jambor <mjambor@suse.cz>
15609
15610 PR tree-optimization/40582
15611 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
15612 than useless_type_conversion_p.
15613 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
15614 proper place.
15615
f57017cd
MJ
156162009-06-30 Martin Jambor <mjambor@suse.cz>
15617
15618 PR middle-end/40554
15619 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
15620
42bc61e0
RG
156212009-06-30 Richard Guenther <rguenther@suse.de>
15622
15623 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
15624 use ao_ref references.
15625 (walk_aliased_vdefs): Likewise.
15626 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
15627 * tree-ssa-dce.c (struct ref_data): Remove.
15628 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
15629 (mark_aliased_reaching_defs_necessary): Adjust.
15630 (mark_all_reaching_defs_necessary_1): Likewise.
15631
ef12ae45
PB
156322009-06-30 Paolo Bonzini <bonzini@gnu.org>
15633
15634 PR boostrap/40597
15635 * expmed.c (emit_cstore): New name of emit_store_flag_1.
15636 (emit_store_flag_1): Extract from emit_store_flag, adjust
15637 calls to (what now is) emit_cstore.
15638 (emit_store_flag): Call emit_store_flag_1 and also use it
15639 for what used to be recursive calls.
15640
791b59e3
WG
156412009-06-30 Wei Guozhi <carrot@google.com>
15642
15643 PR/40416
15644 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
15645 if the target bb post dominates from bb.
15646 * config/i386/i386.c (memory_address_length): Check existence of base
15647 register before using it.
15648
7a61cf6f
NC
156492009-06-30 Nick Clifton <nickc@redhat.com>
15650 DJ Delorie <dj@redhat.com>
15651
15652 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
15653 __FMOVD_ENABLED__ is defined.
15654 * config/sh/sh.h
15655 (TARGET_FMOVD): Provide a default definition.
15656 (MASK_FMOVD): Likewise.
15657 (TARGET_CPU_CPP_BUILTINS): Define
15658 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
15659 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
15660 two fmov instructions depending upon whether TARGET_FMOVD is
15661 enabled.
15662 (split for DF load from memory into register): Also handle
15663 MEMs which consist of REG+DISP addressing.
15664 (split for DF store from register to memory): Likewise.
15665 * config/sh/sh.opt (mfmovd): Remove this switch.
15666 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
15667 * config/sh/sh.c (sh_override_options): Do not automatically
15668 enable TARGET_MOVD for the SH2A when supporting doubles - leave
15669 that to the -mfmovd command line switch.
15670
15671 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
15672 the SH4 and SH4A.
15673 (fldi_ok): Always allow.
15674 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
15675
5a99fe3e
DD
156762009-06-29 DJ Delorie <dj@redhat.com>
15677
15678 * doc/install.texi (mep-x-elf): Correct chip's full name.
15679
ddaa3488
L
156802009-06-29 H.J. Lu <hongjiu.lu@intel.com>
15681
15682 * doc/extend.texi: Fix typo.
15683
bbf531f0
TT
156842009-06-29 Tom Tromey <tromey@redhat.com>
15685
15686 * dwarf2.h: Remove.
15687 * Makefile.in (DWARF2_H): New variable.
15688 (except.o): Use it.
15689 (dwarf2out.o): Likewise.
15690 (dwarf2asm.o): Likewise.
15691 * config/i386/t-i386: Use DWARF2_H.
15692 * except.c: Include elf/dwarf2.h.
15693 * unwind-dw2.c: Include elf/dwarf2.h.
15694 * dwarf2out.c: Include elf/dwarf2.h.
15695 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
15696 <dtprel>: New field.
15697 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
15698 (size_of_loc_descr): Likewise.
15699 (output_loc_operands_raw): Likewise.
15700 (output_loc_operands): Handle new dtprel field.
15701 (loc_checksum): Update.
15702 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
15703 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
15704 * unwind-dw2-fde.c: Include elf/dwarf2.h.
15705 * dwarf2asm.c: Include elf/dwarf2.h.
15706 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
15707 * config/mmix/mmix.c: Include elf/dwarf2.h.
15708 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
15709 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
15710 * config/sh/sh.c: Include elf/dwarf2.h.
15711 * config/i386/i386.c: Include elf/dwarf2.h.
15712
e2491744
DD
157132009-06-29 DJ Delorie <dj@redhat.com>
15714
bae38135
DD
15715 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
15716
e2491744
DD
15717 * doc/extend.texi: Add MeP attributes and pragmas.
15718 * doc/invoke.text: Add MeP Options.
15719 * doc/contrib.texi: Add MeP contribution.
15720 * doc/md.texi: Add MeP constraints.
15721 * doc/install.texi: Add MeP target.
15722
b52b1749
AS
157232009-06-30 Anatoly Sokolov <aesok@post.ru>
15724
15725 * target.h (struct gcc_target): Add frame_pointer_required field.
15726 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
15727 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
15728 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
15729 hook.
15730 * reload1.c (update_eliminables): (Ditto.).
15731 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
15732 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
15733 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
15734
15735 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
15736
15737 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
15738 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
15739 (arm_frame_pointer_required): New function.
15740
15741 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
15742 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15743 (avr_frame_pointer_required_p): Declare as static.
15744 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
15745
15746 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
15747 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
15748 (bfin_frame_pointer_required): Make as static, change return type
15749 to bool.
15750 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
15751
15752 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
15753 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15754 (cris_frame_pointer_required): New function.
f100a4a8 15755
b52b1749
AS
15756 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
15757
15758 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
15759 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15760 (fr30_frame_pointer_required): New function.
f100a4a8 15761
b52b1749
AS
15762 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
15763 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
15764 (frv_frame_pointer_required): Make as static, change return type
15765 to bool.
15766 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
15767
15768 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
15769 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15770 (ix86_frame_pointer_required): Make as static, change return type to
15771 bool.
15772 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
15773
15774 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
15775 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15776
15777 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
15778
15779 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
f100a4a8 15780
b52b1749
AS
15781 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
15782
15783 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
15784 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15785 (mips_frame_pointer_required): Make as static.
15786 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
f100a4a8 15787
b52b1749
AS
15788 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
15789 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15790 (mmix_frame_pointer_required): Mew function.
15791
15792 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
15793 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15794
15795 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
15796
15797 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
15798
15799 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
15800
15801 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
15802 (CAN_ELIMINATE): Redefine.
15803 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
15804 (sparc_frame_pointer_required): New function.
15805 (sparc_can_eliminate): New function.
15806 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
15807
15808 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
15809 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
15810
15811 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
15812 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
15813 (xtensa_frame_pointer_required): Make as static, change return type
15814 to bool.
15815 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
15816 Remove.
15817
5071eab7 158182009-06-29 Olatunji Ruwase <tjruwase@google.com>
78bf7bd0
OR
15819
15820 * doc/plugins.texi: Document PLUGIN_START_UNIT.
15821 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
15822 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
15823 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
15824 (register_callback): Handle PLUGIN_START_UNIT.
15825 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
15826
96da8066
EB
158272009-06-29 Eric Botcazou <ebotcazou@adacore.com>
15828
15829 * tree.c (process_call_operands): Propagate TREE_READONLY from the
15830 operands.
15831 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
15832 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
15833
356ecb15
DJ
158342009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
15835
15836 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
15837 move cost.
15838
897eef7b
UB
158392009-06-29 Uros Bizjak <ubizjak@gmail.com>
15840
15841 * doc/extend.texi (Additional Floating Types): __float128 is also
15842 supported on i386 targets.
15843
74d27244
RG
158442009-06-29 Richard Guenther <rguenther@suse.de>
15845
15846 PR middle-end/14187
15847 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
15848 flag.
15849 (pt_solutions_same_restrict_base): Declare.
15850 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
15851 flag.
15852 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
15853 (make_constraint_from, make_copy_constraint): Move earlier.
15854 (make_constraint_from_heapvar): New function.
15855 (make_constraint_from_restrict): Likewise.
15856 (handle_lhs_call): Use it.
15857 (find_func_aliases): Use it to track conversions to restrict
15858 qualified pointers.
15859 (struct fieldoff): Add only_restrict_pointers flag.
15860 (push_fields_onto_fieldstack): Initialize it.
15861 (create_variable_info_for): Track global restrict qualified pointers.
15862 (intra_create_variable_infos): Use make_constraint_from_heapvar.
15863 Track restrict qualified pointer arguments.
15864 (set_uids_in_ptset): Use varinfo is_global_var flag.
15865 (find_what_var_points_to): Set the vars_contains_restrict flag.
15866 Always create the points-to solution for sets including restrict tags.
15867 (pt_solutions_same_restrict_base): New function.
15868 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
15869 qualified pointers use pt_solutions_same_restrict_base as
15870 additional source for disambiguation.
15871
5b21f0f3
RG
158722009-06-29 Richard Guenther <rguenther@suse.de>
15873
15874 PR middle-end/38212
15875 * alias.c (find_base_decl): Remove.
15876 (get_deref_alias_set_1): Remove restrict handling.
15877 * c-common.c (c_apply_type_quals_to_decl): Do not set
15878 DECL_POINTER_ALIAS_SET.
15879 * gimplify.c (find_single_pointer_decl_1): Remove.
15880 (find_single_pointer_decl): Likewise.
15881 (internal_get_tmp_var): Remove restrict handling.
15882 (gimple_regimplify_operands): Likewise.
15883 * omp-low.c (expand_omp_atomic_pipeline): Do not set
15884 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
15885 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
15886 * tree.c (restrict_base_for_decl): Remove.
15887 (init_ttree): Do not allocate it.
15888 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
15889 LABEL_DECL_UID for label decls.
15890 (copy_node_stat): Do not copy restrict information.
15891 (decl_restrict_base_lookup): Remove.
15892 (decl_restrict_base_insert): Likewise.
15893 (print_restrict_base_statistics): Likewise.
15894 (dump_tree_statistics): Do not call print_restrict_base_statistics.
15895 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
15896 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
15897 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
15898 (LABEL_DECL_UID): Adjust.
15899 (DECL_BASED_ON_RESTRICT_P): Remove.
15900 (DECL_GET_RESTRICT_BASE): Likewise.
15901 (SET_DECL_RESTRICT_BASE): Likewise.
15902 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
15903
15904 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
15905 instead of DECL_POINTER_ALIAS_SET.
15906 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
15907 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
15908 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
15909
09a782eb
RG
159102009-06-29 Richard Guenther <rguenther@suse.de>
15911
15912 PR tree-optimization/40579
15913 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
15914 the IL to simplify has constants that overflowed.
15915
1e9ae5ab
UB
159162009-06-28 Uros Bizjak <ubizjak@gmail.com>
15917
15918 PR tree-optimization/40550
15919 * tree-vect-generic.c (expand_vector_operations_1): Compute in
15920 vector_compute_type only when the size of vector_compute_type is
15921 less than the size of type.
15922
c703e618
EB
159232009-06-28 Eric Botcazou <ebotcazou@adacore.com>
15924
15925 * fold-const.c (contains_label_1): Fix comments.
15926 (contains_label_p): Do not walk trees multiple time.
15927
0948ccb2
PB
159282009-06-28 Paolo Bonzini <bonzini@gnu.org>
15929
897eef7b
UB
15930 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
15931 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
15932 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
15933 ix86_fp_comparison_operator.
15934 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
15935 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
15936 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
15937 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
15938 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
15939 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
15940 (related splits): Change predicate to ix86_fp_comparison_operator.
15941 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
15942 instead of ix86_fp_comparison_codes.
15943 (ix86_trivial_fp_comparison_operator,
15944 ix86_fp_comparison_operator): New.
15945 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
15946 (ix86_expand_compare): Eliminate last two parameters.
15947 (ix86_fp_jump_nontrivial_p): Kill.
15948 * config/i386/i386.c (put_condition_code): Eliminate call to
15949 ix86_fp_comparison_codes and subsequent assertion.
15950 (ix86_fp_comparison_codes): Eliminate.
15951 (ix86_fp_swap_condition): New.
15952 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
15953 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
15954 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
15955 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
15956 and ix86_fp_swap_condition.
15957 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
15958 Use ix86_fp_comparison_strategy.
15959 (ix86_expand_compare): Likewise. Eliminate last two arguments.
15960 (ix86_fp_jump_nontrivial_p): Eliminate.
15961 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
15962 call to ix86_expand_compare.
15963 (ix86_split_fp_branch, ix86_expand_setcc,
15964 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
15965 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
0948ccb2 15966
accbd151
PB
159672009-06-28 Paolo Bonzini <bonzini@gnu.org>
15968
897eef7b
UB
15969 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
15970 related to jump_clobbers.
15971 * config/arm/arm.md (conds): Remove jump_clob case.
15972 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
15973 splits): Change comparison_operator to arm_comparison_operator.
15974 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
15975 Eliminate.
accbd151 15976
45475a3f
PB
159772009-06-28 Paolo Bonzini <bonzini@gnu.org>
15978
897eef7b
UB
15979 * dojump.c (do_compare_rtx_and_jump): Try swapping the
15980 condition for floating point modes.
15981 * expmed.c (emit_store_flag_1): Move here a bigger part
15982 of emit_store_flag.
15983 (emit_store_flag): Try swapping the condition for floating point
15984 modes.
15985 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
45475a3f 15986
495499da
PB
159872009-06-28 Paolo Bonzini <bonzini@gnu.org>
15988
897eef7b
UB
15989 * expr.c (expand_expr_real_1): Just use do_store_flag.
15990 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
15991 emit_store_flag_force.
15992 * expmed.c (emit_store_flag_force): Copy here trick
15993 previously in expand_expr_real_1. Try reversing the comparison.
15994 (emit_store_flag_1): Work if target is NULL.
15995 (emit_store_flag): Work if target is NULL, using the result mode
15996 from the comparison. Use split_comparison, restructure final part
15997 to simplify conditionals.
495499da 15998
337e5d98
PB
159992009-06-28 Paolo Bonzini <bonzini@gnu.org>
16000
897eef7b
UB
16001 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
16002 * dojump.c (do_jump): Change handling of floating-point
16003 ops to use just do_compare_and_jump.
16004 (split_comparison): New.
16005 (do_compare_rtx_and_jump): Add here logic coming previously
16006 in do_jump, using split_comparison.
337e5d98 16007
2ca57608
L
160082009-06-27 H.J. Lu <hongjiu.lu@intel.com>
16009
16010 PR target/40489
16011 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
16012
8122ccf1
PB
160132009-06-27 Paolo Bonzini <bonzini@gnu.org>
16014
16015 * tree-ssa-alias.c: Fix unintentional commit.
16016
b9cafe60
PB
160172009-06-27 Paolo Bonzini <bonzini@gnu.org>
16018
16019 * passes.c (execute_one_pass): Fix unintentional commit.
16020
4c78c26b
PB
160212009-06-27 Paolo Bonzini <bonzini@gnu.org>
16022
2ca57608
L
16023 * df-problems.c (df_set_seen, df_unset_seen): Delete.
16024 (df_rd_local_compute, df_md_local_compute): Inline them.
4c78c26b 16025
2ca57608
L
16026 (df_md_scratch): New.
16027 (df_md_alloc, df_md_free): Allocate/free it.
16028 (df_md_local_compute): Only include live registers in init.
16029 (df_md_transfer_function): Prune the in-set computed by
16030 the confluence function, and the gen-set too.
4c78c26b
PB
16031
160322009-06-27 Paolo Bonzini <bonzini@gnu.org>
c6741572
PB
16033
16034 PR rtl-optimization/26854
2ca57608
L
16035 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
16036 * df-problems.c (df_rd_add_problem): Fix comment.
16037 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
16038 df_md_simulate_artificial_defs_at_top,
16039 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
16040 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
16041 df_md_transfer_function, df_md_init, df_md_confluence_0,
16042 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
16043 problem_MD, df_md_add_problem): New.
16044 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
16045 df_md_get_bb_info): New.
1e9ae5ab 16046 (DF_LAST_PROBLEM_PLUS1): Adjust.
2ca57608
L
16047
16048 * Makefile.in (fwprop.o): Include domwalk.h.
16049 * fwprop.c: Include domwalk.h.
16050 (reg_defs, reg_defs_stack): New.
16051 (bitmap_only_bit_between): Remove.
16052 (process_defs): New.
16053 (process_uses): Use reg_defs and local_md instead of
16054 bitmap_only_bit_between and local_rd.
16055 (single_def_use_enter_block): New, from build_single_def_use_links.
16056 (single_def_use_leave_block): New.
16057 (build_single_def_use_links): Remove code moved to
16058 single_def_use_enter_block, invoke domwalk.
16059 (use_killed_between): Adjust comment.
c6741572 16060
7ff23740
PB
160612009-06-27 Paolo Bonzini <bonzini@gnu.org>
16062
16063 * bitmap.h (bitmap_ior_and_into): New.
16064 * bitmap.c (bitmap_ior_and_into): New.
16065
ccf5c864
PB
160662009-06-27 Paolo Bonzini <bonzini@gnu.org>
16067
2ca57608
L
16068 * domwalk.h (struct dom_walk_data): Remove all callbacks except
16069 before_dom_children_before_stmts and after_dom_children_after_stmts.
f100a4a8 16070 Rename the two remaining callbacks to just before_dom_children and
2ca57608
L
16071 after_dom_children. Remove other GIMPLE statement walking bits.
16072 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
16073 * graphite.c: Do not include domwalk.h.
16074 * tree-into-ssa.c (interesting_blocks): New global.
16075 (struct mark_def_sites_global_data): Remove it and names_to_rename.
16076 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
16077 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
16078 now that they're not domwalk callbacks.
16079 (rewrite_initialize_block): Rename to...
16080 (rewrite_enter_block): ... this, place after called functions. Test
16081 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
16082 (rewrite_finalize_block): Rename to...
16083 (rewrite_leave_block): ... this, place after called functions.
16084 (rewrite_update_init_block): Rename to...
16085 (rewrite_update_enter_block): ... this, place after called functions.
f100a4a8 16086 Test interesting_blocks, call rewrite_update_stmt and
2ca57608
L
16087 rewrite_update_phi_arguments.
16088 (rewrite_update_fini_block): Rename to...
16089 (rewrite_leave_block): ... this, place after called functions.
16090 (rewrite_blocks): Remove last argument, simplify initialization of
16091 walk_data.
16092 (mark_def_sites_initialize_block): Rename to...
16093 (mark_def_sites_block): ... this, call mark_def_sites.
16094 (mark_def_sites_blocks): Remove argument, simplify initialization of
16095 walk_data.
16096 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
16097 (update_ssa): Likewise.
16098 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
16099 callback.
16100 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
16101 (dom_opt_initialize_block): Rename to...
16102 (dom_opt_enter_block): ... this, place after called functions. Walk
16103 statements here, inline propagate_to_outgoing_edges.
16104 (dom_opt_finalize_block): Rename to...
16105 (dom_opt_leave_block): ... this, place after called functions.
16106 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
16107 domwalk callback.
16108 (dse_enter_block, dse_record_phi): New.
16109 (dse_record_phis): Delete.
16110 (dse_finalize_block): Rename to...
16111 (dse_leave_block): ... this.
16112 (tree_ssa_dse): Simplify initialization of walk_data.
16113 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
16114 Adjust initialization of walk_data.
16115 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
16116 * tree-ssa-loop-phiopt.c (get_non_trapping):
16117 Adjust initialization of walk_data.
16118 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
16119 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
16120 it's not a domwalk callback.
16121 (uncprop_initialize_block): Rename to...
16122 (dse_enter_block): ... this, call uncprop_into_successor_phis.
16123 (dse_finalize_block): Rename to...
16124 (dse_leave_block): ... this.
16125 (tree_ssa_uncprop): Simplify initialization of walk_data.
16126 * Makefile.in: Adjust dependencies.
ccf5c864 16127
75d28030
RE
161282009-06-27 Richard Earnshaw <rearnsha@arm.com>
16129
16130 * arm.md (casesi): Fix test for Thumb1.
16131 (thumb1_casesi_internal_pic): Likewise.
16132 (thumb1_casesi_dispatch): Likewise.
16133
9833720d
DG
161342009-06-26 Daniel Gutson <dgutson@codesourcery.com>
16135
16136 * config/arm/arm-cores.def: Added core cortex-m0.
16137 * config/arm/arm-tune.md: Regenerated.
16138 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
16139
bb7681bf
DD
161402009-06-26 DJ Delorie <dj@redhat.com>
16141
16142 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
16143
16144 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
16145 the scheduler doesn't tag jump insns.
16146
a35120a3
L
161472009-06-26 H.J. Lu <hongjiu.lu@intel.com>
16148
16149 * c-decl.c (merge_decls): Re-indent.
16150
4b6e55df
JJ
161512009-06-26 Janis Johnson <janis187@us.ibm.com>
16152
16153 PR c/39902
16154 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
16155 Special-case decimal float constants.
16156
27dbd3ac
RH
161572009-06-26 Richard Henderson <rth@redhat.com>
16158
16159 * function.h (struct function): Add cannot_be_copied_reason,
16160 and cannot_be_copied_set.
16161 * tree-inline.c (has_label_address_in_static_1): Rename from
16162 inline_forbidden_p_2; don't set inline_forbidden_reason here.
16163 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
16164 don't set inline_forbidden_reason.
16165 (copy_forbidden): New function, split out of inline_forbidden_p.
16166 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
16167 (inline_forbidden_p): Use copy_forbidden.
16168 (tree_versionable_function_p): Likewise.
16169 (inlinable_function_p): Merge into tree_inlinable_function_p.
16170 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
16171 * ipa-cp.c (ipcp_versionable_function_p): New function.
16172 (ipcp_cloning_candidate_p): Use it.
16173 (ipcp_node_modifiable_p): Likewise.
16174
efb303b1
OR
161752009-06-26 Olatunji Ruwase <tjruwase@google.com>
16176
16177 * builtins.c (expand_builtin_alloca): Handle builtin alloca
16178 that is marked not to be inlined. Remove flag_mudflap use.
16179 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
16180 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
16181
947e21c1
SE
161822009-06-26 Steve Ellcey <sje@cup.hp.com>
16183
16184 PR bootstrap/40338
16185 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
16186 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
16187
bae4cf87
KT
161882009-06-26 Kai Tietz <kai.tietz@onevision.com>
16189
16190 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
16191 shared libgcc.
16192 (__mingwthr_remove_key_dtor): Likewise.
16193
46aaa417
RG
161942009-06-26 Richard Guenther <rguenther@suse.de>
16195
1e9ae5ab 16196 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
46aaa417 16197
b3c54c8f
SB
161982009-06-26 Steven Bosscher <steven@gcc.gnu.org>
16199
16200 PR middle-end/40525
16201 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
16202 try the non-cond_exec path also.
16203
f5e66865
JDA
162042009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16205
16206 PR target/40468
16207 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
16208 (output_cbranch): Use new functions.
16209 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
16210 Likewise.
16211
8beb65e3
MM
162122009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
16213 Pat Haugen <pthaugen@us.ibm.com>
16214 Revital Eres <ERES@il.ibm.com>
16215
d66a97e2
MM
16216 * config/rs6000/rs6000.c (print_operand): Correct lossage message
16217 for %c error. Add %x support to print VSX registers as a unified
16218 register set, instead of separate float and altivec registers.
16219 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
16220 %y case, and add support for VSX pre-modify addresses.
16221 (output_toc): Add assert for CONST containing an integer constant
16222 in the PLUS case.
16223 (rs6000_adjust_cost): Add POWER7 support.
16224 (insn_must_be_first_in_group): Ditto.
16225 (insn_must_be_last_in_group): Ditto.
16226 (rs6000_emit_popcount): Ditto.
16227 (rs6000_vector_mode_supported_p): Ditto.
16228
8beb65e3
MM
16229 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
16230 Change some of the functions called by macros to being called
16231 through a pointer, so debug functions can be inserted if
f100a4a8 16232 -mdebug=addr or -mdebug=cost.
8beb65e3
MM
16233 (rs6000_preferred_reload_class_ptr): Ditto.
16234 (rs6000_secondary_reload_class_ptr): Ditto.
16235 (rs6000_secondary_memory_needed_ptr): Ditto.
16236 (rs6000_cannot_change_mode_class_ptr): Ditto.
16237 (rs6000_secondary_reload_inner): Ditto.
16238 (rs6000_legitimize_reload_address): Ditto.
16239 (rs6000_legitimize_reload_address_ptr): Ditto.
16240 (rs6000_mode_dependent_address): Ditto.
16241 (rs6000_mode_dependent_address_ptr): Ditto.
16242
16243 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
16244 function to return true if the mode allows reg + integer
16245 addresses.
16246 (virtual_stack_registers_memory_p): New function to return true if
16247 the address refers to a virtual stack register.
16248 (rs6000_legitimate_offset_address_p): Move code to say whether a
16249 mode supports reg+int addressing to reg_offset_addressing_ok_p and
16250 call it.
16251 (rs6000_legitimate_address_p): Add checks for modes that only can
16252 do reg+reg addressing. Start adding VSX support.
16253 (rs6000_legitimize_reload_address): Ditto.
16254 (rs6000_legitimize_address): Ditto.
16255 (rs6000_debug_legitimate_address_p): New debug functions for
16256 -mdebug=addr and -mdebug=cost.
16257 (rs6000_debug_rtx_costs): Ditto.
16258 (rs6000_debug_address_costs): Ditto.
16259 (rs6000_debug_adjust_cost): Ditto.
16260 (rs6000_debug_legitimize_address): Ditto.
16261 (rs6000_legitimize_reload_address_ptr): Point to call normal
16262 function or debug function. Make functions called via pointer
16263 static.
16264 (rs6000_mode_dependent_address_ptr): Ditto.
16265 (rs6000_secondary_reload_class_ptr): Ditto.
16266 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
16267 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
16268 into a friendlier error.
16269 (rs6000_init_builtins): Add initial VSX support.
16270 (rs6000_adjust_cost): Fix some spacing issues.
16271
16272 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
16273 (REG_CLASS_NAMES): Ditto.
16274 (REG_CLASS_CONTENTS): Ditto.
16275 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
16276 pointer, to add -mdebug=addr support.
16277 (CANNOT_CHANGE_MODE_CLASS): Ditto.
16278 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
16279 -mdebug=addr support.
16280 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
16281 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
16282 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
16283
16284 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
16285 16-bit values.
16286 (bswapsi*): Set attribute types for load/store. Add combiner
16287 patterns to eliminate zero extend on 64-bit.
16288 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
16289 stdbrx if the hardware supports those instructions.
16290
96be7a11
ILT
162912009-06-25 Ian Lance Taylor <iant@google.com>
16292
16293 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
16294 (Link Options): Document -static-libstdc++.
16295
777a3a6a
AP
162962009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
16297
16298 PR target/38731
16299 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
16300 DATA_ALIGNMENT instead.
16301
1cb367ae
RG
163022009-06-25 Richard Guenther <rguenther@suse.de>
16303
16304 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
16305 indirect references against the callused/escaped solutions.
16306 (call_may_clobber_ref_p_1): Likewise.
16307
fac52fdd
MJ
163082009-06-25 Martin Jambor <mjambor@suse.cz>
16309
16310 PR tree-optimization/40493
16311 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
16312 (enum unscalarized_data_handling): New type.
16313 (handle_unscalarized_data_in_subtree): Return what has been done.
16314 (load_assign_lhs_subreplacements): Handle left flushes differently.
16315 (sra_modify_assign): Use unscalarized_data_handling, simplified
16316 condition determining whether to remove the statement.
16317
3cb71167 163182009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
c8aca64f
EB
16319
16320 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
16321 excerpt - @ should be doubled for texinfo.
3cb71167 16322
5a82ecd9
ILT
163232009-06-24 Ian Lance Taylor <iant@google.com>
16324
16325 * config/arc/arc.c: Include "df.h".
16326 (arc_attribute_table): Make static. Move higher in file.
16327 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
16328 (output_shift): Initialize n later to avoid warning.
16329 * config/arm/arm.c (arm_attribute_table): Make static. Move
16330 higher in file.
16331 * config/avr/avr.c (avr_attribute_table): Make static. Move
16332 higher in file.
16333 (reg_class_tab): Change array type from int to enum reg_class.
16334 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
16335 LABEL_REF.
16336 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
16337 (lshrhi3_out): Likewise.
16338 (class_likely_spilled_p): Change return type to bool.
16339 (avr_rtx_costs): Use local code variable with enum type.
16340 * config/avr/avr.md (movmemhi): Use add_reg_note.
16341 (andhi3, andsi3): Don't use AS2 with "and".
16342 (iorhi3, iorsi3): Don't use AS2 with "or".
1e9ae5ab 16343 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
5a82ecd9
ILT
16344 * config/crx/crx.c: Include "df.h".
16345 (crx_attribute_table): Make static.
16346 * config/m32r/m32r.c: Include "df.h".
16347 (m32r_attribute_table): Make static. Move higher in file.
16348 (pop): Use add_reg_note.
16349 (block_move_call): Change 0 to LCT_NORMAL in function call.
16350 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
16351 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
16352 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
16353 declare, not just when TREE_CODE is defined.
16354 * config/m68hc11/m68hc11.c: Include "expr.h".
16355 (m68hc11_attribute_table): Make static. Move higher in file.
16356 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
16357 function call.
16358 (m68hc11_register_indirect_p): Likewise.
16359 (m68hc11_function_arg_padding): Change return type to enum
16360 direction.
16361 (emit_move_after_reload): Use add_reg_note.
16362 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
16363 (m68hc11_split_logical): Likewise.
16364 (m68hc11_rtx_costs): Add local code_and outer_code variables with
16365 enum type.
16366 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
16367 to VOIDmode in function call.
16368 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
16369 tree is defined.
16370 (m68hc11_split_logical): Update declaration.
16371 (m68hc11_function_arg_padding): Update declaration.
16372 * config/mcore/mcore.c (regno_reg_class): Change form array of int
16373 to array of enum reg_class.
16374 (mcore_attribute_table): Make static. Move higher in file.
16375 (mcore_rtx_costs): Add cast to enum type.
16376 * config/mcore/mcore.h (regno_reg_class): Update declaration.
16377 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
16378 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
16379 in file.
16380 * config/sh/predicates.md (trapping_target_operand): Rename and to
16381 and_expr.
16382 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
16383 higher in file.
16384 * config/spu/spu.c (spu_attribute_table): Make static. Move
16385 higher in file.
16386 * config/v850/v850.c (v850_attribute_table): Make static. Move
16387 higher in file.
16388 (v850_rtx_costs): Use local code with enum type.
16389 (expand_epilogue): Add cast.
16390 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
16391
b4589acc
TY
163922009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
16393
16394 PR target/40515
16395 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
16396 -m2a-single-only and -m2a-nofpu.
f100a4a8 16397 * config/sh/sh.opt: Document m2a generates FPU code.
b4589acc 16398
3be639f7
AS
163992009-06-24 Anatoly Sokolov <aesok@post.ru>
16400
16401 * defaults.h (CAN_ELIMINATE): Provide default.
16402 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
16403 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
16404 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
16405 * config/spu/spu.h (CAN_ELIMINATE): Delete.
16406 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
16407 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
16408 * config/cris/cris.h (CAN_ELIMINATE): Delete.
16409 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
16410 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
16411 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
16412
b6402fc3
DD
164132009-06-24 DJ Delorie <dj@redhat.com>
16414
16415 * mep-ext-cop.cpu: Fix copyright notice.
16416 * mep-default: Fix copyright notice.
16417 * mep-core: Fix copyright notice.
16418 * mep: Fix copyright notice.
16419 * mep-ivc2: Fix copyright notice.
16420 * mep-c5: Fix copyright notice.
16421
ead1eb1d
DC
164222009-06-24 Denis Chertykov <chertykov@gmail.com>
16423
f100a4a8 16424 * doc/contrib.texi (Contributors):
ead1eb1d 16425
fb6234e0 164262009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
f100a4a8 16427
fb6234e0
AK
16428 PR middle-end/40501
16429 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
16430 src and dst operands if necessary.
16431
7acf4da6
DD
164322009-06-23 DJ Delorie <dj@redhat.com>
16433
16434 Add MeP port.
16435 * config.gcc: Add mep support.
16436 * recog.c: Resurrect validate_replace_rtx_subexp().
16437 * recog.h: Likewise.
16438 * config/mep/: Add new port:
16439 * config/mep/constraints.md: New file.
16440 * config/mep/default.h: New file.
16441 * config/mep/intrinsics.h: New file.
16442 * config/mep/intrinsics.md: New file.
16443 * config/mep/ivc2-template.h: New file.
16444 * config/mep/mep-c5.cpu: New file.
16445 * config/mep/mep-core.cpu: New file.
16446 * config/mep/mep-default.cpu: New file.
16447 * config/mep/mep-ext-cop.cpu: New file.
16448 * config/mep/mep-intrin.h: New file.
16449 * config/mep/mep-ivc2.cpu: New file.
16450 * config/mep/mep-lib1.asm: New file.
16451 * config/mep/mep-lib2.c: New file.
16452 * config/mep/mep-pragma.c: New file.
16453 * config/mep/mep-protos.h: New file.
16454 * config/mep/mep-tramp.c: New file.
16455 * config/mep/mep.c: New file.
16456 * config/mep/mep.cpu: New file.
16457 * config/mep/mep.h: New file.
16458 * config/mep/mep.md: New file.
16459 * config/mep/mep.opt: New file.
16460 * config/mep/predicates.md: New file.
16461 * config/mep/t-mep: New file.
16462
00020c16
ILT
164632009-06-23 Ian Lance Taylor <iant@google.com>
16464
16465 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
16466 from loose_warn into c_loose_warn and from strict_warn into
16467 c_strict_warn. Set and substitute warn_cxxflags. Check for
16468 --enable-build-with-cxx. Set and substitute
16469 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
16470 * Makefile.in (CXXFLAGS): New variable.
16471 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
16472 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
16473 the default is the same as $(STRICT_WARN).
16474 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
16475 (CXX): New variable.
16476 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
16477 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
16478 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
16479 (HOST_LIBS): New variable.
16480 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
16481 (ALL_CXXFLAGS): New variable.
16482 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
16483 * doc/install.texi (Configuration): Document
16484 --enable-build-with-cxx, --with-stage1-ldflags,
16485 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
16486 * configure: Rebuild.
16487
2d8b752f 164882009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9df5bfe4 16489
2d8b752f
EB
16490 * config/arm/arm.c (arm_override_options): Fix braces and formatting
16491 from previous commit.
9df5bfe4 16492
73267076
ILT
164932009-06-23 Ian Lance Taylor <iant@google.com>
16494
16495 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
16496
9a476c9c
ILT
164972009-06-23 Ian Lance Taylor <iant@google.com>
16498
16499 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
16500 with ATTRIBUTE_UNUSED.
16501
cacf1ca8
MM
165022009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16503 Pat Haugen <pthaugen@us.ibm.com>
2d8b752f 16504 Revital Eres <eres@il.ibm.com>
cacf1ca8
MM
16505
16506 * config.in (HAVE_AS_POPCNTD): Add default definition.
16507 (HAVE_AS_LWSYNC): Ditto.
16508
16509 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
16510 release number.
16511 (gcc_cv_as_powerpc_cmpb): Ditto.
16512 (gcc_cv_as_powerpc_dfp): Ditto.
16513 (gcc_cv_as_powerpc_vsx): Ditto.
16514 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
16515 supporting the popcntd/lwsync instructions.
16516 (gcc_cv_as_powerpc_lwsync): Ditto.
16517 * configure: Regenerate.
16518
16519 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
16520 -mcpu=native and -mcpu=power7.
16521 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
16522
16523 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
16524 a variable instead of a mask to reduce the number of mask bits.
16525 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
16526 (-mbit-word): Ditto.
16527 (-mregnames): Ditto.
16528 * config/rs6000/rs6000.opt (-mupdate): Ditto.
16529 (-mfused-madd): Ditto.
16530
16531 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
16532 2.06 instructions.
16533 (-mvsx): New switch for VSX instructions.
16534 (-misel): Move from a variable to a mask to allow it to be set by
16535 -mcpu=.
16536
16537 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
16538 function declaration to an array declaration.
16539 (rs6000_hard_regno_nregs): New external array declaration.
16540
16541 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
16542 files included by rs6000.md.
16543
16544 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
16545 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
16546
16547 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
16548 a target mask.
16549 (rs6000_debug_reg): New -mdebug= variables.
16550 (rs6000_debug_addr): Ditto.
16551 (rs6000_debug_cost): Ditto.
16552 (rs6000_pmode): New variable to hold Pmode.
16553 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
16554 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
16555 calculated at compiler start.
16556 (rs6000_hard_regno_nregs): Change function to an array which holds
16557 HARD_REGNO_NREGS calculated at compiler start.
16558 (rs6000_explicit_options): Delete isel field.
16559 (rs6000_vector_unit): New array to hold which vector unit
16560 supports arithmetic options for a given type.
16561 (rs6000_vector_mem): New array to hold which vector unit supports
16562 memory reference operations for a given type.
16563 (rs6000_vector_align): New array to given the alignment of each
16564 vector type.
16565 (power7_cost): New basic costs for power7.
16566 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
16567 (rs6000_hard_regno_nregs_internal): New function, moved from
16568 HARD_REGNO_NREGS, to calculate the number of registers each hard
16569 register takes for each type.
16570 (rs6000_debug_reg_print): New function for -mdebug=reg support.
1e9ae5ab 16571 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
cacf1ca8
MM
16572 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
16573 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
16574 unit information here so it is calculated once at compiler startup
16575 time.
16576 (rs6000_override_options): Make -misel a target mask. Add more
16577 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
16578 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
16579 -mdebug=cost.
16580 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
16581 (rs6000_handle_option): Move -misel from variable to target mask.
16582 (rs6000_builtin_mask_for_load): Add VSX support.
16583 (rs6000_conditional_register_usage): Ditto.
16584 (USE_ALTIVEC_FOR_ARG_P): Ditto.
16585 (function_arg_boundary): Ditto.
16586 (rs6000_expand_builtin): Ditto.
16587 (def_builtin): Make abort message a little friendlier.
16588 (rs6000_emit_int_cmove): Add support for 64-bit isel.
16589
16590 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
16591 assembler support the popcntd instruction instead of a vsx
16592 instruction to enable power7 support.
16593 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
16594 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
16595 option to the assembler if -mcpu=native.
16596 (ASM_CPU_NATIVE_SPEC): Ditto.
16597 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
16598 ISA 2.06 features.
16599 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
16600 the lwsync instruction.
16601 (enum processor_type): Add PROCESSOR_POWER7.
16602 (rs6000_debug_reg): New -mdebug= options.
16603 (rs6000_debug_addr): Ditto.
16604 (rs6000_debug_cost): Ditto.
16605 (rs6000_isel): Delete.
16606 (enum rs6000_vector): New enum to say what vector unit we have.
16607 (VECTOR_UNIT_*): New macros to say which vector unit has
16608 arithmetic operations for a given type.
16609 (VECTOR_MEM_*): New macros to say which vector unit has memory
16610 operations for a given type.
16611 (TARGET_LDBRX): Whether the machine supports the ldbrx
16612 instruction.
16613 (TARGET_ISEL): Delete, -misel moved to be a mask.
16614 (TARGET_ISEL64): New macro for 64-bit isel support.
16615 (UNITS_PER_VSX_WORD): New macro.
16616 (POINTER_SIZE): Move to be an external variable, rather than
16617 calculating whether we are generating 32 ot 64-bit code.
16618 (Pmode): Ditto.
16619 (STACK_BOUNDARY): Add VSX support.
16620 (LOCAL_ALIGNMENT): Ditto.
16621 (SLOW_UNALIGNED_ACCESS): Ditto.
16622 (VSX_REGNO_P): New macro for VSX support.
16623 (VFLOAT_REGNO_P): Ditto.
16624 (VINT_REGNO_P): Ditto.
16625 (VLOGICAL_REGNO_P): Ditto.
16626 (VSX_VECTOR_MODE): Ditto.
16627 (VSX_SCALAR_MODE): Ditto.
16628 (VSX_MODE): Ditto.
16629 (VSX_MOVE_MODE): Ditto.
16630 (VSX_REG_CLASS_P): Ditto.
16631 (HARD_REGNO_NREGS): Instead of calling a function, use an array
16632 lookup.
16633 (UNITS_PER_SIMD_WORD): Add VSX support.
16634 (MODES_TIEABLE_P): Ditto.
16635 (STARTING_FRAME_OFFSET): Ditto.
16636 (STACK_DYNAMIC_OFFSET): Ditto.
16637 (EPILOGUE_USES): Ditto.
16638 (REGNO_REG_CLASS): Move to array lookup.
16639 (CLASS_MAX_NREGS): Ditto.
16640 (rs6000_vector_reg_class): Add declaration.
16641 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
16642 overlap with the floating point and Altivec registers.
16643
16644 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
16645
16646 * config/rs6000/driver-rs6000.c (asm_names): New static array to
16647 give the appropriate asm switches if -mcpu=native.
16648 (host_detect_local_cpu): Add support for "asm".
16649 (host_detect_local_cpu): Follow GNU code guidelines for name.
16650
16651 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
16652 -mbit-word to a variable instead of being a target mask.
16653
16654 * config/rs6000/sync.md (lwsync): If the assembler supports it,
16655 emit the lwsync instruction instead of emitting the instruction as
16656 an integer constant.
16657
16658 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
16659 fixuns_trundfsi2, move expander into rs6000.md.
16660
16661 * config/rs6000/rs6000.md (cpu): Add power7.
16662 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
16663 (logical predicate patterns): Change the single instruction
16664 primitives that set CR0 to be fast_compare instead of compare.
16665 (norsi*): Ditto.
16666 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
16667 (popcntddi2): Ditto.
16668 (popcount<mode>): Ditto.
16669 (floating multiply/add insns): Name the floating point
16670 multiply/add insns.
16671 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
16672 (isel_unsigned_<mode>): Ditto.
16673 (fixuns_trundfsi2): Move expander here from spe.md.
16674 (smindi3): Define if we have -misel on 64-bit systems.
16675 (smaxdi3): Ditto.
16676 (umindi3): Ditto.
16677 (umaxdi3): Ditto.
16678
59ab92d2
AS
166792009-06-23 Anatoly Sokolov <aesok@post.ru>
16680
16681 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
16682 extra_objs.
16683 * config/avr/avr.c (avr_current_device): New variable.
16684 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
16685 (avr_arch, mcu_type_s): Move to avr.h.
16686 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
16687 default_data_section_start fields.
16688 (avr_arch): Moved from avr.c.
16689 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
16690 library_name fields.
16691 (avr_current_device, avr_mcu_types, avr_arch_types,
16692 avr_device_to_arch, avr_device_to_data_start,
16693 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
16694 (EXTRA_SPEC_FUNCTIONS): Define.
16695 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
16696 options mapping. Use device_to_arch and device_to_data_start insted.
16697 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
16698 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
16699 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
16700 * config/avr/driver-avr.c: New file.
16701 * config/avr/avr-devices.c: New file.
16702
8593e0b6
JJ
167032009-06-23 Jakub Jelinek <jakub@redhat.com>
16704
7eb3f1f7
JJ
16705 * var-tracking.c (unshare_variable): Force initialized to
16706 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
16707 (set_variable_part): Likewise.
16708 (struct variable_union_info): Remove pos_src field.
16709 (vui_vec, vui_allocated): New variables.
16710 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
16711 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
16712 == 1 use a simpler sorting algorithm. Compute pos field right
16713 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
16714 Avoid quadratic comparison if !flag_var_tracking_uninit.
16715 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
f100a4a8 16716 unshare_variable unconditionally.
7eb3f1f7
JJ
16717 (dataflow_set_different_2): Removed.
16718 (dataflow_set_different): Don't traverse second hash table.
16719 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
16720 unconditionally to var_reg_set or var_mem_set.
16721 (emit_notes_in_bb): Likewise.
16722 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
16723 unshare_variable.
16724 (emit_note_insn_var_location): Don't set initialized to
16725 VAR_INIT_STATUS_INITIALIZED early.
16726 (vt_finalize): Free vui_vec if needed, clear vui_vec and
16727 vui_allocated.
16728 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
16729
8593e0b6
JJ
16730 * tree-object-size.c (addr_object_size): Instead of checking
16731 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
16732 are no FIELD_DECLs following it.
16733
fef015a8
AK
167342009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
16735
16736 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
16737 order to match bswaps with signed source operands.
16738
b6d83244
RO
167392009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16740
16741 * sdbout.c (sdbout_one_type): Fix braces in switch.
16742
0bbf2ffa
RG
167432009-06-23 Richard Guenther <rguenther@suse.de>
16744
16745 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
16746 member.
16747 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
16748 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
16749 var_callused, callused_tree, var_storedanything, storedanything_tree,
16750 var_integer, integer_tree): Remove global variables.
16751 (new_var_info): Do not pass new id, append the new var to the
16752 global variable vector.
16753 (do_ds_constraint): Use is_global_var member of the variable-info.
16754 (new_scalar_tmp_constraint_exp): Adjust.
16755 (create_function_info_for): Likewise.
16756 (create_variable_info_for): Likewise.
16757 (find_what_var_points_to): Remove dead code.
16758 (init_base_vars): Simplify.
16759 (compute_points_to_sets): Adjust.
16760
28a5fb2e
AN
167612009-06-22 Adam Nemet <anemet@caviumnetworks.com>
16762
16763 * combine.c (try_combine): Dump information about the insns we're
16764 combining.
16765
cfb8805e
AN
167662009-06-22 Adam Nemet <anemet@caviumnetworks.com>
16767
16768 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
16769 check when calling force_to_mode on TRUNCATE's operand.
16770
df4ba119
ILT
167712009-06-22 Ian Lance Taylor <iant@google.com>
16772
897eef7b 16773 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
df4ba119 16774
c986683b
SB
167752009-06-22 Steven Bosscher <steven@gcc.gnu.org>
16776
16777 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
16778
5c6927bd
RW
167792009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16780
16781 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
16782 override library linkage flags such as -static-libgcc or
16783 -shared-libgcc.
16784
19973be2
MK
167852009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
16786
16787 * config/m68k/m68k-devices.def: Add line for MCF5221x.
16788
7a5d2eb8
ILT
167892009-06-22 Ian Lance Taylor <iant@google.com>
16790
16791 * config/linux.opt: Put mglibc ahead of muclibc.
16792
16793 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
16794 for duplicate decls.
16795
86e3c83a
MK
167962009-06-22 Matthias Klose <doko@ubuntu.com>
16797
16798 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
16799
0a7d7dea
MK
168002009-06-22 Steven Bosscher <steven@gcc.gnu.org>
16801
16802 PR objc/28050
16803 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
16804 instead of NULL if a parser error occurs.
16805
a77264d5
RO
168062009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16807
16808 * dwarf2out.c (dwarf2_debug_hooks): Initialize
16809 non-DWARF2_DEBUGGING_INFO version.
16810
54f549af
KT
168112009-06-22 Kai Tietz <kai.tietz@onevision.com>
16812
34481f28
UB
16813 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
16814 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
16815
16816 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
54f549af
KT
16817 (LIBGCC2_TF_CEXT): Define.
16818 (TF_SIZE): Define.
16819
7cea01df
RR
168202009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16821
16822 PR target/40463
16823 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
16824
3ce14752
RR
168252009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16826
34481f28
UB
16827 * config/arm/arm.c (arm_override_options): Disable
16828 -mcaller-super-interworking and -mcallee-super-interworking.
16829 * doc/invoke.texi (ARM Options): Document this.
3ce14752 16830
d58bc084
NS
168312009-06-22 Nathan Sidwell <nathan@codesourcery.com>
16832
16833 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
16834 * config/arm/constraints.md (j): New constraint for movw operands.
16835 (N): Remove thumb2 meaning.
16836 * config/arm/arm.md (*arm_movw): Delete.
16837 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
16838 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
16839 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
16840
ac6cb60c
MJ
168412009-06-22 Martin Jambor <mjambor@suse.cz>
16842
16843 PR tree-optimization/40492
16844 * tree-sra.c (sra_modify_assign): Pass zero offsets to
16845 build_ref_for_offset.
16846
481683e1
SZ
168472009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
16848
16849 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
16850 JUMP_TABLE_DATA_P predicates where applicable.
16851 * auto-inc-dec.c: Ditto.
16852 * builtins.c: Ditto.
16853 * caller-save.c: Ditto.
16854 * calls.c: Ditto.
16855 * cfgcleanup.c: Ditto.
16856 * cfglayout.c: Ditto.
16857 * cfgrtl.c: Ditto.
16858 * combine.c: Ditto.
16859 * combine-stack-adj.c: Ditto.
16860 * cse.c: Ditto.
16861 * cselib.c: Ditto.
16862 * dbxout.c: Ditto.
16863 * df-scan.c: Ditto.
16864 * dse.c: Ditto.
16865 * dwarf2asm.c: Ditto.
16866 * dwarf2out.c: Ditto.
16867 * emit-rtl.c: Ditto.
16868 * except.c: Ditto.
16869 * explow.c: Ditto.
16870 * expmed.c: Ditto.
16871 * expr.c: Ditto.
16872 * final.c: Ditto.
16873 * function.c: Ditto.
16874 * fwprop.c: Ditto.
16875 * gcse.c: Ditto.
16876 * genpreds.c: Ditto.
16877 * genrecog.c: Ditto.
16878 * ifcvt.c: Ditto.
16879 * ira-costs.c: Ditto.
16880 * ira-lives.c: Ditto.
16881 * jump.c: Ditto.
16882 * loop-iv.c: Ditto.
16883 * lower-subreg.c: Ditto.
16884 * modulo-sched.c: Ditto.
16885 * optabs.c: Ditto.
16886 * postreload.c: Ditto.
16887 * print-rtl.c: Ditto.
16888 * recog.c: Ditto.
16889 * reginfo.c: Ditto.
16890 * regmove.c: Ditto.
16891 * reload1.c: Ditto.
16892 * reload.c: Ditto.
16893 * reorg.c: Ditto.
16894 * rtlanal.c: Ditto.
16895 * rtl.c: Ditto.
16896 * sched-vis.c: Ditto.
16897 * sdbout.c: Ditto.
16898 * sel-sched-ir.c: Ditto.
16899 * simplify-rtx.c: Ditto.
16900 * targhooks.c: Ditto.
16901 * var-tracking.c: Ditto.
16902 * vmsdbgout.c: Ditto.
16903
1407d6cf
MK
169042009-06-22 Matthias Klose <doko@ubuntu.com>
16905
16906 * Makefile.in (install-plugin): Always use DESTDIR.
16907
28326880 169082009-06-22 Olivier Hainque <hainque@adacore.com>
f100a4a8 16909
28326880
OH
16910 * config/pa/pa.c (output_call): Don't optimize post call jumps
16911 into return address adjustments if the call may throw.
16912
907dd0c7
RE
169132009-06-21 Richard Earnshaw <rearnsha@arm.com>
16914
16915 * arm.c (thumb1_output_casesi): New function.
16916 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
16917 optimizing for size or PIC.
16918 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
16919 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
16920 (casesi): Handle Thumb-1 when optimizing for size or PIC.
16921 (thumb1_casesi_internal_pic): New expand rule.
16922 (thumb1_casesi_dispatch): New pattern.
16923 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
16924 thumb-1 mode.
16925 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
16926 in the text seciton when PIC or optimizing for size.
16927 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
16928 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
16929 preservation properties of code.
16930 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
16931 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
16932 (__gnu_thumb1_case_si): New function.
16933 * t-arm (LIB1ASMSRC): Define here.
16934 (LIB1ASMFUNCS): Add some common functions.
16935 * t-arm-elf (LIB1ASMSRC): Delete.
16936 (LIB1ASMFUNCS): Append to existing set.
16937 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
16938 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
16939 * t-symbian (LIB1ASMFUNCS): Likewise.
16940 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
16941 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
16942
2cee1509
RG
169432009-06-21 Richard Guenther <rguenther@suse.de>
16944
16945 PR tree-optimization/38729
16946 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
16947 to loops with a single exit if -fno-expensive-optimizations.
16948
d24686d7
JJ
169492009-06-21 Jakub Jelinek <jakub@redhat.com>
16950
16951 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
16952 (dataflow_set): Change vars type from htab_t to shared_hash.
16953 (shared_hash_pool, empty_shared_hash): New variables.
16954 (vars_clear): Removed.
16955 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
16956 shared_hash_find_slot_unshare, shared_hash_find_slot,
16957 shared_hash_find_slot_noinsert, shared_hash_find): New
16958 static inlines.
16959 (shared_hash_unshare, shared_hash_destroy): New functions.
16960 (unshare_variable): Unshare set->vars if shared, use
16961 shared_hash_htab.
16962 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
16963 (get_init_value, find_src_set_src, dump_dataflow_set,
16964 clobber_variable_part, emit_notes_for_differences): Use
16965 shared_hash_htab.
16966 (dataflow_set_init): Remove second argument, set vars to
16967 empty_shared_hash instead of creating a new htab.
16968 (dataflow_set_clear): Call shared_hash_destroy and set vars
16969 to empty_shared_hash instead of calling vars_clear.
16970 (dataflow_set_copy): Don't call vars_copy, instead just share
16971 the src htab with dst.
16972 (variable_union): Use shared_hash_*, use initially NO_INSERT
16973 lookup if set->vars is shared. Don't keep slot cleared before
16974 calling unshare_variable. Unshare set->vars if needed.
16975 Even ->refcount == 1 vars must be unshared if set->vars is shared
16976 and var needs to be modified.
16977 (variable_canonicalize): New function.
16978 (dataflow_set_union): If dst->vars is empty, just share src->vars
16979 with dst->vars and traverse with variable_canonicalize to canonicalize
16980 and unshare what is needed.
16981 (dataflow_set_different): If old_set and new_set use the same shared
16982 htab, they aren't different. If number of htab elements is different,
16983 htabs are different. Use shared_hash_*.
16984 (dataflow_set_destroy): Call shared_hash_destroy instead of
16985 htab_delete.
16986 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
16987 second argument to dataflow_set_init.
16988 (vt_initialize): Likewise. Initialize shared_hash_pool and
16989 empty_shared_hash, move bb in/out initialization afterwards.
16990 Use variable_htab_free instead of NULL as changed_variables del hook.
16991 (variable_was_changed): Change type of second argument to pointer to
16992 dataflow_set. When inserting var into changed_variables, bump
16993 refcount. Unshare set->vars if set is shared htab and slot needs to
16994 be cleared.
16995 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
16996 lookup if set->vars is shared. Unshare set->vars if needed.
16997 Even ->refcount == 1 vars must be unshared if set->vars is shared
16998 and var needs to be modified. Adjust variable_was_changed caller.
16999 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
17000 vars must be unshared if set->vars is shared and var needs to be
17001 modified. Adjust variable_was_changed caller.
17002 (emit_note_insn_var_location): Don't pool_free var.
17003 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
17004 instead of 1.
17005 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
17006 free_alloc_pool on shared_hash_pool.
17007
525b459f
AG
170082009-06-20 Anthony Green <green@moxielogic.com>
17009
17010 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
17011 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
17012
825be69e
RG
170132009-06-20 Richard Guenther <rguenther@suse.de>
17014
17015 * tree-ssa-structalias.c (find_func_aliases): For memset use
17016 a constraint from NULL if we memset to zero.
17017 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
17018 we explicitly handle that do not read from memory.
17019 (call_may_clobber_ref_p_1): Properly handle builtins that may
17020 set errno.
17021
b14e9388
RG
170222009-06-20 Richard Guenther <rguenther@suse.de>
17023
17024 PR tree-optimization/40495
17025 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
17026 (new_scalar_tmp_constraint_exp): New function.
17027 (process_constraint): Do not create temporary decls.
17028 (process_all_all_constraints): Likewise.
17029 (handle_const_call): Likewise.
17030 (create_function_info_for): Do not set decl.
17031
c885ca89
ILT
170322009-06-19 Ian Lance Taylor <iant@google.com>
17033
17034 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
17035 (rs6000_attribute_table): Make static; move before use.
17036
6569d386
EB
170372009-06-19 Eric Botcazou <ebotcazou@adacore.com>
17038
17039 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
17040 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
17041 Propagate the TREE_READONLY flag without overwriting it.
17042 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
17043 Propagate the TREE_READONLY flag onto the result.
17044 (process_call_operands): Move around. Use correct constant value.
17045
ce41c38b
RR
170462009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17047
17048 PR target/40482
897eef7b 17049 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
ce41c38b
RR
17050 * config/arm/arm.md: Likewise.
17051
96be7a11 170522009-06-19 Ian Lance Taylor <iant@google.com>
d130ae11
ILT
17053
17054 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
17055 to GIMPLE_ERROR_MARK.
17056
17057 * c-typeck.c (build_conditional_expr): Add op1_original_type and
897eef7b 17058 op2_original_type parameters. Warn about using different enum types.
d130ae11
ILT
17059 * c-parser.c (c_parser_conditional_expression): Pass original
17060 types to build_conditional_expr.
17061 * c-tree.h (build_conditional_expr): Update declaration.
17062
d4aa4f4b
ILT
170632009-06-19 Ian Lance Taylor <iant@google.com>
17064
17065 * config/i386/i386.c (ix86_function_specific_save): Test that
17066 fields match values, rather than testing the values are in a
17067 certain range.
17068
779704e7
RG
170692009-06-19 Richard Guenther <rguenther@suse.de>
17070
17071 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
17072 ADDR_EXPR pointers.
17073 (ptr_derefs_may_alias_p): Likewise.
17074 (ptr_deref_may_alias_ref_p_1): New function.
17075 (ptr_deref_may_alias_ref_p): Likewise.
17076 (ref_maybe_used_by_call_p_1): Handle builtins that are not
17077 covered by looking at the ESCAPED solution.
17078 (call_may_clobber_ref_p_1): Likewise.
17079 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
17080 Handle NULL_TREE offset. Do not produce redundant constraints.
17081 (process_all_all_constraints): New helper function.
17082 (do_structure_copy): Use it.
17083 (handle_lhs_call): Likewise.
17084 (find_func_aliases): Handle some builtins with pointer arguments
17085 and/or return values explicitly.
17086
217655da
ILT
170872009-06-19 Ian Lance Taylor <iant@google.com>
17088
17089 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
17090
50ae5fea
ILT
170912009-06-19 Ian Lance Taylor <iant@google.com>
17092
17093 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
17094
642324bb
ILT
170952009-06-19 Ian Lance Taylor <iant@google.com>
17096
17097 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
17098 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
17099 version.
17100
17101 * c-decl.c (finish_decl): If -Wc++-compat, warn about
17102 uninitialized const.
17103
dc491a25
ILT
171042009-06-19 Ian Lance Taylor <iant@google.com>
17105
17106 * dse.c (struct store_info): Rename bitmap field to bmap. Change
17107 all uses.
17108
17109 * c-decl.c (in_struct, struct_types): Remove.
17110 (struct c_binding): Add in_struct field.
17111 (c_binding_ptr): Define type, along with VEC.
17112 (struct c_struct_parse_info): Define.
17113 (struct_parse_info): New static variable.
17114 (bind): Initialize in_struct field.
17115 (start_struct): Remove enclosing_in_struct and
17116 enclosing_struct_types parameters. Add
17117 enclosing_struct_parse_info parameter. Change all callers. Set
17118 struct_parse_info rather than in_struct and struct_types.
17119 (grokfield): If -Wc++-compat and there is a symbol binding for the
17120 field name, set the in_struct flag and push it on the
17121 struct_parse_info->fields vector.
17122 (warn_cxx_compat_finish_struct): New static function.
17123 (finish_struct): Remove enclosing_in_struct and
17124 enclosing_struct_types parameters. Add
17125 enclosing_struct_parse_info parameter. Change all callers. Don't
17126 set C_TYPE_DEFINED_IN_STRUCT here. Call
17127 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
17128 parameter. Only push on struct_types if warn_cxx_compat.
17129 (finish_enum): Only push on struct_types if warn_cxx_compat.
17130 (declspecs_add_type): Add loc parameter. Change all callers.
17131 Change all error calls to error_at. Pass loc, not input_location,
17132 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
17133 defined in a struct. If -Wc++-compat and parsing a struct, record
17134 that a typedef name was used.
17135 * c-parser.c (c_parser_declspecs): Get location to pass to
17136 declspecs_add_type.
17137 (c_parser_struct_or_union_specifier): Update calls to start_struct
17138 and finish_struct.
17139 * c-tree.h (struct c_struct_parse_info): Declare.
17140 (finish_struct, start_struct): Update declarations.
17141 (declspecs_add_type): Update declaration.
17142
88eeff6f
ILT
171432009-06-19 Ian Lance Taylor <iant@google.com>
17144
17145 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
17146 variable with an anonymous type.
17147
28a876a4
UB
171482009-06-19 Uros Bizjak <ubizjak@gmail.com>
17149
17150 * see.c: Remove for real.
17151
dc6707b8
UB
171522009-06-19 Uros Bizjak <ubizjak@gmail.com>
17153
17154 * optabs.h (enum optab_index): Add new OTI_significand.
17155 (significand_optab): Define corresponding macro.
17156 * optabs.c (init_optabs): Initialize significand_optab.
17157 * genopinit.c (optabs): Implement significand_optab using
17158 significand?f2 patterns.
17159 * builtins.c (expand_builtin_mathfn): Handle
17160 BUILT_IN_SIGNIFICAND{,F,L}.
17161 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
17162 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
17163
17164 * config/i386/i386.md (significandxf2, significand<mode>2): New
17165 expanders to implement significandf, significand and significandl
17166 built-ins as inline x87 intrinsics.
17167
dd26af70
AS
171682009-06-18 Anatoly Sokolov <aesok@post.ru>
17169
17170 * config/avr/avr.c (avr_override_options): Remove setting value of
17171 PARAM_INLINE_CALL_COST.
17172
394bd84d
RH
171732009-06-18 Richard Henderson <rth@redhat.com>
17174
17175 PR 40488
17176 * tree-pass.h (TDF_ASMNAME): New.
17177 * tree-dump.c (dump_options): Add asmname.
17178 * doc/invoke.texi: Document it.
17179
17180 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
17181 (dump_decl_name): ...here.
17182 (dump_function_name): New flags arg; mind TDF_ASMNAME.
17183 (dump_generic_node): Update dump_function_name calls.
17184 (print_call_name): New flags arg; update all dump calls.
17185 * diagnostic.h (print_call_name): Update.
17186 * gimple-pretty-print.c (dump_gimple_call): Update.
17187
2a457a9b
L
171882009-06-18 H.J. Lu <hongjiu.lu@intel.com>
17189
17190 PR target/40470
17191 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
17192
fca5bb5c
DN
171932009-06-18 Diego Novillo <dnovillo@google.com>
17194
17195 * doc/plugins.texi: Document plugin_is_GPL_compatible.
17196 * plugin.c (str_license): Declare.
17197 (try_init_one_plugin): Assert that the symbol
17198 'plugin_is_GPL_compatible' exists.
17199
b6680d72
SD
172002009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
17201
17202 * see.c: Remove.
17203 * Makefile.in (OBJS-common): Remove see.o.
17204 (see.o): Remove.
17205 * common.opt (fsee): Mark as preserved for backward compatibility.
f100a4a8 17206 * opts.c (common_handle_option): Add OPT_fsee to the backward
b6680d72
SD
17207 compatibility section.
17208 * passes.c (init_optimization_passes, pass_see): Remove pass.
17209 * timevar.def (TV_SEE): Remove.
17210 * tree-pass.h (pass_see): Remove declaration.
17211 * doc/invoke.texi (-fsee): Remove documentation.
f100a4a8 17212
2a45675f
MJ
172132009-06-18 Martin Jambor <mjambor@suse.cz>
17214
17215 * tree-sra.c: Include statistics.h
17216 (sra_stats): New variable.
17217 (sra_initialize): Clear sra_stats.
17218 (create_access_replacement): Increment sra_stats.replacements.
17219 (get_access_replacement): Do not return twice.
17220 (analyze_all_variable_accesses): Increment statistics counter by the
17221 number of scalarized aggregates.
17222 (generate_subtree_copies): Increment sra_stats.subtree_copies.
17223 (sra_modify_expr): Increment sra_stats.exprs.
17224 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
17225 (sra_modify_assign): Increment sra_stats.exprs,
17226 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
17227 (perform_intra_sra): Update statistics counters.
17228 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
17229
bdc4827b
SL
172302009-06-18 Sandra Loosemore <sandra@codesourcery.com>
17231
17232 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
17233 (arm_scalar_mode_supported_p): New function.
17234
d9dd51dc
PB
172352009-06-18 Paul Brook <paul@codesourcery.com>
17236 Sandra Loosemore <sandra@codesourcery.com>
17237
17238 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
17239 (__extendhfsf2, __truncsfhf2): Define.
17240 * config/arm/fp16.c: New file.
17241 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
17242 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
17243
0fd8c3ad
SL
172442009-06-18 Sandra Loosemore <sandra@codesourcery.com>
17245
17246 * doc/extend.texi (Half-Precision): New section.
17247 * doc/invoke.texi (Option Summary): List -mfp16-format.
17248 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
17249 * config/arm/arm.opt (mfp16-format=): New.
17250 * config/arm/arm.c: Include intl.h.
17251 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
17252 (TARGET_INVALID_RETURN_TYPE): Redefine.
17253 (TARGET_PROMOTED_TYPE): Redefine.
17254 (TARGET_CONVERT_TO_TYPE): Redefine.
17255 (arm_fp16_format): Define.
17256 (all_fpus): Add entry for neon-fp16.
17257 (fp_model_for_fpu): Likewise.
17258 (struct fp16_format): Declare.
17259 (all_fp16_formats): Define.
17260 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
17261 functions.
17262 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
17263 and no ldrh.
17264 (arm_legitimate_index_p): Treat HFmode like HImode.
17265 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
17266 (coproc_secondary_reload_class): Special-case HFmode.
17267 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
17268 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
17269 (arm_init_fp16_builtins): New.
17270 (arm_init_builtins): Call it.
17271 (arm_invalid_parameter_type): New.
17272 (arm_invalid_return_type): New.
17273 (arm_promoted_type): New.
17274 (arm_convert_to_type).
17275 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
17276 format.
17277 (arm_emit_fp16_const): New function.
17278 (arm_mangle_type): Mangle __fp16 as "Dh".
17279 * config/arm/arm.h (TARGET_VFPD32): Make it know about
17280 FPUTYPE_NEON_FP16.
17281 (TARGET_NEON_FP16): New.
17282 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
17283 (enum fputype): Add FPUTYPE_NEON_FP16.
17284 (enum arm_fp16_format_type): Declare.
17285 (arm_fp16_format): Declare.
17286 (LARGEST_EXPONENT_IS_NORMAL): Define.
17287 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
17288 * config/arm/arm-modes.def (HFmode): Define.
bd62d832 17289 * config/arm/vfp.md (*movhf_vfp): New.
0fd8c3ad
SL
17290 (extendhfsf2): New.
17291 (truncsfhf2): New.
bd62d832 17292 * config/arm/arm.md (fpu): Add neon_fp16.
0fd8c3ad
SL
17293 (floatsihf2, floatdihf2): New.
17294 (fix_trunchfsi2, fix_trunchfdi2): New.
17295 (truncdfhf2): New.
17296 (extendhfdf2): New.
17297 (movhf): New.
17298 (*arm32_movhf): New.
17299 (*thumb1_movhf): New.
17300 (consttable_2): Add check for HFmode constants.
17301 (consttable_4): Handle HFmode constants.
17302
2c2f70e1
UB
173032009-06-18 Uros Bizjak <ubizjak@gmail.com>
17304
17305 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
17306
db4fa1c1
OH
173072009-06-17 Olivier Hainque <hainque@adacore.com>
17308
17309 * collect2.c (main): Use CONST_CAST2 to perform char ** to
17310 const char ** conversion in AIX specific section.
f100a4a8 17311
6bec4135
L
173122009-06-17 H.J. Lu <hongjiu.lu@intel.com>
17313
17314 * config/i386/i386.c (ix86_special_builtin_type): Remove
17315 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
17316 (bdesc_special_args): Updated.
17317 (ix86_init_mmx_sse_builtins): Likewise.
17318 (ix86_expand_special_args_builtin): Likewise.
17319
958d6d58
RH
173202009-06-17 Richard Henderson <rth@redhat.com>
17321
17322 * tree-pretty-print.c (maybe_dump_asm_name): New.
17323 (dump_decl_name): Use it.
17324 (PRINT_FUNCTION_NAME): Merge into...
17325 (dump_function_name): ... here. Use maybe_dump_asm_name.
17326
ed5ef2e4
CC
173272009-06-17 Cary Coutant <ccoutant@google.com>
17328
17329 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
17330 Change caller.
17331 * debug.c (struct gcc_debug_hooks): Change placeholder for
17332 source_line hook.
17333 (debug_nothing_int_charstar_int): Replaced by...
17334 (debug_nothing_int_charstar_int_bool): ...this.
17335 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
17336 source_line prototype.
17337 (debug_nothing_int_charstar_int): Replaced by...
17338 (debug_nothing_int_charstar_int_bool): ...this.
17339 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
17340 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
17341 Output is_stmt operand when necessary.
01a0acb7 17342 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
17343 (notice_source_line): Add is_stmt parameter.
17344 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
17345 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
17346 Change callers.
17347 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
17348 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
17349
b0f43ca0
ILT
173502009-06-17 Ian Lance Taylor <iant@google.com>
17351
17352 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
17353 Change all uses.
17354 (struct store_by_pieces_d): Rename from store_by_pieces. Change
17355 call uses.
17356
23314e77
AN
173572009-06-17 Adam Nemet <anemet@caviumnetworks.com>
17358
17359 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
17360 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
17361 tree_strip_sign_nop_conversions and
17362 tree_ssa_strip_useless_type_conversions rather than stripping
17363 the operations here.
17364 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
17365 Declare them.
17366 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
17367 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
17368 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
17369 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
17370 functions.
17371
799dbb0f
ME
173722009-06-17 Michael Eager <eager@eagercon.com>
17373
c637b0fa
UB
17374 * config/rs6000/constraints.md (register_constraint "d"): New.
17375 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
17376 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
17377 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
17378 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
17379 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
17380 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
17381 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
17382 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
17383 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
17384 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
17385 __fctiwz): Same.
17386 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
17387 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
17388 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
17389 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
17390 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
17391 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
17392 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
17393 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
17394 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
17395 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
17396 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
17397 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
17398 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
17399 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
17400
1469de3c
ILT
174012009-06-16 Ian Lance Taylor <iant@google.com>
17402
17403 * profile.c (total_num_never_executed): Don't define.
17404 (compute_branch_probabilities): Don't count or print
17405 num_never_executed.
17406 (init_branch_prob): Don't set total_num_never_executed.
17407 (end_branch_prob): Don't print total_num_never_executed.
17408
2cb0a60d
DD
174092009-06-17 David Daney <ddaney@caviumnetworks.com>
17410
c637b0fa 17411 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 17412
82882240
DE
174132009-06-17 David Edelsohn <edelsohn@gnu.org>
17414
17415 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
17416 (nabstd2_fpr): Same.
17417
a1a65f89
SE
174182009-06-17 Steve Ellcey <sje@cup.hp.com>
17419
17420 * expr.c (expand_assignment): Change complex type check.
17421
07ae5620
BS
174222009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
17423
f100a4a8 17424 * doc/plugins.texi (Building GCC plugins): Added new section.
07ae5620 17425
5eb4df45
ILT
174262009-06-17 Ian Lance Taylor <iant@google.com>
17427
17428 * c-pch.c (get_ident): Don't set size of templ array.
17429 (pch_init): Don't set size of partial_pch array.
17430
17431 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
17432 string constant to intialize an array whose size is the length of
17433 the string.
17434
4d61856d
RG
174352009-06-17 Richard Guenther <rguenther@suse.de>
17436
17437 PR tree-optimization/40389
17438 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
17439 to addressable types.
17440 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
17441
3cb8677c
RG
174422009-06-17 Richard Guenther <rguenther@suse.de>
17443
17444 PR middle-end/40460
17445 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
17446 if there is no evolution of left in the loop bail out.
17447 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
17448 chrec_fold_multiply.
17449
a4d99c86
R
174502009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
17451 Janis Johnson <janis187@us.ibm.com>
17452
17453 PR target/39254
17454 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
17455 for the symbol ref of a constant that is the source of a move
17456 - nor for any other not-obvious-label-ref constants.
17457
8dd1bca0
OR
174582009-06-16 Olatunji Ruwase <tjruwase@google.com>
17459
1469de3c 17460 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
17461 traversal to avoid repeated insertion.
17462
8019538f
ILT
174632009-06-16 Ian Lance Taylor <iant@google.com>
17464
17465 * vec.h (VEC_stack_alloc): Define different version if
17466 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
17467 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
17468 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
17469 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
17470
7c45393e
L
174712009-06-16 H.J. Lu <hongjiu.lu@intel.com>
17472
17473 * config.gcc (extra_headers): Add ia32intrin.h for x86.
17474
17475 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
17476 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
17477 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
17478 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
17479 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
17480 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 17481 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
17482 (bdesc_special_args): Add __builtin_ia32_rdtsc and
17483 __builtin_ia32_rdtscp.
17484 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
17485 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 17486 and __builtin_ia32_rorhi.
7c45393e
L
17487 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
17488 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 17489 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
17490 (ix86_expand_args_builtin): Likewise.
17491 (ix86_expand_special_args_builtin): Likewise.
17492
17493 * config/i386/i386.md (UNSPECV_RDTSCP): New.
17494 (UNSPECV_RDTSC): Likewise.
17495 (UNSPECV_RDPMC): Likewise.
c637b0fa 17496 (*bsr): Renamed to ...
7c45393e 17497 (bsr): This
c637b0fa 17498 (*bsr_rex64): Renamed to ...
7c45393e
L
17499 (bsr_rex64): This.
17500 (rdpmc): New.
17501 (*rdpmc): Likewise.
17502 (*rdpmc_rex64): Likewise.
17503 (rdtsc): Likewise.
17504 (*rdtsc): Likewise.
17505 (*rdtsc_rex64): Likewise.
17506 (rdtscp): Likewise.
17507 (*rdtscp): Likewise.
17508 (*rdtscp_rex64): Likewise.
17509
17510 * config/i386/ia32intrin.h: New.
17511
17512 * config/i386/x86intrin.h: Include <ia32intrin.h>.
17513
504b33d8
ILT
175142009-06-16 Ian Lance Taylor <iant@google.com>
17515
17516 * ira-build.c (copy_info_to_removed_store_destinations):
17517 Initialize parent_a.
17518
f9551830
ILT
175192009-06-16 Ian Lance Taylor <iant@google.com>
17520
17521 * c-decl.c (grokdeclarator): Change size_varies to bool.
17522
c32e2175
ILT
175232009-06-16 Ian Lance Taylor <iant@google.com>
17524
17525 * sel-sched.c: Make forward declarations of move_op_hooks and
17526 fur_hooks explicitly extern.
17527
415a06c2
ILT
175282009-06-16 Ian Lance Taylor <iant@google.com>
17529
c637b0fa 17530 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
17531 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
17532
675f99c9
ILT
175332009-06-16 Ian Lance Taylor <iant@google.com>
17534
17535 * resource.c (mark_referenced_resources): Change
17536 include_delayed_effects parameter to bool. Change all callers.
17537 (mark_end_of_function_resources): Likewise.
17538 * reorg.c (insn_references_resource_p): Likewise.
17539 (insn_sets_resource_p): Likewise.
17540 * resource.h (mark_referenced_resources): Update declaration.
17541 (mark_end_of_function_resources): Update declaration.
17542
a322799d
DE
175432009-06-16 David Edelsohn <edelsohn@gnu.org>
17544
17545 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
17546
c58c92f5
DE
175472009-06-16 David Edelsohn <edelsohn@gnu.org>
17548
17549 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
17550 GCC can bootstrap on AIX with GNU Binutils 2.20.
17551
95228603
ILT
175522009-06-16 Ian Lance Taylor <iant@google.com>
17553
17554 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
17555
9c727c9a
ILT
175562009-06-16 Ian Lance Taylor <iant@google.com>
17557
17558 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
17559 inline, not extern inline.
17560 (exact_log2): Likewise.
17561 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
17562 test CLZ_HWI.
17563 (exact_log2): Likewise, but don't test CTZ_HWI.
17564
5fd8300b
ILT
175652009-06-16 Ian Lance Taylor <iant@google.com>
17566
17567 * bitmap.c (bitmap_clear): Don't declare as inline.
17568 * gimple.c (gimplify_assign): Likewise.
17569 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
17570 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
17571 (sched_scan_info): Remove duplicate definition.
17572
7d882b83
ILT
175732009-06-16 Ian Lance Taylor <iant@google.com>
17574
17575 * c-common.c (skip_evaluation): Don't define.
17576 (c_inhibit_evaluation_warnings): Define global variable.
17577 (overflow_warning): Check c_inhibit_evaluation_warnings rather
17578 than skip_evaluation.
17579 (convert_and_check, warn_for_div_by_zero): Likewise.
17580 * c-common.h (skip_evaluation): Don't declare.
17581 (c_inhibit_evaluation_warnings): Declare.
17582 * c-parser.c (c_parser_typeof_specifier): Set
17583 c_inhibit_evaluation_warnings rather than skip_evaluation.
17584 (c_parser_conditional_expression): Likewise.
17585 (c_parser_binary_expression): Likewise.
17586 (c_parser_sizeof_expression): Likewise.
17587 (c_parser_alignof_expression): Likewise.
17588 * c-typeck.c (build_indirect_ref): Check
17589 c_inhibit_evaluation_warnings rather than skip_evaluation.
17590 (build_conditional_expr, build_binary_op): Likewise.
17591
2e407842
RG
175922009-06-16 Richard Guenther <rguenther@suse.de>
17593
17594 * tree-ssa-alias.c (is_escape_site): Remove.
17595 * tree-ssa-alias.h (enum escape_type): Remove.
17596 (is_escape_site): Likewise.
17597 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
17598 via casts and asms without deferring to is_escape_site.
17599
f2ff8872
JJ
176002009-06-16 Jakub Jelinek <jakub@redhat.com>
17601
17602 PR middle-end/40446
17603 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
17604 use gen_lowpart if op0 has complex mode.
17605
de70bb20
RG
176062009-06-16 Richard Guenther <rguenther@suse.de>
17607
17608 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
17609 variables add them to ESCAPED.
c637b0fa 17610 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 17611
daa0eeb8
RAE
176122009-06-16 Rafael Avila de Espindola <espindola@google.com>
17613
17614 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
17615 make_decl_one_only.
17616
0ec19b8c
MJ
176172009-06-16 Martin Jambor <mjambor@suse.cz>
17618
17619 PR tree-optimization/40432
17620 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
17621 check whether we need to force gimple register operand.
17622
2b26b801
MJ
176232009-06-16 Martin Jambor <mjambor@suse.cz>
17624
17625 PR tree-optimization/40413
17626 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
17627 build_ref_for_offset.
17628 (propagate_subacesses_accross_link): Fix a typo in a comment.
17629
7c5222ff
IR
176302009-06-16 Ira Rosen <irar@il.ibm.com>
17631
17632 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
17633 with additional parameter.
c637b0fa 17634 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
17635 vect_nested_cycle.
17636 (enum vect_relevant): Add comments.
17637 (vect_is_simple_reduction): Add new argument.
17638 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
17639 Detect nested cycles.
17640 (vect_is_simple_reduction): Update documentation, add an argument to
17641 distinguish inner-loop reduction from nested cycle, detect nested
17642 cycles, fix printings and indentation, don't swap operands in case
17643 of nested cycle.
17644 (get_initial_def_for_reduction): Handle subtraction.
17645 (vect_create_epilog_for_reduction): Add new argument to specify
17646 reduction variable.
17647 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa 17648 (vectorizable_reduction): Handle nested cycles. In case of nested
f100a4a8 17649 cycle keep track of the reduction variable position. Call
7c8b1a77 17650 vect_is_simple_reduction with additional parameter. Use original
7c5222ff
IR
17651 statement code in reduction epilogue for nested cycle. Call
17652 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
17653 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
17654 inner-loop vectorization.
7c5222ff
IR
17655 (vect_recog_widen_sum_pattern): Likewise.
17656 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
17657 and reductions.
17658 (vect_mark_stmts_to_be_vectorized): Likewise.
17659 (vect_get_vec_def_for_operand): Handle nested cycles.
17660
d376d545
RW
176612009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17662
17663 * doc/invoke.texi (Debugging Options): Fix option index entries
17664 for -fdump-statistics, -frandom-seed add entries for
17665 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
17666 (FRV Options): Fix entries for -mTLS, -mtls.
17667 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
17668 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
17669 (M68hc1x Options): Fix @itemx for -mnominmax.
17670 (MCore Options): Fix entry for -mno-lsim.
17671 (MMIX Options): Fix entry for -mabi=mmixware.
17672 (PDP-11 Options): Fix entry for -mbcopy-builtin.
17673
bd117bb6
BS
176742009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
17675
17676 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
17677 Mention the plugin mode of gengtype.
c637b0fa 17678 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
17679 * gengtype.c: Updated copyright.
17680 (plugin_files, nb_plugin_files) Added new static variables.
17681 (measure_input_list) Care about plugin_files.
17682 (write_rtx_next): Added early return in plugin mode.
17683 (create_file): Updated copyright year in generated file. Added
17684 asserts.
17685 (oprintf): Added early return if NULL outf.
17686 (get_output_file_with_visibility): Care of plugin_files.
17687 (get_output_file_name): May return null.
17688 (write_local): Added early return.
17689 (put_mangled_filename): Ditto.
17690 (finish_root_table): Added check for base_files.
17691 (write_roots): Care about null when plugins.
17692 (main): Added plugin mode.
17693
e1b7793c
ILT
176942009-06-15 Ian Lance Taylor <iant@google.com>
17695
c637b0fa 17696 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
17697 * gcov.c (read_count_file): Add braces around variables declared
17698 before label.
17699
17700 * c.opt (Wjump-misses-init): New warning.
17701 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
17702 -Wall and -Wc++-compat if not already set.
17703 (c_common_post_options): Clear warn_jump_misses_init if it was not
17704 set.
17705 * c-decl.c (struct c_binding): Change type field to a union with
17706 new label field. Make it the first field in the struct. Update
17707 references to type to use u.type instead.
17708 (struct c_spot_bindings): Define.
17709 (struct c_goto_bindings): Define.
17710 (c_goto_bindings_p): Define, along with VECs.
17711 (struct c_label_vars): Define.
17712 (struct c_scope): Add has_label_bindings field.
17713 (bind_label, set_spot_bindings): New static functions.
17714 (decl_jump_unsafe, update_spot_bindings): New static functions.
17715 (update_label_decls): New static function.
17716 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
17717 Update binding u.label field to shadowed field.
17718 (c_binding_start_stmt_expr): New function.
17719 (c_binding_end_stmt_expr): New function.
17720 (pushdecl): Don't call c_begin_vm_scope.
17721 (make_label): Add defining and p_label_vars parameters. Change
17722 all callers.
17723 (lookup_label): Correct test for whether a label has not yet been
17724 defined. Call bind_label rather than bind.
17725 (warn_about_goto): New static function.
17726 (lookup_label_for_goto): New function.
17727 (declare_label): Call bind_label rather than bind.
17728 (check_earlier_gotos): New static function.
17729 (define_label): Don't give errors about jumping into statement
17730 expressions or scopes of variably modified types. Call
17731 set_spot_bindings and check_earlier_gotos. Call bind_label
17732 instead of bind. Don't set label_context_stack_se or
17733 label_context_stack_vm.
17734 (c_get_switch_bindings): New function.
17735 (c_release_switch_bindings): New function.
17736 (c_check_switch_jump_warnings): New function.
17737 (start_function): Don't set label_context_stack_se or
17738 label_context_stack_vm.
17739 (finish_function): Likewise.
17740 * c-typeck.c (label_context_stack_se): Don't define.
17741 (label_context_stack_vm): Don't define.
17742 (c_finish_goto_label): Call lookup_label_for_goto rather than
17743 lookup_label. Don't give errors about jumping into a statement
17744 expression or the scope of a variably modified type. Don't set
17745 label_context_stack_se or label_context_stack_vm.
17746 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
17747 fields. Add bindings field.
17748 (c_start_case): Don't set deleted fields. Set bindings field.
17749 (do_case): Rework order of tests. Don't check blocked_stmt_expr
17750 or blocked_vm. Call c_check_switch_jump_warnings.
17751 (c_finish_case): Don't test blocked_stmt_expr field. Call
17752 c_release_switch_bindings.
17753 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
17754 c_switch_stack. Don't walk label_context_stack_se labels. Don't
17755 set label_context_stack_se. Call c_bindings_start_stmt_expr.
17756 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
17757 c_switch_stack. Don't walk label_context_stack_se labels. Don't
17758 set label_context_stack_se. Call c_bindings_end_stmt_expr.
17759 (c_begin_vm_scope, c_end_vm_scope): Don't define.
17760 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
17761 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
17762 (C_DECL_UNJUMPABLE_VM): Don't define.
17763 (C_DECL_UNDEFINABLE_VM): Don't define.
17764 (struct c_label_list): Don't define.
17765 (struct c_label_context_se): Don't define.
17766 (struct c_label_context_vm): Don't define.
17767 (struct c_spot_bindings): Declare.
17768 (c_bindings_start_stmt_expr): Declare.
17769 (c_bindings_end_stmt_expr): Declare.
17770 (lookup_label_for_goto): Declare.
17771 (c_get_switch_bindings, c_release_switch_bindings): Declare.
17772 (c_check_switch_jump_warnings): Declare.
17773 (label_context_stack_se, label_context_stack_vm): Don't declare.
17774 (c_finish_goto_label): Update declaration.
17775 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
17776 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
17777 (Warning Options): Document -Wjump-misses-init.
17778
98a129b9
JJ
177792009-06-15 Jakub Jelinek <jakub@redhat.com>
17780
17781 * tree-object-size.c (addr_object_size): Fix a pasto in the last
17782 change.
17783
19751f1f
RAE
177842009-06-15 Rafael Avila de Espindola <espindola@google.com>
17785
17786 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
17787
d40eb158
AH
177882009-06-15 Aldy Hernandez <aldyh@redhat.com>
17789
17790 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
17791
177922009-06-15 Aldy Hernandez <aldyh@redhat.com>
17793
17794 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
17795
fc26fae3
RAE
177962009-06-15 Rafael Avila de Espindola <espindola@google.com>
17797
17798 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
17799 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
17800 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
17801 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
17802 * dwarf2asm.c (dw2_force_const_mem): Update call to
17803 make_decl_one_only.
fc26fae3
RAE
17804 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
17805 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
17806 * langhooks.c (lhd_comdat_group): Remove.
17807 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
17808 * tree.h (DECL_COMDAT_GROUP): New.
17809 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
17810 (tree_decl_with_vis): Add comdat_group. Remove one_only.
17811 (make_decl_one_only): Change signature.
17812 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
17813 make_decl_one_only.
17814 (make_decl_one_only): Change signature.
17815 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
17816
0eb92735
RG
178172009-06-15 Richard Guenther <rguenther@suse.de>
17818
17819 PR middle-end/40439
17820 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
17821
0ab352d5
AK
178222009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17823
17824 * tree-ssa-math-opts.c: Remove extra divide.
17825
677fbff4
AK
178262009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17827
17828 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
17829
03bd2f1a
AK
178302009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17831
17832 * passes.c: Add bswap pass.
17833 * tree-pass.h: Add pass_optimize_bswap declaration.
17834 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
17835 Include rtl.h, expr.h and optabs.h for optab_handler check.
17836 (struct symbolic_number, pass_optimize_bswap): New definition.
17837 (do_shift_rotate, verify_symbolic_number_p): New functions.
17838 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
17839 (gate_optimize_bswap): New function.
17840 * tree.c (widest_int_cst_value): New function.
17841 * tree.h (widest_int_cst_value): Prototype added.
17842
fb4c4640
SB
178432009-06-14 Steven Bosscher <steven@gcc.gnu.org>
17844
17845 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
17846 REG_EQUAL/REG_EQUIV notes.
17847
1d24fdd9
RG
178482009-06-14 Richard Guenther <rguenther@suse.de>
17849
17850 PR middle-end/40389
17851 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
17852 has its address taken if NRV was applied and it is addressable.
17853 * tree-ssa-structalias.c (get_constraint_for_address_of): New
17854 function split out from ...
17855 (get_constraint_for_1): ... here.
17856 (handle_rhs_call): Use it to mark the return slot escaped if
17857 it is addressable and NRV was applied.
17858
4b29c5e5
AH
178592009-06-13 Aldy Hernandez <aldyh@redhat.com>
17860
17861 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
17862 Change first argument type to location_t.
17863 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
17864 Do not set input_location.
17865 Use loc instead of input_location throughout.
17866
e1e6dc73
RG
178672009-06-13 Richard Guenther <rguenther@suse.de>
17868
1d24fdd9 17869 PR tree-optimization/40421
e1e6dc73
RG
17870 * tree-predcom.c (should_unroll_loop_p): Remove.
17871 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
17872
8012b923
MM
178732009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
17874
17875 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17876 Add location argument.
17877
4c4bde29
AH
178782009-06-13 Aldy Hernandez <aldyh@redhat.com>
17879
17880 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
17881 build_decl.
17882 * config/s390/s390.c (s390_build_builtin_va_list): Same.
17883 (s390_gimplify_va_arg): Pass location to create_artificial_label.
17884 * config/spu/spu-protos.h: Add location to
17885 spu_resolve_overloaded_builtin.
17886 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
17887 spu_build_builtin_va_list.
17888 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
17889 argument. Pass location to build_function_call_vec.
17890 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
17891 build_decl.
17892 (emit_fpu_switch): Same.
17893 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
17894 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
17895 to build_decl and create_artificial_label.
17896 (xtensa_gimplify_va_arg_expr): Same.
17897 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
17898 (xstormy16_gimplify_va_arg_expr): Same.
17899 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
17900 * config/arm/arm.c (arm_build_builtin_va_list): Same.
17901 * config/mips/mips.c (mips_build_builtin_va_list): Same.
17902 (mips16_build_function_stub): Same.
17903 (mips16_build_call_stub): Same.
17904
81beb031
RE
179052009-06-13 Richard Earnshaw <rearnsha@arm.com>
17906
17907 PR target/40327
17908 * arm/constraints.md (Pa, Pb): New constraints.
f100a4a8 17909 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
81beb031
RE
17910 split pattern to deal with them.
17911
98f6c600
JS
179122009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
17913
17914 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
17915 fix index entry for -Xpreprocessor.
17916
71856685
AH
179172009-06-12 Aldy Hernandez <aldyh@redhat.com>
17918
17919 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17920 Add location argument to build_decl call.
17921 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
17922 (rs6000_init_builtins): Same.
17923 (spe_init_builtins): Same.
17924 (rs6000_gimplify_va_arg): Add location argument to
17925 create_artificial_label call.
17926
756b65f5
SB
179272009-06-12 Steven Bosscher <steven@gcc.gnu.org>
17928
17929 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
17930 * combine-stack-adj.c (pass_stack_adjustments): Use it.
17931 * Makefile.in: Fix GGC dependency for gcse.o.
17932
c2255bc4
AH
179332009-06-12 Aldy Hernandez <aldyh@redhat.com>
17934
17935 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
17936 * gimple-pretty-print.c (dump_gimple_stmt): Same.
17937 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
17938 created.
17939 * c-parser.c (c_parser_binary_expression): Use current column while
17940 building binary operations.
17941 * common.opt (fshow-column): Enable by default.
17942 * tree-vrp.c (check_array_ref): Use warning_at.
17943 (check_array_bounds): Use location from call back if expr has no
17944 location.
17945 * tree.h: Add location argument to maybe_fold_*.
17946 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
17947 (maybe_fold_offset_to_array_ref): Add location argument and use it.
17948 (maybe_fold_offset_to_component_ref): Same.
17949 (maybe_fold_offset_to_reference): Same.
17950 (maybe_fold_offset_to_address): Same.
17951 (maybe_fold_stmt_indirect): Same.
17952 (maybe_fold_stmt_addition): Same.
17953 (fold_stmt_r): Pass location to maybe_fold_*.
17954 (fold_gimple_assign): Same.
17955 * c-tree.h: Add location argument to finish_decl,
17956 default_function_array_conversion, store_init_value.
17957 * c-decl.c (define_label): Use error_at.
17958 (c_make_fname_decl): Pass location to finish_decl.
17959 (finish_decl): New location argument.
17960 (build_compound_literal): Pass location to store_init_value.
17961 (grokdeclarator): Pass location to finish_decl.
17962 (grokfield): Same.
17963 * c-typeck.c (array_to_pointer_conversion): New location argument.
17964 (function_to_pointer_conversion): Same.
17965 (default_function_array_conversion): Same.
17966 (parser_build_unary_op): Pass location to overflow_warning.
17967 (parser_build_binary_op): Same. Use warning_at.
17968 (build_unary_op): Pass location to array_to_pointer_conversion.
17969 (build_c_cast): Pass location to digest_init.
17970 (build_modify_expr): New location argument.
17971 (convert_for_assignment): Same.
17972 (store_init_value): Same.
17973 (digest_init): Same.
17974 (output_init_element): Pass location to digest_init and
17975 array_to_pointer_conversion.
17976 (c_finish_return): Pass location to convert_for_assignment.
17977 * gimplify.c (gimplify_conversion): Pass location to
17978 maybe_fold_offset_to_address.
17979 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
17980 to maybe_fold_stmt_addition.
17981 * c-omp.c (c_finish_omp_atomic): Pass new location to
17982 build_modify_expr.
17983 (c_finish_omp_for): Same.
17984 * c-common.c (overflow_warning): New argument.
17985 * c-common.h: New argument to build_modify_expr, overflow_warning.
17986 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
17987 finish_decl.
17988 (c_parser_initializer): Pass location to
17989 default_function_array_conversion.
17990 (c_parser_initelt): Same.
17991 (c_parser_initval): Same.
17992 (c_parser_asm_operands): Same.
17993 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
17994 (c_parser_conditional_expression): Same.
17995 (c_parser_binary_expression): Add location info to stack. Use it.
17996 (c_parser_unary_expression): Pass location to
17997 default_function_array_conversion, parser_build_unary_op,
17998 build_indirect_ref, c_parser_postfix_expression_after_primary.
17999 (c_parser_postfix_expression_after_primary): New location argument.
18000 Use it.
18001 (c_parser_expression_conv): Pass location to
18002 default_function_array_conversion.
18003 (c_parser_expr_list): Same.
18004 (c_parser_omp_atomic): Same.
18005 (c_parser_omp_for_loop): Same.
bd62d832 18006 * c-tree.h (struct c_declarator): Add comment to id_loc.
c2255bc4
AH
18007 (build_array_declarator): New argument.
18008 * c-decl.c (build_array_declarator): Add location argument.
18009 (grokdeclarator): Set id_loc for cdk_array.
18010 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
18011 build_array_declarator.
18012 * tree.c (build_omp_clause): Add location argument.
18013 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
18014 (OMP_CLAUSE_LOCATION): New macro.
18015 (struct tree_omp_clause): Add location field.
18016 (build_omp_clause): Add argument.
c2255bc4
AH
18017 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
18018 build_omp_clause.
18019 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
18020 (cp_parser_omp_clause_collapse): Same.
18021 (cp_parser_omp_clause_default): Same.
18022 (cp_parser_omp_clause_if): Same.
18023 (cp_parser_omp_clause_nowait): Same.
18024 (cp_parser_omp_clause_num_threads): Same.
18025 (cp_parser_omp_clause_ordered): Same.
18026 (cp_parser_omp_clause_schedule): Same.
18027 (cp_parser_omp_clause_untied): Same.
18028 (cp_parser_omp_for_loop): Same.
18029 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
18030 * c-tree.h (c_start_case): Add location argument.
18031 (c_process_expr_stmt): Same.
18032 (c_finish_goto_*): Same.
18033 * tree-parloops.c (initialize_reductions): Pass location to
18034 build_omp_clause.
18035 (create_parallel_loop): Same.
18036 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
18037 (gfc_trans_omp_reduction_list): Same.
18038 (gfc_trans_omp_clauses): Same.
18039 (gfc_trans_omp_do): Same.
18040 * c-typeck.c (c_finish_goto_label): Same.
18041 (c_finish_goto_ptr): New location argument.
18042 (c_start_case): Same.
18043 (emit_side_effect_warnings): Same.
18044 (c_process_expr_stmt): Same.
18045 (c_finish_stmt_expr): Same.
18046 (c_finish_omp_clauses): Use error_at instead of error.
18047 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
18048 build_omp_clause.
18049 * c-omp.c (c_split_parallel_clauses): New location argument.
18050 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
18051 to build_omp_clause.
18052 (convert_local_reference_stmt): Same.
18053 (convert_gimple_call): Same.
18054 * c-common.h (c_split_parallel_clauses): New argument.
18055 * c-parser.c (c_parser_statement_after_labels): Pass location to
18056 c_finish_goto_label.
18057 (c_parser_switch_statement): Pass location to c_start_case.
18058 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
18059 and c_process_expr_stmt.
18060 (c_parser_omp_variable_list): Add location argument.
c637b0fa 18061 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
18062 (c_parser_omp_clause_default): Same.
18063 (c_parser_omp_clause_if): Same.
18064 (c_parser_omp_clause_num_threads): Same.
18065 (-c_parser_omp_clause_ordered): Same.
18066 (c_parser_omp_clause_reduction): Pass location to
18067 c_parser_omp_variable_list.
18068 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
18069 (c_parser_omp_clause_untied): Same.
18070 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 18071 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
18072
18073 * c-tree.h (check_for_loop_decls, undeclared_variable,
18074 build_component_ref, build_array_ref, build_external_ref,
18075 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
18076 build_conditional_expr, build_compound_expr, c_cast_expr,
18077 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
18078 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
18079 argument.
18080 * c-semantics.c (build_stmt): Same.
18081 (build_case_label): Same.
18082 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
18083 (undeclared_variable): New argument.
18084 (make_label): Same.
18085 (lookup_label): Pass location on down.
18086 (define_label): Same.
18087 (finish_decl): Same.
18088 (build_compound_literal): Same.
18089 (finish_struct): Same.
18090 (finish_function): Do not set location here.
18091 (check_for_loop_decls): New argument.
18092 * tree.c (save_expr): Set location.
18093 (build_empty_stmt): New argument.
18094 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
18095 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
18096 * builtins.c (gimplify_va_arg_expr): Use locations.
18097 (expand_builtin_sync_operation): Same.
18098 * c-typeck.c (build_component_ref): New argument.
18099 (build_array_ref): Same.
18100 (build_external_ref): Same.
18101 (c_expr_sizeof_expr): Same.
18102 (c_expr_sizeof_type): Same.
18103 (parser_build_unary_op): Same.
18104 (build_conditional_expr): Same.
18105 (build_compound_expr): Pass location on down.
18106 (build_compound_expr): New argument.
18107 (build_c_cast): Same.
18108 (c_cast_expr): Same.
18109 (build_asm_expr): Same.
18110 (c_finish_return): Same.
18111 (c_process_expr_stmt): Pass location on down.
18112 (c_finish_stmt_expr): New argument.
18113 (push_clenaup): Same.
18114 (c_finish_omp_parallel): Same.
18115 (c_finish_omp_task): Same.
18116 * gimplify.c (gimplify_call_expr): Pass location on down.
18117 * c-omp.c (c_finish_omp_master): New argument.
18118 (c_finish_omp_critical): Same.
18119 (c_finish_omp_ordered): Same.
18120 (c_finish_omp_barrier): Same.
18121 (-c_finish_omp_taskwait): Same.
18122 (c_finish_omp_atomic): Same.
18123 (c_finish_omp_flush): Same.
18124 * tree-inline.c (copy_tree_body_r): Pass location on down.
18125 (inline_forbidden_p): Remove use of input_location.
18126 * c-gimplify.c (c_build_bind_expr): New argument.
18127 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
18128 (c_sizeof_or_alignof_type): New argument.
18129 (c_alignof_expr): Same.
18130 (build_va_arg): Same.
18131 (c_add_case_label): Same.
18132 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
18133 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
18134 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
18135 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
18136 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
18137 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
18138 New argument.
18139 * stub-objc.c (objc_build_selector_expr): Same.
18140 (objc_build_throw_stmt): Same.
18141 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
18142 (c_parser_initelt): Same.
18143 (c_parser_compound_statement): Same.
18144 (c_parser_compound_statement_nostart): Same.
18145 (c_parser_label): Same.
18146 (c_parser_statement_after_labels): Same.
18147 (c_parser_if_body): Same.
18148 (c_parser_else_body): Same.
18149 (c_parser_if_statement): Same.
18150 (c_parser_switch_statement): Same.
18151 (c_parser_while_statement): Same.
18152 (c_parser_do_statement): Same.
18153 (c_parser_for_statement): Same.
18154 (c_parser_asm_statement): Same.
18155 (c_parser_conditional_expression): Same.
18156 (c_parser_binary_expression): Same.
18157 (c_parser_cast_expression): Same.
18158 (c_parser_unary_expression): Same.
18159 (c_parser_sizeof_expression): Same.
18160 (c_parser_alignof_expression): Same.
18161 (c_parser_postfix_expression): Same.
18162 (c_parser_expression): Same.
18163 (c_parser_objc_receiver): Same.
18164 (c_parser_omp_variable_list): Same.
18165 (c_parser_omp_structured_block): Same.
18166 (c_parser_omp_atomic): New argument.
18167 (c_parser_omp_barrier): Same.
18168 (c_parser_omp_critical): Same.
18169 (c_parser_omp_flush): Pass location on down.
18170 (c_parser_omp_for_loop): New argument.
18171 (c_parser_omp_for): Same.
18172 (c_parser_omp_master): Same.
18173 (c_parser_omp_ordered): Same.
18174 (c_parser_omp_sections_scope): Same.
18175 (c_parser_omp_sections): Same.
18176 (c_parser_omp_parallel): Same.
18177 (c_parser_omp_single): Same.
18178 (c_parser_omp_task): Same.
18179 (c_parser_omp_taskwait): Pass location on down.
18180 (c_parser_omp_construct): Same.
18181 (c_parser_omp_threadprivate): Same.
18182 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
18183 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
18184 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
18185 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
18186 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
18187 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
18188 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
18189 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
18190 config/i386/i386.c, stmt.c:
18191 Add location argument to the following function definitions and/or
18192 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
18193 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
18194 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
18195 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
18196 do_case, c_finish_bc_stmt, build_compound_literal,
18197 build_function_call.
18198 * c-decl.c (build_compound_literal): Add location argument.
18199 Make all diagnostic calls use location.
18200 (start_struct): Same.
18201 (finish_struct): Same.
18202 (start_enum): Same.
18203 (build_enumerator): Same.
18204 (start_function): Same.
18205 (grokdeclarator): Make all diagnostic calls use location.
18206 (store_parm_decls_oldstyle): Same.
18207 * c-typeck.c (build_function_call): Add location argument.
18208 Make all diagnostic calls use location.
18209 (do_case): Same.
18210 (c_finish_bc_stmt): Same.
18211 * tree-nested.c (get_trampoline_type): Add argument.
18212 Pass location to build_decl.
18213 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
18214 * rtl.h (RTL_LOCATION): New.
18215 * c-common.c (c_add_case_label): Add location argument.
18216 Make all diagnostic calls use location.
18217 * c-common.h: Add location argument to make_fname_decl, do_case,
18218 c_add_case_label, build_function_call, resolve_overloaded_builtin.
18219 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
18220 Set it appropriately for every case. Pass enum_loc to start_enum
18221 call. Pass value_loc first to build_enumerator. Pass enum_loc to
18222 parser_xref_tag.
18223 (c_parser_struct_or_union_specifier): Save location. Use it for
18224 start_struct, finish_struct, and parser_xref_tag.
18225
3d8b2a98
ILT
182262009-06-12 Ian Lance Taylor <iant@google.com>
18227
c637b0fa 18228 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
18229
18230 * c-opts.c (c_common_handle_option): For -Wc++-compat set
18231 cpp_opts->warn_cxx_operator_names.
18232
737142ce
AP
182332009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
18234
18235 PR tree-opt/38865
18236 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
18237 is returns NULL and OP is a VCE, look through the VCE.
18238
d3a0d55d
ILT
182392009-06-12 Ian Lance Taylor <iant@google.com>
18240
18241 PR bootstrap/40430
18242 * collect2.c (main): Use CONST_CAST2 in code inside #if
18243 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
18244
f85882d8
JY
182452009-06-12 Joey Ye <joey.ye@intel.com>
18246
18247 PR middle-end/39146
18248 * cfgexpand.c (get_decl_align_unit): Update
18249 max_used_stack_slot_alignment with align instead of
18250 stack_alignment_needed.
18251
18252 * function.c (assign_stack_local_1): Update
18253 max_used_stack_slot_alignment with alignment_in_bits instead
18254 of stack_alignment_needed.
18255 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
18256 here.
18257
fc9f468b
JJ
182582009-06-12 Jakub Jelinek <jakub@redhat.com>
18259
18260 * dwarf2out.c (last_var_location_insn): New variable.
18261 (dwarf2out_end_epilogue): Clear last_var_location_insn.
18262 (dwarf2out_var_location): Don't record anything after last real
18263 insn. Only change labels if there were any real instructions
18264 in between last note and this one, or if changed sections.
18265
7c1db202
RH
182662009-06-11 Richard Henderson <rth@redhat.com>
18267
f85882d8 18268 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
18269 note when storing the frame pointer in a register.
18270 (FRP): Don't redefine to nothing for epilogue.
18271 (alpha_expand_epilogue): Mark register and sp restores.
18272 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
18273
7c1db202
RH
18274 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
18275 when gen_lowpart is needed.
18276
f2ae7631
RH
182772009-06-11 Richard Henderson <rth@redhat.com>
18278
42755c21
RH
18279 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
18280
f2ae7631
RH
18281 * dwarf2out.c (need_data_align_sf_opcode): New.
18282 (div_data_align): Move earlier.
18283 (def_cfa_1, reg_save): Use it.
18284
8ed0ce99
L
182852009-06-11 H.J. Lu <hongjiu.lu@intel.com>
18286
18287 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
18288 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
18289 (ix86_handle_option): Handle OPT_mcrc32.
18290 (ix86_target_string): Add -mcrc32.
18291 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
18292
18293 * config/i386/i386.h (TARGET_CRC32): New.
18294
c637b0fa 18295 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
18296 (sse4_2_crc32di): Likewise.
18297
c637b0fa 18298 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
18299
18300 * doc/invoke.texi: Document -mcrc32.
18301
9fd68a1f
RH
183022009-06-11 Richard Henderson <rth@redhat.com>
18303
8ed0ce99 18304 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
18305 * doc/invoke.texi (gdwarf-): Update docs.
18306 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
18307 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
18308 version level, and record it.
18309
18310 * dwarf2.h (DW_CIE_VERSION): Remove.
18311 * dwarf2out.c (DWARF_VERSION): Remove.
18312 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
18313 (output_call_frame_info): Use CIE version 3 for dwarf3,
18314 or if the return register column is out of range for version 1.
18315 (dwarf_stack_op_name): Add all dwarf3 values.
18316 (DEBUG_PUBTYPES_SECTION): New.
18317 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
18318 encoding change for dwarf3.
18319 (output_die) [dw_val_class_die_ref]: Likewise.
18320 (output_compilation_unit_header): Emit correct version for dwarf3.
18321 (output_line_info): Likewise.
18322 (output_pubnames): Update for DWARF_VERSION removal.
18323 (output_aranges): Likewise.
18324 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
18325 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
18326 (dwarf2out_finish): Likewise.
18327
4de8ce3b
DD
183282009-06-11 David Daney <ddaney@caviumnetworks.com>
18329
18330 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
18331 in r148403.
18332
468059bc
DD
183332009-06-11 David Daney <ddaney@caviumnetworks.com>
18334
18335 PR c/39252
18336 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
18337 * builtins.c (expand_builtin_unreachable): New function.
18338 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
18339 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
18340 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
18341 successors.
18342 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
18343 searching for missing barriers.
18344
b5a6e96f
FXC
183452009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18346
18347 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
18348 when -fprofile-generate* was passed.
18349 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
18350
6be6462e
AG
183512009-06-11 Anthony Green <green@moxielogic.com>
18352
c637b0fa 18353 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
18354 (rCC): Define.
18355 (*b<cond:code>): Support limited branch ranges for new PC-relative
18356 branch instructions.
18357 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
18358
caaabe0a
JJ
183592009-06-11 Jakub Jelinek <jakub@redhat.com>
18360
e5219642
JJ
18361 * config/i386/i386.c (min_insn_size): Use get_attr_length
18362 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
18363 For __asm return 0.
18364
caaabe0a
JJ
18365 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
18366 instead of emit_insn_before.
18367
a567fa6a
ILT
183682009-06-10 Ian Lance Taylor <iant@google.com>
18369
18370 PR bootstrap/40408
18371 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
18372 GIMPLE_SWITCH.
18373
6a753d5f
RE
183742009-06-10 Revital Eres <eres@il.ibm.com>
18375
18376 * passes.c (init_optimization_passes): Reschedule
18377 predictive-commoning pass before complete unroll pass.
18378
a550d677
MJ
183792009-06-10 Martin Jambor <mjambor@suse.cz>
18380
18381 * cgraph.c (cgraph_node_can_be_local_p): New function.
18382 (cgraph_make_node_local): New function.
18383 * cgraph.h (cgraph_node_can_be_local_p): Declare.
18384 (cgraph_make_node_local): Declare.
18385
d8259b07
NF
183862009-06-10 Nathan Froyd <froydnj@codesourcery.com>
18387
18388 * tree.h (tree_base): Add packed_flag and user_align fields.
18389 Decrease size of spare field.
18390 (TYPE_USER_ALIGN): Use user_align from tree_base.
18391 (DECL_USER_ALIGN): Likewise.
18392 (TYPE_PACKED): Use packed_flag from tree_base.
18393 (DECL_PACKED): Likewise.
18394 (tree_type): Delete packed_flag and user_align fields. Widen
18395 precision field. Widen mode field and shuffle fields to align
18396 mode on an 8-bit boundary.
18397 (tree_decl_common): Delete decl_flag_1 and user_align fields.
18398 Renumber decl_flag_* fields. Fix comments. Widen
18399 decl_common_unused field.
c637b0fa 18400 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
18401 (DECL_EXTERNAL): Likewise.
18402 (DECL_BIT_FIELD): Likewise.
18403 (DECL_NONADDRESSABLE_P): Likewise.
18404 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
18405 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
18406
c2569604
ILT
184072009-06-10 Ian Lance Taylor <iant@google.com>
18408
18409 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
18410 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
18411 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
18412 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
18413 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
18414 DEF_VEC_ALLOC_FUNC_P.
18415 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
18416 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
18417 DEF_VEC_ALLOC_FUNC_O.
18418 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
18419 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
18420 DEF_VEC_ALLOC_FUNC_I.
18421 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
18422 (vec_stack_p_reserve_exact_1): Declare.
18423 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
18424 (vec_stack_free): Declare.
18425 (VEC_stack_alloc): Define.
18426 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
18427 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
18428 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
18429 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
18430 for void_p.
18431 (stack_vecs): New static variable.
18432 (vec_stack_p_reserve_exact_1): New function.
18433 (vec_stack_o_reserve_1): New static function.
18434 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
18435 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
18436 (vec_stack_free): New function.
18437 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
18438 (VEC_df_ref_stack_alloc): Define.
18439 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
18440 DEF_VEC_ALLOC_P_STACK.
18441 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
18442 (struct df_collection_rec): Change _vec fields to VEC. Remove
18443 _use fields.
18444 (df_free_collection_rec): Adjust for new fields.
18445 (df_insn_rescan): Use new df_collection_rec fields.
18446 (df_notes_rescan, df_canonize_collection_rec): Likewise.
18447 (df_ref_create_structure, df_ref_record): Likewise.
18448 (df_get_conditional_uses, df_get_call_refs): Likewise.
18449 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
18450 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
18451 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 18452 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
18453 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
18454 Remove count parameter. Change return type to void. Change all
18455 callers.
18456 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
18457 Remove count parameter. Change return type to void. Change all
18458 callers.
18459 (df_install_refs): Change old_vec parameter to VEC. Remove count
18460 parameter. Change all callers.
18461 (df_install_mws): Change old_vec parameter to VEC. Remove count
18462 parameter. Change all callers.
18463 (df_refs_verify): Change new_rec parameter to VEC. Change call
18464 callers.
18465 (df_mws_verify): Likewise.
18466
e7aae3e8
AO
184672009-06-10 Alexandre Oliva <aoliva@redhat.com>
18468
18469 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
18470
412ac8d5
L
184712009-06-10 H.J. Lu <hongjiu.lu@intel.com>
18472
18473 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
18474
cceb575c
AG
184752009-06-10 Anthony Green <green@moxielogic.com>
18476
18477 * config/moxie/crti.asm: New file.
18478 * config/moxie/crtn.asm: New file.
18479 * config/moxie/moxie.c: New file.
18480 * config/moxie/moxie.h: New file.
18481 * config/moxie/sfp-machine.h: New file.
18482 * config/moxie/moxie-protos.h: New file.
18483 * config/moxie/t-moxie: Created.
18484 * config/moxie/t-moxie-softfp: Created.
18485 * config/moxie/moxie.md: Created.
18486 * config/moxie/constraints.md: Created.
18487 * config.gcc: Add moxie support.
18488 * doc/md.texi (Machine Constraints): Add moxie constraints.
18489 * doc/contrib.texi (Contributors): Mention moxie port.
18490 * doc/install.texi (Specific): Mention the moxie port.
18491
bf406687
ILT
184922009-06-09 Ian Lance Taylor <iant@google.com>
18493
18494 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
18495 compiling with C++.
18496 * optabs.c (optab_table): Only use designated initializers if
18497 HAVE_DESIGNATED_INITIALIZERS is defined.
18498 (convert_optab_table): Likewise.
18499 (init_optabs): Always call init_insn_codes if
18500 HAVE_DESIGNATED_INITIALIZERS is not defined.
18501
744aa42f
ILT
185022009-06-09 Ian Lance Taylor <iant@google.com>
18503
18504 * targhooks.c (default_builtin_vectorized_function): Change fn
18505 parameter to unsigned int.
18506 (default_builtin_vectorized_conversion): Change code parameter to
18507 unsigned int.
18508 (default_builtin_reciprocal): Change fn parameter to unsigned int.
18509 * targhooks.h: Update declarations.
18510 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
18511 parameter to unsigned int.
18512
18513 * c-typeck.c (comptypes_check_enum_int): New static function.
18514 (comptypes_internal): Add enum_and_int_p parameter. Change all
18515 callers.
18516 (comp_target_types): Add location parameter. Change all callers.
18517 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
18518 Change all callers.
18519 (function_types_compatible_p, type_lists_compatible_p): Likewise.
18520 (build_conditional_expr): Add colon_loc parameter. Change all
18521 callers.
c637b0fa 18522 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
18523 * c-parser.c (c_parser_conditional_expression): Pass location of
18524 colon to build_conditional_expr.
18525 * c-tree.h (build_conditional_expr): Update declaration.
18526
bcbe3b25
SP
185272009-06-09 Sebastian Pop <sebastian.pop@amd.com>
18528
18529 * graphite.c: Revert previous patch.
18530
dc2a6925
SP
185312009-06-09 Sebastian Pop <sebastian.pop@amd.com>
18532
18533 PR bootstrap/40103
18534 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
18535
d81f5387
GS
185362009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
18537
8ed0ce99
L
18538 * tree-ssa-loop-prefetch.c
18539 (loop_prefetch_arrays): Fixed a portability problem in printf format
18540 string.
d81f5387 18541
8056eb4f
MJ
185422009-06-09 Martin Jambor <mjambor@suse.cz>
18543
18544 PR tree-optimization/40351
c637b0fa
UB
18545 * tree-sra.c (propagate_subacesses_accross_link): Check that a
18546 refrence to a potential artifical subaccess can be constructed.
8056eb4f 18547
bd9a3465
KK
185482009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
18549
18550 * config/sh/sh-protos.h (sh_optimization_options): Declare.
18551 (sh_override_options): Likewise.
18552 * config/sh/sh.c: Include params.h.
18553 (sh_optimization_options): New.
18554 (sh_override_options): Likewise.
18555 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
18556 (OVERRIDE_OPTIONS): Use sh_override_options.
18557
8845deab
JJ
185582009-06-08 Jakub Jelinek <jakub@redhat.com>
18559
18560 * dwarf2out.c (emit_cfa_remember): New variable.
18561 (add_fde_cfi): If emit_cfa_remember, recurse to add
18562 DW_CFA_remember_state first.
18563 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
18564 instead just set emit_cfa_remember.
18565
9ea81b0c
JH
185662009-06-08 Jan Hubicka <jh@suse.cz>
18567
18568 PR debug/40126
18569 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
18570
21ecdec5
JH
185712009-06-08 Jan Hubicka <jh@suse.cz>
18572
18573 PR middle-end/39834
c637b0fa
UB
18574 * cgraphunit.c (save_inline_function_body): Do not copy transform
18575 hooks for saved inline bodies.
21ecdec5
JH
18576 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
18577 for given function.
18578
72e48218
AN
185792009-06-08 Adam Nemet <anemet@caviumnetworks.com>
18580
18581 * jump.c (returnjump_p): Handle delayed branches. Add missing
18582 function comment.
18583
6ce2002b
JH
185842009-06-08 Jan Hubicka <jh@suse.cz>
18585
18586 PR middle-end/40102
18587 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
18588 original node might've been modified.
18589 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
18590
eb9ed98a
JJ
185912009-06-08 Jakub Jelinek <jakub@redhat.com>
18592
18593 * tree-object-size.c (addr_object_size): Add OSI argument.
18594 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
18595 (compute_builtin_object_size, expr_object_size): Adjust callers.
18596 (plus_stmt_object_size): Call addr_object_size instead of
18597 compute_builtin_object_size.
18598
db34470d 185992009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 18600 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
f100a4a8
UB
18601
18602 * tree-ssa-loop-prefetch.c
18603 (gather_memory_references): Introduced a counter for the number of
db34470d 18604 memory references.
f100a4a8 18605 (anything_to_prefetch_p): Introduced a counter for the number of
db34470d 18606 prefetches.
f100a4a8 18607 (is_loop_prefetching_profitable): New function with a cost model
db34470d 18608 for prefetching.
f100a4a8 18609 (loop_prefetch_arrays): Use the new cost model to determine if
db34470d 18610 prefetching is profitable.
f100a4a8 18611 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
db34470d 18612 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 18613 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
db34470d 18614 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 18615 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
db34470d 18616 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 18617
eb7adebc
MM
186182009-06-08 Michael Matz <matz@suse.de>
18619
18620 PR debug/40012
eb7adebc
MM
18621 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
18622 partitions use the same.
18623 (expand_one_var): Deal with DECL_RTL sometimes begin set also
18624 for basevars of SSA_NAMEs.
18625 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
18626 to not expand them twice.
18627 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
18628 multiple places.
18629
2153915d
AO
186302009-06-08 Alexandre Oliva <aoliva@redhat.com>
18631
18632 * common.opt (fcompare-debug=, fcompare-debug-second): New.
18633 (fdump-final-insns=, gtoggle): New.
18634 * doc/invoke.texi: Document them.
18635 * final.c (rest_of_clean_state): Dump final insn stream.
18636 * gcc.c (invoke_as): Hook in -fcompare-debug.
18637 (static_spec_functions): Add compare-debug-dump-opt,
18638 compare-debug-self-opt and compare-debug-auxbase-opt.
18639 (compare_debug, compare_debug_second, compare_debug_opt): New.
18640 (switches_debug_check, n_switches_debug_check): New.
18641 (debug_auxbase_opt, debug_check_temp_file): New.
18642 (process_command): Handle -fno-compare-debug, -fcompare-debug and
18643 -fcompare-debug=*.
18644 (do_self_spec): Handle arguments after switches.
18645 (do_spec_1): Add .gk extension to temp file basenames for compare.
18646 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
18647 (cc1_options): Use it instead of normal auxbase computation for
18648 the second compare-debug compilation.
18649 (compare_files): New.
18650 (main): Set up and implement compare debug mode.
18651 (compare_debug_dump_opt_spec_function): New.
18652 (compare_debug_self_opt_spec_function): New.
18653 (compare_debug_auxbase_opt_spec_function): New.
18654 * toplev.c (process_options): Handle flag_gtoggle,
18655 flag_dump_final_insns.
18656 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
18657 during -fcompare-debug-second compilation.
18658
cdb88468
ILT
186592009-06-07 Ian Lance Taylor <iant@google.com>
18660
c637b0fa 18661 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
18662 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
18663
18664 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
18665 with no default node. Change warning with %H to warning_at.
18666 Don't clear warn_switch around case checking.
18667 * doc/invoke.texi (Warning Options): Clarify distinction between
18668 -Wswitch and -Wswitch-enum.
18669
4fe8e1a2
BRF
186702009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18671
18672 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
18673
69952c1d
BRF
186742009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18675
18676 * gbl-ctors.h: Add header guard.
18677
b2ad0284
BRF
186782009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18679
18680 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
18681 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
18682 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
18683 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
18684 prototypes for removed functions.
18685 (expressions_equal_p): Move to ...
18686 * tree-ssa-sccvn.h: ... here and ...
18687 * matrix-reorg.c: ... adjust includes.
18688
c3df55f9
BRF
186892009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18690
18691 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
18692
b5a7159f
BRF
186932009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18694
18695 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
18696 (finish_function): Remove erroneous whitespace.
18697
95bca6b0
BRF
186982009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18699
2cd713a0
BRF
18700 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
18701 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
18702
187032009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18704
18705 * errors.c (internal_error): Commentary typo fix.
18706 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
18707 * tree-ssa-pre.c: Ditto.
95bca6b0 18708
2cd713a0
BRF
187092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18710
18711 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
18712 them is supposed to hold actual statements.
18713
5bca4e80
ILT
187142009-06-06 Ian Lance Taylor <iant@google.com>
18715
18716 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
18717 empty statements can now have attributes.
18718
47ac44d6
SZ
187192009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
18720
18721 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
18722 * config/mips/mips.md: Ditto.
18723
19b905ce
NF
187242009-06-05 Nathan Froyd <froydnj@codesourcery.com>
18725
18726 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
18727 _RELOCATABLE.
18728 (__eabi_uconvert): Likewise.
18729
16702e19
NF
187302009-06-05 Nathan Froyd <froydnj@codesourcery.com>
18731
18732 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
18733 CFI_* definitions with IN_GCC.
18734
a735afd1
DE
187352009-06-05 David Edelsohn <edelsohn@gnu.org>
18736
18737 * xcoffout.h (xcoffout_source_line): Update prototype.
18738
26a347c5
KG
187392009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18740
18741 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
18742 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
18743
9f706f23
JJ
187442009-06-05 Jakub Jelinek <jakub@redhat.com>
18745
18746 PR middle-end/40340
18747 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
18748 inlined_function_outer_scope_p blocks for artificial inlines
18749 even at -g0/-g1.
18750 * tree.c (tree_nonartificial_location): Rewrite using
18751 block_nonartificial_location.
18752
8f439681
RE
187532009-06-05 Revital Eres <eres@il.ibm.com>
18754 Leehod Baruch <leehod@il.ibm.com>
18755
18756 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
18757 (expand_expr_real_1): Remove comment.
18758 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18759 Vectorize misaligned access when the target supports it.
c637b0fa 18760 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
18761 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
18762 and remove asset.
18763
b89f8e3c
JB
187642009-06-05 Julian Brown <julian@codesourcery.com>
18765
18766 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
18767 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
18768
47d1f191
RG
187692009-06-05 Richard Guenther <rguenther@suse.de>
18770
18771 PR bootstrap/40350
18772 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
18773 as possibly unused.
18774
9f706f23 187752009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
18776
18777 * config/s390/s390.c (global_not_special_regno_p): New static inline.
18778 (save_gprs): Don't tell unwinder when a global register is saved.
18779 (s390_emit_epilogue): Emit needed epilogue unwind info.
18780
90f06248
AO
187812009-06-05 Alexandre Oliva <aoliva@redhat.com>
18782
18783 * dwarf2out.c (deferred_asm_name): New.
18784 (add_name_and_src_coords_attributes): Defer creation of
18785 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
18786 computed yet.
18787 (move_linkage_attr): New.
18788 (dwarf2out_finish): Revisit deferrals and emit attributes at the
18789 right place.
18790
c10348e5
AO
187912009-06-05 Alexandre Oliva <aoliva@redhat.com>
18792
18793 * tree-nested.c (finalize_nesting_tree_1): Declare the
18794 frame_decl in the binding tree.
18795
6c52e687
CC
187962009-06-04 Cary Coutant <ccoutant@google.com>
18797
18798 * basic-block.h (struct basic_block_def): Add discriminator field.
18799 * dbxout.c (dbxout_source_line): Add new parameter. Change all
18800 callers.
18801 * debug.c (do_nothing_debug_hooks): Add additional entry.
18802 (debug_nothing_int_charstar_int): New function.
c637b0fa 18803 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
18804 (debug_nothing_int_charstar_int): New declaration.
18805 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
18806 discriminator value in .loc directive.
18807 * final.c (last_discriminator): New variable.
18808 (discriminator): New variable.
18809 (final_start_function): Initialize above variables, pass current
18810 discriminator to debug hook.
18811 (notice_source_line): Check for discriminator change.
18812 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
18813 * sdbout.c (sdbout_source_line): New parameter.
18814 * tree-cfg.c (struct locus_discrim_map): New structure type.
18815 (discriminator_per_locus): New hash table.
18816 (build_gimple_cfg): Allocate and free discriminator hash table.
18817 (make_edges): Call assign_discriminator.
18818 (locus_map_hash): New function.
18819 (locus_map_eq): New function.
18820 (next_discriminator_for_locus): New function.
18821 (same_line_p): New function.
18822 (assign_discriminator): New function.
18823 (make_cond_expr_edges): Call assign_discriminator.
18824 (make_gimple_switch_edges): Likewise.
18825 (first_non_label_stmt): New function.
18826 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
18827 all callers.
18828 * xcoffout.c (xcoffout_source_line): Add new parameter.
18829
18830 * configure.ac (gcc_cv_as_discriminator): New configury check for
18831 gas support for discriminator.
18832 * configure: Regenerate.
18833 * config.in: Regenerate.
18834
e07e020b
RR
188352009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18836
18837 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
18838 val after checking for integers.
18839
72fa3605
UB
188402009-06-04 Uros Bizjak <ubizjak@gmail.com>
18841
18842 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
18843 X64_REGPARM_MAX.
18844 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
18845 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
18846 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
18847 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
18848 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
18849 X64_SSE_REGPARM_MAX.
18850 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
18851 X64_SSE_REGPARM_MAX.
18852
bdde878c
AO
188532009-06-04 Alexandre Oliva <aoliva@redhat.com>
18854
18855 * gcc.c (report_times_to_file): New.
18856 (execute): Implement it.
18857 (process_command): Support -time=.
18858 * doc/invoke.texi: Document it.
18859
2ce59df7
AO
188602009-06-04 Alexandre Oliva <aoliva@redhat.com>
18861
18862 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
18863 that have value exprs.
18864
78bd9046
AO
188652009-06-04 Alexandre Oliva <aoliva@redhat.com>
18866
18867 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
18868 declarations for constants until...
18869 (dw2_output_indirect_constant_1): ... this point.
18870
e63d4106
RE
188712009-06-04 Richard Earnshaw <rearnsha@arm.com>
18872
18873 PR target/10242
18874 * arm.md (arm_addsi3): Don't try to split an add with an
18875 eliminable register until after reload has completed.
18876
6bc7bc14
ILT
188772009-06-03 Ian Lance Taylor <iant@google.com>
18878
18879 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
18880 * genattrtab.c (write_length_unit_log): Likewise.
18881 * genchecksum.c (dosum): Likewise.
18882 * gengtype.c (write_rtx_next): Likewise.
18883 (finish_root_table, write_roots): Likewise.
18884 * gimple.c (gimple_ops_offset_): Likewise.
18885 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
18886 * config/arc/arc.c (arc_attribute_table): Likewise.
18887 * config/arm/arm.c (arm_attribute_table): Likewise.
18888 * config/avr/avr.c (avr_attribute_table): Likewise.
18889 * config/crx/crx.c (crx_attribute_table): Likewise.
18890 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
18891 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
18892 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
18893 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
18894 * config/sh/sh.c (sh_attribute_table): Likewise.
18895 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
18896 * config/spu/spu.c (spu_attribute_table): Likewise.
18897 * config/v850/v850.c (v850_attribute_table): Likewise.
18898
18899 * config/alpha/alpha.c (vms_attribute_table): Make static.
18900 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
18901 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
18902 * config/mips/mips.c (mips_attribute_table): Likewise.
18903
18904 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
18905 $(SYSTEM_H).
18906 (cc1-checksum.o): Likewise.
18907
19d892fd
SE
189082009-06-03 Steve Ellcey <sje@cup.hp.com>
18909
18910 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
18911
679f3354
JJ
189122009-06-03 Jakub Jelinek <jakub@redhat.com>
18913
ff35822b
JJ
18914 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
18915 insn if it is changing sp. Use gen_add3_insn instead of
18916 conditionally gen_addsi3 and gen_adddi3.
18917 (offset_below_red_zone_p): New static inline function.
18918 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
18919 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
18920 * config/rs6000/ppc-asm.h: Include auto-host.h.
18921 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
18922 CFI_RESTORE): Define.
18923 * config/rs6000/crtresxgpr.asm: Add unwind info.
18924 * config/rs6000/crtresxfpr.asm: Likewise.
18925 * config/rs6000/crtresgpr.asm: Likewise.
18926 * config/rs6000/crtresfpr.asm: Likewise.
18927 * config/rs6000/crtsavgpr.asm: Likewise.
18928 * config/rs6000/crtsavfpr.asm: Likewise.
18929
dc6707b8
UB
18930 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
18931 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 18932
2e94c12d
JB
189332009-06-03 Julian Brown <julian@codesourcery.com>
18934
18935 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
18936 words or less (including TImode) in core registers.
18937
3111cce0
RG
189382009-06-03 Richard Guenther <rguenther@suse.de>
18939
18940 PR middle-end/40328
18941 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
18942
5e1b50f6
AB
189432009-06-03 Andrey Belevantsev <abel@ispras.ru>
18944
f100a4a8 18945 * statistics.c (statistics_counter_event): Do not record event
5e1b50f6 18946 in pass dump if its number == -1.
f100a4a8 18947 (curr_statistics_hash): Add assert that we never get passes
5e1b50f6
AB
18948 with static number == -1.
18949
6f11d690
RG
189502009-06-03 Richard Guenther <rguenther@suse.de>
18951 Andrey Belevantsev <abel@ispras.ru>
18952
f100a4a8 18953 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
6f11d690
RG
18954 non-BLKmode arrays addressable.
18955
88961471
MK
189562009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
18957
18958 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
18959 * config/m68k/m68k.h: ... here.
88961471 18960
9961eb45
MJ
189612009-06-03 Martin Jambor <mjambor@suse.cz>
18962
18963 PR tree-optimization/40323
18964 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
18965 assignment.
18966
2f2c62a0
RG
189672009-06-03 Richard Guenther <rguenther@suse.de>
18968
18969 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
18970 consistently.
18971
d6ced3b7
SZ
189722009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
18973
18974 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
18975 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
18976 JUMP_TABLE_DATA_P where applicable.
18977 * config/sh/sh.c: Ditto.
18978 * config/sh/sh.h: Ditto.
18979 * config/sh/sh.md: Ditto.
18980 * config/sh/symbian.c: Ditto.
18981
f3afc8a7
UB
189822009-06-03 Uros Bizjak <ubizjak@gmail.com>
18983
18984 * config/i386/driver-i386.c (describe_cache): Optimize
18985 concatenation of strings. Use snprintf instead of sprintf.
18986 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
18987 target when not compiling with GCC.
18988
1964788a
KK
189892009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
18990
18991 * config/sh/sh.c: Revert last change.
18992 (sh_expand_epilogue): Emit a blockage insn before the frame
18993 pointer adjustment unconditionally.
18994
8633c315
RS
189952009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
18996
18997 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
18998 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
18999 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
19000 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
19001 to COLLECT_GCC_OPTIONS.
19002
781a1758
RS
190032009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19004
19005 * collect2.c (target_system_root): New variable.
19006 (main): Handle --sysroot=.
19007 (ignore_library): Strip the sysroot from the library path.
19008
dfb636dc
RS
190092009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19010
19011 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
19012 (collect2.o): Depend on collect2-aix.h.
19013 (collect2-aix.o): New rule.
19014 * collect2-aix.h: New file.
19015 * collect2-aix.c: Likewise.
19016 * collect2.c: Include collect2-aix.h. Don't undefine
19017 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
19018 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
19019 Use TARGET_AIX_VERSION instead of _AIX51.
19020 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
19021 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
19022 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
19023 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
19024 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
19025
51136ae8
RS
190262009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19027
19028 * collect2.c (ignore_library): Avoid premature post-increment
19029 and null deference.
19030
7f142d33
RS
190312009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19032
19033 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
19034 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
19035 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
19036 CROSS_DIRECTORY_STRUCTURE too.
19037 (LINK_LIBG_SPEC): Likewise.
19038 (LIB_SPEC): Add %R to sysroot paths.
19039 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
19040 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
19041 * config/rs6000/aix51.h: As for aix43.h.
19042 * config/rs6000/aix52.h: Likewise.
19043 * config/rs6000/aix53.h: Likewise.
19044 * config/rs6000/aix61.h: Likewise.
19045 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
19046 to the beginning of sysroot paths.
19047
9e74b7d2
AO
190482009-06-02 Alexandre Oliva <aoliva@redhat.com>
19049
19050 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
19051 INSN_LISTs that are out of the REG_NOTE range.
19052
a9f6ecee
AO
190532009-06-02 Alexandre Oliva <aoliva@redhat.com>
19054
19055 * loop-unroll.c (struct iv_to_split): Add pointer to next.
19056 (struct var_to_expand): Likewise.
19057 (struct opt_info): Add head and tail for linked lists of the above.
19058 (analyze_insn_to_expand_var): Initialize next.
19059 (analyze_iv_to_split_insn): Likewise.
19060 (analyze_insns_in_loop): Create linked lists.
19061 (allocate_basic_variable): Simplify for use without hash table.
19062 (insert_var_expansion_initialization): Likewise, make it type-safer.
19063 (combine_var_copies_in_loop_exit): Likewise.
19064 (apply_opt_in_copies): Walk lists rather than hash tables.
19065 (release_var_copies): Simplified and inlined by hand into...
19066 (free_opt_info): ... this function.
19067
69596c69
RG
190682009-06-02 Richard Guenther <rguenther@suse.de>
19069
19070 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
19071 for field decls.
19072
fe8a7779
AO
190732009-06-02 Alexandre Oliva <aoliva@redhat.com>
19074
19075 * cfgexpand.c (gimple_expand_cfg): Discard the source location
19076 only for builtins that are not overridden.
19077
1bcca2c5
AO
190782009-06-02 Alexandre Oliva <aoliva@redhat.com>
19079
19080 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
19081 label string.
19082
8588f797
AO
190832009-06-02 Alexandre Oliva <aoliva@redhat.com>
19084
19085 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
19086
45f39d78
AO
190872009-06-02 Alexandre Oliva <aoliva@redhat.com>
19088
19089 * combine.c (move_deaths): Compare LUIDs within the same BB only.
19090
2aa7c49b
AO
190912009-06-02 Alexandre Oliva <aoliva@redhat.com>
19092
19093 * common.opt (fdump-unnumbered-links): New.
19094 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
19095 * print-rtl.c (flag_dump_unnumbered_links): New.
19096 (print_rtx): Test it.
19097
55b2829b
RE
190982009-06-02 Richard Earnshaw <rearnsha@arm.com>
19099
19100 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
19101 push/pop multiple to 8-byte alignment.
e63d4106 19102
6c0d7021
JJ
191032009-06-01 Jakub Jelinek <jakub@redhat.com>
19104
0aa34d44
JJ
19105 * config/i386/i386.c (queued_cfa_restores): New static variable.
19106 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
19107 functions.
19108 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
19109 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
19110 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
19111 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
19112 note unconditionally.
19113 (ix86_emit_restore_regs_using_mov): Likewise.
19114 (ix86_emit_restore_sse_regs_using_mov): Likewise.
19115 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
19116 it through to ix86_emit_restore_reg_using_pop.
19117 (ix86_emit_leave): Add RED_OFFSET argument. Call
19118 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
19119 instead of adding REG_CFA_OFFSET note unconditionally.
19120 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
19121 the above functions. Call ix86_add_queued_cfa_restore_notes when
19122 needed.
19123
19124 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
19125 force output of the label even for dwarf2out_do_cfi_asm.
19126 (add_fde_cfi): If -g2 and above and cfi might change CFA,
19127 force creation of CFI label and chain DW_CFA_set_loc jumping to it
19128 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
19129 caller.
19130 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
19131 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
19132 dwarf2out_cfi_label callers.
19133 * tree.h (dwarf2out_cfi_label): Adjust prototype.
19134 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
19135 Adjust dwarf2out_cfi_label callers.
19136 * config/vax/vax.c (vax_output_function_prologue): Likewise.
19137
604a6be9
JJ
19138 * config/i386/i386.h (struct machine_cfa_state,
19139 struct machine_function): Guard with ifndef USED_FOR_TARGET
19140 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
19141
df0026a7
JJ
19142 PR other/40024
19143 * emutls.c (__emutls_get_address): Change arr->size to mean number
19144 of allocated arr->data entries instead of # of slots + 1.
19145
6c0d7021
JJ
19146 PR middle-end/40316
19147 * recog.c (peep2_reinit_state): New function.
19148 (peephole2_init_state): Use it at the end of a basic block and also
19149 when seeing a RTX_FRAME_RELATED_P insn.
19150
49df2fb8
SE
191512009-06-01 Steve Ellcey <sje@cup.hp.com>
19152
19153 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
19154 fixuns_truncrfdi2): New.
19155 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
19156 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
19157 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
19158 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
19159 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
19160 *recip_approx): Remove.
19161 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
19162 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
19163 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
19164 move to div.md.
19165 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
19166 setf_exp_rf): New.
19167
67165eb3
ILT
191682009-06-01 Ian Lance Taylor <iant@google.com>
19169
19170 * attribs.c (register_attribute): Use CONST_CAST.
19171 * collect2.c (main): Use CONST_CAST2.
19172 (scan_prog_file): Likewise.
19173 * gcc.c (process_command, main): Likewise.
19174 * toplev.c (toplev_main): Likewise.
19175
19176 * c-typeck.c (handle_warn_cast_qual): New static function,
19177 partially broken out of build_c_cast.
19178 (build_c_cast): Call handle_warn_cast_qual.
19179 * doc/invoke.texi (Warning Options): Document new effect of
19180 -Wcast-qual.
19181
e74fe492
AH
191822009-06-01 Aldy Hernandez <aldyh@redhat.com>
19183
19184 * diagnostic.c (diagnostic_build_prefix): Always print columns.
19185 (diagnostic_report_current_module): Print columns.
19186 * common.opt (flag_show_column): Enable by default.
19187
7eba2d1f
LM
191882009-06-01 Luis Machado <luisgpm@br.ibm.com>
19189
19190 * alias.c (find_base_term): Check for NULL term before returning.
19191
ee88d9aa
MK
191922009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19193
19194 Revert due to PR40320:
ee88d9aa
MK
19195 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19196 * calls.c (emit_library_call_value_1): Don't force_operand for move
19197 and push insns.
19198
324c9b02 191992009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 19200 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
19201
19202 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
19203 to be processed as a bitfield for constructor output purposes.
19204 * output.h (initializer_constant_valid_for_bitfield_p): Declare
19205 new function.
19206 * varasm.c (oc_local_state): New type, output_constructor
19207 local state to support communication with helpers.
19208 (oc_outer_state): New type, output_constructor outer state of
19209 relevance in recursive calls.
19210 (output_constructor_array_range): New output_constructor helper,
19211 extracted code for an array range element.
19212 (output_constructor_regular_field): New output_constructor helper,
19213 extracted code for an element that is not a bitfield.
19214 (output_constructor_bitfield): New output_constructor helper,
19215 extracted code for a bitfield element. Accept an OUTER state
19216 argument for recursive processing. Recurse on record or array
19217 CONSTRUCTOR values, possibly past noop conversions.
62295314 19218 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
19219 VALUE is a valid constant-valued expression for use in a static
19220 bit-field initializer.
62295314
OH
19221 (output_constructor): Rework to use helpers. Accept and honor an
19222 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
19223 prepared for nested constructors initializing bitfields.
19224 (output_constant): Feed OUTER in calls to output_constructor.
19225
0980d7fe
MK
192262009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19227
19228 * calls.c (emit_library_call_value_1): Don't force_operand for move
19229 and push insns.
19230
29661412
NC
192312009-06-01 Nick Clifton <nickc@redhat.com>
19232
19233 * doc/invoke.texi (IA-64 Options): Fix typo.
19234
e9dbe7bb
IR
192352009-06-01 Ira Rosen <irar@il.ibm.com>
19236
19237 PR tree-optimization/39129
7c8b1a77 19238 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
e9dbe7bb 19239 printed message.
7c8b1a77 19240 (vect_do_peeling_for_loop_bound): Use
e9dbe7bb
IR
19241 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
19242 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
19243 (vect_loop_versioning): Likewise.
19244 (vect_create_cond_for_alias_checks): Fix indentation.
7c8b1a77 19245 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
e9dbe7bb
IR
19246 macros.
19247 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
19248 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7c8b1a77 19249 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
e9dbe7bb 19250 "control flow in loop".
7c8b1a77 19251 (vect_estimate_min_profitable_iters): Use
e9dbe7bb
IR
19252 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
19253 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
19254 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
19255 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7c8b1a77
UB
19256 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
19257 statement belongs to a group of strided accesses with the exact code
e9dbe7bb
IR
19258 check.
19259 (vectorizable_load): Likewise.
19260 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
19261 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
19262
5ac69a80
GP
192632009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
19264
19265 * config/freebsd-stdint.h: New file.
19266 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
19267 Add freebsd-stdint.h to tm_file.
19268
54b2b460
RE
192692009-06-01 Richard Earnshaw <rearnsha@arm.com>
19270
19271 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
19272 (thumb2_extendhidi2): Likewise.
19273
a7ca77cf
ILT
192742009-05-31 Ian Lance Taylor <iant@google.com>
19275
f3afc8a7 19276 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
19277
192782009-05-31 Ian Lance Taylor <iant@google.com>
19279
f3afc8a7 19280 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
19281 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
19282 (ipa-reference.o): Depend upon gt-ipa-reference.h.
19283
1aec401e
JM
192842009-05-31 Jason Merrill <jason@redhat.com>
19285
19286 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 19287 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
19288 (dump_generic_node): Adjust.
19289 * diagnostic.h: Declare print_call_name.
19290 * gimple-pretty-print.c (dump_gimple_call): Use it.
19291
ed7910bb
KK
192922009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
19293
19294 * config/sh/sh.md (ashldi3_std): New define_expand.
19295 (ashldi3): Use it.
19296
47ea8d4e
KK
192972009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
19298
19299 PR target/40313
19300 * config/sh/sh.c: Include debug.h.
19301 (sh_expand_epilogue): Emit a blockage insn before the frame
19302 pointer adjustment also when dwarf2out_do_frame returns true.
19303
405e8b49
RE
193042009-05-31 Richard Earnshaw <rearnsha@arm.com>
19305
19306 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
19307 (thumb2_extendqidi2): New pattern.
19308
71ece343
IR
193092009-05-31 Ira Rosen <irar@il.ibm.com>
19310
19311 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
19312 mark phis for renaming.
19313 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
19314 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
19315 Call mark_sym_for_renaming.
19316 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
19317 * tree-vect-loop.c (vect_transform_loop): Remove
19318 vect_memsyms_to_rename initialization and a call to
19319 mark_set_for_renaming.
71ece343 19320
b3041944
JJ
193212009-05-31 Jakub Jelinek <jakub@redhat.com>
19322
19323 PR middle-end/40304
19324 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
19325 frame related even if !set_cfa && style < 0.
19326
a1bda0d7
KT
193272009-05-30 Kai Tietz <kai.tietz@onevision.com>
19328
19329 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
19330 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
19331 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
19332 defining _WIN32 but not __CYGWIN__.
a1bda0d7 19333
acd26225
KG
193342009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19335
19336 * configure.ac: Add MPC support.
f100a4a8
UB
19337
19338 * config.in, configure: Regenerate.
acd26225 19339
cd9c1ca8
RH
193402009-05-29 Richard Henderson <rth@redhat.com>
19341
19342 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
19343 NOTE_INSN_BASIC_BLOCK.
19344 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
19345 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
19346 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
19347 to be deleted.
19348 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
19349 add in_use field.
19350 (add_cfi): Disable check redefining cfa away from drap.
19351 (lookup_cfa_1): Add remember argument; handle remember/restore.
19352 (lookup_cfa): Pass remember argument.
19353 (cfa_remember): New.
19354 (compute_barrier_args_size_1): Remove sibcall check.
19355 (dwarf2out_frame_debug_def_cfa): New.
19356 (dwarf2out_frame_debug_adjust_cfa): New.
19357 (dwarf2out_frame_debug_cfa_offset): New.
19358 (dwarf2out_frame_debug_cfa_register): New.
19359 (dwarf2out_frame_debug_cfa_restore): New.
19360 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
19361 (dwarf2out_begin_epilogue): New.
19362 (dwarf2out_frame_debug_restore_state): New.
19363 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
19364 DW_CFA_restore_state.
19365 (output_cfi_directive): Likewise.
19366 (convert_cfa_to_fb_loc_list): Likewise.
19367 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
19368 * dwarf2out.h: Update.
19369 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
19370 (copy_insn_1): Early out for null.
19371 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
19372 and dwarf2out_frame_debug_restore_state.
19373 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
19374 (prologue_insn_hash, epilogue_insn_hash): New.
19375 (free_after_compilation): Adjust freeing accordingly.
19376 (record_insns): Create hash table if needed; push insns into
19377 hash instead of array.
19378 (maybe_copy_epilogue_insn): New.
19379 (contains): Search hash table instead of array.
19380 (sibcall_epilogue_contains): Remove.
19381 (thread_prologue_and_epilogue_insns): Split eh_return insns
19382 and mark them as epilogues.
19383 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
19384 scanning in terms of basic blocks.
19385 * insn-notes.def (CFA_RESTORE_STATE): New.
19386 * jump.c (returnjump_p_1): Accept EH_RETURN.
19387 (eh_returnjump_p_1, eh_returnjump_p): New.
19388 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
19389 CFA_REGISTER, CFA_RESTORE): New.
19390 * rtl.def (EH_RETURN): New.
19391 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
19392
19393 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
19394 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
19395
19396 * config/i386/i386.c (gen_push): Update cfa state.
19397 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
19398 add a CFA_ADJUST_CFA note.
19399 (ix86_dwarf_handle_frame_unspec): Remove.
19400 (ix86_expand_prologue): Update cfa state.
19401 (ix86_emit_restore_reg_using_pop): New.
19402 (ix86_emit_restore_regs_using_pop): New.
19403 (ix86_emit_leave): New.
19404 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
19405 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
19406 * config/i386/i386.h (struct machine_cfa_state): New.
19407 (ix86_cfa_state): New.
19408 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
19409 (eh_return_internal): Merge from eh_return_<mode>,
19410 use eh_return rtx, split w/ epilogue.
19411
72b5577d
ILT
194122009-05-29 Ian Lance Taylor <iant@google.com>
19413
19414 * builtins.c (validate_gimple_arglist): Don't use va_arg with
19415 enum type.
19416 * calls.c (emit_library_call_value_1): Likewise.
19417
19418 * c-typeck.c (c_build_va_arg): New function.
19419 * c-tree.h (c_build_va_arg): Declare.
19420 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
19421 instead of build_va_arg.
19422
7a2faca1
EB
194232009-05-29 Eric Botcazou <ebotcazou@adacore.com>
19424
19425 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
19426 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
19427 (ptr_difference_cost): Use affine combinations to compute it.
19428 (difference_cost): Likewise.
19429 (get_computation_cost_at): Compute more accurate cost for addresses
19430 if the ratio is a multiplier allowed in addresses.
19431 For non-addresses, consider that an additional offset or symbol is
19432 added only once.
19433
725fd454
JJ
194342009-05-29 Jakub Jelinek <jakub@redhat.com>
19435
a0987204
JJ
19436 * config/i386/i386.c (ix86_decompose_address): Avoid useless
19437 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
19438
725fd454
JJ
19439 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
19440 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
19441 (prefix_rex): For UNIT_MMX don't imply the prefix by default
19442 if MODE_DI.
19443 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
19444 to 1 for TYPE_SSE{IADD1,CVT1}.
19445 (prefix_vex_imm8): Removed.
19446 (length_vex): Only pass 1 as second argument to
19447 ix86_attr_length_vex_default if prefix_extra is 0.
19448 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
19449 (length): For prefix vex computation use length_immediate
19450 attribute instead of prefix_vex_imm8.
19451 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
19452 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
19453 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
19454 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
19455 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
19456 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
19457 a space in between the operands.
19458 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
19459 if one operand is 0xff and the other one si, di, bp or sp.
19460 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
19461 other one si, di, bp or sp.
19462 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
19463 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
19464 type and mode attributes.
19465 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
19466 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
19467 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
19468 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
19469 prefix_data16 attribute iff MODE_DF.
19470 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
19471 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
19472 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
19473 constm128_operand in length_immediate computation.
19474 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
19475 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
19476 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
19477 length_immediate attribute to 1.
19478 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
19479 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
19480 for certain alternatives.
19481 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
19482 prefix_data16 attribute if MODE_V1DF.
19483 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
19484 length_immediate to 1.
19485 (set_got_rex64, set_rip_rex64): Remove length attribute, set
19486 length_address to 4, set mode attribute to MODE_DI.
19487 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
19488 (fxam<mode>2_i387): Set length attribute to 4.
19489 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
19490 *prefetch_3dnow_rex): Override length_address attribute.
19491 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
19492 attributes.
19493 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
19494 (constm128_operand): Removed.
19495 * config/i386/i386.c (memory_address_length): For
19496 disp && !index && !base in 64-bit mode account for SIB byte if
19497 print_operand_address can't optimize disp32 into disp32(%rip)
19498 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
19499 for fs: or gs: segment.
19500 (ix86_attr_length_immediate_default): When checking if shortform
19501 is possible, truncate immediate to the length of the non-shortened
19502 immediate.
19503 (ix86_attr_length_address_default): Ignore MEM_P operands
19504 with X constraint.
19505 (ix86_attr_length_vex_default): Only check for DImode on
19506 GENERAL_REG_P operands.
19507 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
19508 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
19509 (sse_cvttps2pi): Clear prefix_rep attribute.
19510 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
19511 attribute.
19512 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
19513 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
19514 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
19515 iff operand 2 is const_int_operand.
19516 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
19517 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
19518 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
19519 instead of vex.
19520 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
19521 prefix_data16.
19522 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
19523 prefix_data16 attribute for movlpd and movhpd instructions.
19524 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
19525 length_immediate for shufpd instruction.
19526 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
19527 (avx_cmpp<avxmodesuffixf2c><mode>3,
19528 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
19529 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
19530 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 19531 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
19532 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
19533 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
19534 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
19535 prefix_data16 attribute for the first alternative to 1.
19536 (*avx_loadlps): Override length_immediate for the first alternative.
19537 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
19538 attributes for second alternative.
19539 (*vec_concatv2sf_sse4_1): Override length_immediate and
19540 prefix_data16 attributes for second alternative.
19541 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
19542 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
19543 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
19544 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
19545 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
19546 prefix_data16 and length_immediate to 1.
19547 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
19548 to 1.
19549 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 19550 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
19551 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
19552 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
19553 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
19554 *sse4_1_pextrd): Set length_immediate to 1.
19555 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
19556 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
19557 to 1.
19558 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
19559 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
19560 length_immediate to 1 for second alternative.
19561 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
19562 prefix_extra and length_immediate attributes for the first
19563 alternative.
19564 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
19565 first alternative.
19566 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
19567 to 1 for the first and third alternative.
19568 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
19569 alternative.
19570 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
19571 attribute.
19572 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
19573 attribute to 0.
19574 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
19575 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
19576 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
19577 *avx_psign<mode>3): Set prefix_extra attribute to 1.
19578 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
19579 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
19580 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
19581 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 19582 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
19583 (ssse3_palignrti): Override length_immediate to 1.
19584 (ssse3_palignrdi): Override length_immediate to 1, override
19585 prefix_rex attribute.
f3afc8a7 19586 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
19587 (sse4a_extrqi): Override length_immediate to 2.
19588 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
19589 (sse4a_insertq): Override prefix_data16 to 0.
19590 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
19591 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
19592 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
19593 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
19594 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
19595 and length_immediate to 1.
19596 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
19597 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
19598 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
19599 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
19600 and length_immediate to 1.
19601 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
19602 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
19603 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
19604 avx_ptest256): Override prefix_extra to 1.
19605 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
19606 Override prefix_data16 and length_immediate to 1.
19607 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
19608 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
19609 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
19610 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
19611 prefix_data16 to 0 and prefix_extra to 2.
19612 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
19613 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
19614 attribute.
19615 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
19616 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
19617 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
19618 and prefix_extra to 2.
19619 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
19620 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
19621 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
19622 avx_vpermilvar<mode>3,
19623 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
19624 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
19625 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
19626 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
19627 Override prefix_extra to 1.
19628 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
19629 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
19630 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
19631 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
19632 prefix_extra and length_immediate to 1.
19633 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
19634 modrm to 0.
19635 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
19636 to 1 for the first alternative.
19637 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
19638 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
19639 cases.
19640 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
19641 *movv2sf_internal_avx, *movv2sf_internal): Override
19642 prefix_rep attribute for certain alternatives.
19643 (*mov<mode>_internal): Override prefix_rep or prefix_data16
19644 attributes for certain alternatives.
19645 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
19646 attributes for certain alternatives.
19647 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
19648 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
19649 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
19650 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
19651 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
19652 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
19653 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
19654 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
19655 length_immediate to 1 if operand 2 is const_int_operand.
19656 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 19657 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
19658 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
19659 using old 3DNOW insn rather than SSE/3DNOW_A.
19660 (mmx_emms, mmx_femms): Clear modrm attribute.
19661
0674b9d0
MJ
196622009-05-29 Martin Jambor <mjambor@suse.cz>
19663
19664 * tree-sra.c: New implementation of SRA.
19665
19666 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
19667 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
19668 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
19669 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
19670 (SRA_MAX_STRUCTURE_COUNT): Removed.
19671 (SRA_FIELD_STRUCTURE_RATIO): Removed.
19672 * doc/invoke.texi (sra-max-structure-size): Removed.
19673 (sra-field-structure-ratio): Removed.
19674
616f21df
JJ
196752009-05-29 Jakub Jelinek <jakub@redhat.com>
19676
19677 PR middle-end/40291
19678 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
19679 before expansion.
19680
da7ba240
AB
196812009-05-29 Andrey Belevantsev <abel@ispras.ru>
19682
19683 PR rtl-optimization/40101
19684 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
19685 seqno. Adjust comment.
f100a4a8 19686 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
da7ba240
AB
19687 inserting bookkeeping before a jump, the jump is not scheduled.
19688 When no positive seqno found, provide a value. Add comment.
19689
71dcd609
RG
196902009-05-29 Richard Guenther <rguenther@suse.de>
19691
19692 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
19693 short-cutting on the first component.
19694
a900ae6b
JJ
196952009-05-29 Jakub Jelinek <jakub@redhat.com>
19696
19697 PR middle-end/39958
19698 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
19699 for trees other than decls/types.
19700
821bb7f8
RG
197012009-05-29 Richard Guenther <rguenther@suse.de>
19702
19703 * tree-ssa-operands.c (get_expr_operands): Do not handle
19704 INDIRECT_REFs in the handled-component case. Remove
19705 unused get_ref_base_and_extent case.
19706 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
19707 tree_low_cst and host_integerp where possible.
19708 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
19709 codes for equivalence.
19710 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
19711
e997fb9c
DB
197122009-05-29 David Billinghurst <billingd@gcc.gnu.org>
19713
19714 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
f100a4a8 19715 to tmake_file for i[34567]86-*-cygwin*.
e997fb9c 19716
58195b74
JJ
197172009-05-29 Jakub Jelinek <jakub@redhat.com>
19718
19719 PR target/40017
19720 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
19721 (altivec_categorize_keyword, init_vector_keywords,
19722 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
19723 similar to bool.
19724
055df276
KT
197252009-05-29 Kai Tietz <kai.tietz@onevision.com>
19726
19727 * tree.c (handle_dll_attribute): Check if node is
19728 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
19729
f5939ef3
RE
197302009-05-29 Richard Earnshaw <rearnsha@arm.com>
19731
19732 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
19733 component.
19734 (thumb2_zero_extendqidi2): Likewise.
19735
c185de40
KK
197362009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
19737
19738 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
19739 instead of gen_movrt.
19740 * config/sh/sh.md (movrt): Remove.
19741
bf3c6caf
SE
197422009-05-28 Steve Ellcey <sje@cup.hp.com>
19743
f3afc8a7 19744 * doc/invoke.texi (IA-64 Options):
f100a4a8 19745 Add -msdata, -mfused-madd, -mno-inline-float-divide,
bf3c6caf
SE
19746 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
19747 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
19748 -msched-prefer-non-control-spec-insns,
19749 -msched-stop-bits-after-every-cycle,
19750 -msched-count-spec-in-critical-path,
19751 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 19752 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
19753 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
19754 and -msched-spec-verbose.
19755
8a66e987
JM
197562009-05-28 Joseph Myers <joseph@codesourcery.com>
19757
f3afc8a7 19758 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
19759 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
19760 error if used.
19761 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
19762
b45d2719
RG
197632009-05-28 Richard Guenther <rguenther@suse.de>
19764
19765 * tree-ssa-alias.c (ao_ref_init): New function.
19766 (ao_ref_base): Likewise.
19767 (ao_ref_base_alias_set): Likewise.
19768 (ao_ref_alias_set): Likewise.
19769 (refs_may_alias_p_1): Change signature.
19770 (refs_may_alias_p): Adjust.
19771 (refs_anti_dependent_p): Likewise.
19772 (refs_output_dependent_p): Likewise.
19773 (call_may_clobber_ref_p_1): Change signature.
19774 (call_may_clobber_ref_p): Adjust.
19775 (stmt_may_clobber_ref_p_1): New function split out from ...
19776 (stmt_may_clobber_ref_p): ... here.
19777 (maybe_skip_until): Adjust signature.
19778 (get_continuation_for_phi): Likewise.
19779 (walk_non_aliased_vuses): Likewise.
19780 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
19781 (ao_ref_init): Declare.
19782 (ao_ref_base): Likewise.
19783 (ao_ref_alias_set): Likewise.
19784 (stmt_may_clobber_ref_p_1): Likewise.
19785 (walk_non_aliased_vuses): Adjust.
19786 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
19787 (get_ref_from_reference_ops): remove.
19788 (vn_reference_lookup_2): Adjust signature.
19789 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 19790 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
19791 (vn_reference_lookup): Adjust.
19792 (vn_reference_insert): Likewise.
19793 (vn_reference_insert_pieces): Adjust signature.
19794 (visit_reference_op_call): Adjust.
19795 * tree-ssa-pre.c (get_expr_type): Simplify.
19796 (phi_translate_1): Adjust.
19797 (compute_avail): Likewise.
19798 (translate_vuse_through_block): Do not re-build trees.
19799 (value_dies_in_block_x): Likewise.
19800 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
19801 fields.
19802 (vn_reference_lookup_pieces): Adjust declaration.
19803 (vn_reference_insert_pieces): Likewise.
19804
554223b6
BK
198052009-05-28 Benjamin Kosnik <bkoz@redhat.com>
19806
19807 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
19808 with checking disabled.
19809
233215fe
DK
198102009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
19811
19812 PR target/37216
19813
19814 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
19815 macro definition for support of three-operand format aligned
19816 .comm directive in assembler on cygwin/pe/mingw target OS.
19817 * configure: Regenerate.
19818 * config.h: Regenerate.
19819
19820 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
19821 aligned form of .comm directive if -mpe-aligned-commons is in effect.
19822 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
19823
19824 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
19825 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
19826
24adb18f
IR
198272009-05-28 Ira Rosen <irar@il.ibm.com>
19828
19829 PR tree-optimization/40254
19830 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
19831 in analysis of basic blocks.
19832
2c5bfdf7
AN
198332009-05-28 Adam Nemet <anemet@caviumnetworks.com>
19834
19835 PR middle-end/33699
f3afc8a7 19836 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
19837 * target-def.h (TARGET_CONST_ANCHOR): New macro.
19838 (TARGET_INITIALIZER): Use it.
19839 * cse.c (CHEAPER): Move it up to the other macros.
19840 (insert): Rename this ...
19841 (insert_with_costs): ... to this. Add cost parameters. Update
19842 function comment.
19843 (insert): New function. Call insert_with_costs.
19844 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
19845 find_reg_offset_for_const, try_const_anchors): New functions.
19846 (cse_insn): Call try_const_anchors. Adjust cost of src_related
19847 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 19848 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
19849 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
19850
9e6aced0
AO
198512009-05-28 Alexandre Oliva <aoliva@redhat.com>
19852
19853 * tree-inline.c (remap_decls): Enable nonlocalized variables
19854 when not optimizing.
19855
89fbbe4e
AO
198562009-05-28 Alexandre Oliva <aoliva@redhat.com>
19857
19858 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
19859 Simplify other tests involving optimize.
19860
e455776a
TT
198612009-05-27 Tom Tromey <tromey@redhat.com>
19862
19863 * unwind-dw2.c (_Unwind_DebugHook): New function.
19864 (uw_install_context): Call _Unwind_DebugHook.
19865
cea32bca
TT
198662009-05-27 Tom Tromey <tromey@redhat.com>
19867
19868 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
19869
c607156f
ILT
198702009-05-27 Ian Lance Taylor <iant@google.com>
19871
19872 * Makefile.in (LINKER, LINKER_FLAGS): Define.
19873 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
19874 (ALL_LINKERFLAGS): Define.
19875 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
19876 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
19877 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
19878 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
19879 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
19880 $(LINKER_FOR_BUILD).
19881 (build/gcov-iov$(build_exeext)): Likewise.
19882
ec0a1343
JB
198832009-05-27 Julian Brown <julian@codesourcery.com>
19884
19885 * gcse.c (target.h): Include.
19886 (can_assign_to_reg_without_clobbers_p): Check that the target allows
19887 copy of argument to a pseudo register.
19888
ac80ba07
DN
198892009-05-27 Diego Novillo <dnovillo@google.com>
19890
19891 * tree-ssa-live.c (dump_scope_block): Document arguments.
19892 (dump_scope_blocks): Document.
19893 (debug_scope_blocks): New.
19894 * tree-flow.h (debug_scope_blocks): Declare.
19895
d1803a17
DC
198962009-05-21 Denis Chertykov <denisc@overta.ru>
19897
f3afc8a7 19898 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 19899
51fb7760 199002009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
19901
19902 * expr.c (target_align): New function. Alignment the TARGET of an
19903 assignment may be assume to have.
19904 (highest_pow2_factor_for_target): Use it instead of relying on
19905 immediate tree attributes of TARGET, not necessarily honored when
19906 intermediate bitfields are involved.
f100a4a8 19907
634fa334
L
199082009-05-27 H.J. Lu <hongjiu.lu@intel.com>
19909
19910 PR target/40266
19911 * config/i386/driver-i386.c (host_detect_local_cpu): Support
19912 AVX, SSE4, AES, PCLMUL and POPCNT.
19913
65332587
DN
199142009-05-27 Diego Novillo <dnovillo@google.com>
19915
19916 * tree-pretty-print.c (dump_location): New.
19917 (dump_generic_node): Call it.
19918 Factor code to handle BLOCK nodes ...
19919 (dump_block_node): ... here.
19920
3e17e31d
RAE
199212009-05-27 Rafael Avila de Espindola <espindola@google.com>
19922
f3afc8a7
UB
19923 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
19924 with it.
3e17e31d
RAE
19925 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
19926 included.
19927 * gcc-plugin.h: Include config.h and system.h.
19928 (IN_GCC): Define if not defined.
19929
5e370570
HPN
199302009-05-27 Hans-Peter Nilsson <hp@axis.com>
19931
19932 PR middle-end/40249
19933 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
19934 with -fno-inline.
19935
d000f0d9
SZ
199362009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
19937
19938 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
19939 applicable.
19940 * config/m32r/m32r.h: Ditto.
19941 * config/m32r/m32r.md: Ditto.
19942 * config/m32r/predicates.md: Ditto.
19943
82f331ff
AO
199442009-05-27 Alexandre Oliva <aoliva@redhat.com>
19945
19946 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
19947
ae2392a9
BS
199482009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
19949
19950 * doc/plugins.texi
19951 (Loading plugins): typo.
19952 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
19953 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
19954 (Interacting with the GCC Garbage Collector): Added new section.
19955 (Giving information about a plugin): Added new section for
19956 PLUGIN_INFO.
ae2392a9
BS
19957 * ggc.h (ggc_register_root_tab): Added declaration.
19958 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
19959 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
19960 (register_callback): Improved comment in declaration.
f3afc8a7
UB
19961 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
19962 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
19963 (ggc_register_root_tab) Added new routine.
19964 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
19965 PLUGIN_GGC_MARKING event.
19966 * ggc-zone.c: Include plugin.h.
19967 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
19968 * ggc-page.c: Include plugin.h.
19969 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
19970 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
19971 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
19972 (register_callback): check lack of callbacks for
19973 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
19974 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
19975 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
19976 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
19977 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
19978 dependency on plugin.h.
19979 (plugin.o): Added dependency on ggc.h...
19980
f0cfd3a8
RG
199812009-05-26 Richard Guenther <rguenther@suse.de>
19982
19983 PR middle-end/40248
19984 Revert
19985 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
19986 with mismatched comparison modes.
19987
19988 * expr.c (expand_expr_real_1): Expand the operand of a
19989 VIEW_CONVERT_EXPR in its natural mode.
19990
7980bfb8
ILT
199912009-05-26 Ian Lance Taylor <iant@google.com>
19992
19993 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
19994 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
19995 (ALL_COMPILERFLAGS): Define.
19996 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
19997 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
19998 (collect2$(exeext), collect2.o): Likewise.
19999 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
20000 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
20001 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
20002 (libbackend.o, intl.o, cppdefault.o): Likewise.
20003 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
20004 (build/%.o): Use $(COMPILER_FOR_BUILD).
20005 (build/gen%$(build_exeext)): Likewise.
20006 (build/gcov-iov$(build_exeext)): LIkewise.
20007 * config/t-darwin (darwin.o): Use $(COMPILER).
20008 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
20009 * config/t-sol2 (sol2-c.o): Likewise.
20010 (sol2.o): Likewise.
20011 * config/t-vxworks (vxworks.o): Likewise.
20012 * config/x-darwin (host-darwin.o): Likewise.
20013 * config/x-hpux (host-hpux.o): Likewise.
20014 * config/x-linux (host-linux.o): Likewise.
20015 * config/x-solaris (host-solaris.o): Likewise.
20016 * config/alpha/x-alpha (driver-alpha.o): Likewise.
20017 * config/arm/t-arm (arm-c.o): Likewise.
20018 * config/arm/t-pe (pe.o): Likewise.
20019 * config/arm/t-wince-pe (pe.o): Likewise.
20020 * config/i386/t-cygming (winnt.o): Likewise.
20021 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
20022 * config/i386/t-cygwin (cygwin1.o): Likewise.
20023 (cygwin2.o): Likewise.
20024 * config/i386/t-i386 (i386-c.o): Likewise.
20025 * config/i386/t-interix (winnt.o): Likewise.
20026 * config/i386/t-netware (netware.o): Likewise.
20027 * config/i386/t-nwld (nwld.o): Likewise.
20028 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
20029 * config/i386/x-i386 (driver-i386.o): Likewise.
20030 * config/i386/x-cygwin (host-cygwin.o): Likewise.
20031 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
20032 * config/ia64/t-ia64 (ia64-c.o): Likewise.
20033 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
20034 * config/mips/x-native (driver-native.o): Likewise.
20035 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
20036 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
20037 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
20038 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
20039 * config/score/t-score-elf (score7.o): Likewise.
20040 (score3.o): Likewise.
20041 * config/sh/t-sh (sh-c.o): Likewise.
20042 * config/sh/t-symbian (sh-c.o): Likewise.
20043 (symbian.o): Likewise.
20044 * config/spu/t-spu-elf (spu-c.o): Likewise.
20045 * config/v850/t-v850 (v850-c.o): Likewise.
20046 * config/v850/t-v850e (v850-c.o): Likewise.
20047
23977d3c
RG
200482009-05-26 Richard Guenther <rguenther@suse.de>
20049
20050 PR tree-optimization/40122
20051 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
20052 VECTOR_CSTs if possible.
20053 (fold_gimple_assign): Likewise.
20054
3d62b895
RG
200552009-05-26 Richard Guenther <rguenther@suse.de>
20056
20057 PR middle-end/40252
20058 * fold-const.c (fold_binary): Use the correct types for building
20059 rotates.
20060
12346147
RG
200612009-05-26 Richard Guenther <rguenther@suse.de>
20062
20063 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
20064 redundant calls to merge_alias_info.
20065 (bump_vector_ptr): Likewise.
20066 * tree-ssa-copy.c (merge_alias_info): Remove.
20067 (replace_exp_1): Remove call to merge_alias_info.
20068 (propagate_tree_value): Likewise.
20069 (fini_copy_prop): Propagate points-to info.
20070 * tree-flow.h (merge_alias_info): Remove.
20071
807d5e6f
HS
200722009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
20073
20074 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
20075
85057983
JH
200762009-05-25 Jan Hubicka <jh@suse.cz>
20077
20078 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
20079 * cgraph.h (struct inline_summary): New filed self_wize,
20080 size_inlining_benefit, self_time and time_inlining_benefit.
20081 (struct cgraph_global_info): Replace insns by time ans size fields.
20082 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
20083 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
20084 (ipcp_update_callgraph): Do not touch function bodies.
20085 * ipa-inline.c: Include except.h
20086 (MAX_TIME): New constant.
20087 (overall_insns): Remove.
20088 (leaf_node_p): New.
20089 (overall_size, max_benefit): New static variables.
20090 (cgraph_estimate_time_after_inlining): New function.
20091 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
20092 (cgraph_clone_inlined_nodes): Update size.
20093 (cgraph_mark_inline_edge): Update size.
20094 (cgraph_estimate_growth): Use size info.
20095 (cgraph_check_inline_limits): Check size.
20096 (cgraph_default_inline_p): Likewise.
20097 (cgraph_edge_badness): Compute badness based on benefit and size cost.
20098 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
20099 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
20100 and times.
85057983
JH
20101 (cgraph_decide_inlining): Likewise.
20102 (cgraph_decide_inlining_incrementally): Likewise; honor
20103 PARAM_EARLY_INLINING_INSNS.
20104 (likely_eliminated_by_inlining_p): New predicate.
20105 (estimate_function_body_sizes): New function.
20106 (compute_inline_parameters): Use it.
20107 * except.c (must_not_throw_labels): New function.
20108 * except.h (must_not_throw_labels): Declare.
20109 * tree-inline.c (init_inline_once): Kill inlining_weigths
20110 * tree-ssa-structalias.c: Avoid uninitialized warning.
20111 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
20112 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
20113 (PARAM_INLINE_CALL_COST): Remove.
20114 (PARAM_EARLY_INLINING_INSNS): New.
20115
01df5c8a
RG
201162009-05-25 Richard Guenther <rguenther@suse.de>
20117
20118 PR tree-optimization/36327
20119 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 20120 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
20121 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
20122 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
20123 for union COMPONENT_REFs.
20124 (vn_reference_lookup_3): New callback. Lookup from memset
20125 and CONSTRUCTOR assignment, translate through struct copies.
20126 (vn_reference_lookup_pieces): Make sure to not free the
20127 passed operands array. Adjust walk_non_aliased_vuses call.
20128 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
20129 make sure we do not leak memory.
20130
6b8ed145
RG
201312009-05-25 Richard Guenther <rguenther@suse.de>
20132
20133 * tree-ssa-alias.h (dump_points_to_solution): Declare.
20134 * tree-inline.c (expand_call_inline): Reset the escaped and
20135 callused solutions.
20136 * tree-ssa-structalias.c (pass_build_ealias): New.
20137 * tree-pass.h (pass_build_ealias): Declare.
f100a4a8 20138 * passes.c (init_optimization_passes): Add PTA during
6b8ed145
RG
20139 early optimizations.
20140 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
20141 and CALLUSED solutions.
20142 (dump_points_to_solution): New function, split out from ...
20143 (dump_points_to_info_for): ... here.
20144 * tree-parloops.c (parallelize_loops): Reset the escaped and
20145 callused solutions.
20146
0adcf178
RO
201472009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
20148
20149 PR bootstrap/40027
20150 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
20151 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
20152
12aaf609
IR
201532009-05-25 Ira Rosen <irar@il.ibm.com>
20154
20155 PR tree-optimization/40238
20156 * tree-vect-stmts.c (vect_init_vector): Insert initialization
20157 statements after basic block's labels.
f100a4a8 20158 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
12aaf609
IR
20159 to free the allocated memory.
20160
7f9a14e3
KK
201612009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
20162
20163 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
20164 return address with a USE.
20165
b842d478
RG
201662009-05-24 Richard Guenther <rguenther@suse.de>
20167
20168 PR middle-end/40233
20169 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
20170 array type from the main variant of the inner type.
20171
8db7b33f
JBG
201722009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20173
20174 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
20175 definition to bool (from int) to un-break build.
20176 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
20177
cff4e50d
PB
201782009-05-24 Paolo Bonzini <bonzini@gnu.org>
20179
20180 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
20181 discard_stmt_changes): Delete.
20182 * tree-ssa-operands.c (scb_stack): Delete.
20183 (init_ssa_operands): Do not initialize it.
20184 (fini_ssa_operands): Do not free it.
20185 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
20186
f100a4a8 20187 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
cff4e50d
PB
20188 update_stmt, remove the others. Fix comments.
20189 * tree-dfa.c (optimize_stack_restore): Likewise.
20190 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
20191 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
20192 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
20193 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
20194 Likewise.
20195 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
20196 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
20197 (dom_opt_finalize_block): Likewise, adjusting access to
20198 stmts_to_rescan.
cff4e50d
PB
20199 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
20200 (stmts_to_rescan): Change item type to gimple.
20201 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
20202
a70d6342
IR
202032009-05-24 Ira Rosen <irar@il.ibm.com>
20204
20205 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
20206 * tree-pass.h (pass_slp_vectorize): New pass.
20207 * params.h (SLP_MAX_INSNS_IN_BB): Define.
20208 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
20209 * tree-vectorizer.c (timevar.h): Include.
20210 (user_vect_verbosity_level): Declare.
20211 (vect_location): Fix comment.
20212 (vect_set_verbosity_level): Update user_vect_verbosity_level
20213 instead of vect_verbosity_level.
20214 (vect_set_dump_settings): Add an argument. Ignore user defined
20215 verbosity if dump flags require higher level of verbosity. Print to
20216 stderr only for loop vectorization.
20217 (vectorize_loops): Update call to vect_set_dump_settings.
20218 (execute_vect_slp): New function.
20219 (gate_vect_slp): Likewise.
20220 (struct gimple_opt_pass pass_slp_vectorize): New.
20221 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
20222 access its members.
20223 (vec_info_for_bb): New function.
20224 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
20225 (VECTORIZATION_ENABLED): New macro.
20226 (SLP_ENABLED, SLP_DISABLED): Likewise.
20227 (vect_is_simple_use): Add bb_vec_info argument.
20228 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
20229 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
20230 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
20231 vect_schedule_slp, vect_analyze_slp): Likewise.
20232 (vect_analyze_stmt): Add slp_tree argument.
20233 (find_bb_location): Declare.
20234 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
20235 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
20236 (vect_analyze_loop_operations, vect_analyze_loop,
20237 get_initial_def_for_induction, vect_create_epilog_for_reduction,
20238 vect_finalize_reduction, vectorizable_reduction,
20239 vectorizable_live_operation, vect_transform_loop): Likewise.
20240 * tree-data-ref.c (dr_analyze_innermost): Update comment,
20241 skip evolution analysis if analyzing a basic block.
20242 (dr_analyze_indices): Likewise.
20243 (initialize_data_dependence_relation): Skip the test whether the
20244 object is invariant for basic blocks.
20245 (compute_all_dependences): Skip dependence analysis for data
20246 references in basic blocks.
20247 (find_data_references_in_stmt): Don't fail in case of invariant
20248 access in basic block.
20249 (find_data_references_in_bb): New function.
20250 (find_data_references_in_loop): Move code to
782dc37a 20251 find_data_references_in_bb and add a call to it.
a70d6342
IR
20252 (compute_data_dependences_for_bb): New function.
20253 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
20254 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
20255 that STEP is 0.
20256 (vect_analyze_data_ref_dependence): Check for interleaving in case of
20257 unknown dependence in basic block and fail in case of dependence in
20258 basic block.
20259 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
20260 dependence instances from either loop or basic block vectorization
20261 info.
20262 (vect_compute_data_ref_alignment): Check if it is loop vectorization
20263 before calling nested_in_vect_loop_p.
20264 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
20265 dependence instances from either loop or basic block vectorization
20266 info.
20267 (vect_verify_datarefs_alignment): Likewise.
20268 (vect_enhance_data_refs_alignment): Adjust function calls.
20269 (vect_analyze_data_refs_alignment): Likewise.
20270 (vect_analyze_group_access): Fix printing. Skip different checks if
20271 DR_STEP is 0. Keep strided stores either in loop or basic block
20272 vectorization data structure. Fix indentation.
20273 (vect_analyze_data_ref_access): Fix comments, allow zero step in
20274 basic blocks.
20275 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
20276 dependence instances from either loop or basic block vectorization
20277 info.
20278 (vect_analyze_data_refs): Update comment. Call
20279 compute_data_dependences_for_bb to analyze basic blocks.
20280 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
20281 case of loop vectorization. In case of basic block vectorization use
782dc37a 20282 data-ref itself as a base.
a70d6342
IR
20283 (vect_create_data_ref_ptr): In case of basic block vectorization:
20284 don't advance the pointer, add new statements before the current
20285 statement. Adjust function calls.
20286 (vect_supportable_dr_alignment): Support only aligned accesses in
20287 basic block vectorization.
20288 * common.opt (ftree-slp-vectorize): New flag.
20289 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
20290 (vect_pattern_recog_1): Likewise.
20291 * tree-vect-stmts.c (process_use): Likewise.
20292 (vect_init_vector): Add new statements in the beginning of the basic
20293 block in case of basic block SLP.
20294 (vect_get_vec_def_for_operand): Adjust function calls.
20295 (vect_finish_stmt_generation): Likewise.
20296 (vectorizable_call): Add assert that it is loop vectorization, adjust
20297 function calls.
20298 (vectorizable_conversion, vectorizable_assignment): Likewise.
20299 (vectorizable_operation): In case of basic block SLP, take
20300 vectorization factor from statement's type and skip the relevance
20301 check. Adjust function calls.
20302 (vectorizable_type_demotion): Add assert that it is loop
20303 vectorization, adjust function calls.
20304 (vectorizable_type_promotion): Likewise.
20305 (vectorizable_store): Check for outer loop only in case of loop
20306 vectorization. Adjust function calls. For basic blocks, skip the
20307 relevance check and don't advance pointers.
20308 (vectorizable_load): Likewise.
20309 (vectorizable_condition): Add assert that it is loop vectorization,
20310 adjust function calls.
20311 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
20312 that it is not reduction, get vector type, call only supported
782dc37a 20313 functions, skip loop specific parts.
a70d6342
IR
20314 (vect_transform_stmt): Check for outer loop only in case of loop
20315 vectorization.
20316 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
20317 (vect_is_simple_use): Fix comment, add new argument, fix conditions
20318 for external definition.
20319 * passes.c (pass_slp_vectorize): New pass.
20320 * tree-vect-slp.c (find_bb_location): New function.
20321 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
20322 check for patterns only in loops.
20323 (vect_build_slp_tree): Add argument, adjust function calls, fail in
20324 case of multiple types in basic block SLP.
20325 (vect_mark_slp_stmts_relevant): New function.
20326 (vect_supported_load_permutation_p): Fix comment.
20327 (vect_analyze_slp_instance): Add argument. In case of basic block
20328 SLP, take vectorization factor from statement's type, check that
20329 unrolling factor is 1. Adjust function call. Save SLP instance in
20330 either loop or basic block vectorization structure. Return FALSE,
20331 if SLP failed.
20332 (vect_analyze_slp): Add argument. Get strided stores groups from
20333 either loop or basic block vectorization structure. Return FALSE
20334 if basic block SLP failed.
20335 (new_bb_vec_info): New function.
20336 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
20337 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
20338 (vect_schedule_slp): Add argument. Get SLP instances from either
20339 loop or basic block vectorization structure. Set vectorization factor
20340 to be 1 for basic block SLP.
20341 (vect_slp_transform_bb): New function.
20342 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
20343
0676c393
MM
203442009-05-23 Mark Mitchell <mark@codesourcery.com>
20345
20346 * final.c (shorten_branches): Do not align labels for jump tables.
20347 (final_scan_insn): Use JUMP_TABLE_DATA_P.
20348
94324dae
EB
203492009-05-23 Eric Botcazou <ebotcazou@adacore.com>
20350
20351 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
20352 Remove outdated reference to flow.c and fix nits.
20353 * doc/gccint.texi: Tweak RTL description.
20354 * doc/rtl.texi: Likewise.
20355
92bffc14
DC
203562009-05-23 Denis Chertykov <chertykov@gmail.com>
20357
20358 * config/avr/avr.c: Change my email address.
20359 * config/avr/avr.h: Likewise.
20360 * config/avr/avr.md: Likewise.
20361 * config/avr/avr-protos.h: Likewise.
20362 * config/avr/libgcc.S: Likewise.
20363
eec9405e
TS
203642009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
20365
20366 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
20367 (spu_split_load, spu_split_store): Change return type to int.
20368 (spu_split_convert): Declare.
20369 * config/spu/predicates.md (spu_mem_operand): Remove.
20370 (spu_mov_operand): Update.
20371 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
20372 * config/spu/spu.c (regno_aligned_for_load): Remove.
20373 (reg_aligned_for_addr, spu_expand_load): Define.
20374 (spu_expand_extv): Reimplement and handle MEM.
20375 (spu_expand_insv): Handle MEM.
20376 (spu_sched_reorder): Handle insn's with length 0.
20377 (spu_legitimate_address_p): Reimplement.
20378 (store_with_one_insn_p): Return TRUE for any mode with size
20379 larger than 16 bytes.
20380 (address_needs_split): Define.
20381 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
20382 operands.
20383 (spu_convert_move): Define.
782dc37a 20384 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
20385 (spu_split_store): Change all MEM's to TImode.
20386 (spu_init_expanders): Preallocate registers that correspond to
20387 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
20388 mark_reg_pointer.
20389 (spu_split_convert): Define.
20390 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
20391 (_move<mode>, _movdi, _movti): Update predicate and condition.
20392 (load, store): Change to define_split.
20393 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
20394 extend<mode>ti2.
20395 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
20396 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
20397 define_insn_and_split of lshr<mode>3.
20398 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
20399 (<v>ashr<mode>3_imm): Define.
20400 (extv, extzv, insv): Allow MEM operands.
20401 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
20402 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
20403 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
20404 (_spu_convert2): Change to define_insn_and_split and remove the
20405 corresponding define_peephole2.
20406 (stack_protect_set, stack_protect_test, stack_protect_test_si):
20407 Change predicates to memory_operand.
20408
7d31a807
MM
204092009-05-22 Mark Mitchell <mark@codesourcery.com>
20410
20411 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 20412
d021d274
MM
204132009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
20414
20415 PR tree-optimization/40219
20416 * tree.c (iterative_hash_expr): Make sure the builtin function is
20417 a normal builtin function and not a front end or back end builtin
20418 before indexing into the built_in_decls array.
20419
4d7a65ea
RG
204202009-05-22 Richard Guenther <rguenther@suse.de>
20421
20422 PR middle-end/38964
20423 * alias.c (write_dependence_p): Do not use TBAA for answering
20424 anti-dependence or output-dependence.
782dc37a 20425 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
20426 (emit_pointer_definition): Remove.
20427 (emit_alias_warning): Likewise.
20428 (find_what_var_points_to): Remove TBAA pruning code.
20429 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
20430 violations.
20431 (compute_points_to_sets): Remove code computing the set of
20432 dereferenced pointers.
20433 * tree-data-ref.c (dr_may_alias_p): Properly use the split
20434 oracle for querying anti and output dependencies.
20435 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
20436 if TBAA may be applied.
20437 (refs_anti_dependent_p): New function.
20438 (refs_output_dependent_p): Likewise.
20439 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
20440 (refs_output_dependent_p): Likewise.
20441 * doc/tree-ssa.texi (Memory model): New section.
20442 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
20443 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
20444 * cfgexpand.c (expand_gimple_basic_block): Do not handle
20445 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
20446 * expr.c (expand_expr_real_1): Likewise.
20447 * gimple-low.c (lower_stmt): Likewise.
20448 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
20449 (dump_gimple_cdt): Remove.
20450 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
20451 (gimple_size): Likewise.
20452 (walk_gimple_op): Likewise.
20453 (is_gimple_stmt): Likewise.
20454 (walk_stmt_load_store_addr_ops): Likewise.
20455 (gimple_build_cdt): Remove.
20456 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
20457 * gimple.h (gimple_cdt_new_type): Remove.
20458 (gimple_cdt_new_type_ptr): Likewise.
20459 (gimple_cdt_set_new_type): Likewise.
20460 (gimple_cdt_location): Likewise.
20461 (gimple_cdt_location_ptr): Likewise.
20462 (gimple_cdt_set_location): Likewise.
20463 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
20464 * tree-cfg.c (remove_useless_stmts_1): Do not handle
20465 GIMPLE_CHANGE_DYNAMIC_TYPE.
20466 (verify_types_in_gimple_stmt): Likewise.
20467 * tree-inline.c (estimate_num_insns): Likewise.
20468 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
20469 (copy_decl_to_var): Likewise.
20470 (copy_result_decl_to_var): Likewise.
20471 * tree-pretty-print.c (dump_generic_node): Do not handle
20472 CHANGE_DYNAMIC_TYPE_EXPR.
20473 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
20474 * tree-ssa-operands.c (get_expr_operands): Likewise.
20475 * tree-ssa-structalias.c (struct variable_info): Remove
20476 no_tbaa_pruning member.
20477 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
20478 (unify_nodes): Do not copy it.
20479 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
20480 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
20481 (set_uids_in_ptset): Do not check it.
20482 (find_what_var_points_to): Likewise.
20483 (compute_tbaa_pruning): Remove.
20484 (compute_points_to_sets): Do not call it.
20485 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
20486 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
20487 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
20488 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
20489 (DECL_NO_TBAA_P): Likewise.
20490 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
20491 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
20492 (expand_omp_atomic_pipeline): Do not set it.
20493 * print-tree.c (print_node): Do not dump it.
20494 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
20495 redundant check.
20496
83a6ac60
VM
204972009-05-22 Vladimir Makarov <vmakarov@redhat.com>
20498
20499 PR target/39856
20500 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
20501 for clobber.
20502
fe2978fb
MM
205032009-05-22 Mark Mitchell <mark@codesourcery.com>
20504
20505 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
20506 non-external.
20507
134ef638
BE
205082009-05-22 Ben Elliston <bje@au.ibm.com>
20509
20510 * Makefile.in (bversion.h, s-bversion): New targets.
20511 (TOPLEV_H): Add bversion.h.
20512 * toplev.h: Include "bversion.h".
20513 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
20514 the __format__ attribute only if compiling with the same version
20515 of GCC as the sources (the "build version").
20516
52fc669d
BE
205172009-05-22 Ben Elliston <bje@au.ibm.com>
20518
20519 * c-format.c (handle_format_attribute): Fix comment typo.
20520
583ca921
SE
205212009-05-21 Steve Ellcey <sje@cup.hp.com>
20522
20523 PR target/37846
20524 * config/ia64/ia64.opt (mfused-madd): New.
20525 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
20526 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
20527 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
20528 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
20529 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
20530 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
20531 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
f100a4a8 20532 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
583ca921
SE
20533 instruction if !TARGET_FUSED_MADD.
20534 (fpma, fpms): Remove colon from name.
20535
150e3929
RG
205362009-05-22 Richard Guenther <rguenther@suse.de>
20537
20538 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
20539 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
20540 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20541 TARGET_MEM_REF.
20542 (create_expression_by_pieces): Only convert if necessary.
20543 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
20544 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
20545
9a2b090c
AN
205462009-05-21 Adam Nemet <anemet@caviumnetworks.com>
20547
20548 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
20549 regular pattern from a template and rename it ...
20550 (*extzv_truncsi_exts): ... to this.
20551
33b92c9d
RG
205522009-05-21 Richard Guenther <rguenther@suse.de>
20553
20554 * cgraph.h (struct cgraph_node): Remove inline_decl member.
20555 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
20556 (cgraph_default_inline_p): Likewise.
20557 (cgraph_decide_inlining_incrementally): Likewise.
20558
cabf85c3
L
205592009-05-21 H.J. Lu <hongjiu.lu@intel.com>
20560 Uros Bizjak <ubizjak@gmail.com>
20561
20562 * config/i386/cpuid.h (bit_MOVBE): New.
20563
20564 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
20565
20566 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
20567 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
20568 (ix86_handle_option): Handle OPT_mmovbe.
20569 (ix86_target_string): Add -mmovbe.
20570 (pta_flags): Add PTA_MOVBE.
20571 (processor_alias_table): Add PTA_MOVBE to "atom".
20572 (override_options): Handle PTA_MOVBE.
20573
20574 * config/i386/i386.h (TARGET_MOVBE): New.
20575
20576 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
20577 (*bswapsi_movbe): New.
20578 (*bswapdi_movbe): Likewise.
20579 (bswapdi2): Renamed to ...
20580 (*bswapdi_1): This.
20581 (bswapdi2): New expander.
20582
20583 * config/i386/i386.opt (mmovbe): New.
20584
20585 * doc/invoke.texi: Document -mmovbe.
20586
9fefa0aa
TG
205872009-05-21 Taras Glek <tglek@mozilla.com>
20588
20589 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
20590 * gcc-plugin.h (plugin_init): Updated signature.
20591 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
20592 * doc/plugins.texi (plugin_init): Updated documention to reflect
20593 API change.
9fefa0aa
TG
20594 * doc/plugins.texi (plugin_name_args): Added to documention.
20595
1ea9fe56
MM
205962009-05-21 Mark Mitchell <mark@codesourcery.com>
20597
20598 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
20599 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
20600
52f84254
SZ
206012009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
20602
20603 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
20604 JUMP_TABLE_DATA_P predicates where applicable.
20605 * config/i386/predicates.md: Ditto.
20606 * config/i386/sse.md: Ditto.
20607
a952487c
JJ
206082009-05-21 Jakub Jelinek <jakub@redhat.com>
20609
93cac287
JJ
20610 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
20611 operand2 -128 override length_immediate attribute to 1.
20612 * config/i386/predicates.md (constm128_operand): New predicate.
20613
a952487c
JJ
20614 * config/i386/i386.c (memory_address_length): Handle %r12
20615 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
20616 also check REGNO.
20617 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
20618 mode look through optional ZERO_EXTEND and SUBREG.
20619 * config/i386/i386.md (R12_REG): New define_constant.
20620 (prefix_data16): For sse unit set also for MODE_TI insns.
20621 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
20622 insns set if operand 1 is ext_QIreg_operand.
20623 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
20624 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
20625 immediate.
20626 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
20627 mode from MODE_DI to MODE_SI.
20628 (movdi_1_rex64): Override modrm and length_immediate attributes
20629 only for movabs (TYPE_IMOV, alternative 2).
20630 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
20631 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
20632 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
20633 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
20634 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
20635 prefix_rex attribute if DImode.
20636 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
20637 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
20638 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
20639 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
20640 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
20641 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
20642 Likewise. For TYPE_IMOV clear length_immediate attribute.
20643 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
20644 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
20645 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
20646 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
20647 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
20648 or one operand TYPE_ISHIFT.
20649 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
20650 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
20651 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
20652 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
20653 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
20654 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
20655 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
20656 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
20657 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
20658 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
20659 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
20660 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
20661 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
20662 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
20663 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
20664 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
20665 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
20666 set mode attribute, don't override length attribute.
20667 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
20668 to 1.
20669 (return_internal_long): Set length attribute to 2 instead of 1.
20670 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
20671 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
20672 prefix_rex attribute.
782dc37a
UB
20673 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
20674 New predicates.
20675 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 20676
64af62c2
RR
206772009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20678
20679 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
20680
c166b898
ILT
206812009-05-20 Ian Lance Taylor <iant@google.com>
20682
20683 * tree.c (build_tree_list_vec_stat): New function.
20684 (ctor_to_vec): New function.
20685 (build_nt_call_vec): New function.
20686 (build_call_array): Change args to be a const pointer.
20687 (build_call_vec): New function.
20688 * tree.h (build_nt_call_vec): Declare.
20689 (build_tree_list_vec_stat): Declare.
20690 (build_tree_list_vec): Define.
20691 (build_call_array): Update declaration.
20692 (build_call_vec): Declare.
20693 (ctor_to_vec): Declare.
20694 * c-common.c (tree_vector_cache): New static variable.
20695 (make_tree_vector): New function.
20696 (release_tree_vector): New function.
20697 (make_tree_vector_single): New function.
20698 (make_tree_vector_copy): New function.
20699 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
20700 (make_tree_vector_single, make_tree_vector_copy): Declare.
20701 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
20702 (c_parser_expr_list): Don't manage cache here, instead call
20703 make_tree_vector.
20704 (c_parser_release_expr_list): Remove static function.
20705 (c_parser_vec_to_tree_list): Remove static function.
20706 (c_parser_attributes): Call build_tree_list_vec instead of
20707 c_parser_vec_to_tree_list. Call release_tree_vector instead of
20708 c_parser_release_expr_list.
20709 (c_parser_postfix_expression_after_primary): Likewise.
20710 (c_parser_objc_keywordexpr): Likewise.
20711
40449a90
SL
207122009-05-20 Sandra Loosemore <sandra@codesourcery.com>
20713
20714 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
20715 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
20716 TARGET_CONVERT_TO_TYPE.
20717 * hooks.c (hook_tree_const_tree_null): Define.
20718 * hooks.h (hook_tree_const_tree_null): Declare.
20719 * target.h (struct gcc_target): Add invalid_parameter_type,
20720 invalid_return_type, promoted_type, and convert_to_type fields.
bd62d832 20721 * target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define.
40449a90
SL
20722 (TARGET_INVALID_RETURN_TYPE): Define.
20723 (TARGET_PROMOTED_TYPE): Define.
20724 (TARGET_CONVERT_TO_TYPE): Define.
20725 (TARGET_INITIALIZER): Update for new fields.
20726 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
20727 (grokparms): Check targetm.invalid_parameter_type.
20728 * c-typeck.c (default_conversion): Check targetm.promoted_type.
20729 * c-convert.c (convert): Check targetm.convert_to_type.
20730
642d97ff
AN
207312009-05-20 Adam Nemet <anemet@caviumnetworks.com>
20732
20733 * config/mips/mips.md (*extenddi_truncate<mode>,
20734 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
20735 defintions.
20736 (*extendhi_truncateqi): New define_insn_and_sptit.
20737
776248b8
JJ
207382009-05-20 Jakub Jelinek <jakub@redhat.com>
20739
20740 PR middle-end/40204
20741 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 20742 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 20743
d98e8686
EB
207442009-05-20 Eric Botcazou <ebotcazou@adacore.com>
20745
20746 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
20747 the operand of VIEW_CONVERT_EXPR.
20748
37c50435
L
207492009-05-20 H.J. Lu <hongjiu.lu@intel.com>
20750
20751 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 20752 extended family and model for Intel processors. Support Intel Atom.
37c50435 20753
dbb6088f
OH
207542009-05-20 Olivier Hainque <hainque@adacore.com>
20755
20756 * gstab.h (stab_code_type): Define, to be used instead of the
20757 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
20758 notice.
20759 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
20760 occurrences by stab_code_type.
20761 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
20762
7ec49257
MJ
207632009-05-20 Martin Jambor <mjambor@suse.cz>
20764
20765 * tree-flow.h (insert_edge_copies_seq): Undeclare.
20766 (sra_insert_before): Likewise.
20767 (sra_insert_after): Likewise.
20768 (sra_init_cache): Likewise.
20769 (sra_type_can_be_decomposed_p): Likewise.
20770 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
20771 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
20772 (sra_insert_before): Likewise.
20773 (sra_insert_after): Likewise.
20774 (sra_init_cache): Likewise.
20775 (insert_edge_copies_seq): Made static and moved upwards.
20776
20777 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
20778 case.
20779
20780 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
20781
20782 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
20783 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
20784 simple copies.
20785
0328ae4d
RG
207862009-05-20 Richard Guenther <rguenther@suse.de>
20787
20788 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
20789 with mismatched comparison modes.
20790
a7994a57 207912009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 20792
a7994a57 20793 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
20794 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
20795 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
20796 with shifts for Thumb2.
20797 (orsi_notsi): New for orn.
20798 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
20799 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
20800 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
20801 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
20802 Don't invert remainder for IOR.
f100a4a8 20803
e36dc339
ZD
208042009-05-19 Zdenek Dvorak <ook@ucw.cz>
20805
20806 PR tree-optimization/40087
20807 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
20808 number_of_iterations_ne): Rename never_infinite argument.
20809 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
20810 number_of_iterations_le): Handle pointer-type ivs when
20811 exit_must_be_taken is false.
20812 (number_of_iterations_cond): Do not always assume that
20813 exit_must_be_taken if the control variable is a pointer.
20814
5cfd5d9b
AP
208152009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
20816
20817 * c-typeck.c (build_binary_op): Allow % on integal vectors.
20818 * doc/extend.texi (Vector Extension): Document that % is allowed too.
20819
2f1c7156
L
208202009-05-19 H.J. Lu <hongjiu.lu@intel.com>
20821
20822 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
20823 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
20824
7bb27074
MLI
208252009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
20826
20827 PR c/40172
20828 * c.opt (Wlogical-op): Disabled by default.
20829 * c-opt (c_common_post_options): Do not enable Wlogical-op with
20830 Wextra.
20831 * doc/invoke.texi (Wlogical-op): Likewise.
f100a4a8 20832
5aefc6a0
EB
208332009-05-19 Eric Botcazou <ebotcazou@adacore.com>
20834
20835 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
20836 into CASE_CONVERT.
20837 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
20838 Propagate the type of the first operand.
20839 <ASSERT_EXPR>: Simplify.
20840 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
20841 Rewrite using the RHS code as discriminant.
20842 <NOP_EXPR>: Turn into CASE_CONVERT.
20843 <PLUS_EXPR>: Propagate the type of the first operand.
20844
f3a83111
SE
208452009-05-19 Steve Ellcey <sje@cup.hp.com>
20846
20847 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
20848 (ia64_dconst_0_375): New.
20849 * config/ia64/ia64.c (ia64_override_options): Remove
20850 -minline-sqrt-min-latency warning.
20851 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
20852 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
20853 * config/ia64/ia64.md (*sqrt_approx): Remove.
20854 (sqrtsf2): Remove #if 0.
20855 (sqrtsf2_internal_thr): Rewrite and move to div.md.
20856 (sqrtdf): Remove assert.
20857 (sqrtdf2_internal_thr): Rewrite and move to div.md.
20858 (sqrtxf2): Remove #if 0.
20859 (sqrtxf2_internal_thr): Rewrite and move to div.md.
20860 * div.md (sqrt_approx_rf): New.
20861 (sqrtsf2_internal_thr): New implementation.
20862 (sqrtsf2_internal_lat): New.
20863 (sqrtdf2_internal_thr: New implementation.
20864 (sqrtxf2_internal): New implementation.
20865
1ffc7157
FXC
208662009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
20867 Hans-Peter Nilsson <hp@axis.com>
20868
20869 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
20870 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
20871 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
20872 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
20873 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
20874 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
20875 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
20876 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
20877 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
20878 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
20879 * c-common.c: ...from here.
20880
db91d9ef
MLI
208812009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
20882
f3afc8a7 20883 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 20884
bbb9d91f
KG
208852009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20886
20887 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
20888
ce883f54
BE
208892009-05-19 Ben Elliston <bje@au.ibm.com>
20890
20891 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
20892 assignments with memcpy calls.
20893 (add_fdes): Likewise.
20894 (binary_search_unencoded_fdes): Likewise.
20895 (linear_search_fdes): Eliminate type puns.
f100a4a8 20896
377f099a
RG
208972009-05-19 Richard Guenther <rguenther@suse.de>
20898
20899 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
20900 not falsely claim to have propagated into all uses.
20901
848bc769
BE
209022009-05-19 Ben Elliston <bje@au.ibm.com>
20903
20904 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
20905 version to v3.0.
20906
1bb99877
KK
209072009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
20908
20909 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
20910 * config/sh/sh.c (sh_legitimate_address_p): Make static.
20911 (TARGET_LEGITIMATE_ADDRESS_P): New.
20912 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
20913 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
f100a4a8 20914
82725547
DS
209152009-05-18 Dodji Seketeli <dodji@redhat.com>
20916
20917 PR debug/40109
20918 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
20919 child of the containing namespace's DIE.
20920
f6a1e430
AN
209212009-05-18 Adam Nemet <anemet@caviumnetworks.com>
20922
20923 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
20924 *zero_extendhi_truncqi): Move after the zero_extend patterns.
20925 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
20926 extend patterns.
20927
6a90d232
L
209282009-05-18 H.J. Lu <hongjiu.lu@intel.com>
20929
20930 PR target/39942
20931 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
20932 gen_align with gen_pad.
20933 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
20934 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
20935
20936 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
20937 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
20938
20939 * config/i386/i386.md (align): Renamed to ...
20940 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
20941 ASM_OUTPUT_MAX_SKIP_PAD.
20942
c4406f74
AS
209432009-05-18 Andreas Schwab <schwab@linux-m68k.org>
20944
06555043
AS
20945 * config.gcc: Fix variable syntax.
20946
c4406f74
AS
20947 PR target/39531
20948 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
20949 before calling exact_log2.
20950 (output_iorsi3): Likewise.
20951 (output_xorsi3): Likewise.
20952
99052692
KK
209532009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
20954
20955 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
20956 for the none zero constant operand except for EQ and NE
20957 comprisons even when the first operand is R0.
20958
f4aa3848
AK
209592009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
20960
20961 * config/s390/2064.md: Remove trailing whitespaces.
20962 * config/s390/2084.md: Likewise.
20963 * config/s390/constraints.md: Likewise.
20964 * config/s390/fixdfdi.h: Likewise.
20965 * config/s390/libgcc-glibc.ver: Likewise.
20966 * config/s390/s390-modes.def: Likewise.
20967 * config/s390/s390-protos.h: Likewise.
20968 * config/s390/s390.c: Likewise.
20969 * config/s390/s390.h: Likewise.
20970 * config/s390/s390.md: Likewise.
20971 * config/s390/tpf-unwind.h: Likewise.
20972
ab7256e4
MK
209732009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
20974
20975 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
20976
75df395f
MK
209772009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
20978
20979 M68K TLS support.
20980 * configure.ac (m68k-*-*): Check if binutils support TLS.
20981 * configure: Regenerate.
20982 * config/m68k/predicates.md (symbolic_operand): Extend comment.
20983 * config/m68k/constraints.md (Cu): New constraint.
20984 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
20985 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
20986 (movsi): Handle TLS symbols.
20987 (addsi3_5200): Handle XTLS symbols, indent.
20988 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
20989 (m68k_tls_reference_p): Declare.
20990 (m68k_legitimize_address): Declare.
20991 (m68k_unwrap_symbol): Declare.
20992 * config/m68k/m68k.opt (mxtls): New option.
20993 * config/m68k/m68k.c (ggc.h): Include.
20994 (m68k_output_dwarf_dtprel): Implement hook.
20995 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
20996 (m68k_expand_prologue): Load GOT pointer when function needs it.
20997 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
20998 (m68k_legitimate_constant_address_p): Same.
20999 (m68k_decompose_address): Handle TLS references.
21000 (m68k_get_gp): New static function.
21001 (enum m68k_reloc): New contants.
21002 (TLS_RELOC_P): New macro.
21003 (m68k_wrap_symbol): New static function.
21004 (m68k_unwrap_symbol): New function.
21005 (m68k_final_prescan_insn_1): New static function.
21006 (m68k_final_prescan_insn): New function.
21007 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
21008 functions.
21009 (legitimize_pic_address): Handle TLS references..
21010 (m68k_tls_get_addr, m68k_get_tls_get_addr)
21011 (m68k_libcall_value_in_a0_p)
21012 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
21013 (m68k_call_m68k_read_tp): Helper variables and functions for ...
21014 (m68k_legitimize_tls_address): Handle TLS references.
21015 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
21016 New functions.
21017 (m68k_legitimize_address): Handle TLS symbols.
21018 (m68k_get_reloc_decoration): New static function.
21019 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
21020 UNSPEC_RELOC32.
21021 (m68k_output_dwarf_dtprel): Implement hook.
21022 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
21023 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
21024 m68k_call_* routines.
21025 (sched_attr_op_type): Handle TLS symbols.
21026 (gt-m68k.h): Include.
21027 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
21028 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
21029
8b75fc9b
MJ
210302009-05-18 Martin Jambor <mjambor@suse.cz>
21031
21032 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
21033 (visit_store_addr_for_mod_analysis): New function.
21034 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
21035 (determine_cst_member_ptr): Use gimple_assign_single_p.
21036 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
21037 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
21038 operands. Don't check number of operands of a NOP_EXPR.
21039
f133d4a2
EF
210402009-05-18 Eric Fisher <joefoxreal@gmail.com>
21041
21042 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
21043
ae8af500
L
210442009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
21045
21046 PR c/40172
21047 * c-common.c (warn_logical_operator): Don't warn if one of
21048 expression isn't always true or false.
21049
25e8fde8
KT
210502009-05-17 Kai Tietz <kai.tietz@onevision.com>
21051
ae8af500
L
21052 * config/i386/biarch32.h: New file.
21053 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 21054
ef67af22
AN
210552009-05-17 Adam Nemet <anemet@caviumnetworks.com>
21056
21057 * config/mips/mips.md (*zero_extend<mode>_trunchi,
21058 *zero_extend<mode>_truncqi): Merge these into ...
21059 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
21060 Name the pattern following this as *zero_extendhi_truncqi.
21061
e2d87023
BL
210622009-05-16 Brad Lucier <lucier@math.purdue.edu>
21063
21064 PR middle-end/39301
21065 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
21066 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
21067 (output_info): Make field HOST_WIDEST_INT.
21068 (print_statistics): Use HOST_WIDEST_INT_PRINT.
21069 (dump_bitmat_statistics): Same.
21070
428ddbf0
FXC
210712009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
21072
21073 * config.gcc (use_gcc_stdint): Set to wrap.
21074 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
21075 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
21076 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21077 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
21078 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
21079 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
21080 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21081 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
21082
1ab8a8c2
JM
210832009-05-16 Joseph Myers <joseph@codesourcery.com>
21084
21085 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
21086 tune_64.
21087 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
21088 Move definitions earlier.
21089 (OPT_ARCH64, OPT_ARCH32): Define.
21090 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
21091 and tune_64.
21092
70544f44
RE
210932009-05-16 Richard Earnshaw <rearnsha@arm.com>
21094
21095 PR target/40153
21096 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
21097 implies.
21098
6241ded1
RE
210992009-05-16 Richard Earnshaw <rearnsha@arm.com>
21100
21101 * arm.md (movdi2): Copy non-reg values to DImode registers.
21102
a99c6711
JJ
211032009-05-16 Jakub Jelinek <jakub@redhat.com>
21104
40a8f07a
JJ
21105 PR target/39942
21106 * final.c (label_to_max_skip): New function.
21107 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
21108 CODE_LABEL_NUMBER <= max_labelno.
21109 * output.h (label_to_max_skip): New prototype.
21110 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
21111 (ix86_avoid_jump_mispredicts): ... this. Don't define if
21112 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
21113 Handle CODE_LABELs with >= 16 byte alignment or with
21114 max_skip == (1 << align) - 1.
21115 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
21116 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
21117
a99c6711
JJ
21118 PR target/39942
21119 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
21120 .p2align 3 if MAX_SKIP is smaller than 7.
21121 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
21122
7e5487a2
ILT
211232009-05-15 Ian Lance Taylor <iant@google.com>
21124
21125 * alias.c (struct alias_set_entry_d): Rename from struct
21126 alias_set_entry. Change all uses.
21127 * except.c (struct call_site_record_d): Rename from struct
21128 call_site_record. Change all uses.
21129 * except.h (struct eh_region_d): Rename from struct eh_region.
21130 Change all uses.
21131 * gcse.c (struct hash_table_d): Rename from struct hash_table.
21132 Change all uses.
21133 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
21134 ivtype_map_elt. Change all uses.
21135 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
21136 Change all uses.
21137 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
21138 * graphite.h (struct name_tree_d): Rename from struct name_tree.
21139 Change all uses.
21140 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
21141 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
21142 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
21143 * optabs.h (struct optab_d): Rename from struct optab. Change all
21144 uses.
21145 (struct convert_optab_d): Rename from struct convert_optab.
21146 Change all uses.
21147 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
21148 ipa_opt_pass. Change all uses.
21149 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
21150 all uses.
21151
21152 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
21153 defined as a typedef.
21154 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
21155 defined as a tag.
21156
a243fb4a
MLI
211572009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
21158
21159 PR 16302
21160 * fold-const.c (make_range,build_range_check,merge_ranges): Move
21161 declaration to...
f100a4a8 21162 (merge_ranges): Returns bool.
a243fb4a
MLI
21163 * tree.h (make_range): .. to here.
21164 (build_range_check): Likewise.
21165 (merge_ranges): Likewise. Renamed from merge_ranges.
21166 * c-typeck.c (parser_build_binary_op): Update calls to
21167 warn_logical_operator.
21168 * c-common.c (warn_logical_operator): Add new warning.
21169 * c-common.h (warn_logical_operator): Update declaration.
f100a4a8 21170
1b53c5f3
MLI
211712009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
21172
782dc37a 21173 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
f100a4a8 21174
c128599a
KG
211752009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21176
f9bab007
KG
21177 * doc/install.texi: Document MPC requirements, flags etc.
21178
c128599a
KG
21179 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
21180 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
21181 Evaluate constant arguments.
21182 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
21183 (fold_builtin_1): Likewise, also evaluate constant arguments.
21184 Remove superfluous break.
21185 (do_mpc_ckconv): New.
21186 * real.h: Include mpc.h.
21187 * toplev.c (print_version): Output MPC version info if available.
21188
d33e4b70
SL
211892009-05-15 Sandra Loosemore <sandra@codesourcery.com>
21190
782dc37a 21191 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 21192
a02ab464
L
211932009-05-15 H.J. Lu <hongjiu.lu@intel.com>
21194
21195 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
21196 only once.
21197
796bda22
JH
211982009-05-15 Jan Hubicka <jh@suse.cz>
21199
21200 * doc/invoke.texi (max-early-inliner-iterations): New flag.
21201 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
21202 (try_inline): Fix return value.
21203 (cgraph_decide_inlining_incrementally): Honor new value.
21204 (cgraph_early_inlining): Handle indirect inlining.
21205 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
21206
d88e5c37
JH
212072009-05-15 Jan Hubicka <jh@suse.cz>
21208
21209 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
21210 * cgraphunit.c (cgraph_finalize_function): Set it.
21211 (cgraph_expand_function): Use it.
21212
ae63687c
SL
212132009-05-15 Sandra Loosemore <sandra@codesourcery.com>
21214
21215 * real.c (encode_ieee_half): Define.
21216 (decode_ieee_half): Define.
21217 (ieee_half_format): Define.
21218 (arm_half_format): Define.
21219 * real.h (ieee_half_format): Declare.
21220 (arm_half_format): Declare.
21221
1bd74ad9
SL
212222009-05-15 Sandra Loosemore <sandra@codesourcery.com>
21223
21224 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
21225 swapped, and reversed optabs exist before trying to use them.
21226
dc34db56
PB
212272009-05-15 Paul Brook <paul@codesourcery.com>
21228 Sandra Loosemore <sandra@codesourcery.com>
21229
dc34db56
PB
21230 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
21231 loads. Allow PRE_DEC.
21232 (output_move_neon): Handle PRE_DEC.
21233 (arm_print_operand): Add 'A' for neon structure loads.
21234 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
21235 * config/arm/neon.md (neon_mov): Update comment.
21236 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
21237 calls.
21238 (Um): New constraint.
21239
1d405d7b
JH
212402009-05-15 Jan Hubicka <jh@suse.cz>
21241
21242 Revert the following patch until testsuite fallout is fixed:
21243 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
21244 * cgraph.h (struct inline_summary): New filed self_wize,
21245 size_inlining_benefit, self_time and time_inlining_benefit.
21246 (struct cgraph_global_info): Replace insns by time ans size fields.
21247 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
21248 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
21249 (ipcp_update_callgraph): Do not touch function bodies.
21250 * ipa-inline.c: Include except.h
782dc37a 21251 (MAX_TIME): New constant.
1d405d7b
JH
21252 (overall_insns): Remove
21253 (overall_size, max_benefit): New static variables.
21254 (cgraph_estimate_time_after_inlining): New function.
21255 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
21256 (cgraph_clone_inlined_nodes): Update size.
21257 (cgraph_mark_inline_edge): Update size.
21258 (cgraph_estimate_growth): Use size info.
21259 (cgraph_check_inline_limits): Check size.
21260 (cgraph_default_inline_p): Likewise.
21261 (cgraph_edge_badness): Compute badness based on benefit and size cost.
21262 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
21263 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
21264 and times.
1d405d7b 21265 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
21266 (cgraph_decide_inlining_incrementally): Likewise; honor
21267 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
21268 (likely_eliminated_by_inlining_p): New predicate.
21269 (estimate_function_body_sizes): New function.
21270 (compute_inline_parameters): Use it.
21271 * except.c (must_not_throw_labels): New function.
21272 * except.h (must_not_throw_labels): Declare.
21273 * tree-inline.c (init_inline_once): Kill inlining_weigths
21274 * tree-ssa-structalias.c: Avoid uninitialized warning.
21275 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
21276 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
21277 (PARAM_INLINE_CALL_COST): Remove.
21278 (PARAM_EARLY_INLINING_INSNS): New.
21279
7ffa47ca
RG
212802009-05-15 Richard Guenther <rguenther@suse.de>
21281
21282 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
21283 not TODO_update_ssa.
21284
828552ed
RG
212852009-05-15 Richard Guenther <rguenther@suse.de>
21286
21287 PR tree-optimization/39999
21288 * gimple.h (gimple_expr_type): Use the expression type looking
21289 through useless conversions.
21290 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
21291 (vn_nary_op_insert_stmt): Likewise.
21292 (simplify_binary_expression): Likewise.
21293
248fc9f3
RG
212942009-05-15 Richard Guenther <rguenther@suse.de>
21295
21296 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
21297 New options, enabled by default.
21298 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
21299 Document.
21300 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
21301 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
21302 * tree-ssa-structalias.c (gate_tree_pta): New function.
21303 (pass_build_alias): Use it.
21304
16b29cc4
JM
213052009-05-15 Joseph Myers <joseph@codesourcery.com>
21306
21307 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
21308 recurse on an invariant address if a conversion from a pointer
21309 type to a wider integer type is involved.
21310
125cae84
JH
213112009-05-15 Jan Hubicka <jh@suse.cz>
21312
21313 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
21314 * cgraph.h (struct inline_summary): New filed self_wize,
21315 size_inlining_benefit, self_time and time_inlining_benefit.
21316 (struct cgraph_global_info): Replace insns by time ans size fields.
21317 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
21318 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
21319 (ipcp_update_callgraph): Do not touch function bodies.
21320 * ipa-inline.c: Include except.h
782dc37a 21321 (MAX_TIME): New constant.
125cae84
JH
21322 (overall_insns): Remove
21323 (overall_size, max_benefit): New static variables.
21324 (cgraph_estimate_time_after_inlining): New function.
21325 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
21326 (cgraph_clone_inlined_nodes): Update size.
21327 (cgraph_mark_inline_edge): Update size.
21328 (cgraph_estimate_growth): Use size info.
21329 (cgraph_check_inline_limits): Check size.
21330 (cgraph_default_inline_p): Likewise.
21331 (cgraph_edge_badness): Compute badness based on benefit and size cost.
21332 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
21333 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
21334 and times.
125cae84 21335 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
21336 (cgraph_decide_inlining_incrementally): Likewise; honor
21337 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
21338 (likely_eliminated_by_inlining_p): New predicate.
21339 (estimate_function_body_sizes): New function.
21340 (compute_inline_parameters): Use it.
21341 * except.c (must_not_throw_labels): New function.
21342 * except.h (must_not_throw_labels): Declare.
21343 * tree-inline.c (init_inline_once): Kill inlining_weigths
21344 * tree-ssa-structalias.c: Avoid uninitialized warning.
21345 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
21346 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
21347 (PARAM_INLINE_CALL_COST): Remove.
21348 (PARAM_EARLY_INLINING_INSNS): New.
21349 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
21350 (inline-call-cost): Remove.
21351 (early-inlining-insns): New.
21352
84fb43a1
EB
213532009-05-15 Eric Botcazou <ebotcazou@adacore.com>
21354
21355 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
21356 for bounds.
21357 (print_int_cst_bounds_in_octal_p): Likewise.
21358 (dbxout_type): Adjust calls to above functions. Be prepared to deal
21359 with subtypes.
21360 * dwarf2out.c (base_type_die): Likewise.
21361 (is_subrange_type): Delete.
21362 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
21363 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
21364 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
21365 if the destination type is boolean.
84fb43a1
EB
21366 (build_range_check): Do not special-case subtypes.
21367 (fold_sign_changed_comparison): Likewise.
21368 (fold_unary): Likewise.
21369 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
21370 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
21371 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
21372 * tree.c (subrange_type_for_debug_p): New predicate based on the
21373 former is_subrange_type.
84fb43a1
EB
21374 * tree.h (subrange_type_for_debug_p): Declare.
21375 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
21376 (convert_affine_scev): Remove call to above function.
21377 (chrec_convert_aggressive): Likewise.
21378 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
21379 false for conversions involving subtypes.
21380 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
21381 (vrp_val_min): Likewise.
21382 (needs_overflow_infinity): Likewise.
21383 (extract_range_from_unary_expr): Likewise.
21384
331d9186
PB
213852009-05-15 Paolo Bonzini <bonzini@gnu.org>
21386
e9351712
L
21387 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
21388 * config/frv/frv.c: Likewise.
21389 * config/s390/s390.c: Likewise.
21390 * config/sparc/sparc.h: Likewise.
21391 * config/i386/i386.h: Likewise.
21392 * config/i386/i386.c: Likewise.
21393 * config/crx/crx.c: Likewise.
21394 * config/m68hc11/m68hc11.h: Likewise.
21395 * config/iq2000/iq2000.c: Likewise.
21396 * config/mn10300/mn10300.h: Likewise.
21397 * config/mn10300/mn10300.c: Likewise.
21398 * config/m68k/m68k.c: Likewise.
21399 * config/rs6000/rs6000.c: Likewise.
21400 * config/rs6000/xcoff.h: Likewise.
21401 * config/rs6000/linux64.h: Likewise.
21402 * config/rs6000/sysv4.h: Likewise.
21403 * config/score/score3.c: Likewise.
21404 * config/score/score7.c: Likewise.
21405 * config/score/score.c: Likewise.
21406 * config/arm/arm.md: Likewise.
21407 * config/mips/mips.c: Likewise.
21408 * config/mips/mips.md: Likewise.
21409 * config/bfin/bfin.h: Likewise.
21410 * config/pa/pa.c: Likewise.
21411 * config/pa/constraints.md: Likewise.
21412
21413 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
21414 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
21415 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 21416
09639a83
ILT
214172009-05-14 Ian Lance Taylor <iant@google.com>
21418
21419 * passes.c (finish_optimization_passes): Change i to int.
21420 * plugin.c (plugins_active_p): Change event to int.
21421 (dump_active_plugins): Likewise.
21422 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
21423 Add cast.
21424 * tree.c (tree_range_check_failed): Change c to unsigned int.
21425 (omp_clause_range_check_failed): Likewise.
21426 (build_common_builtin_nodes): Change mode to int. Add cast.
21427 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
21428 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
21429
21430 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
21431 ++ or -- with a variable of enum type.
21432
c04a56bf
SB
214332009-05-14 Steven Bosscher <steven@gcc.gnu.org>
21434
21435 PR driver/40144
21436 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
21437
237ee620
SB
214382009-05-14 Steven Bosscher <steven@gcc.gnu.org>
21439
21440 * store-motion.c: Do not include params.h
21441 * Makefile.in: Fix dependencies for various files.
21442
1154c4fa
SB
214432009-05-14 Steven Bosscher <steven@gcc.gnu.org>
21444
21445 * auto-inc-dec.c: Fix pass description, remove apparent
21446 accidental duplication.
21447
61c27353
L
214482009-05-14 H.J. Lu <hongjiu.lu@intel.com>
21449
21450 PR middle-end/40147
21451 * ipa-utils.h (memory_identifier_string): Moved to ...
21452 * tree.h (memory_identifier_string): Here. Add GTY(()).
21453
c6c3dba9
PB
214542009-05-14 Paolo Bonzini <bonzini@gnu.org>
21455
21456 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
21457 in the former documentation of...
21458 (GO_IF_LEGITIMATE_ADDRESS): ... this.
21459 * ira-conflicts.c (get_dup_num): Use address_operand.
21460 * targhooks.c (default_legitimate_address_p): New.
21461 * targhooks.h (default_legitimate_address_p): New.
21462 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
21463 Call hook.
21464 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
21465 * target.h (struct target): Add legitimate_address_p.
21466 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
21467 (TARGET_INITIALIZER): Include it.
21468
21469 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21470 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
21471 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
21472 (TARGET_LEGITIMATE_ADDRESS_P): New.
21473
21474 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21475 (REG_OK_STRICT_P): Delete.
21476 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
21477 (frv_legitimate_address_p_1): ... this.
21478 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
21479 (frv_legitimate_address_p_1): ... the renamed old
21480 frv_legitimate_address_p.
21481 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
21482 (TARGET_LEGITIMATE_ADDRESS_P): New.
21483
21484 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21485 * config/s390/s390-protos.h (legitimate_address_p): Remove.
21486 * config/s390/s390.c (legitimate_address_p): Rename to...
21487 (s390_legitimate_address_p): ... this, make static.
21488 (legitimize_address): Adjust call.
21489 (TARGET_LEGITIMATE_ADDRESS_P): New.
21490 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
21491
21492 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21493 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
21494 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
21495 (TARGET_LEGITIMATE_ADDRESS_P): New.
21496
21497 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21498 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
21499 * config/spu/spu.c (spu_legitimate_address): Rename to...
21500 (spu_legitimate_address_p): ... this, make static.
21501 (TARGET_LEGITIMATE_ADDRESS_P): New.
21502
21503 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21504 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
21505 * config/sparc/sparc.c (legitimate_address_p): Rename to...
21506 (sparc_legitimate_address_p): ... this, make static and return bool.
21507 (legitimize_address): Adjust call.
21508 (TARGET_LEGITIMATE_ADDRESS_P): New.
21509
21510 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21511 * config/i386/i386-protos.h (legitimate_address_p): Remove.
21512 * config/i386/i386.c (legitimate_address_p): Rename to...
21513 (ix86_legitimate_address_p): ... this, make static.
21514 (constant_address_p): Move after it, adjust call.
21515 (TARGET_LEGITIMATE_ADDRESS_P): New.
21516
21517 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21518 * config/avr/avr-protos.h (legitimate_address_p): Remove.
21519 * config/avr/avr.c (legitimate_address_p): Rename to...
21520 (avr_legitimate_address_p): ... this, make static.
21521 (legitimize_address): Adjust call.
21522 (TARGET_LEGITIMATE_ADDRESS_P): New.
21523
21524 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21525 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
21526 * config/crx/crx.c (crx_legitimate_address_p): Make static.
21527 (TARGET_LEGITIMATE_ADDRESS_P): New.
21528
21529 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21530 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
21531 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
21532 (TARGET_LEGITIMATE_ADDRESS_P): New.
21533
21534 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21535 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
21536 Remove.
21537 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
21538 Make static.
21539 (TARGET_LEGITIMATE_ADDRESS_P): New.
21540
21541 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21542 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
21543 Remove.
21544 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
21545 Rename to...
21546 (m68hc11_legitimate_address_p): ... this, make static.
21547 (go_if_legitimate_address_internal): Rename to...
21548 (m68hc11_legitimate_address_p_1): ... this.
21549 (legitimize_address): Adjust call.
21550 (TARGET_LEGITIMATE_ADDRESS_P): New.
21551
21552 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
21553 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
21554 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
21555 (TARGET_LEGITIMATE_ADDRESS_P): New.
21556
21557 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21558 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
21559 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
21560 (mn10300_legitimate_address_p): ... this, make static.
21561 (TARGET_LEGITIMATE_ADDRESS_P): New.
21562
21563 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21564 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
21565 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
21566 (TARGET_LEGITIMATE_ADDRESS_P): New.
21567
21568 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21569 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
21570 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
21571 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21572 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
21573 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
21574 (rs6000_legitimate_address_p): ... this, make static.
21575 (TARGET_LEGITIMATE_ADDRESS_P): New.
21576 (REG_MODE_OK_FOR_BASE_P): Delete.
21577 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
21578
21579 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21580 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
21581 Delete.
21582 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
21583 static, adjust types.
21584 (TARGET_LEGITIMATE_ADDRESS_P): New.
21585
21586 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21587 * config/score/score.c (score_address_p): Rename to...
21588 (score_legitimate_address_p): ... this.
21589 (TARGET_LEGITIMATE_ADDRESS_P): New.
21590 * config/score/score3.c (score3_address_p): Rename to...
21591 (score3_legitimate_address_p): ... this.
21592 * config/score/score7.c (score7_address_p): Rename to...
21593 (score7_legitimate_address_p): ... this.
21594
21595 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
21596 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
21597 GO_IF_LEGITIMATE_ADDRESS): Delete.
21598 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
21599 thumb2_legitimate_address_p): Delete.
21600 (arm_legitimate_address_p): Rename to...
21601 (arm_legitimate_address_outer_p): ... this.
21602 * config/arm/constraints.md ("Uq"): Adjust call.
21603 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
21604 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
21605 to...
c6c3dba9 21606 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
21607 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
21608 static.
c6c3dba9
PB
21609 (TARGET_LEGITIMATE_ADDRESS_P): New.
21610
21611 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21612 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
21613 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
21614 (TARGET_LEGITIMATE_ADDRESS_P): New.
21615
21616 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21617 * config/vax/vax-protos.h (legitimate_address_p): Remove.
21618 * config/vax/vax.c (legitimate_address_p): Rename to...
21619 (vax_legitimate_address_p): ... this, make static.
21620 (TARGET_LEGITIMATE_ADDRESS_P): New.
21621
21622 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21623 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
21624 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
21625 (TARGET_LEGITIMATE_ADDRESS_P): New.
21626
21627 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21628 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
21629 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
21630 (mmix_legitimate_address_p): ... this, make static.
21631 (TARGET_LEGITIMATE_ADDRESS_P): New.
21632
21633 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21634 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
21635 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
21636 (TARGET_LEGITIMATE_ADDRESS_P): New.
21637
3bd0d9c8
PB
216382009-05-14 Paolo Bonzini <bonzini@gnu.org>
21639
21640 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
21641 of MODE_COMPLEX_INT.
21642
fe049033
RO
216432009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
21644
21645 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
21646 LCT_NORMAL in function call.
21647 * mips-tdump.c (print_file_desc): Add cast to enum type.
21648 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
21649 (mark_stabs): Add casts to enum types.
21650 (parse_stabs_common): Add casts to enum types.
16f7ad42 21651
b0907a6c
AN
216522009-05-13 Adam Nemet <anemet@caviumnetworks.com>
21653
21654 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
21655 Check for invalid values of LETTER.
21656
d1c8e08a
TG
216572009-05-13 Taras Glek <tglek@mozilla.com>
21658
f3afc8a7
UB
21659 * attribs.c (register_attribute): moved out attribute registration
21660 into register_attribute.
21661 * doc/plugins.texi: Documented register_attribute and
21662 PLUGIN_ATTRIBUTES.
16f7ad42
TG
21663 * gcc-plugin.h: Added forward decl for register_attribute.
21664 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
21665 * plugin.c (register_callback, invoke_plugin_callbacks): Added
21666 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 21667
4ed7f970
DK
216682009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
21669
21670 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
21671 values even in sentinel and empty entries.
21672 (ms_printf_flag_specs): Likewise.
21673 (ms_scanf_flag_specs): Likewise.
21674 (ms_strftime_flag_specs): Likewise.
21675 (ms_print_char_table): Likewise.
21676 (ms_scan_char_table): Likewise.
21677 (ms_time_char_table): Likewise.
21678
3d8fa148
DK
216792009-05-13 Doug Kwan <dougkwan@google.com>
21680
21681 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
21682
f06257d3
AN
216832009-05-13 Adam Nemet <anemet@caviumnetworks.com>
21684
21685 * config/mips/mips.md (store): Add attributes for QI and HI.
21686 Update comment.
21687 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
21688 (truncdi<mode>2): ... this new pattern.
21689
fb201767
BH
216902009-05-13 Brad Hards <bradh@kde.org>
21691
21692 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
21693
c7bda60e 216942009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
21695 Ben Elliston <bje@au.ibm.com>
21696
21697 PR middle-end/40035
21698 * dse.c (check_mem_read_rtx): Guard against width == -1.
21699
ce985b43
MM
217002009-05-13 Michael Matz <matz@suse.de>
21701
21702 PR middle-end/39976
21703 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
21704 (trivially_conflicts_p): New function.
21705 (insert_backedge_copies): Use it.
21706
7de1d221
JJ
217072009-05-13 Janis Johnson <janis187@us.ibm.com>
21708
21709 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
21710 (handle_stdc_pragma): Use new enum constant names.
21711 (handle_pragma_float_const_decimal64): Ditto.
21712
bfefafc6
ILT
217132009-05-13 Ian Lance Taylor <iant@google.com>
21714
21715 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
21716 tree.def.
21717
286c4fcb
NS
217182009-05-13 Nathan Sidwell <nathan@codesourcery.com>
21719
21720 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
21721 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
21722 multilibs.
21723 * config/m68k/m68k.h (FL_UCLINUX): Define.
21724
ebaa6ea7
JH
217252009-05-13 Jan Hubicka <jh@suse.cz>
21726
21727 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
21728
2b703e1a
KK
217292009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
21730
21731 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
21732 unless -fschedule-insns is specified.
21733
c3537723
KK
217342009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
21735
21736 PR target/39561
21737 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
21738 TARGET_EXPAND_CBRANCHDI4.
21739 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
21740 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
21741 (cmpeqdi): Fix comment.
21742
cdeed45a
KK
217432009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
21744
21745 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
21746 (sh_legitimate_address_p): Likewise.
21747 * config/sh/sh.c (sh_legitimate_index_p): New.
21748 (sh_legitimate_address_p): Likewise.
21749 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
21750 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
21751 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
21752 (MAYBE_BASE_REGISTER_RTX_P): New macro.
21753 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
21754 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
21755 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
21756 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
21757 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
21758
02f0b13a
JH
217592009-05-12 Jan Hubicka <jh@suse.cz>
21760
21761 * tree-inline.c (estimate_operator_cost): Add operands;
21762 when division happens by constant, it is cheap.
21763 (estimate_num_insns): Loads and stores are not having cost of 0;
21764 EH magic stuff is cheap; when computing runtime cost of switch,
21765 use log2 base of amount of its cases; builtin_expect has cost of 0;
21766 compute cost for moving return value of call.
21767 (init_inline_once): Initialize time_based flags.
21768 * tree-inline.h (eni_weights_d): Add time_based flag.
21769
ecb7f6de
PB
217702009-05-12 Paolo Bonzini <bonzini@gnu.org>
21771
21772 * df-core.c: Update head documentation.
21773
c24151ce
MM
217742009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
21775
21776 PR bootstrap/40118
21777 * rs6000.c (rs6000_generate_compare): Use op1b instead of
21778 shadowing exisiting variable op1.
21779
fbdf817d
UB
217802009-05-12 Uros Bizjak <ubizjak@gmail.com>
21781
704bf7c8 21782 PR target/37179
fbdf817d
UB
21783 * config/i386/driver-i386.c (processor_signatures): New enum.
21784 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
21785 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
21786 processor signature to detect geode processor.
21787
5e8d1826
PB
217882009-05-12 Paolo Bonzini <bonzini@gnu.org>
21789
21790 Revert:
21791
21792 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
21793
21794 * optabs.c (prepare_cmp_insn): Temporarily disable test that
21795 causes spurious differences between trunk and cond-optab branch.
21796
f90b7a5a
PB
217972009-05-12 Paolo Bonzini <bonzini@gnu.org>
21798
fbdf817d
UB
21799 * dojump.c (compare_from_rtx): Delete.
21800 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
21801 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
21802 if the comparison does not satisfy the predicate; test predicates for
21803 operands 2 and 3 of a cstore pattern. Don't try cstore optab
21804 further if one existing pattern fails.
fbdf817d 21805 * expr.h (compare_from_rtx): Delete.
f90b7a5a 21806 (prepare_operand): Declare it.
fbdf817d 21807 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 21808 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
21809 HAVE_conditional_trap, emit_cmp_insn): Delete.
21810 (can_compare_p): Delete cmp_optab case.
f90b7a5a 21811 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
21812 Accept other parameters by value.
21813 (prepare_operand): Make non-static.
21814 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
21815 other parameters by value. Try to widen operands here based on
21816 an optab_methods argument and looking at cbranch_optab.
21817 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
21818 loop. Use cbranch_optab directly.
21819 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
21820 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
21821 assertion.
21822 (emit_conditional_move, emit_conditional_add): Inline what's needed
21823 of compare_from_rtx, using new prepare_cmp_insn for the rest.
21824 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
21825 with COMPARE. Move cmov_optab and cstore_optab above
21826 with cbranch_optab, move cmp_optab down with ucmp_optab,
21827 remove tst_otpab. Do not initialize trap_rtx.
21828 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
21829 for trap code. Do not check HAVE_conditional_trap. Use
21830 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
21831 * optabs.h (OTI_cmp): Mark as used only for libcalls.
21832 (OTI_ctrap, ctrap_optab): New.
21833 (tst_optab): Delete.
21834 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
21835 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
21836 with lookup of ctrap_optab.
f3afc8a7
UB
21837 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
21838 Delete.
fbdf817d
UB
21839 (ctrap_optab): New.
21840
21841 * combine.c (combine_simplify_rtx, simplify_set): Do not
21842 special case comparing against zero for cc0 machines.
f90b7a5a
PB
21843 * simplify-rtx.c (simplify_binary_operation_1): Never remove
21844 COMPARE on cc0 machines.
21845 (simplify_relational_operation): Return a new expression when
21846 a COMPARE could be removed.
fbdf817d
UB
21847 * final.c (final_scan_insn): Compare cc_status values
21848 against LHS of a (compare FOO (const_int 0)) cc0 source.
21849 Also check if cc_status.value is the full compare.
f90b7a5a 21850
fbdf817d
UB
21851 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
21852 (cstoreMM4): Document.
f90b7a5a 21853 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 21854 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
21855 (Dependent Patterns): Eliminate obsolete information referring to
21856 the old jump optimization phase.
fbdf817d 21857 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
21858 of compares with 0 on cc0 machines.
21859 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
21860 avoiding references to cc0. Remove text about storing operands
21861 in cmpMM.
21862 * doc/tm.texi (Condition Codes): Include blurb on different
21863 condition code representations, separate into subsections for
21864 CC0, MODE_CC and conditional execution.
21865
fbdf817d
UB
21866 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
21867 alpha_emit_setcc): Accept operands and a machine mode.
21868 * config/alpha/alpha.c (alpha_emit_conditional_branch):
21869 Get code/op0/op1 from operands, use machine mode argument
21870 instead of alpha_compare.fp_p. Emit the branch here.
21871 (alpha_emit_setcc): Likewise, and return boolean.
21872 (alpha_emit_conditional_move): Likewise. Assert that
21873 cmp_op_mode == cmp_mode, and simplify accordingly.
21874 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
21875 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
21876 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
21877 Delete.
21878 (stack probe test): Use cbranchdi4.
21879 * config/alpha/predicates.md (alpha_cbranch_operator): New.
21880
f100a4a8 21881 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
fbdf817d
UB
21882 * config/arc/arc.h (movsicc, movsfcc): Use it.
21883 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
21884 (cbranchsi4, cstoresi4): New.
f100a4a8 21885 (cmpsi, bCC and sCC expanders): Remove.
fbdf817d
UB
21886
21887 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
21888 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
21889 * config/arm/predicates.md (arm_comparison_operator): Only include
21890 floating-point operators if there is a hardware floating-point unit.
21891 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
21892 deferring to cbranch_cc and cstore_cc respectively.
21893 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
21894 cbranch_cc, cstore_cc): New.
21895 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 21896 arm_compare_op1.
fbdf817d
UB
21897 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
21898
21899 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
21900 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
21901 as an argument.
21902 (adjust_insn_length): Adjust calls.
21903 (avr_reorg): Handle (compare (foo) (const_int 0)).
21904 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
21905 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
21906 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
21907 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
21908 (bCC): Remove.
21909 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
21910 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
21911
fbdf817d
UB
21912 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
21913 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 21914 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
21915 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
21916 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
21917 (bfin_optimize_loop): Use cbranch expander.
21918 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
21919 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
21920 (bfin_bimode_comparison_operator): ... this.
21921 (bfin_direct_comparison_operator): New.
f100a4a8 21922
fbdf817d
UB
21923 * config/cris/cris.c (cris_normal_notice_update_cc): Look
21924 inside (compare FOO (const_int 0)).
21925 (cris_rtx_costs): Handle ZERO_EXTRACT.
21926 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
21927 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
21928 (*tstdi_v32): Delete.
21929 (*cmpdi_non_v32): Add M alternative for operand 1.
21930 (cmpsi, cmp<mode>): Make private.
21931 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
21932 with COMPARE.
21933 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
21934
21935 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
21936 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
21937 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
21938 (cc_reg_operand): New.
21939 (any_cond): Delete.
fbdf817d
UB
21940 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
21941 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
21942 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
21943 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
21944 crx_expand_scond): Delete.
21945
21946 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
21947 (cbranchsi4): New.
21948 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
21949 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
21950
21951 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
21952 cstoresi4, cstoresf4, cstoredf4): New.
21953 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
21954 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
21955 Receive the entire operands array.
21956 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
21957 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
21958 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
21959 Get test/op0/op1 from the operands array.
21960 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
21961
21962 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
21963 (h8300_expand_store): New.
21964 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
21965 (const_int 0)).
21966 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
21967 (h8300_expand_store): New.
21968 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
21969 or do not try to produce (set (cc0) REG).
21970 (peepholes): Wrap arguments with COMPARE. Add a peephole to
21971 change a compare into a move to a scratch register. Disable some
21972 peepholes when comparing with zero.
21973 (tstsi, tsthi, tstsi, cmpqi): Make private.
21974 (cmphi): Delete.
21975 (bCC, sCC): Delete.
21976 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
21977 cstoresi4): New.
f90b7a5a
PB
21978
21979 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
21980 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
21981 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
21982 (ix86_emit_i387_log1p): Use cbranchxf2.
21983 (ix86_expand_setcc): Return void.
21984 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
21985 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
21986 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
21987 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
21988 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
21989 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
21990 (sCC and bCC expanders): Remove.
21991 (stack_protect_test): Use cbranchcc4.
21992
fbdf817d
UB
21993 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
21994 Delete.
21995 (ia64_expand_compare): Accept three rtx by reference and return void.
21996 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
21997 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
21998 from *expr. Update *expr with the BImode comparison to do.
21999 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
22000 cmptf, bCC, sCC, conditional_trap): Delete.
f100a4a8 22001 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
fbdf817d
UB
22002 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
22003 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
22004 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
22005 * config/ia64/predicates.md (ia64_cbranch_operator): New.
22006
22007 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
22008 type of last argument.
22009 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
22010 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
22011 use machine mode argument instead of branch_type. Remove dead
22012 code for floating-point comparisons.
22013 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
22014 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
22015 Remove.
22016 (cbranchsi4, cstoresi4): New.
22017 * config/iq2000/predicates.md (reg_or_const_operand): New.
22018
22019 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
22020 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
22021 (b<code>_op): Rewrite to...
22022 (bcc_op): ... this, using match_operator.
22023 (s<code>_op): Rewrite to...
22024 (scc_op): ... this, using match_operator.
22025 (s<code>_24_op): Rewrite to...
22026 (scc_op_24): ... this, using match_operator.
22027 (s<code>_<mode>): Rewrite to...
22028 (cstore<mode>4): ... this, using match_operator.
22029 (s<code>_<mode>_24): Rewrite to...
22030 (cstore<mode>4_24): ... this, using match_operator.
22031 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
22032 m32c_unpend_compare, m32c_expand_scc): Delete.
22033 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
22034 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
22035 (m32c_expand_movcc): Change NE to EQ if necessary.
22036 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
22037
22038 * config/m32r/m32r-protos.h (gen_cond_store): New.
22039 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
22040 (gen_cond_store): New, from sCC patterns.
22041 (m32r_expand_block_move): Use cbranchsi4.
22042 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
22043 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
22044 (cbranchsi4, cstoresi4): New.
f100a4a8 22045
fbdf817d
UB
22046 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
22047 Delete.
22048 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 22049 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
22050 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
22051 Delete.
22052 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
22053 cmphi, cmpqi, bCC): Delete.
22054 (cbranchsi4, cbranchhi4, cbranchqi4): New.
22055 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
22056 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
22057 sets with COMPARE.
22058
22059 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
22060 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
22061 * config/m68k/constraints.md (H): New.
22062 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
22063 the define_insn below.
22064 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
22065 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
22066 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
22067 patterns): Wrap RHS with COMPARE.
22068 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
22069 (*cmpdi_internal): Name this pattern.
22070 (cmpdi): Change to define_insn.
22071 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
22072 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
22073 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
22074 predicate.
22075 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
22076 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
22077 (conditional_trap): Change to...
22078 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
22079 (*conditional_trap): Use the ordered_comparison_operator and
22080 const1_operand predicates.
22081 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
22082 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
22083 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
22084 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
22085
22086 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
22087 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
f100a4a8 22088 (mcore_gen_compare): New.
fbdf817d
UB
22089 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
22090 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
22091 (mcore_gen_compare): ... this.
22092 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
22093 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
22094 (stack probe pattern): Use cbranchsi4.
22095
22096 * config/mips/predicates.md (mips_cstore_operator): New.
22097 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
22098 * config/mips/mips.md (any_cond): Delete.
22099 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
22100 always succeed.
22101 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
22102 fixuns_truncsfdi2): Use cbranch patterns.
f100a4a8 22103 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
fbdf817d
UB
22104 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
22105 Adjust call to mips_expand_conditional_branch.
22106 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
22107 cstore<GPR:mode>4.
22108 * config/mips/mips-protos.h (mips_expand_conditional_branch,
22109 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
22110 * config/mips/mips.c (cmp_operands): Delete.
22111 (mips_emit_compare): Get comparison operands from *op0/*op1.
22112 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
22113 that it succeeds. Use op0/op1 instead of cmp_operands.
22114 (mips_expand_conditional_branch, mips_expand_conditional_move,
22115 mips_expand_conditional_trap): Likewise.
f100a4a8 22116 (mips_block_move_loop): Use cbranch patterns.
fbdf817d
UB
22117 * config/mips/mips.h (cmp_operands): Delete.
22118
22119 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
22120 (mmix_gen_compare_reg): Just return a register in the right CC mode.
22121 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
22122 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
22123 (*cmpcc_folded): Rename to...
22124 (*cmpdi_folded): this.
22125 (*cmpcc): Rename to...
22126 (*cmps): ... this.
22127 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
22128 (bCC): Remove.
22129 (cbranchdi4): New.
22130 (cbranchdf4): New. Handle invalid comparisons here.
22131 * config/mmix/predicates.md (float_comparison_operator): New.
22132
22133 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
22134 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
22135 * config/mn10300/mn10300.md (tst): Delete.
22136 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
22137 Name these patterns and wrap RHS in a compare.
22138 (*cmpsi): Make this pattern private. Include tst.
22139 (*cmpsf): Make this pattern private.
22140 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
22141 (compare with zero peepholes): Likewise.
22142 (bCC): Remove.
22143 (cbranchsi4, cbranchsf4): New.
22144 (casesi): Use cbranchsi4.
22145
22146 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
22147 hppa_branch_type): Delete.
22148 (return_addr_rtx): Use cbranchsi4.
22149 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
22150 Emit CCFPmode comparison here.
22151 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
22152 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
22153 hppa_branch_type): Delete.
22154 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
22155 (movsicc, movdicc): Remove references to hppa_compare_op0,
22156 hppa_compare_op1 and compare_from_rtx.
22157 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
22158 (casesi): Use cbranchsi4.
22159
22160 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
22161 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
22162 * config/pdp11/pdp11.md (register_or_const0_operand): New.
22163 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
22164 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
22165 (bCC): Delete.
22166 (cbranchdf4, cbranchhi4, cbranchqi4): New.
22167 (*branch, *branch_inverted): New.
22168
22169 * config/picochip/picochip.md (cbranchhi4): Use
22170 ordered_comparison_operator.
22171 (cmphi, bCC): Remove.
22172
22173 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
22174 (trap_comparison_operator): Delete.
22175 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
22176 rs6000_emit_cbranch): Accept mode and operands.
22177 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
f100a4a8 22178 rs6000_compare_fp_p): Delete.
fbdf817d
UB
22179 (rs6000_generate_compare): Accept mode and comparison. Extract code
22180 and op0/op1 from there. Replace references to rs6000_compare_op0
22181 and rs6000_compare_op1.
22182 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
22183 extract result from passed operands.
22184 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
22185 extract loc from passed operands.
22186 (rs6000_emit_cmove): Likewise.
22187 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
22188 rs6000_compare_fp_p): Delete.
22189 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
22190 (cbranch<GPR>4, cbranch<FP>4): New.
22191 (cstore<mode>4): New. Consolidate here all choices about when to use
22192 portable or specialized sCC sequences.
22193 (stack_protect_test): Use cbranchsi4.
22194 (conditional_trap): Replace with ctrap<GPR>4.
22195 (conditional trap insn): Replace trap_comparison_operator with
f100a4a8 22196 ordered_comparison_operator.
fbdf817d
UB
22197
22198 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
22199 (s390_emit_prologue): Use ctrap.
22200 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
22201 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
22202 New predicates replacing...
22203 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
22204 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
22205 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
22206 (add<mode>cc): Do not use s390_compare_op0/op1.
22207 (s<code>): Change to...
22208 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
22209 (seq): Change to...
22210 (cstorecc4): ... this. Handle EQ or NE equally.
22211 (*sne): Un-privatize for use in cstorecc4.
22212 (b<code>): Change to...
22213 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
22214 (conditional_trap): Replace with...
22215 (ctrap<GPR>4, ctrap<FP>4): ... these.
22216 (stack_protect): Use cbranchcc4.
22217
22218 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
22219 * config/score/score-protos.h (score_gen_cmp): Delete.
22220 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
22221 (score_block_move-loop): Use cbranchsi4.
22222 * config/score/score.md (cbranchsi4): New.
22223 (cmpsi, bCC): Delete.
22224 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
22225 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
22226 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
22227 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
22228 * config/score/score3.h (score3_gen_cmp): Delete.
22229 * config/score/score7.h (score7_gen_cmp): Delete.
22230
22231 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
22232 (sh_emit_scc_to_t): ... this. Return void.
22233 (from_compare): Rename to...
22234 (sh_emit_compare_and_branch): ... this.
22235 (sh_emit_compare_and_set): New.
22236 (sh_expand_t_scc): Accept operands.
22237 * config/sh/predicates.md (sh_float_comparison_operator): New.
22238 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
22239 (prepare_scc_operands): Rename to...
22240 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
22241 arguments.
22242 (sh_emit_cheap_store_flag): New.
f90b7a5a 22243 (sh_emit_set_t_insn): New.
fbdf817d
UB
22244 (from_compare): Rename to...
22245 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
22246 handling of TARGET_SH2E floating point to avoid recursive call.
22247 Generate branch here.
22248 (sh_emit_compare_and_set): New.
22249 (sh_expand_t_scc): Get op0/op1 from arguments.
22250 (sh_emit_cheap_store_flag): New.
22251 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
22252 cases.
f90b7a5a 22253 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
22254 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
22255 (movsicc, movdicc): Do nothing when it recreated operands from
22256 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
22257 prepare_scc_operands (now sh_emit_scc_to_t).
22258 (udivdi3): Use cstoresi4.
22259 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
22260 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
22261 (cbranchint4_media, cbranchfp4_media): New.
22262 (casesi): Use cbranchdi4.
22263 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
22264 Delete.
22265 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
22266 (movnegt): Remove second operand.
22267 (cbranchsf4, cbranchdf4): New.
22268 (stack_protect): Use cbranchdi4/cbranchsi4.
22269
22270 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
22271 (gen_compare_reg): Accept comparison, extract part of it to...
f100a4a8 22272 (gen_compare_reg_1): ... this.
fbdf817d
UB
22273 (gen_compare_operator): Delete.
22274 (gen_v9_scc): Accept separate destination, comparison code and arms.
22275 Do not use sparc_compare_op0/sparc_compare_op1.
22276 (emit_scc_insn, emit_conditional_branch_insn): New.
22277 (emit_v9_brxx): Make static. Remove useless assertion.
22278 (sparc_emit_float_lib_cmp): Return RTL instead of calling
22279 emit_cmp_insn.
22280 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
22281 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
22282 sparc_emit_float_lib_cmp): Adjust prototype.
22283 (emit_scc_insn, emit_conditional_branch_insn): New.
22284 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
22285 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
22286 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
22287 iterators to the top.
22288 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
22289 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 22290 snedi_special_trunc): Delete.
fbdf817d 22291 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 22292 and snedi_special_trunc.
fbdf817d
UB
22293 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
22294 cbranchdi4, cbranch<F:mode>4): New.
22295 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
22296 here. Use gen_compare_reg instead of gen_compare_operator.
22297 (conditional_trap): Replace with...
22298 (ctrapsi4, ctrapdi4): ... this.
22299 (stack_protect_test): Use cbranchcc4.
22300
22301 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
22302 argument to rtx.
f100a4a8 22303 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
fbdf817d
UB
22304 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
22305 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
22306 from operands[0] or operands[3] depending on is_set.
22307 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
22308 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
22309 cmpdf, bCC), sCC: Remove.
f100a4a8 22310 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
fbdf817d
UB
22311 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
22312 cstoredf4): New.
22313 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
22314 spu_emit_branch_or_set.
22315
22316 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
22317 Add two arguments.
22318 * config/stormy16/stormy16.h (xstormy16_compare_op0,
22319 xstormy16_compare_op1): Delete.
22320 * config/stormy16/stormy16.c (xstormy16_compare_op0,
f100a4a8 22321 xstormy16_compare_op1): Delete.
fbdf817d
UB
22322 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
22323 Adjust calls.
22324 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
22325 (cmphi, cmpsi, bCC): Remove.
22326
22327 * config/v850/v850.md (tstsi, cmpsi): Fold into...
22328 (*cmpsi): ... this one.
22329 (cbranchsi4, cstoresi4): New.
22330 (bCC expanders): Delete.
22331 (sCC insns): Fold into...
22332 (*setcc): ... this one.
f100a4a8 22333 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
22334 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
22335 (movsicc): Simplify.
22336 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
22337
fbdf817d
UB
22338 * config/vax/vax-protos.h (cond_name): New.
22339 (vax_output_conditional_branch): Remove.
22340 * config/vax/vax.c (cond_name): New.
22341 (vax_output_conditional_branch): Remove.
22342 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
22343 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
22344 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
22345 (bit<VAXint>): Wrap source with (compare).
22346 (b<code> and following unnamed pattern): Rename to *branch and
22347 *branch_reversed. Change macroization to match_operator.
22348 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
22349
22350 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
22351 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
22352 Change last argument to machine_mode.
22353 (xtensa_expand_scc): Add machine_mode argument.
22354 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
22355 (gen_conditional_move, xtensa_expand_conditional_branch,
22356 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
22357 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
22358 Adjust operand numbers.
22359 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
22360 Delete.
22361 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
22362 (cmpsi, cmpsf, b<code>, s<code>): Delete.
22363 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 22364
16670495
PB
223652009-05-12 Paolo Bonzini <bonzini@gnu.org>
22366
22367 * optabs.c (prepare_cmp_insn): Temporarily disable test that
22368 causes spurious differences between trunk and cond-optab branch.
22369
4a4a4e99
AO
223702009-05-12 Alexandre Oliva <aoliva@redhat.com>
22371
22372 PR target/37137
22373 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
22374
72b9acff
AO
223752009-05-12 Alexandre Oliva <aoliva@redhat.com>
22376
22377 * tree.c (iterative_hash_pointer): Delete.
22378 (iterative_hash_expr): Short-circuit handling of NULL pointer.
22379 Hash UIDs and versions of SSA names. Don't special-case built-in
22380 function declarations.
22381
b7dd69ac
ILT
223822009-05-11 Ian Lance Taylor <iant@google.com>
22383
22384 PR bootstrap/40103
22385 * graphite.c: Force -Wc++-compat to only be a warning before
22386 #including "cloog/cloog.h".
22387
ed102b70
MJ
223882009-05-11 Martin Jambor <mjambor@suse.cz>
22389
22390 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
f100a4a8 22391
08f1af2e
JH
223922009-05-11 Jan Hubicka <jh@suse.cz>
22393
22394 * tree-ssa-loop-ivcanon.c: Include target.h
22395 (struct loop_size): new structure.
22396 (constant_after_peeling): New predicate.
22397 (tree_estimate_loop_size): New function.
22398 (estimated_unrolled_size): Rewrite for new estimates.
22399 (try_unroll_loop_completely): Use new estimates.
22400 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
22401
a7d39bd3
AP
224022009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
22403
22404 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
22405 libcpp interface change.
22406 (spu_macro_to_expand): Likewise.
22407
f5a1f0d0
PB
224082009-05-11 Paolo Bonzini <bonzini@gnu.org>
22409
22410 PR tree-optimization/40026
22411 * gimplify.c (gimplify_init_constructor): Change initial conditional
22412 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
22413 optimize_compound_literals_in_ctor.
22414
c260f01f
NS
224152009-05-11 Nathan Sidwell <nathan@codesourcery.com>
22416
22417 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
22418 New devices.
22419 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
22420
df398a37
L
224212009-05-11 H.J. Lu <hongjiu.lu@intel.com>
22422
22423 * tree-vect-data-refs.c (vect_analyze_group_access): Use
22424 HOST_WIDE_INT for gap.
22425
4da39468
IR
224262009-05-11 Ira Rosen <irar@il.ibm.com>
22427
22428 PR tree-optimization/40074
22429 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
22430 account in group size and step comparison.
22431
4effdf02
RG
224322009-05-11 Richard Guenther <rguenther@suse.de>
22433
22434 * passes.c (init_optimization_passes): Strip now incorrect comment.
22435 (execute_function_todo): Do not set PROP_alias.
22436 * tree-pass.h (PROP_alias): Remove.
22437 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
22438 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
22439 * tree-nrv.c (pass_return_slot): Likewise.
22440 * tree-object-size.c (pass_object_sizes): Likewise.
22441 * tree-ssa-dom.c (pass_dominator): Likewise.
22442 (pass_phi_only_cprop): Likewise.
22443 * tree-ssa-dse.c (pass_dse): Likewise.
22444 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
22445 (pass_cselim): Likewise.
22446 * tree-ssa-pre.c (pass_pre): Likewise.
22447 (pass_fre): Likewise.
22448 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
22449 * tree-ssa-sink.c (pass_sink_code): Likewise.
22450 * tree-stdarg.c (pass_stdarg): Likewise.
22451 * tree-tailcall.c (pass_tail_calls): Likewise.
22452 * tree-vrp.c (pass_vrp): Likewise.
22453
24b97832
ILT
224542009-05-10 Ian Lance Taylor <iant@google.com>
22455
22456 * basic-block.h (enum profile_status): Break out of struct
22457 control_flow_graph.
22458 * cgraph.h (struct inline_summary): Break out of struct
22459 cgraph_local_info.
22460 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
22461 of struct cgraph_order_sort.
fbdf817d 22462 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
22463 * cse.c (struct branch_path): Break out of struct
22464 cse_basic_block_data.
22465 * except.h (enum eh_region_type): Break out of struct eh_region.
22466 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 22467 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
22468 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
22469 ggc_pch_data.
fbdf817d
UB
22470 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
22471 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
22472 * sched-int.h (enum post_call_group): New enum, broken out of
22473 struct deps.
22474 (struct deps_reg): Break out of struct deps.
22475 * target.h (struct asm_int_op): Break out of struct gcc_target.
22476 * tree-eh.c (struct goto_queue_node): Break out of struct
22477 leh_tf_state.
22478 * tree-inline.h (enum copy_body_cge_which): Break out of
22479 copy_body_data.
22480 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
22481
22482 * c-decl.c (in_struct, struct_types): New static variables.
22483 (pushtag): Add loc parameter. Change all callers.
22484 (lookup_tag): Add ploc parameter. Change all callers.
22485 (check_compound_literal_type): New function.
22486 (parser_xref_tag): Add loc parameter. Change all callers. If
22487 -Wc++-compat, warn about struct/union/enum types defined within a
22488 struct or union.
22489 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
22490 and loc parameters. Change all callers. Change error calls to
22491 error_at, using loc. For a redefinition, if the location of the
22492 original definition is known, report it. Set in_struct and
fbdf817d 22493 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
22494 (finish_struct): Add new parameters enclosing_in_struct and
22495 enclosing_struct_types. Change all callers. Set
22496 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
22497 in the struct. If in a struct, add this struct to struct_types.
22498 (start_enum): Add loc parameter. Change all callers. Use
22499 error_at for errors, using loc. For a redefinition, if the
22500 location of the original definition is known, report it. If in a
22501 struct, add this enum type to struct_types. If -Wc++-compat warn
22502 if in sizeof, typeof, or alignof.
fbdf817d
UB
22503 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
22504 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
22505 (c_parser_enum_specifier): Get enum location for start_enum.
22506 (c_parser_struct_or_union_specifier): Get struct location for
22507 start_struct. Save in_struct and struct_types status between
22508 start_struct and finish_struct.
22509 (c_parser_cast_expression): Get location of cast.
22510 (c_parser_alignof_expression): Get location of type.
22511 (c_parser_postfix_expression): Likewise.
22512 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
22513 parameter. Change all callers. Call check_compound_literal_type.
22514 Use type_loc for error about variable size type.
22515 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
22516 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
22517 (c_cast_expr): Add loc parameter. Change all callers. If
22518 -Wc++-compat, warn about defining a type in a cast.
22519 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
22520 (start_enum, start_struct, finish_struct): Update declarations.
22521 (parser_xref_tag, c_cast_expr): Update declarations.
22522 (check_compound_literal_type): Declare.
22523
7a2738fa
BE
225242009-05-11 Ben Elliston <bje@au.ibm.com>
22525
22526 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
22527 for recent libcpp interface change.
22528 (rs6000_macro_to_expand): Likewise.
22529
af618949
MM
225302009-05-10 Michael Matz <matz@suse.de>
22531
22532 PR target/40031
22533 * config/arm/arm.c (require_pic_register): Emit on entry edge,
22534 not at entry of function.
22535
b7d7a473
RG
225362009-05-10 Richard Guenther <rguenther@suse.de>
22537
22538 PR tree-optimization/40081
22539 Revert
22540 * tree-sra.c (instantiate_element): Instantiate scalar replacements
22541 using the main variant of the element type. Do not fiddle with
22542 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
22543
22544 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
22545 structs with volatile fields.
22546
078c3644
JH
225472009-05-10 Jan Hubicka <jh@suse.cz>
22548
22549 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
22550 (estimate_move_cost): Assert that it does not get called for
22551 VOID_TYPE_P.
078c3644
JH
22552 (estimate_num_insns): Skip VOID types in argument handling.
22553 (optimize_inline_calls): Delete unreachable blocks and verify that
22554 callgraph is valid.
22555
39ff5a96
JH
225562009-05-10 Jan Hubicka <jh@suse.cz>
22557
22558 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
22559 * cgraph.c (cgraph_mark_address_taken_node): New function.
22560 (dump_cgraph_node): Dump new flag.
22561 * cgraph.h (struct cgraph_node): Add address_taken.
22562 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
22563 * ipa.c (cgraph_postorder): Prioritize functions with address taken
22564 since new direct calls can be born.
22565
9a0c6187
JM
225662009-05-10 Joseph Myers <joseph@codesourcery.com>
22567
22568 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
22569 tok->val.node.node.
22570
4b685e14
JH
225712009-05-10 Jan Hubicka <jh@suse.cz>
22572
22573 PR middle-end/40084
fb0be169
EB
22574 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
22575 argument; rewrite.
4b685e14
JH
22576 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
22577 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
22578 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
22579 (fold_marked_statements): Update call to
22580 cgraph_update_edges_for_call_stmt.
4b685e14 22581
29d08eba
JM
225822009-05-10 Joseph Myers <joseph@codesourcery.com>
22583
22584 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
22585 identifiers in diagnostics.
22586 * config/arm/arm.c (arm_handle_fndecl_attribute,
22587 arm_handle_isr_attribute): Likewise.
22588 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 22589 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
22590 * config/bfin/bfin.c (handle_int_attribute,
22591 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
22592 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
22593 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
22594 Likewise.
22595 * config/darwin.c (darwin_handle_kext_attribute,
22596 darwin_handle_weak_import_attribute): Likewise.
22597 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
22598 h8300_handle_eightbit_data_attribute,
22599 h8300_handle_tiny_data_attribute): Likewise.
22600 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 22601 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
22602 * config/i386/winnt.c (ix86_handle_shared_attribute,
22603 ix86_handle_selectany_attribute): Likewise.
22604 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
22605 * config/m32c/m32c.c (function_vector_handler): Likewise.
22606 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
22607 m68hc11_handle_fntype_attribute): Likewise.
22608 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
22609 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
22610 * config/mips/mips.c (mips_insert_attributes,
22611 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
22612 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
22613 rs6000_handle_struct_attribute): Likewise.
22614 * config/sh/sh.c (sh_insert_attributes,
22615 sh_handle_resbank_handler_attribute,
22616 sh_handle_interrupt_handler_attribute,
22617 sh2a_handle_function_vector_handler_attribute,
22618 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
22619 Likewise.
22620 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
22621 * config/spu/spu.c (spu_handle_fndecl_attribute,
22622 spu_handle_vector_attribute): Likewise.
22623 * config/stormy16/stormy16.c
22624 (xstormy16_handle_interrupt_attribute): Likewise.
22625 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
22626 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
22627
f41c4af3
JM
226282009-05-10 Joseph Myers <joseph@codesourcery.com>
22629
782dc37a 22630 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
22631 (pp_translate_identifiers): New.
22632 (pp_identifier): Only conditionally translate identifier to locale
22633 character set.
22634 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
22635 (pp_base_tree_identifier): Only conditionally translate identifier
22636 to locale character set.
22637 * c-pretty-print.c (M_): Define.
22638 (pp_c_type_specifier, pp_c_primary_expression): Mark English
22639 fragments for conditional translation with M_.
22640 * tree-pretty-print.c (maybe_init_pretty_print): Disable
22641 identifier translation.
22642
896d7dbd
RG
226432009-05-10 Richard Guenther <rguenther@suse.de>
22644
22645 PR tree-optimization/40081
22646 * tree-sra.c (instantiate_element): Instantiate scalar replacements
22647 using the main variant of the element type. Do not fiddle with
22648 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
22649
9a23acef
JH
226502009-05-09 Jan Hubicka <jh@suse.cz>
22651
22652 PR middle-end/40080
22653 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
22654 indirect calls; verify cgraph afterwards.
22655
d563610d
JH
226562009-05-09 Jan Hubicka <jh@suse.cz>
22657
22658 PR bootstrap/40082
22659 * ipa.c (update_inlined_to_pointer): New function.
22660 (cgraph_remove_unreachable_nodes): Use it.
22661
f08a18d0
JH
226622009-05-09 Jan Hubicka <jh@suse.cz>
22663
22664 * tree-eh.c (struct leh_state): Remove prev_try.
22665 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
22666 not track prev_try.
f100a4a8 22667 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
f08a18d0
JH
22668 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
22669 remove_eh_handler_and_replace, foreach_reachable_handler,
22670 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
22671 * except.h (struct eh_region): Remove eh_region_u_cleanup.
22672 (gen_eh_region_cleanup): Update prototype.
22673
0afd7219
JH
226742009-05-09 Jan Hubicka <jh@suse.cz>
22675
22676 PR middle-end/40043
22677 * except.c (copy_eh_region): Always set prev_try.
22678 (redirect_eh_edge_to_label): Find outer try.
22679 (foreach_reachable_handler): When looking for prev try
22680 handle case where previous try is not going to be taken.
22681
ad6c0864
MM
226822009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
22683
22684 PR tree-optimization/40049
22685 * tree-vect-stmts.c (vectorizable_operation): If the machine has
22686 only vector/vector shifts, convert the type of the constant to the
22687 appropriate type to avoid building incorrect trees, which
22688 eventually have problems with garbage collection.
22689
c94f9067
JM
226902009-05-08 Joseph Myers <joseph@codesourcery.com>
22691
22692 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
22693 -1 for complex floating-point types if honoring signed zeros.
22694
9187e02d
JH
226952009-05-08 Jan Hubicka <jh@suse.cz>
22696
20acb8a2
EB
22697 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
22698 argument; handle correctly when profile is absent.
9187e02d
JH
22699 (build_cgraph_edges): Update.
22700 (rebuild_cgraph_edges): Update.
20acb8a2
EB
22701 * cgraph.c: Do not include varray.h.
22702 (cgraph_set_call_stmt_including_clones): New function.
22703 (cgraph_create_edge_including_clones): Likewise
22704 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
22705 (cgraph_update_edges_for_call_stmt): Handle clones.
22706 (cgraph_remove_node): Handle clone tree.
22707 (cgraph_remove_node_and_inline_clones): New function.
22708 (dump_cgraph_node): Dump clone tree.
22709 (cgraph_clone_node): Handle clone tree.
20acb8a2 22710 (clone_function_name): Bring here from tree-inline.c.
9187e02d 22711 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
22712 * cgraph.h (ipa_replace_map): Move here from ipa.h.
22713 (cgraph_clone_info): New function.
9187e02d 22714 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
22715 (cgraph_remove_node_and_inline_clones,
22716 cgraph_set_call_stmt_including_clones,
22717 cgraph_create_edge_including_clones,
22718 cgraph_create_virtual_clone): Declare.
9187e02d
JH
22719 (cgraph_function_versioning): Use VEC argument.
22720 (compute_call_stmt_bb_frequency): Update prototype.
22721 (cgraph_materialize_all_clones): New function.
22722 * ipa-cp.c (ipcp_update_cloned_node): Remove.
22723 (ipcp_create_replace_map): Update to VECtors.
22724 (ipcp_update_callgraph): Use virtual clones.
22725 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
22726 (ipcp_update_profiling): Do not update local profiling.
22727 (ipcp_insert_stage): Use VECtors and virtual clones.
22728 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
22729 (clone_of_p): New function.
22730 (cgraph_preserve_function_body_p): Use clone tree.
22731 (cgraph_optimize): Materialize clones.
22732 (cgraph_function_versioning): Update for VECtors.
22733 (save_inline_function_body): Use clone tree.
20acb8a2
EB
22734 (cgraph_materialize_clone): New function.
22735 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
22736 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
22737 * ipa.c: Include gimple.h.
22738 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
22739 * ipa-prop.c (ipa_note_param_call): Update call to
22740 compute_call_stmt_bb_frequencycall.
9187e02d 22741 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 22742 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
22743 (copy_bb): Handle updating of clone tree; add new edge when new call
22744 appears.
22745 (expand_call_inline): Be strict about every call having edge.
22746 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
22747 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
22748 (tree_function_versioning): Use VECtors; always remove unreachable
22749 blocks and fold conditionals.
22750 * tree-inline.h: Do not include varray.h.
9187e02d
JH
22751 (tree_function_versioning): Remove.
22752 * Makefile.in (GTFILES): Remove tree-inline.c
22753 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
22754 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
22755 tree.
9187e02d 22756
9b86d6bb
L
227572009-05-08 H.J. Lu <hongjiu.lu@intel.com>
22758 Andrew Morrow <acm@google.com>
22759
22760 PR c/36892
22761 * c-common.c (c_common_attribute_table): Permit deprecated
22762 attribute to take an optional argument.
22763 (handle_deprecated_attribute): If the optional argument to
22764 __attribute__((deprecated)) is not a string ignore the attribute
22765 and emit a warning.
22766
22767 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
22768 * c-typeck.c (build_component_ref): Likewise.
22769 (build_external_ref): Likewise.
22770
22771 * toplev.c (warn_deprecated_use): Add an attribute argument.
22772 Emit the message associated with __attribute__((deprecated)).
22773
22774 * toplev.h (warn_deprecated_use): Updated.
22775
22776 * doc/extend.texi: Document new optional parameter to
22777 __attribute__((deprecated))
22778
82ad047f
ME
227792009-05-08 Michael Eager <eager@eagercon.com>
22780
22781 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
22782 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
22783
788d3075
RG
227842009-05-08 Richard Guenther <rguenther@suse.de>
22785
22786 PR tree-optimization/40062
22787 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
22788 Avoid exponential behavior.
22789
00952e97
PB
227902009-05-08 Paolo Bonzini <bonzini@gnu.org>
22791
22792 PR rtl-optimization/33928
22793 PR 26854
22794 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
22795 process_uses, build_single_def_use_links): New.
22796 (update_df): Update use_def_ref.
22797 (forward_propagate_into): Use get_def_for_use instead of use-def
22798 chains.
22799 (fwprop_init): Call build_single_def_use_links and let it initialize
22800 dataflow.
22801 (fwprop_done): Free use_def_ref.
22802 (fwprop_addr): Eliminate duplicate call to df_set_flags.
f100a4a8 22803 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
00952e97
PB
22804 df_rd_simulate_one_insn): New.
22805 (df_rd_bb_local_compute_process_def): Update head comment.
22806 (df_chain_create_bb): Use the new RD simulation functions.
f100a4a8 22807 * df.h (df_rd_simulate_artificial_defs_at_top,
00952e97
PB
22808 df_rd_simulate_one_insn): New.
22809 * opts.c (decode_options): Enable fwprop at -O1.
22810 * doc/invoke.texi (-fforward-propagate): Document this.
22811
2ca862e9
JM
228122009-05-08 Joseph Myers <joseph@codesourcery.com>
22813
22814 PR c/24581
22815 * c-typeck.c (build_binary_op): Handle arithmetic between one real
22816 and one complex operand specially.
22817 * tree-complex.c (some_nonzerop): Do not identify a real value as
22818 zero if flag_signed_zeros.
22819
3e807ffc
PB
228202009-05-08 Paolo Bonzini <bonzini@gnu.org>
22821
22822 PR rtl-optimization/33928
7925c06c 22823 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 22824
1bfdbb29
PB
228252009-05-08 Paolo Bonzini <bonzini@gnu.org>
22826
22827 PR rtl-optimization/33928
e913423f
EB
22828 * loop-invariant.c (struct use): Add addr_use_p.
22829 (struct def): Add n_addr_uses.
22830 (struct invariant): Add cheap_address.
22831 (create_new_invariant): Set cheap_address.
22832 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
22833 (record_uses): Pass df_ref to record_use.
22834 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
22835 used only as such.
1bfdbb29 22836
702cb2a0
KK
228372009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
22838
22839 * config/sh/sh.c: Do not include c-pragma.h.
22840
5e8df753
AP
228412009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
22842
22843 * config/spu/spu.c: Remove include of c-common.h.
22844
6ec637a4
JJ
228452009-05-07 Janis Johnson <janis187@us.ibm.com>
22846
22847 PR c/39037
22848 * c-common.h (mark_valid_location_for_stdc_pragma,
22849 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
22850 clear_float_const_decimal64, float_const_decimal64_p): New.
22851 * c.opt (Wunsuffixed-float-constants): New.
22852 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
22853 unsuffixed float constant, handle new warning.
22854 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
22855 * c-decl.c (c_scope): New flag float_const_decimal64.
22856 (set_float_const_decimal64, clear_float_const_decimal64,
22857 float_const_decimal64_p): New.
22858 (push_scope): Set new flag.
22859 * c-parser.c (c_parser_translation_unit): Mark when it's valid
22860 to use STDC pragmas.
22861 (c_parser_external_declaration): Ditto.
22862 (c_parser_compound_statement_nostart): Ditto.
22863 * c-pragma.c (valid_location_for_stdc_pragma,
22864 mark_valid_location_for_stdc_pragma,
22865 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
22866 handle_pragma_float_const_decimal64): New.
22867 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
22868 * cp/semantics.c (valid_location_for_stdc_pragma_p,
22869 set_float_const_decimal64, clear_float_const_decimal64,
22870 float_const_decimal64_p): New dummy functions.
22871 * doc/extend.texi (Decimal Float): Remove statement that the
22872 pragma, and suffix for double constants, are not supported.
22873 * doc/invoke.texi (Warning Options): List new option.
22874 (-Wunsuffixed-float-constants): New.
22875
45b9b2e9
SB
228762009-05-08 Steven Bosscher <steven@gcc.gnu.org>
22877
22878 * config/i386/i386.c: Do not include c-common.h.
22879
e71da632
MH
228802009-05-07 Mark Heffernan <meheff@google.com>
22881
22882 * doc/invoke.texi (Debugging Options): Document change of debugging
22883 dump location.
e913423f 22884 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
22885 aux_base_name directory.
22886
fe4c7bc6
HS
228872009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
22888
22889 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
22890 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
22891
3b3e44eb
RAE
228922009-05-07 Rafael Avila de Espindola <espindola@google.com>
22893
22894 * Makefile.in (install-plugin): Simplify a bit.
22895
fac41238
PB
228962009-05-07 Paolo Bonzini <bonzini@gnu.org>
22897
22898 * Makefile.in (OBJS-common): Add regcprop.o.
22899 (regcprop.o): New.
22900 * timevar.def (TV_CPROP_REGISTERS): New.
22901 * regrename.c (regrename_optimize): Return 0.
22902 (rest_of_handle_regrename): Delete.
22903 (pass_rename_registers): Point to regrename_optimize.
f100a4a8 22904 (struct value_data_entry, struct value_data,
fac41238
PB
22905 kill_value_one_regno, kill_value_regno, kill_value,
22906 set_value_regno, init_value_data, kill_clobbered_value,
22907 kill_set_value, kill_autoinc_value, copy_value,
22908 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
22909 replace_oldest_value_reg, replace_oldest_value_addr,
22910 replace_oldest_value_mem, copyprop_hardreg_forward_1,
22911 debug_value_data, validate_value_data): Move...
22912 * regcprop.c: ... here.
22913 (rest_of_handle_cprop): Delete.
22914 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
22915
472e0df9
JJ
229162009-05-07 Jakub Jelinek <jakub@redhat.com>
22917
22918 PR middle-end/40057
22919 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
22920 GEN_INT for 1 << bitnum.
22921 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
22922 build_int_cst_type.
22923
0d50d55a
UB
229242009-05-07 Uros Bizjak <ubizjak@gmail.com>
22925
22926 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 22927 Remove wrong description of "nand" operation.
0d50d55a 22928
22f597f1
RG
229292009-05-06 Richard Guenther <rguenther@suse.de>
22930 Adam Nemet <anemet@caviumnetworks.com>
22931
22932 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
22933 comment. Add that if LHS is not a gimple register, then RHS1 has
22934 to be a single object (GIMPLE_SINGLE_RHS).
22935
641cac0b
AN
229362009-05-06 Adam Nemet <anemet@caviumnetworks.com>
22937
22938 * expr.c (get_def_for_expr): Move it up in the file.
22939 (store_field): When expanding a bit-field store, look at the
22940 defining gimple stmt for the masking conversion.
22941
5a5c6435
JJ
229422009-05-06 Janis Johnson <janis187@us.ibm.com>
22943
22944 PR middle-end/39986
22945 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
22946 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
22947 32-bit memcpy into long.
22948
96474f36
JJ
229492009-05-06 Jakub Jelinek <jakub@redhat.com>
22950
22951 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
22952 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
22953 new_reg_loc_descr.
22954 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
22955 instead of appending DW_OP_deref*.
22956
529ff441
MM
229572009-05-06 Michael Matz <matz@suse.de>
22958
22959 PR middle-end/40021
22960 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
22961 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
22962
9419a9fd
RAE
229632009-05-06 Rafael Avila de Espindola <espindola@google.com>
22964
22965 * Makefile.in (install-plugin): Fix srcdir handling.
22966
fff1894c
AB
229672009-05-06 Andrey Belevantsev <abel@ispras.ru>
22968
22969 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
22970 when processing for not_regs_needed bitmap.
22971 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
f100a4a8
UB
22972 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
22973 handling it for rhs.
fff1894c 22974
700ae70c
L
229752009-05-06 H.J. Lu <hongjiu.lu@intel.com>
22976
ab3426a7 22977 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 22978 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
22979 * config/i386/predicates.md (incdec_operand): Likewise.
22980 (aligned_operand): Likewise.
22981 * config/i386/sse.md (divv8sf3): Likewise.
22982 (sqrtv8sf2): Likewise.
22983
67341fb5
L
229842009-05-06 H.J. Lu <hongjiu.lu@intel.com>
22985
22986 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
22987
22988 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
22989
87946f42
L
229902009-05-06 H.J. Lu <hongjiu.lu@intel.com>
22991
22992 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
22993 ssemodesuffixf2c with avxmodesuffixf2c.
22994
1202aec1
JM
229952009-05-06 Joseph Myers <joseph@codesourcery.com>
22996
22997 PR c/40032
aa016ff7 22998 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 22999
6e57a01d
JJ
230002009-05-05 Jakub Jelinek <jakub@redhat.com>
23001
23002 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
23003 (struct tree_base): Adjust spacing for 8 bit boundaries.
23004 (struct tree_decl_common): Add decl_by_reference_flag bit.
23005 (DECL_BY_REFERENCE): Adjust.
23006 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
23007 print DECL_BY_REFERENCE bit.
23008 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
23009 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
23010 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
23011 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
23012 unconditionally.
23013
32f579f6
JJ
23014 PR middle-end/39666
23015 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
23016 range of the type, but default label is missing, add it with one
23017 of the existing labels instead of adding a new label for it.
23018
617ab743
JM
230192009-05-05 Joseph Myers <joseph@codesourcery.com>
23020
23021 * dwarf.h: Remove.
23022
bf016de8
RAE
230232009-05-05 Rafael Avila de Espindola <espindola@google.com>
23024
23025 * Makefile.in (enable_plugin, plugin_includedir): New.
23026 (install): Depend on install-plugin.
23027 (PLUGIN_HEADERS): New.
23028 (install-plugin): New.
23029 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
23030
7f8fdb9f
RG
230312009-05-05 Richard Guenther <rguenther@suse.de>
23032
23033 PR tree-optimization/40022
23034 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
23035 the only vuse.
23036 (phivn_valid_p): Fix tuplification error, simplify.
23037 (phiprop_insert_phi): Add dumps.
23038 (propagate_with_phi): Simplify.
23039
8d972839
RG
230402009-05-05 Richard Guenther <rguenther@suse.de>
23041
23042 PR middle-end/40023
aa016ff7 23043 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 23044
66ba9b0b
SZ
230452009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
23046
23047 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
23048 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
23049 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
23050 block_ultimate_origin): Rearrange the declarations line to match the
23051 comment that indicates the .c file which the functions are defined.
23052 (dwarf2out_*, set_decl_rtl): Add comment.
23053 (get_base_address): Adjust comment.
23054 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
23055 declarations line and add comment.
23056 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 23057
4f1e4960
JM
230582009-05-04 Joseph Myers <joseph@codesourcery.com>
23059
23060 * attribs.c (decl_attributes): Use %qE for identifiers in
23061 diagnostics.
23062 * cgraphunit.c (verify_cgraph_node): Translate function names to
23063 locale character set in diagnostics.
23064 * coverage.c (get_coverage_counts): Use %qE for identifiers in
23065 diagnostics.
23066 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
23067 Document that functions are named in UTF-8.
23068 * expr.c (expand_expr_real_1): Translate function names to locale
23069 character set in diagnostics.
23070 * gimplify.c (omp_notice_variable, omp_is_private,
23071 gimplify_scan_omp_clauses): Use %qE for identifiers in
23072 diagnostics.
23073 * langhooks.c (lhd_print_error_function): Translate function names
23074 to locale character set.
23075 * langhooks.h (decl_printable_name): Document that return value is
23076 in internal character set.
23077 * stmt.c: Include pretty-print.h
23078 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
23079 diagnostics.
23080 (resolve_operand_name_1): Translate named operand name to locale
23081 character set.
23082 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
23083 diagnostics.
23084 * toplev.c (announce_function): Translate function names to locale
23085 character set.
23086 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
23087 (default_tree_printer): Use pp_identifier or translate identifiers
23088 to locale character set. Mark "<anonymous>" for translation.
23089 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
23090 for identifiers in diagnostics.
23091 * tree.c (handle_dll_attribute): Use %qE for identifiers in
23092 diagnostics.
23093 * varasm.c (output_constructor): Use %qE for identifiers in
23094 diagnostics.
23095
40540e68
RAE
230962009-05-04 Rafael Avila de Espindola <espindola@google.com>
23097
23098 * configure.ac: use ` ` instead of $()
23099 * configure: Regenerate.
23100
33fc884c
BE
231012009-05-05 Ben Elliston <bje@au.ibm.com>
23102
23103 * config/pa/linux-atomic.c: Eliminate conditional include of
23104 errno.h on non-LP64 systems to simplify build requirements.
23105
88388a52
JM
231062009-05-04 Joseph Myers <joseph@codesourcery.com>
23107
23108 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
23109 diagnostics.
23110 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
23111 and pass value to identifier_to_locale.
23112 (warn_variable_length_array): Make name a tree.
23113 (grokdeclarator): Separate diagnostic texts for named and unnamed
23114 declarators. Use %qE for named declarators.
23115 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
23116 diagnostics.
23117 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
23118 identifiers in diagnostics.
23119 * c-typeck.c (push_member_name, start_init): Pass identifiers to
23120 identifier_to_locale. Mark "anonymous" strings for translation.
23121
960c5c79
ME
231222009-05-04 Michael Eager <eager@eagercon.com>
23123
23124 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 23125 address for DImode/DFmode only if double-precision FP regs.
960c5c79 23126
d083fbba
ME
231272009-05-04 Michael Eager <eager@eagercon.com>
23128
23129 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
23130 TARGET_SINGLE_FLOAT check.
23131
c3ba8d32
ME
231322009-05-04 Michael Eager <eager@eagercon.com>
23133
23134 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
23135
edce9f18
ME
231362009-05-04 Michael Eager <eager@eagercon.com>
23137
bd62d832 23138 * gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx
edce9f18
ME
23139 * config/rs6000/t-xilinx: New
23140
506d7b68
PB
231412009-05-04 Paolo Bonzini <bonzini@gnu.org>
23142
e913423f 23143 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
23144 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
23145 * gcc/explow.c (memory_address): Use target hook.
23146 * gcc/targhooks.c (default_legitimize_address): New.
23147 * gcc/targhooks.h (default_legitimize_address): New.
23148 * gcc/target.h (legitimize_address): New.
23149 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
23150 (TARGET_INITIALIZER): Include it.
23151 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
23152
23153 * config/bfin/bfin-protos.h (legitimize_address): Remove.
23154 * config/bfin/bfin.c (legitimize_address): Remove.
23155 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
23156 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
23157 Remove.
506d7b68
PB
23158 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
23159 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
23160
23161 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
23162 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
23163 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
23164 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
23165 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
23166 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
23167 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
23168 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
23169 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
23170 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
23171 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
23172 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
23173 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
23174 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
23175 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
23176 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
23177 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
23178 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
23179 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
23180 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
23181 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
23182 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
23183 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
23184
23185 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
23186 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
23187 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
23188 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
23189 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
23190 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
23191 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
23192 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
23193 (thumb_legitimize_address): Delete.
23194 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
23195 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
23196 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
23197 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
23198 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
23199 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
23200 Delete.
23201 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
23202 Delete.
506d7b68
PB
23203
23204 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
23205 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
23206 * config/m32r/m32r.c (m32r_legitimize_address): New.
23207 * config/m68k/m68k.c (m68k_legitimize_address): New.
23208 * config/score/score.c (score_legitimize_address): Standardize.
23209 * config/score/score3.c (score3_legitimize_address): Standardize.
23210 * config/score/score3.h (score3_legitimize_address): Adjust.
23211 * config/score/score7.c (score7_legitimize_address): Standardize.
23212 * config/score/score7.h (score7_legitimize_address): Adjust.
23213 * config/sh/sh.c (sh_legitimize_address): New.
23214 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
23215
23216 * gcc/config/s390/s390.c (legitimize_address): Rename to...
23217 (s390_legitimize_address): ... this.
23218 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
23219 (sparc_legitimize_address): ... this.
23220 * gcc/config/i386/i386.c (legitimize_address): Rename to...
23221 (ix86_legitimize_address): ... this.
23222 * gcc/config/avr/avr.c (legitimize_address): Rename to...
23223 (avr_legitimize_address): ... this.
23224 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
23225 (mn10300_legitimize_address): ... this.
23226 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
23227 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
23228 (alpha_expand_mov): Adjust call.
23229
23230 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
23231 * config/spu/spu.c (spu_legitimize_address): Likewise.
23232 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
23233 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
23234
a3af5087
JM
232352009-05-04 Joseph Myers <joseph@codesourcery.com>
23236
23237 * intl.c (locale_encoding, locale_utf8): New.
23238 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
23239 * intl.h (locale_encoding, locale_utf8): Declare.
23240 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
23241 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
23242 New.
23243 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
23244 argument.
23245 (pp_tree_identifier): Define to call pp_base_tree_identifier.
23246 (pp_base_tree_identifier): Declare as function.
23247 (identifier_to_locale): Declare.
23248 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 23249 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 23250
ea5cd5f1
RG
232512009-05-04 Richard Guenther <rguenther@suse.de>
23252
23253 PR middle-end/40015
23254 * builtins.c (fold_builtin_memory_op): Do not decay to element
23255 type if the size matches the whole array.
23256
ddc2690a
KH
232572009-05-04 Kazu Hirata <kazu@codesourcery.com>
23258
23259 * expmed.c (synth_mult): When trying out a shift, pass the result
23260 of a signed shift.
23261
ef268d34
KH
232622009-05-04 Kazu Hirata <kazu@codesourcery.com>
23263
23264 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
23265 (shiftsub1_cost): New.
23266 (init_expmed): Compute shiftsub1_cost.
23267 (synth_mult): Optimize multiplications by constants of the form
23268 -(2^^m-1) for some constant positive integer m.
23269
255d3827
RG
232702009-05-03 Richard Guenther <rguenther@suse.de>
23271
23272 PR c/39983
23273 * c-typeck.c (array_to_pointer_conversion): Do not built
23274 ADDR_EXPRs of arrays of pointer-to-element type.
23275 * c-gimplify.c (c_gimplify_expr): Revert change fixing
23276 up wrong ADDR_EXPRs after-the-fact.
23277 * c-common.c (strict_aliasing_warning): Strip pointer
23278 conversions for obtaining the original type.
23279 * builtins.c (fold_builtin_memset): Handle array types.
23280 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
23281 and array types
23282
16c33770
RG
232832009-05-03 Richard Guenther <rguenther@suse.de>
23284
23285 PR middle-end/23329
23286 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
23287 Do not lose casts from array types with unknown extent to array
23288 types with known extent.
23289 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
23290 alias set compatibility.
23291
62a67c94
MLI
232922009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
23293
23294 * flags.h (extra_warnings): Delete.
23295 * toplev.c (process_options): Handle Wuninitialized here.
23296 * opts.c (extra_warnings): Delete.
23297 (set_Wextra): Delete.
23298 (common_handle_option): -Wextra can be handled automatically.
23299 * c-opts.c (c_common_handle_option): Delete obsolete code.
23300 (c_common_post_options): Simplify comment.
23301 * common.opt (W): Add Var.
23302 (Wextra): Add Var.
23303 (Wuninitialized): Initialize to -1.
23304
8c7926c4
AN
233052009-05-03 Adam Nemet <anemet@caviumnetworks.com>
23306 Richard Guenther <rguenther@suse.de>
23307
23308 * expr.c (get_def_for_expr): New function.
23309 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
23310 SSA rather than trees.
23311 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
23312 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
f100a4a8 23313
fa5da7de
JM
233142009-05-03 Joseph Myers <joseph@codesourcery.com>
23315
23316 * c-common.c (reswords): Add _Imaginary.
23317 * c-common.c (enum rid): Add RID_IMAGINARY.
23318
2ddd5020
PB
233192009-05-03 Paolo Bonzini <bonzini@gnu.org>
23320
23321 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
23322 Patch by Richard Guenther.
23323
aea88c05
AS
233242009-05-03 Anatoly Sokolov <aesok@post.ru>
23325
23326 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
23327 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
23328 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
23329 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
23330 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
23331 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
23332 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
23333 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
23334 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
23335 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
23336 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
23337 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
23338 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
23339 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
23340 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
23341 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
23342 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
23343 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
23344
85e59f3a
RG
233452009-05-02 Richard Guenther <rguenther@suse.de>
23346
23347 PR tree-optimization/39940
23348 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
23349 doing so.
23350
4636b850
RG
233512009-05-02 Richard Guenther <rguenther@suse.de>
23352
23353 PR middle-end/40001
23354 * tree-ssa.c (execute_update_addresses_taken): Properly check
23355 if we can mark a variable DECL_GIMPLE_REG_P.
23356 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
23357 back to the end of the function.
23358 (is_gimple_reg_type): Remove complex type special casing.
23359 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
23360 if not optimizing.
23361
5e10cb5a
BE
233622009-05-02 Ben Elliston <bje@au.ibm.com>
23363
23364 * doc/collect2.texi (Collect2): Document search path behaviour
23365 when configured with --with-ld.
23366
048bf48b
JH
233672009-05-02 Jan Hubicka <jh@suse.cz>
23368
23369 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
23370 parameter; update callers.
aa016ff7
UB
23371 (coalesce_cost_edge): EH edges are costier because they needs
23372 splitting even if not critical and even more costier when there are
23373 multiple EH predecestors.
048bf48b 23374
d5c5f9ab
JH
233752009-05-02 Jan Hubicka <jh@suse.cz>
23376
23377 * except.c (remove_eh_handler_and_replace): Handle updating after
23378 removing TRY blocks.
23379
2ed1959a
EB
233802009-05-02 Eric Botcazou <ebotcazou@adacore.com>
23381
23382 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
23383
d363a7e7
SB
233842009-05-02 Steven Bosscher <steven@gcc.gnu.org>
23385
23386 * varasm.c: Do not include c-pragma.h.
23387 * attribs.c: Do not incude c-common.h.
23388
9c3d55b4
MM
233892009-05-01 Michael Matz <matz@suse.de>
23390
23391 * calls.c (initialize_argument_information): Handle SSA names like
23392 decls with a non MEM_P DECL_RTL.
23393
ea264ca5
SB
233942009-05-01 Steven Bosscher <steven@gcc.gnu.org>
23395
23396 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
23397 * ipa-utils.c: Likewise.
23398 * ipa-type-escape.c: Likewise.
23399 * cgraphunit.c Do not include c-common.h.
23400 * ipa-pure-const.c: Likewise.
23401 * tree-if-conv.c: Likewise.
23402 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
23403 * ipa-struct-reorg.c: Likewise.
23404 * tree-nomudflap.c: Likewise.
23405 * tree-ssa-structalias.c: Likewise.
23406
6c5d4d1a
SB
234072009-05-01 Steven Bosscher <steven@gcc.gnu.org>
23408
23409 * store-motion.c: Many cleanups to make this pass a first-class
23410 citizen instead of an appendix to gcse load motion. Add TODO list
23411 to make this pass faster/cleaner/better.
23412
23413 (struct ls_expr): Post gcse.c-split cleanups.
23414 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
23415 "stores" field to "avail_stores".
23416 (pre_ldst_mems): Rename to store_motion_mems.
23417 (pre_ldst_table): Rename to store_motion_mems_table.
23418 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
23419 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
23420 (ldst_entry): Rename to st_expr_entry, update users.
23421 (free_ldst_entry): Rename to free_st_expr_entry, update users.
23422 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
23423 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
23424 update caller.
6c5d4d1a
SB
23425 (first_ls_expr): Rename to first_st_expr, update users.
23426 (next_ls_expr): Rename to next_st_expr, update users.
23427 (print_ldst_list): Rename to print_store_motion_mems. Print names of
23428 fields properly for store motion instead of names inherited from load
23429 motion in gcse.c.
23430 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
23431 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
23432 are done with it.
23433
23434 (ae_kill): Rename to st_kill, update users.
23435 (ae_gen): Rename to st_avloc, update users.
23436 (transp): Rename to st_transp, update users.
23437 (pre_insert_map): Rename to st_insert_map, update users.
23438 (pre_delete_map): Rename to st_delete_map, update users.
23439 (insert_store, build_store_vectors, free_store_memory,
23440 one_store_motion_pass): Update for abovementioned changes.
23441
23442 (gcse_subst_count, gcse_create_count): Remove.
23443 (one_store_motion_pass): New statistics counters "n_stores_deleted"
23444 and "n_stores_created", local variables.
23445
23446 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
23447 use for_each_rtx.
23448
23449 (regvec, compute_store_table_current_insn): Remove.
23450 (reg_set_info, reg_clear_last_set): Remove.
23451 (compute_store_table): Use DF caches instead of local dataflow
23452 solvers.
23453
b02cec6e
JM
234542009-05-01 Joseph Myers <joseph@codesourcery.com>
23455
23456 * c-objc-common.c (c_tree_printer): Print identifiers with
23457 pp_identifier, not pp_string. Mark "({anonymous})" for
23458 translation.
23459 * c-pretty-print.c (pp_c_ws_string): New.
23460 (pp_c_cv_qualifier, pp_c_type_specifier,
23461 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
23462 pp_c_storage_class_specifier, pp_c_function_specifier,
23463 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
23464 pp_c_primary_expression, pp_c_postfix_expression,
23465 pp_c_unary_expression, pp_c_shift_expression,
23466 pp_c_relational_expression, pp_c_equality_expression,
23467 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
23468 use pp_string and pp_c_ws_string in place of pp_identifier and
23469 pp_c_identifier for non-identifiers. Mark English strings for
23470 translation.
23471 * c-pretty-print.h (pp_c_ws_string): Declare.
23472
cd533689
PP
234732009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
23474 Roland McGrath <roland@redhat.com>
23475
aa016ff7 23476 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
23477 (ENABLE_LD_BUILDID): New configuration option.
23478 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
23479 (LINK_BUILDID_SPEC): New macro.
23480 (init_spec): If defined, prepend it between LINK_EH_SPEC and
23481 link_spec.
23482 * doc/install.texi: Document --enable-linker-build-id option.
23483 * configure: Rebuild.
23484 * config.in: Rebuild.
23485
ba6adec4
AN
234862009-04-30 Adam Nemet <anemet@caviumnetworks.com>
23487
23488 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
23489 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
23490 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
23491 MIPS_GP_SAVE_AREA_SIZE.
23492 * config/mips/mips.c (struct mips_frame_info): Update comment
23493 before arg_pointer_offset and hard_frame_pointer_offset.
23494 (mips_compute_frame_info): Update diagram before function: to
23495 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
23496 indicate the position of frame_pointer_rtx with -fstack-protector and
23497 to show args_size. Don't allocate cprestore area for leaf functions
23498 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
23499 cprestore_size.
23500 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
23501
48f5b722
MM
235022009-04-30 Michael Matz <matz@suse.de>
23503
ba6adec4
AN
23504 PR tree-optimization/39955
23505 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 23506
b65d6744
DK
235072009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
23508
23509 * ira.c (setup_cover_and_important_classes): Use safe macro
23510 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
23511 directly.
23512 * genpreds.c (write_tm_preds_h): Output suitable definition of
23513 REG_CLASS_FOR_CONSTRAINT.
23514
f136c8ae
RAE
235152009-04-30 Rafael Avila de Espindola <espindola@google.com>
23516
23517 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
23518 instead of an int.
23519 * bitmap.c (bitmap_descriptor): Likewise.
23520 * ggc-common.c (loc_descriptor): Likewise.
23521 * varray.c (varray_descriptor): Likewise.
23522 * vec.c (vec_descriptor): Likewise.
23523
43fcece8 235242009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
23525
23526 * Makefile.in (dce.o): Add $(EXCEPT_H).
23527 * dce.c: Include except.h and delete redundant vector definitions.
23528 (deletable_insn_p): Return false for non-call insns that can throw
23529 if DF is running.
23530
df35c271
SB
235312009-04-30 Steven Bosscher <steven@gcc.gnu.org>
23532
23533 * gcse.c (ae_gen): Remove.
23534 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
23535 and make non-static function to make it available in store-motion.c.
23536 Update call sites with search-and-replace.
23537 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
23538 extract_mentioned_regs, extract_mentioned_regs_helper,
23539 find_moveable_store, compute_store_table, load_kills_store, find_loads,
23540 store_killed_in_insn, store_killed_after, store_killed_before,
23541 build_store_vectors, insert_insn_start_basic_block, insert-store,
23542 remove_reachable_equiv_notes, replace_store_insn, delete_store,
23543 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
23544 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
23545 * store-motion.c: ...new file. Also copy data structures from gcse.c
23546 and clean up to remove parts not used by store motion.
23547 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
23548 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
23549
f711a87a
RR
235502009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23551
23552 PR target/38571
23553 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
23554 when optimizing for size.
23555
fa5ed76e
HPN
235562009-04-30 Hans-Peter Nilsson <hp@axis.com>
23557
23558 * gcse.c (gcse_constant_p): Fix typo in last change.
23559
0acbbdb0
RAE
235602009-04-30 Rafael Avila de Espindola <espindola@google.com>
23561
23562 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
23563
82f5c05d
AK
235642009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
23565
23566 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
23567
6d8f135b
JW
235682009-04-29 James E. Wilson <wilson@codesourcery.com>
23569
23570 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
23571 CONST_HIGH_PART result.
23572
c21ca196
AS
235732009-04-29 Anatoly Sokolov <aesok@post.ru>
23574
23575 * config/avr/avr.c (initial_elimination_offset): Rename to
23576 avr_initial_elimination_offset.
23577 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
23578 change return type to bool.
23579 (avr_can_eliminate): New function.
23580 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
23581 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
23582 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 23583 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
23584 avr_initial_elimination_offset.
23585 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
23586 (avr_initial_elimination_offset): Define.
23587
2a34bece 235882009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 23589 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
23590
23591 PR rtl-optimization/39938
23592 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
23593 * cfgrtl.c: Include insn-attr.h.
23594 (rest_of_pass_free_cfg): New function.
23595 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
23596 * resource.c (init_resource_info): Remove call to df_analyze.
23597
5dc7911e
RG
235982009-04-29 Richard Guenther <rguenther@suse.de>
23599
23600 PR target/39943
23601 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
23602 allow conversion to signed integers.
23603
1fe479fd
RG
236042009-04-29 Richard Guenther <rguenther@suse.de>
23605
23606 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
23607 shifts of floating point vectors if the shift amount is
23608 a constant multiple of the element size.
23609
8e001680
AK
236102009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
23611 Michael Matz <matz@suse.de>
23612
23613 PR middle-end/39927
23614 PR bootstrap/39929
23615 * tree-outof-ssa.c (emit_partition_copy): New function.
23616 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
23617 insert_part_to_rtx_on_edge): Perform the partition base var
23618 copy using emit_partition_copy.
23619 (insert_value_copy_on_edge): Convert constants to the right mode.
23620 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
23621 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
23622
e50e3081
BS
236232009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
23624
23625 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
23626 scan backwards to try to find a constant to initialize it.
23627
4e5d521b
BS
23628 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
23629 insn before the loop_end instruction, don't look past labels.
23630
7c90021d
RG
236312009-04-29 Richard Guenther <rguenther@suse.de>
23632
23633 PR middle-end/39937
23634 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
23635 loose type conversions.
23636 (forward_propagate_addr_expr): Fix tuplification bug. Remove
23637 stmts only if there are no uses of its definition.
23638
97a988bc
BS
236392009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
23640
23641 * config/bfin/bfin.h (splitting_loops): Declare.
23642 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
23643 Reorder bit definitions to be ascending.
23644 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
23645 * config/bfin/bfin.c (splitting_loops): New variable.
23646 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
23647 (struct loop_info): Remove members INIT and LOOP_INIT.
23648 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
23649 the LSETUP sequence. Allow LC to be loaded from any register, but
23650 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
23651 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
23652 set to 1.
23653 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
23654 of reload_completed.
aa016ff7 23655
97a988bc
BS
23656 From Jie Zhang:
23657 * config/bfin/bfin.md (movsi_insn): Refine constraints.
23658
0c463e16
RAE
236592009-04-29 Rafael Avila de Espindola <espindola@google.com>
23660
23661 * Makefile.in (PLUGIN_VERSION_H): New.
23662 (OBJS-common): Remove plugin-version.o.
23663 (plugin.o): Depend on (PLUGIN_VERSION_H).
23664 (plugin-version.o): Remove.
23665 * configure: Regenerate
23666 * configure.ac: Create plugin-version.h.
23667 * gcc-plugin.h (plugin_gcc_version): Remove.
23668 (plugin_default_version_check): Change signature.
23669 * plugin-version.c: Remove.
23670 * plugin.c: Include plugin-version.h.
23671 (str_plugin_gcc_version_name): Remove.
23672 (try_init_one_plugin): Pass gcc version to plugin_init.
23673 (plugin_default_version_check): Both gcc and plugin versions are now
23674 arguments.
23675
307e7eab 236762009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
f100a4a8 23677
307e7eab
BS
23678 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
23679 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
23680 Remove special case testing for last insn of inner loops. Don't fail
23681 if the loop ends with a jump, emit an extra nop instead.
307e7eab 23682
c5d96723
BS
23683 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
23684 DREGS rather than comparing directly. Remove code that tries to
23685 account for latencies.
23686
de0b4ad5
RG
236872009-04-29 Richard Guenther <rguenther@suse.de>
23688
23689 PR tree-optimization/39941
23690 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
23691 eliminating an indirect call.
23692
3a19701a
RG
236932009-04-29 Richard Guenther <rguenther@suse.de>
23694
23695 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
23696 parameter. Allow invariants as base if !require_lvalue.
23697 (verify_gimple_assign_single): Adjust.
23698
a0a31d1e
BS
236992009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
23700
23701 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
23702 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
23703 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
23704 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
23705 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
23706 a VEC_SELECT.
aa016ff7
UB
23707 * config/bfin/bfin.c (bfin_expand_builtin,
23708 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 23709
795bd26a
RG
237102009-04-28 Richard Guenther <rguenther@suse.de>
23711
23712 * tree-vect-loop.c (get_initial_def_for_induction): Use
23713 correct types for pointer increment.
23714
04be270f
KG
237152009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23716
23717 * toplev.c (print_version): Update GMP version string calculation.
23718
e1a3b85c
EB
237192009-04-28 Eric Botcazou <ebotcazou@adacore.com>
23720
23721 PR rtl-optimization/39938
23722 * resource.c (init_resource_info): Add call to df_analyze.
23723
8224166e
UB
237242009-04-28 Uros Bizjak <ubizjak@gmail.com>
23725
23726 * config/alpha/alpha.md (usegp): Cast the result of
23727 alpha_find_lo_sum_using_gp to enum attr_usegp.
23728 * config/alpha/alpha.c (override_options): Remove end-of-structure
23729 marker element from cpu_table. Use array size of cpu_table to handle
23730 -mcpu and -mtune options.
23731 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
23732
c5f0fe67
JM
237332009-04-28 Joseph Myers <joseph@codesourcery.com>
23734
23735 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
23736 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
23737 tune_32 and tune_64.
23738 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
23739 support on PowerPC.
23740 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
23741 * config/rs6000/option-defaults.h: ... here. New file.
23742 (OPT_64, OPT_32): Define.
23743 (MASK_64BIT): Define to 0 if not already defined.
23744 (OPT_ARCH64, OPT_ARCH32): Define.
23745 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
23746 and tune_64.
23747
0c48a567
RR
237482009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23749
23750 * config/arm/arm.c (arm_override_options): Emit error on using
23751 fpa with AAPCS.
23752
f1028b9d
UB
237532009-04-28 Uros Bizjak <ubizjak@gmail.com>
23754
23755 PR rtl-optimization/39914
23756 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
23757 registers for allocnos created from user-defined variables only
23758 when not optimizing.
23759
e0dd989a
RG
237602009-04-28 Richard Guenther <rguenther@suse.de>
23761
23762 PR middle-end/39937
23763 * fold-const.c (fold_binary): Use distribute_real_division only
23764 on float types.
23765
9a17c91d
SE
237662009-04-28 Steve Ellcey <sje@cup.hp.com>
23767
23768 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
23769 add hpux-stdint.h to tm_file.
23770 (hppa[12]*-*-hpux11*): Ditto.
23771 (ia64*-*-hpux*): Ditto.
23772 * config/hpux-stdint.h: New.
60839f5d 23773 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 23774 __STDC_EXT__ for all compiles.
60839f5d
EB
23775 * config/pa/pa-hpux.h: Ditto.
23776 * config/pa/pa-hpux10.h: Ditto.
23777 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 23778
af04e659
CM
237792009-04-28 Catherine Moore <clm@codesourcery.com>
23780
23781 * debug.h (set_name): Add comment.
23782
04ef80ce
AP
237832009-04-28 Andrew Pinski <pinskia@gmail.com>
23784
23785 PR target/39929
23786 * config/darwin.c (machopic_gen_offset): Check
23787 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
23788 * config/arm/arm.c (require_pic_register): Likewise.
23789
65ad77af
PB
237902009-04-28 Paolo Bonzini <bonzini@gnu.org>
23791
8224166e
UB
23792 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
23793 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
23794 m32c_promote_prototypes): Delete.
65ad77af 23795
1b15a008
MM
237962009-04-28 Michael Matz <matz@suse.de>
23797
23798 PR middle-end/39922
23799 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
23800 constants.
23801
7569a6cc
RG
238022009-04-28 Richard Guenther <rguenther@suse.de>
23803
f1028b9d 23804 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 23805
ead204d9
RR
238062009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23807
23808 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
23809 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
23810 * config/arm/arm-tune.md: Regenerate.
23811
f2c45f08 238122009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 23813
f2c45f08
AM
23814 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
23815 block if there are complex incoming edges.
23816 (sel_merge_blocks): Remove useless assert.
23817 (sel_redirect_edge_and_branch): Check that edge was redirected.
23818 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
23819 (sel_find_rgns): Delete declaration.
23820 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
23821 the region when it is not a preheader.
23822
7a00d767
UB
238232009-04-28 Uros Bizjak <ubizjak@gmail.com>
23824
23825 PR c/39323
23826 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
23827
448ee662
RG
238282009-04-28 Richard Guenther <rguenther@suse.de>
23829
23830 * tree.h (SSA_NAME_VALUE): Remove.
23831 (struct tree_ssa_name): Remove value_handle member.
23832 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
23833 array for jump threading.
23834 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
23835 SSA_NAME_VALUEs.
23836 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
23837 * tree-flow.h (threadedge_initialize_values): Declare.
23838 (threadedge_finalize_values): Likewise.
23839 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
23840 (SSA_NAME_VALUE): Define.
23841 (threadedge_initialize_values): New function.
23842 (threadedge_finalize_values): Likewise.
23843 * tree-ssa-dom.c (ssa_name_values): New global variable.
23844 (SSA_NAME_VALUE): Define.
f1028b9d 23845 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 23846
8644a673
IR
238472009-04-28 Ira Rosen <irar@il.ibm.com>
23848
23849 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
f100a4a8 23850 Use REPORT_VECTORIZED_LOCATIONS instead
8644a673
IR
23851 REPORT_VECTORIZED_LOOPS.
23852 * tree-vectorizer.c (vect_verbosity_level): Make static.
23853 (vect_loop_location): Rename to vect_location.
23854 (vect_set_verbosity_level): Update comment.
23855 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
23856 and vect_location.
23857 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
23858 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
23859 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
23860 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
23861 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 23862 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
f100a4a8 23863 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
23864 REPORT_UNVECTORIZED_LOCATIONS.
23865 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
f100a4a8 23866 and vect_used_in_loop and to vect_unused_in_scope and
8644a673
IR
23867 vect_used_in_scope.
23868 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
23869 (vect_verbosity_level): Remove declaration.
23870 (vect_analyze_operations): Likewise.
23871 (vect_analyze_stmt): Declare.
23872 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
23873 REPORT_UNVECTORIZED_LOCATIONS.
23874 (vect_get_loop_niters): Fix indentation.
23875 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
23876 (vect_analyze_loop_operations): New function.
23877 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
23878 vect_analyze_operations.
23879 (vect_is_simple_reduction): Use new names.
23880 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
23881 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
23882 to specify whether the data references can be a part of interleaving
23883 chain.
8644a673
IR
23884 (vect_analyze_data_ref_dependence): Use new names.
23885 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
23886 (vect_create_addr_base_for_vector_ref): Remove redundant code.
23887 * tree-vect-patterns.c (widened_name_p): Use new names.
23888 (vect_recog_dot_prod_pattern): Likewise.
23889 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
f100a4a8 23890 (process_use, vect_mark_stmts_to_be_vectorized,
8644a673
IR
23891 vect_model_simple_cost, vect_model_store_cost,
23892 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
23893 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
23894 vectorizable_operation, vectorizable_type_demotion,
23895 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
23896 vectorizable_condition): Likewise.
23897 (vect_analyze_operations): Split into vect_analyze_loop_operations
23898 and ...
23899 (vect_analyze_stmt): ... new function.
23900 (new_stmt_vec_info): Use new names.
23901 (vect_is_simple_use): Use new names and fix comment.
23902 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
23903 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
23904
b91322f2
UB
239052009-04-28 Uros Bizjak <ubizjak@gmail.com>
23906
23907 PR target/39911
23908 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
23909 and integer modes for x87 operands. Do not ICE for unsupported size,
23910 generate error instead. Generate error for unsupported operand types.
23911 ['z']: Do not handle HImode memory operands specially. Warning
23912 for floating-point operands. Fallthru to 'Z' for unsupported operand
23913 types. Do not ICE for unsupported size, generate error instead.
23914 (output_387_binary_op): Use %Z to output operands.
23915 (output_fp_compare): Ditto.
23916 (output_387_reg_move): Ditto.
23917
b2ed71b6
BE
239182009-04-28 Ben Elliston <bje@au.ibm.com>
23919
23920 PR c++/35652
23921 Revert:
23922
23923 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23924
23925 * builtins.c (c_strlen): Do not warn here.
23926 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
23927 * c-common.c (pointer_int_sum): Take an explicit location.
23928 Warn about offsets out of bounds.
23929 * c-common.h (pointer_int_sum): Adjust declaration.
23930
81f40b79
ILT
239312009-04-27 Ian Lance Taylor <iant@google.com>
23932
23933 * collect2.c (is_ctor_dtor): Change type of ret field in struct
23934 names to symkind.
23935 * dce.c (run_fast_df_dce): Change type of old_flags to int.
23936 * df-core.c (df_set_flags): Change return type to int. Change
23937 type of old_flags to int.
23938 (df_clear_flags): Likewise.
23939 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
23940 (df_get_conditional_uses): Likewise.
23941 * df.h (df_set_flags, df_clear_flags): Update declarations.
23942 * dwarf2out.c (struct indirect_string_node): Change type of form
23943 field to enum dwarf_form.
23944 (AT_string_form): Change return type to enum dwarf_form.
23945 * fixed-value.c (fixed_compare): Add cast to enum type.
23946 * fwprop.c (update_df): Change 0 to VOIDmode.
23947 * gensupport.c: Change 0 to UNKNOWN.
23948 * gimple.h (gimple_cond_code): Add cast to enum type.
23949 * haifa-sched.c (reemit_notes): Add cast to enum type.
23950 * hooks.c (hook_int_void_no_regs): Remove function.
23951 * hooks.h (hook_int_void_no_regs): Remove declaration.
23952 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 23953 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
23954 * real.c (real_arithmetic): Add cast to enum type.
23955 (real_compare): Likewise.
23956 * target.h (struct gcc_target): Change return type of
23957 branch_target_register_class to enum reg_class.
23958 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
23959 default_branch_target_register_class.
7a00d767 23960 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 23961 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 23962 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
23963 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
23964 cast to int.
23965 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
23966 ERROR_MARK.
23967 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
23968 vect_uninitialized_def. Change 0 to ERROR_MARK.
23969 * tree-vect-stmts.c (supportable_widening_operation): Don't
23970 initialize icode1 and icode2.
7a00d767 23971 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
23972 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
23973 and to STD_C89.
23974 (cmn_err_flag_specs): Change 0 to STD_C89.
23975 (cmn_err_char_table): Likewise.
23976 * config/arm/arm.c (get_arm_condition_code): Change type of code
23977 to enum arm_cond_code.
23978 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
23979 (IWMMXT_BUILTIN2): Likewise.
23980 (neon_builtin_type_bits): Don't define typedef.
23981 (neon_builtin_datum): Change type of bits field to int.
23982 (arm_expand_neon_args): Add cast to enum type.
23983 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
23984 TLS_MODEL_NONE.
23985 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
23986 casts to enum type.
23987 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
23988 MIPS_FP_COND_f.
23989 * config/mips/mips.md (jal_macro): Return enum constant.
23990 (single_insn): Likewise.
23991 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
23992 CODE_FOR_nothing.
23993 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23994 casts to enum type.
23995 * config/s390/s390.c (s390_tune_flags): Change type to int.
23996 (s390_arch_flags): Likewise.
7a00d767 23997 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
23998 * config/s390/s390.h (s390_tune_flags): Update declaration.
23999 (s390_arch_flags): Likewise.
24000 * config/sh/sh.c (prepare_move_operands): Compare
24001 tls_symbolic_operand result with enum constant.
24002 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
24003 (sh_expand_prologue): Add cast to enum type.
24004 (sh_expand_epilogue): Likewise.
24005 (tls_symbolic_operand): Change return type to enum tls_model.
24006 (fpscr_set_from_mem): Add cast to enum type.
24007 (legitimize_pic_address): Compare tls_symbolic_operand result with
24008 enum constant.
24009 (sh_target_reg_class): Change return type to enum reg_class.
24010 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
24011 PROCESSOR_xxx.
7a00d767
UB
24012 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
24013 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
24014 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
24015 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
24016 (delayed_branch, tls_call_delay): Likewise.
24017 (eligible_for_sibcall_delay): Likewise.
f100a4a8 24018 (eligible_for_return_delay): Likewise.
81f40b79
ILT
24019 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
24020 (spu_expand_builtin_1): Likewise.
24021
24022 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
24023 for all types of conversions.
24024 (output_init_element): Issue -Wc++-compat warning if needed when
24025 initializing a bitfield with enum type.
24026 * c-parser.c (c_parser_expression): Set original_type to
9302a061 24027 original_type of right hand operand of comma operator.
81f40b79 24028
e4ae5e77
RW
240292009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24030
24031 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
24032 grammar nits.
7a00d767 24033 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
24034 * doc/cpp.texi (Standard Predefined Macros)
24035 (Implementation-defined behavior): Likewise.
7a00d767 24036 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
24037 * doc/gimple.texi (GIMPLE Exception Handling)
24038 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 24039 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
24040 * doc/invoke.texi (Warning Options, Optimize Options)
24041 (AVR Options, Darwin Options): Likewise.
24042 (Optimize Options): Reformulate -fwhole-program description.
24043 * doc/loop.texi (Lambda): Likewise.
24044 * doc/md.texi (Output Template, Define Constraints)
24045 (Standard Names, Insn Splitting): Likewise.
24046 * doc/options.texi (Option properties): Likewise.
24047 * doc/passes.texi (Tree-SSA passes): Likewise.
24048 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
24049 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
24050 (File Names and DBX): Likewise.
24051 * doc/trouble.texi (Incompatibilities): Likewise.
24052
1883802f 240532009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
24054
24055 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
24056 instruction is correct.
24057
1883802f 240582009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
24059
24060 Allow non-constant arguments to conversion intrinsics.
24061 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
24062 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
24063 * spu.c (print_operand): Handle 'v' and 'w'.
24064 (exp2_immediate_p, spu_gen_exp2): Define.
24065 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
24066 spu_convtf_1): Update parameter descriptions.
7a00d767 24067 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
24068 * constraints.md ('v', 'w'): New.
24069 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
24070 Remove.
24071 (i2f, I2F): New define_mode_attr.
24072 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
24073 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
24074 fixuns_truncv4sfv4si2): Update to use mode attribute.
24075 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
24076 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
24077 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
24078 patterns for combine.
24079
5f39ad47
SB
240802009-04-27 Steven Bosscher <steven@gcc.gnu.org>
24081
24082 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
24083 (cprop, hoist, pre, store_motion): New debug counters.
24084 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
24085 is not an RTL pass anymore.
24086 (pass_profiling): Remove extern decl for pass removed in 2005.
24087 (pass_gcse, pass_jump_bypass): Remove.
24088 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
24089 to 0 for clean state.
24090 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
24091 * cse.c (gate_handle_cse_after_global_opts,
24092 rest_of_handle_cse_after_global_opts): New functions.
24093 (pass_cse_after_global_opts): New pass, does local CSE.
24094 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
24095 (TV_CPROP): New timevar.
24096 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
24097 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
24098 (gcse_main, recompute_all_luids): Remove.
24099 (compute_hash_table_work): Call max_reg_num instead of reading
24100 max_gcse_regno.
24101 (cprop_jump): Don't set run_jump_opt_after_gcse.
24102 (constprop_register): Always allow to alter jumps.
24103 (cprop_insn): Likewise.
24104 (do_local_cprop): Likewise.
24105 (local_cprop_pass): Likewise. Return non-zero if something changed.
24106 (cprop): Remove function, fold interesting bits into one_cprop_pass.
24107 (find_implicit_sets): Add note about missed optimization opportunity.
24108 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
24109 pass_rtl_cprop execute function.
24110 Don't bother tracking the pass number, each pass gets its own dumpfile
24111 now anyway.
24112 Always allow to alter jumpsand bypass jumps.
24113 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
24114 will just find no suitable set.
24115 (pre_edge_insert): Fix dumping, this function is for PRE only.
24116 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
24117 pass_rtl_pre execute function.
24118 (hoist_code): Return non-zero if something changed. Keep track of
24119 substitutions and insertions for statistics gathering similar to PRE.
24120 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
24121 called from the pass_rtl_hoist execute function. Show pass statistics.
24122 (compute_store_table): Use max_reg_num directly instead of using the
24123 formerly global max_gcse_regno.
24124 (build_store_vectors): Likewise.
24125 (replace_store_insn): Fix dumping.
24126 (store_motion): Rename to ...
24127 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
24128 pass, called from the pass_rtl_store_motion execute function. Keep
24129 track of substitutions and insertions for statistics gathering similar
24130 to PRE.
24131 (bypass_jumps): Remove, fold interesting bits into ...
24132 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
24133 from the pass_rtl_cprop execute function.
24134 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
24135 pass_jump_bypass): Remove.
24136 (gate_handle_gcse, rest_of_handle_gcse): Remove.
24137 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
24138 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
24139 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
24140 (gate_rtl_store_motion, execute_rtl_store_motion,
24141 pass_rtl_store_motion): New.
24142 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
24143 make it clear that -fcse-skip-blocks is a no-op for backward compat.
24144 * passes.c (init_optimization_passes): Remove pass_gcse and
24145 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
24146 and cse_after_global_opts in place of pass_gcse. Schedule cprop
24147 instead of pass_jump_bypass.
24148
c685de4a
RG
241492009-04-27 Richard Guenther <rguenther@suse.de>
24150
24151 PR middle-end/39928
24152 * gimplify.c (gimplify_expr): If we are required to create
24153 a temporary make sure it ends up as register.
24154
72d41f29
L
241552009-04-27 H.J. Lu <hongjiu.lu@intel.com>
24156
24157 PR target/39903
24158 * config/i386/i386.c (construct_container): Don't call
24159 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
24160 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
24161
e97809c6
MM
241622009-04-27 Michael Matz <matz@suse.de>
24163
24164 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
24165 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
bd62d832 24166 * tree-ssa-live.h (find_replaceable_exprs): Return a bitmap.
e97809c6
MM
24167 (dump_replaceable_exprs): Take a bitmap.
24168 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
24169 array.
24170 (expand_gimple_basic_block): Likewise.
24171 * tree-ssa-ter.c (struct temp_expr_table_d): Make
24172 replaceable_expressions member a bitmap.
24173 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
24174 (mark_replaceable): Likewise.
24175 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
24176 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
24177
211ca15c
RG
241782009-04-27 Richard Guenther <rguenther@suse.de>
24179
24180 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
24181 (verify_stmts): Dispatch to gimple/type verification code.
24182 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
24183 issue with call argument types.
24184
fca5f3d1
MM
241852009-04-27 Michael Matz <matz@suse.de>
24186
24187 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
24188 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
24189 to above.
24190
a1fa3e79 241912009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 24192 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
24193
24194 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
24195 a label's basic block.
24196 (mark_target_live_regs): Tidy and rework obsolete comments.
24197 Change back DF problem to LIVE. If a label starts a basic block,
24198 assume that all registers that used to be live then still are.
24199 (init_resource_info): If a label starts a basic block, set its
24200 BLOCK_FOR_INSN accordingly.
24201 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
24202
33b223c0
RG
242032009-04-27 Richard Guenther <rguenther@suse.de>
24204
24205 * tree-flow-inline.h (function_ann): Remove.
24206 (get_function_ann): Likewise.
24207 * tree-dfa.c (create_function_ann): Remove.
24208 * tree-flow.h (struct static_var_ann_d): Remove.
24209 (struct function_ann_d): Likewise.
24210 (union tree_ann_d): Remove fdecl member.
24211 (function_ann_t): Remove.
24212 (function_ann, get_function_ann, create_function_ann): Remove
24213 declarations.
24214
e3136fa2
UB
242152009-04-27 Uros Bizjak <ubizjak@gmail.com>
24216
24217 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
24218
f87c9042
JH
242192009-04-27 Jan Hubicka <jh@suse.cz>
24220
24221 * ipa-pure-const.c (struct funct_state_d): New fields
24222 state_previously_known, looping_previously_known; remove
24223 state_set_in_source.
24224 (analyze_function): Use new fields.
24225 (propagate): Avoid assumption that state_set_in_source imply
24226 nonlooping.
24227
24228 * tree-ssa-loop-niter.c (finite_loop_p): New function.
24229 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
24230 * cfgloop.h (finite_loop_p): Declare.
24231
33abd718
MM
242322009-04-26 Michael Matz <matz@suse.de>
24233
e3136fa2 24234 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 24235
ddc34084
MM
242362009-04-26 Michael Matz <matz@suse.de>
24237
24238 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
24239 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
24240 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
24241 pass_mark_used_blocks): Remove.
24242 * tree-optimize.c (pass_free_datastructures,
24243 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
24244 * passes.c (init_optimization_passes): Don't call
24245 pass_mark_used_blocks, remove dead code.
24246
1fec7ed4
L
242472009-04-26 H.J. Lu <hongjiu.lu@intel.com>
24248
24249 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
24250 * tree-ssa-live.h (register_ssa_partition): Likewise.
24251
4e3825db
MM
242522009-04-26 Michael Matz <matz@suse.de>
24253
24254 Expand from SSA.
24255 * builtins.c (fold_builtin_next_arg): Handle SSA names.
24256 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
24257 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
f100a4a8 24258 SSA names.
4e3825db
MM
24259 (compare_pairs): Swap cost comparison.
24260 (coalesce_ssa_name): Don't use change_partition_var.
24261 * tree-nrv.c (struct nrv_data): Add modified member.
24262 (finalize_nrv_r): Set it.
24263 (tree_nrv): Use it to update statements.
24264 (pass_nrv): Require PROP_ssa.
24265 * tree-mudflap.c (mf_decl_cache_locals,
24266 mf_build_check_statement_for): Use make_rename_temp.
24267 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
24268 * alias.c (find_base_decl): Handle SSA names.
24269 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
24270 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
24271 * rtl.h (set_reg_attrs_for_parm): Declare.
24272 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
24273 to "optimized", remove unused locals at finish.
24274 (execute_free_datastructures): Make global, call
24275 delete_tree_cfg_annotations.
24276 (execute_free_cfg_annotations): Don't call
24277 delete_tree_cfg_annotations.
24278
24279 * ssaexpand.h: New file.
24280 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 24281 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
24282 (expand_expr_real_1): Expand SSA names.
24283 * cfgexpand.c (toplevel): Include ssaexpand.h.
24284 (SA): New global variable.
24285 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
24286 (SSAVAR): New macro.
24287 (set_rtl): New helper function.
24288 (add_stack_var): Deal with SSA names, use set_rtl.
24289 (expand_one_stack_var_at): Likewise.
24290 (expand_one_stack_var): Deal with SSA names.
24291 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
24292 before unique numbers.
24293 (expand_stack_vars): Use set_rtl.
24294 (expand_one_var): Accept SSA names, add asserts for them, feed them
24295 to above subroutines.
24296 (expand_used_vars): Expand all partitions (without default defs),
24297 then only the local decls (ignoring those expanded already).
24298 (expand_gimple_cond): Remove edges when jumpif() expands an
24299 unconditional jump.
24300 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
24301 or remove abnormal edges. Ignore insns setting the LHS of a TERed
24302 SSA name.
24303 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
24304 members of SA; deal with PARM_DECL partitions here; expand
24305 all PHI nodes, free tree datastructures and SA. Commit instructions
24306 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
24307 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
24308 info and statements at start, collect garbage at finish.
24309 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
24310 (VAR_ANN_PARTITION) Remove.
24311 (change_partition_var): Don't declare.
24312 (partition_to_var): Always return SSA names.
24313 (var_to_partition): Only accept SSA names.
24314 (register_ssa_partition): Only check argument.
24315 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
24316 member.
24317 (delete_var_map): Don't free it.
24318 (var_union): Only accept SSA names, simplify.
24319 (partition_view_init): Mark only useful SSA names as used.
24320 (partition_view_fini): Only deal with SSA names.
24321 (change_partition_var): Remove.
24322 (dump_var_map): Use ssa_name instead of partition_to_var member.
24323 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
24324 basic blocks.
24325 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
24326 (struct _elim_graph): New member const_dests; nodes member vector of
24327 ints.
24328 (set_location_for_edge): New static helper.
24329 (create_temp): Remove.
24330 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 24331 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
24332 (new_elim_graph): Allocate const_dests member.
24333 (clean_elim_graph): Truncate const_dests member.
24334 (delete_elim_graph): Free const_dests member.
24335 (elim_graph_size): Adapt to new type of nodes member.
24336 (elim_graph_add_node): Likewise.
24337 (eliminate_name): Likewise.
24338 (eliminate_build): Don't take basic block argument, deal only with
24339 partition numbers, not variables.
24340 (get_temp_reg): New static helper.
24341 (elim_create): Use it, deal with RTL temporaries instead of trees.
24342 (eliminate_phi): Adjust all calls to new signature.
24343 (assign_vars, replace_use_variable, replace_def_variable): Remove.
24344 (rewrite_trees): Only do checking.
24345 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
24346 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
24347 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
24348 contains_tree_r, MAX_STMTS_IN_LATCH,
24349 process_single_block_loop_latch, analyze_edges_for_bb,
24350 perform_edge_inserts): Remove.
24351 (expand_phi_nodes): New global function.
24352 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
24353 functions, initialize new parameter, remember partitions having a
24354 default def.
24355 (finish_out_of_ssa): New global function.
24356 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
24357 don't reset in_ssa_p here, don't disable TER when mudflap.
24358 (pass_del_ssa): Remove.
24359 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
24360 partition members.
24361 (execute_free_datastructures): Declare.
24362 * Makefile.in (SSAEXPAND_H): New variable.
24363 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
24364 * basic-block.h (commit_one_edge_insertion): Declare.
24365 * passes.c (init_optimization_passes): Move pass_nrv and
24366 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
24367 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
24368 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
24369 (redirect_branch_edge): Deal with super block when expanding, split
24370 out jump patching itself into ...
24371 (patch_jump_insn): ... here, new static helper.
24372
17c665a9
MM
243732009-04-26 Michael Matz <matz@suse.de>
24374
24375 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
24376 beyond num_ssa_names.
24377 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
24378 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
24379
92061771
JJ
243802009-04-26 Jakub Jelinek <jakub@redhat.com>
24381
ce372372
JJ
24382 PR inline-asm/39543
24383 * fwprop.c (forward_propagate_asm): New function.
24384 (forward_propagate_and_simplify): Propagate also into __asm, if it
24385 doesn't increase the number of referenced registers.
24386
92061771
JJ
24387 PR c/39889
24388 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
24389
243902009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
24391
24392 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
24393 note_nonlocal_vla_type for nonlocal VLAs.
24394 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
24395 contains_remapped_vars, remap_vla_decls): New functions.
24396 (convert_nonlocal_reference_stmt): If not optimizing, call
24397 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
24398 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
24399 if it wasn't found in var_map.
24400 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
24401 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
24402 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
24403 declare_vars.
24404 * gimplify.c (nonlocal_vlas): New variable.
24405 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
24406 referenced VLAs.
24407 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 24408
4561e242
JJ
24409 * dwarf2out.c (loc_descr_plus_const): New function.
24410 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
24411 mem_loc_descriptor, loc_descriptor_from_tree_1,
24412 descr_info_loc, gen_variable_die): Use it.
24413
a9548ddf
JJ
24414 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
24415 !TREE_STATIC VAR_DECLs.
24416 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
24417 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
24418 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
24419 DECL_BY_REFERENCE is valid.
24420 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
24421 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
24422 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
24423 Copy DECL_BY_REFERENCE.
24424 (struct nesting_copy_body_data): New type.
24425 (nesting_copy_decl): New function.
24426 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
24427 if they have variable length.
24428
10555d08
MM
244292009-04-26 Michael Matz <matz@suse.de>
24430
24431 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
24432 mark new temporaries for renaming.
24433
e11187cc
JM
244342009-04-26 Joseph Myers <joseph@codesourcery.com>
24435
24436 PR c/39581
24437 * c-decl.c (global_bindings_p): Return negative value.
24438 (c_variable_size): New. Based on variable_size from
24439 stor-layout.c.
24440 (grokdeclarator): Call c_variable_size not variable_size.
24441
f6a51d31
UB
244422009-04-26 Uros Bizjak <ubizjak@gmail.com>
24443
24444 * config/i386/i386.c (print_operand) ['z']: Fix typo.
24445
4b97723d
KT
244462009-04-26 Kai Tietz <kai.tietz@onevision.com>
24447
24448 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
24449 Redefine it to just use mingw/include.
24450 (ASM_SPEC): Rules for -m32 and -m64.
24451 (LINK_SPEC): Use Likewise.
24452 (SPEC_32): New define.
24453 (SPEC_64): Likewise.
24454 (SUB_LINK_SPEC): Likewise.
24455 (MULTILIB_DEFAULTS): New define.
24456 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
24457 Add multilib options.
24458 (MULTILIB_DIRNAMES): Likewise.
24459 (MULTILIB_OSDIRNAMES): Likewise.
24460 (LIBGCC): Likewise.
24461 (INSTALL_LIBGCC): Likewise.
24462
991d6621
JM
244632009-04-26 Joseph Myers <joseph@codesourcery.com>
24464
24465 PR c/39556
24466 * c-tree.h (enum c_inline_static_type): New.
24467 (record_inline_static): Declare.
24468 * c-decl.c (struct c_inline_static, c_inline_statics,
24469 record_inline_static, check_inline_statics): New.
24470 (pop_file_scope): Call check_inline_statics.
24471 (start_decl): Call record_inline_static instead of pedwarning
24472 directly for static in inline function.
24473 * c-typeck.c (build_external_ref): Call record_inline_static
24474 instead of pedwarning directly for static referenced in inline
24475 function.
24476
4a81774c
SB
244772009-04-26 Steven Bosscher <steven@gcc.gnu.org>
24478
24479 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
24480 not new but only being rescanned.
24481 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
24482 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
24483 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
24484 record_set_info, compute_set, grealloc): Remove.
24485 (recompute_all_luids): New function.
24486 (gcse_main): Don't compute sets, and don't do related memory
24487 allocations/free-ing. If something changed before the end of the
24488 pass, update LUIDs using recompute_all_luids.
24489 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
24490 (free_gcse_mem): Don't free it either.
24491 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
24492 Use the df insn LUIDs.
24493 (load_killed_in_block): Likewise.
24494 (compute_hash_table_work): Don't compute reg_set_in_block.
24495 (compute_transp): Use DF_REG_DEF_CHAINs.
24496 (local_cprop_pass): Don't use compute_sets and related functions.
24497 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
24498 Use get_max_uid() instead of max_cuid.
24499 (insert_insn_end_basic_block, pre_insert_copy_insn,
24500 update_ld_motion_stores): Don't try to
24501 keep reg_set tables up to date.
24502 (pre_insert_copies): Use df insn LUIDs.
24503 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
24504 (reg_set_info): Don't use extra bitmap argument.
24505 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
24506 information to compute regs_set_in_block.
24507 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
24508 (bypass_jumps): Don't use compute_sets and friends.
24509
e8f99a9d
RW
245102009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24511
24512 PR testsuite/39710
24513 * opts.c (undocumented_msg): Do not leave blank even with
24514 ENABLE_CHECKING.
24515
6895bac8
JM
245162009-04-25 Joseph Myers <joseph@codesourcery.com>
24517
24518 * c-decl.c (build_enumerator): Allow values folding to integer
24519 constants but not integer constant expressions with a pedwarn if
24520 pedantic.
24521
24070fcb
JM
245222009-04-25 Joseph Myers <joseph@codesourcery.com>
24523
24524 PR c/39582
24525 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
24526 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
24527 type is an integer constant.
24528
d6d89aa1
UB
245292009-04-25 Uros Bizjak <ubizjak@gmail.com>
24530
24531 PR target/39897
24532 * config/i386/i386.c (print_operand) ['z']: Revert handling of
24533 HImode operands.
24534
92f6fd0b
JM
245352009-04-25 Joseph Myers <joseph@codesourcery.com>
24536
24537 PR c/39564
24538 * c-decl.c (grokdeclarator): Diagnose declarations of functions
24539 with variably modified return type and no storage class
24540 specifiers, except for the case of nested functions. Distinguish
24541 extern declarations of functions with variably modified return
24542 types from those of objects with variably modified types.
24543
a3710436
JH
245442009-04-25 Jan Hubicka <jh@suse.cz>
24545
24546 * tree.c (list_equal_p): New function.
24547 * tree.h (list_equal_p): Declare.
24548 * coretypes.h (edge_def, edge, const_edge, basic_block_def
24549 basic_block_def, basic_block, const_basic_block): New.
24550 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
24551 (redirect_eh_edge): New function.
24552 (make_eh_edge_update_phi): EH edges are not abnormal.
24553 * except.c: Include tree-flow.h.
24554 (list_match): New function.
24555 (eh_region_replaceable_by_p): New function.
24556 (replace_region): New function.
24557 (hash_type_list): New function.
24558 (hash_eh_region): New function.
24559 (eh_regions_equal_p): New function.
24560 (merge_peers): New function.
24561 (remove_unreachable_regions): Verify EH tree when checking;
24562 merge peers.
24563 (copy_eh_region_1): New function.
24564 (copy_eh_region): New function.
24565 (push_reachable_handler): New function.
24566 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
24567 regions without label but with live RESX.
24568 * except.h (redirect_eh_edge_to_label): New.
24569 * tree-flow.h (redirect_eh_edge): New.
24570 * coretypes.h (edge_def, edge, const_edge, basic_block_def
24571 basic_block_def, basic_block, const_basic_block): Remove.
24572 * Makefile.in (except.o): Add dependency on tree-flow.h
24573 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
24574 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
24575 Remove.
24576
3764d512
EB
245772009-04-25 Eric Botcazou <ebotcazou@adacore.com>
24578
24579 PR bootstrap/39645
24580 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
24581 on the destination of memcpy.
24582
1c62e8f2
PB
245832009-04-25 Paolo Bonzini <bonzini@gnu.org>
24584
24585 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
24586 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
24587 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
24588
496a4ef5
JH
245892009-04-25 Jan Hubicka <jh@suse.cz>
24590
24591 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
24592 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
24593 to be reached by different label than left.
24594 (update_eh_edges): Update comment; remove edge_to_remove if possible
24595 and return true if suceeded.
24596 (cleanup_empty_eh): Accept sharing map; handle shared regions.
24597 (cleanup_eh): Compute sharing map.
24598 * except.c (remove_eh_handler_and_replace): Add argument if we should
24599 update regions.
24600 (remove_unreachable_regions): Update for label sharing.
24601 (label_to_region_map): Likewise.
24602 (get_next_region_sharing_label): New function.
24603 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
24604 prev_try pointers.
24605 (remove_eh_handler): Update.
24606 (remove_eh_region_and_replace_by_outer_of): New function.
24607 * except.h (struct eh_region): Add next_region_sharing_label.
24608 (remove_eh_region_and_replace_by_outer_of,
24609 get_next_region_sharing_label): Declare.
24610 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
24611
246122009-04-25 Jan Hubicka <jh@suse.cz>
24613
24614 * tree-cfg.c (split_critical_edges): Split also edges where we can't
24615 insert code even if they are not critical.
24616
246172009-04-25 Jan Hubicka <jh@suse.cz>
24618
24619 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
24620 (gimple_can_remove_branch_p): EH edges won't remove branch by
24621 redirection.
24622 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
24623 updating of non-abnormal EH edges.
24624 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
24625 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
24626 (split_critical_edges): Split also edges where emitting code on them
24627 will lead to splitting later.
24628
a3a5e3d1
UB
246292009-04-25 Uros Bizjak <ubizjak@gmail.com>
24630 H.J. Lu <hongjiu.lu@intel.com>
24631
24632 PR target/39590
24633 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
24634 the configured assembler supports fildq and fistpq mnemonics.
24635 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
24636 * configure: Regenerated.
24637 * config.in: Ditto.
24638
24639 * config/i386/i386.c (print_operand): Handle 'Z'.
24640 ['z']: Remove handling of special fild/fist suffixes.
24641 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
24642 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
24643 suffix of fild insn.
24644 (*floatsi<mode>2_vector_mixed): Ditto.
24645 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
24646 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
24647 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
24648 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
24649 * config/i386/gas.h (GAS_MNEMONICS): Remove.
24650
23750d7f 246512009-04-25 Ben Elliston <bje@au.ibm.com>
f100a4a8 24652
23750d7f
BE
24653 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
24654 the source of a set operation.
24655
e6ff3083
AS
246562009-04-25 Anatoly Sokolov <aesok@post.ru>
24657
24658 * target.h (struct gcc_target): Add case_values_threshold field.
24659 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
24660 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
24661 * targhooks.c (default_case_values_threshold): New function.
24662 * targhooks.h (default_case_values_threshold): Declare function.
24663 * stmt.c (expand_case): Use case_values_threshold target hook.
24664 * expr.h (case_values_threshold): Remove declartation.
24665 * expr.c (case_values_threshold): Remove function.
24666 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
24667
24668 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
24669 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
24670 (avr_case_values_threshold): Declare as static.
24671 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
24672
24673 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
24674 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
24675 (mn10300_case_values_threshold): New function.
24676
569c72fc
L
246772009-04-24 H.J. Lu <hongjiu.lu@intel.com>
24678
24679 * ira.c (setup_cover_and_important_classes): Add enum cast.
24680
ff3cb468
VM
246812009-04-24 Vladimir Makarov <vmakarov@redhat.com>
24682
24683 * genpreds.c (write_enum_constraint_num): Output definition of
24684 CONSTRAINT_NUM_DEFINED_P macro.
24685 * ira.c (setup_cover_and_important_classes): Use
24686 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
f100a4a8 24687
4f7be849
DD
246882009-04-24 DJ Delorie <dj@redhat.com>
24689
24690 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
24691 __SH2A_SINGLE_ONLY__ also.
24692
735b94a7
SE
246932009-04-24 Steve Ellcey <sje@cup.hp.com>
24694
24695 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
24696 (movdf_internal): Ditto.
24697 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
24698 SFmode and DFmode constants.
24699 (ia64_print_operand): Add 'G' format for printing
24700 floating point constants.
24701
77a30264
RG
247022009-04-24 Richard Guenther <rguenther@suse.de>
24703
24704 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
24705 from unsigned additions.
24706
2b6da65c
JM
247072009-04-24 Joseph Myers <joseph@codesourcery.com>
24708
24709 * c-typeck.c (set_init_index): Allow array designators that are
24710 not integer constant expressions with a pedwarn if pedantic.
24711
f5a17c43
BS
247122009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
24713
24714 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
24715 zero if no overlap in nonzero bits between the operands.
24716
32e8bb8e
ILT
247172009-04-24 Ian Lance Taylor <iant@google.com>
24718
24719 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
24720 (record_dead_and_set_regs): Likewise.
24721 * df.h (struct df_mw_hardreg): Change flags field to int.
24722 (struct df_base_ref): Likewise.
24723 (struct df): Change changeable_flags field to int.
24724 * df-scan.c (df_defs_record): Change clobber_flags to int.
24725 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
24726 constants rather than #define macros.
24727 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
24728 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
24729 (enum dwarf_calling_convention): Likewise.
24730 (enum dwarf_line_number_x_ops): Likewise.
24731 (enum dwarf_call_frame_info): Likewise.
24732 (enum dwarf_source_language): Likewise.
24733 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
24734 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
24735 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
24736 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
24737 * genrecog.c (maybe_both_true_2): Change c to int.
24738 (write_switch): Likewise. Add cast to enum type.
24739 * gimplify.c (gimplify_omp_for): Handle return values from
24740 gimplify_expr using MIN rather than bitwise or.
24741 (gimplify_expr): Add cast to enum type.
24742 * ipa-prop.c (update_jump_functions_after_inlining): Change
24743 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
24744 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
24745 Add casts to enum type.
32e8bb8e
ILT
24746 (setup_cover_and_important_classes): Change cl to int. Add casts
24747 to enum type.
24748 (setup_class_translate): Change cl and mode to int.
24749 (ira_init_once): Change mode to int.
24750 (free_register_move_costs): Likewise.
24751 (setup_prohibited_mode_move_regs): Add casts to enum type.
24752 * langhooks.c (add_builtin_function_common): Rework assertion that
24753 value fits bitfield.
24754 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
24755 * omega.c (omega_do_elimination): Avoid math on enum types.
24756 * optabs.c (expand_vec_shift_expr): Remove casts to int.
24757 * opts.c (set_debug_level): Change 2 to enum constant. Use new
24758 int local to handle integral_argment value.
24759 * regmove.c (try_auto_increment): Change PUT_MODE to
24760 PUT_REG_NOTE_KIND.
24761 * reload.c (push_secondary_reload): Add casts to enum type.
24762 (secondary_reload_class, find_valid_class): Likewise.
24763 * reload1.c (emit_input_reload_insns): Likewise.
24764 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
24765 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
24766 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
24767 constant.
24768 * tree.c (build_common_builtin_nodes): Add casts to enum type.
24769 * tree-complex.c (complex_lattice_t): Typedef to int rather than
24770 enum type.
24771 (expand_complex_libcall): Add casts to enum type.
24772 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
24773 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
24774 with ERROR_MARK, not NUM_TREE_CODES.
24775 (vect_create_epilog_for_reduction): Likewise.
24776 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 24777 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
24778 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
24779 enum machine_mode.
24780 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
24781 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 24782 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
24783 * var-tracking.c (get_init_value): Change return type to enum
24784 var_init_status.
24785 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
24786 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
24787 arm_fp_model.
24788 (arm_override_options): Add casts to enum type.
24789 (arm_emit_tls_decoration): Likewise.
24790 * config/i386/i386.c (ix86_function_specific_restore): Add casts
24791 to enum type.
24792 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
24793 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
24794 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
24795 enum type.
24796 * config/s390/s390.c (code_for_builtin_64): Change to array of
24797 enum insn_code.
24798 (code_for_builtin_31): Likewise.
24799 (s390_expand_builtin): Change code_for_builtin to enum insn_code
24800 const *.
24801 * config/sparc/sparc.c (sparc_override_options): Change value
24802 field in struct code_model to enum cmodel. In initializer change
24803 0 to NULL and add cast to enum type.
24804
24805 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
24806 Change all callers. Issue a -Wc++-compat warning using
24807 lhs_origtype if necessary.
24808 (convert_for_assignment): Issue -Wc++-compat warnings about
24809 invalid conversions to enum type on assignment.
24810 * c-common.h (build_modify_expr): Update declaration.
24811
ac4fc08a
NC
248122009-04-24 Nick Clifton <nickc@redhat.com>
24813
24814 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
24815 (function_arg_advance): Likewise.
24816 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
24817 5th alternative.
24818
f22e891a
AK
248192009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
24820
24821 * config/s390/constraints.md ('I', 'J'): Fix condition.
24822
ad58aabe
DN
248232009-04-24 Diego Novillo <dnovillo@google.com>
24824
24825 * gengtype-parse.c (parse_error): Add newline after message.
24826
879a4a01
L
248272009-04-24 H.J. Lu <hongjiu.lu@intel.com>
24828
24829 * config/i386/sse.md (avxmodesuffixs): Removed.
24830 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
24831 (*avx_pinsr<ssevecsize>): This.
24832
f63426af
BS
248332009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
24834
24835 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
24836 follow chains of regs with a single definition, and allow expressions
24837 that are function_invariant_p.
ce72fe6c 24838 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 24839
30349c74
PB
248402009-04-24 Paolo Bonzini <bonzini@gnu.org>
24841
24842 PR middle-end/39867
24843 * fold-const.c (fold_cond_expr_with_comparison): When folding
24844 > and >= to MAX, make sure the MAX uses the same type as the
24845 comparison's operands.
24846
8d8256c1
NC
248472009-04-24 Nick Clifton <nickc@redhat.com>
24848
24849 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
24850 addressing for DImode accesses.
24851 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 24852 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 24853
6216f94e
JJ
248542009-04-24 Jakub Jelinek <jakub@redhat.com>
24855
24856 PR rtl-optimization/39794
24857 * alias.c (canon_true_dependence): Add x_addr argument.
24858 * rtl.h (canon_true_dependence): Adjust prototype.
24859 * cse.c (check_dependence): Adjust canon_true_dependence callers.
24860 * cselib.c (cselib_invalidate_mem): Likewise.
24861 * gcse.c (compute_transp): Likewise.
24862 * dse.c (scan_reads_nospill): Likewise.
24863 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
24864 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
24865 canon_base_addr of the group, plus optional offset.
24866 (struct group_info): Rename canon_base_mem to
24867 canon_base_addr.
24868 (get_group_info): Set canon_base_addr to canon_rtx of base, not
24869 canon_rtx of base_mem.
24870
6de7a512
PB
248712009-04-23 Paolo Bonzini <bonzini@gnu.org>
24872
24873 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
24874 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
24875
4a3a2376
UW
248762009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24877
24878 * config/spu/spu-builtins.h: Delete file.
24879
24880 * config/spu/spu.h (enum spu_builtin_type): Move here from
24881 spu-builtins.h.
24882 (struct spu_builtin_description): Likewise. Add GTY marker.
24883 Do not use enum spu_function_code or enum insn_code.
24884 (spu_builtins): Add extern declaration.
24885
24886 * config/spu/spu.c: Do not include "spu-builtins.h".
24887 (enum spu_function_code, enum spu_builtin_type_index,
24888 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
24889 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
24890 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
24891 unsigned_V2DI_type_node): Move here from spu-builtins.h.
24892 (spu_builtin_types): Make static. Add GTY marker.
24893 (spu_builtins): Add extern declaration with GTY marker.
24894 Include "gt-spu.h".
24895
24896 * config/spu/spu-c.c: Do not include "spu-builtins.h".
24897 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
24898 Check programmatically whether all parameters are scalar.
24899
24900 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
24901
bbaba73f
EB
249022009-04-23 Eric Botcazou <ebotcazou@adacore.com>
24903
24904 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
24905 assignment from the constructor either if the target is volatile.
24906
ee93c1c6
DJ
249072009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
24908
24909 * config/arm/arm.md (insv): Do not share operands[0].
24910
b2f21330
NS
249112009-04-23 Nathan Sidwell <nathan@codesourcery.com>
24912
24913 * config/vxlib-tls.c (active_tls_threads): Delete.
24914 (delete_hook_installed): New.
24915 (tls_delete_hook): Don't delete the delete hook.
24916 (tls_destructor): Delete it here.
24917 (__gthread_set_specific): Adjust installing the delete hook.
24918 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
24919 __gthread_leave_tsd_dtor_context.
24920
4782dfa7
RAE
249212009-04-23 Rafael Avila de Espindola <espindola@google.com>
24922
24923 * c-format.c (gcc_tdiag_char_table): Add support for %E.
24924
bf758008
UB
249252009-04-23 Uros Bizjak <ubizjak@gmail.com>
24926
24927 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
24928 enum type.
24929 (alpha_rtx_costs): Ditto.
24930 (emit_unlikely_jump): Use add_reg_note.
24931 (emit_frame_store_1): Ditto.
24932 (alpha_expand_prologue): Ditto.
24933 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
24934 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
24935
7323a100
NC
249362009-04-23 Nick Clifton <nickc@redhat.com>
24937
24938 * config/v850/v850.md (epilogue): Remove suppressed code.
24939 (return): Rename to return_simple and remove test of frame size.
24940 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
24941 to gen_return_simple.
24942
360032ba
JY
249432009-04-22 Jing Yu <jingyu@google.com>
24944
24945 PR testsuite/39781
24946 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
24947
53650abe
AP
249482009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
24949
24950 PR C/31499
24951 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
24952 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
24953 value is a VECTOR_CST, the element type is the element type of the
24954 vector.
24955
89043e8a
DD
249562009-04-22 DJ Delorie <dj@redhat.com>
24957
24958 * config/m32c/m32c.h: Update GTY annotations to new syntax.
24959
023f059b
JJ
249602009-04-22 Jakub Jelinek <jakub@redhat.com>
24961
24962 * alias.c (find_base_term): Move around LO_SUM case, so that
24963 CONST falls through into PLUS/MINUS handling.
24964
2c0eba5a
JJ
24965 PR c/39855
24966 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
24967 into 0, use omit_one_operand.
24968
9a461028
BE
249692009-04-23 Ben Elliston <bje@au.ibm.com>
24970
24971 * config/rs6000/linux-unwind.h (get_regs): Remove type
24972 puns. Change the type of `pc' to an array of unsigned ints and
24973 update all users. Constify frame24.
24974
653e2568
DD
249752009-04-22 DJ Delorie <dj@redhat.com>
24976
24977 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
24978 declarations before code.
24979 (current_function_special_page_vector): Likewise.
24980 (m32c_expand_insv): Silence a warning.
24981
60839f5d 249822009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
24983
24984 * alias.c: Update GTY annotations to new syntax.
24985 * basic-block.h: Likewise.
24986 * bitmap.h: Likewise.
24987 * c-common.h: Likewise.
24988 * c-decl.c: Likewise.
24989 * c-parser.c: Likewise.
24990 * c-pragma.c: Likewise.
24991 * c-tree.h: Likewise.
24992 * cfgloop.h: Likewise.
24993 * cgraph.h: Likewise.
24994 * config/alpha/alpha.c: Likewise.
24995 * config/arm/arm.h: Likewise.
24996 * config/avr/avr.h: Likewise.
24997 * config/bfin/bfin.c: Likewise.
24998 * config/cris/cris.c: Likewise.
24999 * config/darwin.c: Likewise.
25000 * config/frv/frv.c: Likewise.
25001 * config/i386/i386.c: Likewise.
25002 * config/i386/i386.h: Likewise.
25003 * config/i386/winnt.c: Likewise.
25004 * config/ia64/ia64.h: Likewise.
25005 * config/iq2000/iq2000.c: Likewise.
25006 * config/mips/mips.c: Likewise.
25007 * config/mmix/mmix.h: Likewise.
25008 * config/pa/pa.c: Likewise.
25009 * config/pa/pa.h: Likewise.
25010 * config/rs6000/rs6000.c: Likewise.
25011 * config/s390/s390.c: Likewise.
25012 * config/sparc/sparc.c: Likewise.
25013 * config/xtensa/xtensa.c: Likewise.
25014 * cselib.h: Likewise.
25015 * dbxout.c: Likewise.
25016 * dwarf2out.c: Likewise.
25017 * except.c: Likewise.
25018 * except.h: Likewise.
25019 * fixed-value.h: Likewise.
25020 * function.c: Likewise.
25021 * function.h: Likewise.
25022 * gimple.h: Likewise.
25023 * integrate.c: Likewise.
25024 * optabs.c: Likewise.
25025 * output.h: Likewise.
25026 * real.h: Likewise.
25027 * rtl.h: Likewise.
25028 * stringpool.c: Likewise.
25029 * tree-data-ref.c: Likewise.
25030 * tree-flow.h: Likewise.
25031 * tree-scalar-evolution.c: Likewise.
25032 * tree-ssa-address.c: Likewise.
25033 * tree-ssa-alias.h: Likewise.
25034 * tree-ssa-operands.h: Likewise.
25035 * tree.c: Likewise.
25036 * tree.h: Likewise.
25037 * varasm.c: Likewise.
25038 * varray.h: Likewise.
25039 * vec.h: Likewise.
bf758008 25040 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
25041 * doc/gty.texi: Update GTY documentation to new syntax.
25042 * gengtype-lex.l: Enforce attribute-like syntax for GTY
25043 annotations on structs.
25044 * gengtype-parse.c: Likewise.
25045
a123d175
MH
250462009-04-22 Mark Heffernan <meheff@google.com>
25047
bf758008 25048 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 25049
4c7c486a
KH
250502009-04-22 Kazu Hirata <kazu@codesourcery.com>
25051
25052 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
25053 where appropriate.
25054
6e782a29
KH
250552009-04-22 Kazu Hirata <kazu@codesourcery.com>
25056
25057 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
25058 the same as a PLUS without a shift. Increase the cost of a
25059 CONST_INT in MULT.
25060
38d2336a
MLI
250612009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25062
25063 * Makefile.in: Update dependencies.
bf758008 25064 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
25065 * errors.h: Remove bogus comment about compatibility.
25066 (warning): Update declaration.
25067 * genautomata.c: Update all calls to warning.
25068 * gimple.c: Do not include errors.h. Include toplev.h.
25069 * tree-ssa-structalias.c: Do not include errors.h.
25070 * omega.c: Likewise.
25071 * tree-ssa-reassoc.c: Likewise.
25072 * config/spu/spu-c.c: Likewise.
25073 * config/spu/t-spu-elf: Update dependencies.
25074
aea4deba
RG
250752009-04-22 Richard Guenther <rguenther@suse.de>
25076
25077 PR tree-optimization/39824
25078 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
25079 make sure the types are compatible.
25080
cfc93532
MLI
250812009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25082
25083 PR c++/14875
25084 * c-common.c (c_parse_error): Take a token_flags parameter.
25085 Use token_type for the token type instead.
25086 Pass token_flags to cpp_type2name.
25087 * c-common.h (c_parse_error): Update declaration.
25088 * c-parser.c (c_parser_error): Pass 0 as token flags.
25089
8632d02a
AB
250902009-04-22 Andrey Belevantsev <abel@ispras.ru>
25091
25092 PR rtl-optimization/39580
f100a4a8
UB
25093 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
25094
4c33221c
UW
250952009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25096
25097 * function.c (expand_function_end): Do not emit a jump to the "naked"
25098 return label for fall-through returns.
25099 * except.c (sjlj_emit_function_exit): Always place the call to the
25100 unregister function at the location installed by expand_function_end.
25101
9925bce0
RG
251022009-04-22 Richard Guenther <rguenther@suse.de>
25103
25104 PR tree-optimization/39845
25105 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
25106 (gen_inbound_check): Likewise.
25107
24a40b35
NS
251082009-04-22 Nathan Sidwell <nathan@codesourcery.com>
25109
25110 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
25111 padding for PPC.
25112 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
25113 * config/vxlib.c (__gthread_once): Add race guard for PPC.
25114
6c34a092
PB
251152009-04-22 Paolo Bonzini <bonzini@gnu.org>
25116
25117 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
25118 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
25119 shift counts to avoid out-of-bounds array accesses.
25120
baa48dfa
PB
251212009-04-22 Paolo Bonzini <bonzini@gnu.org>
25122
25123 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
25124 (Pmode): Move above.
25125
7d83f4f5
UB
251262009-04-22 Uros Bizjak <ubizjak@gmail.com>
25127
25128 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
25129 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
25130 GET_CODE macro. Use IN_RANGE macro where appropriate.
25131 * config/alpha/alpha.h: Ditto.
25132 * config/alpha/alpha.md: Ditto.
25133 * config/alpha/constraints.md: Ditto.
25134 * config/alpha/predicates.md: Ditto.
f100a4a8 25135
3ad606bc
PB
251362009-04-22 Paolo Bonzini <bonzini@gnu.org>
25137
25138 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
25139 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25140 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25141 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25142 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25143 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25144 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25145 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25146 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25147 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25148 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25149 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25150 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25151 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25152 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25153 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25154 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25155 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25156 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25157 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25158 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25159 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25160 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25161 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25162 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25163 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25164 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25165
3cabd6d1
LB
251662009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25167
25168 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
25169 references from comments.
bd62d832 25170 * cfgbuild.c (count_basic_blocks): Delete.
3cabd6d1
LB
25171 (find_basic_blocks_1): Delete.
25172 (find_basic_blocks): Delete.
25173 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 25174 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
25175 * except.h (finish_eh_generation): Delete.
25176 * basic-block.h (find_basic_blocks): Delete.
25177 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
25178
270d1bcd
DK
251792009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
25180
25181 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
25182 (sdbout_parms): Likewise.
25183
b757d36f
KK
251842009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
25185
25186 * config/sh/sh.c (prepare_cbranch_operands): Use
25187 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
25188 (expand_cbranchdi4): Likewise.
25189 (from_compare): Add cast to enum type.
25190 (expand_cbranchsi4): Use add_reg_note.
25191 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
25192 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
25193 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
25194 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
25195 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
25196 instead of CODE_FOR_nothing.
25197 (cbranchdi4): Likewise. Fix the order of arguments for
25198 gen_rtx_fmt_ee.
25199 (push_fpscr): Use add_reg_note.
25200 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
25201 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
f100a4a8 25202
ad41bd84
JM
252032009-04-21 Joseph Myers <joseph@codesourcery.com>
25204
25205 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
25206 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
25207 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
25208 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
25209 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
25210 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
25211 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
25212 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
25213 config/alpha/x-vms, config/arc/t-arc,
25214 config/arm/README-interworking, config/arm/arm-c.c,
25215 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
25216 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
25217 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
25218 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
25219 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
25220 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
25221 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
25222 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
25223 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
25224 config/cris/t-elfmulti, config/crx/t-crx,
25225 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
25226 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
25227 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
25228 config/h8300/t-h8300, config/i386/athlon.md,
25229 config/i386/darwin-libgcc.10.4.ver,
25230 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
25231 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
25232 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
25233 config/i386/t-linux64, config/i386/t-nwld,
25234 config/i386/t-rtems-i386, config/i386/t-sol2-10,
25235 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
25236 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
25237 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
25238 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
25239 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
25240 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
25241 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
25242 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
25243 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
25244 config/m68k/t-uclinux, config/mcore/t-mcore,
25245 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
25246 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
25247 config/mips/crtn.asm, config/mips/irix-crti.asm,
25248 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
25249 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
25250 config/mips/mips-fixed.md, config/mips/sb1.md,
25251 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
25252 config/mips/t-iris6, config/mips/t-isa3264,
25253 config/mips/t-libgcc-mips16, config/mips/t-linux64,
25254 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
25255 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
25256 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
25257 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
25258 config/mn10300/t-linux, config/mn10300/t-mn10300,
25259 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
25260 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
25261 config/picochip/libgccExtras/clzsi2.asm,
25262 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
25263 config/rs6000/darwin-libgcc.10.4.ver,
25264 config/rs6000/darwin-libgcc.10.5.ver,
25265 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
25266 config/rs6000/t-aix43, config/rs6000/t-aix52,
25267 config/rs6000/t-darwin, config/rs6000/t-fprules,
25268 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
25269 config/rs6000/t-lynx, config/rs6000/t-netbsd,
25270 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
25271 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
25272 config/rs6000/t-rtems, config/rs6000/t-spe,
25273 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
25274 config/score/t-score-elf, config/sh/divcost-analysis,
25275 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
25276 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
25277 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
25278 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
25279 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
25280 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
25281 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
25282 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
25283 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
25284 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
25285 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
25286 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
25287 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
25288 limitx.h, version.c, xcoff.h: Add copyright and license notices.
25289 * config/h8300/genmova.sh: Include copyright and license notices
25290 in generated output.
25291 * config/h8300/mova.md: Regenerate.
25292 * doc/install.texi2html: Include word "Copyright" in copyright
25293 notice and use name "Free Software Foundation, Inc.".
25294 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
25295 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
25296 ChangeLog-2007, ChangeLog-2008: Correct dates.
25297
ca80e52b
EB
252982009-04-21 Eric Botcazou <ebotcazou@adacore.com>
25299
25300 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
25301 NE_EXPR operations as well.
25302 * c-parser.c (c_parser_condition): Do not set location information on
25303 the condition.
25304 (c_parser_conditional_expression): Likewise.
25305 (c_parser_binary_expression): Set location information on operators.
25306 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
25307 TRUTH_NOT_EXPR has been folded.
25308 * fold-const.c (fold_truth_not_expr): Copy location information from
25309 the incoming expression to the outgoing one.
25310 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
25311 recursive calls on the LHS of the operator but pass that of the
25312 operator to recursive calls on the RHS of the operator. Set it
25313 on the COND_EXPR.
25314 (shortcut_cond_expr): Set the locus of the operator on the second
25315 COND_EXPR and that of the expression on the first in degenerate cases.
25316 Pass the locus of the expression to calls to shortcut_cond_r.
25317 Set the locus of the 'then' block on the associated jump, if any.
25318 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
25319 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
25320 expression to call to gimplify_boolean_expr.
25321
35091630
KT
253222009-04-21 Kai Tietz <kai.tietz@onevision.com>
25323
25324 * config.gcc: Add additional configuration for
25325 i686-w64-mingw* and x86_64-w64-mingw* triplet.
25326 * config/i386/mingw-w64.h: New mingw-w64 specific header.
25327 (CPP_SPEC): Redefine for allowing -municode option.
25328 (STARTFILE_SPEC): Likewise.
25329 * config/i386/t-mingw-w64: New.
25330 * config/i386/mingw-w64.opt: New.
25331 (municode): Add new target option.
25332 * doc/invoke.texi (municode): Add documentation for new option.
25333
0267afc4
ILT
253342009-04-21 Ian Lance Taylor <iant@google.com>
25335
25336 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25337 Correct test for number of arguments.
25338 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
25339
2ba9daa7
AS
253402009-04-21 Andreas Schwab <schwab@linux-m68k.org>
25341
25342 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
25343 argument of emit_library_call.
25344
ad8a1ac0
RG
253452009-04-21 Richard Guenther <rguenther@suse.de>
25346
25347 PR middle-end/39829
25348 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
25349 inside VIEW_CONVERT_EXPRs.
25350
7156c8ab
MJ
253512009-04-21 Martin Jambor <mjambor@suse.cz>
25352
25353 * tree-switch-conversion.c (build_constructors): Split a long line.
25354 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
25355 (build_one_array): Create assigns of constants if possible, do not
25356 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
25357 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
25358 make_rename_temp. Do not call mark_symbols_for_renaming, call
25359 update_stmt.
25360 (gen_def_assigns): Do not call mark_symbols_for_renaming or
25361 find_new_referenced_vars, call update_stmt.
25362 (gen_inbound_check): Use create_tmp_var and create ssa names manually
25363 instead of calling make_rename_temp. Do not call
25364 find_new_referenced_vars or mark_symbols_for_renaming, call
25365 update_stmt.
25366
2970ccb3
RG
253672009-04-21 Richard Guenther <rguenther@suse.de>
25368
25369 PR tree-optimization/39827
7d83f4f5 25370 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
25371 (tree_ssa_phiprop): Pass the correct array size.
25372
47f402d1
UB
253732009-04-21 Uros Bizjak <ubizjak@gmail.com>
25374
25375 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
25376
1e4ae551
MLI
253772009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
25378
25379 PR 16202
25380 * c-typeck.c (lvalue_p): Move declaration ...
25381 * c-common.h (lvalue_p): ... to here.
25382 * c-common.c (candidate_equal_p): New.
25383 (add_tlist): Use it.
25384 (merge_tlist): Use it.
25385 (warn_for_collisions_1): Likewise.
25386 (warning_candidate_p): Accept more candidates.
25387 (verify_tree): A warning candidate can be an expression. Use
25388 candidate_equal_p.
25389
244609a6
BE
253902009-04-21 Ben Elliston <bje@au.ibm.com>
25391
25392 PR target/5267
25393 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
25394 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
25395 options. Remove -mcall-solaris documentation.
25396
9c650d90
MLI
253972009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25398
25399 PR c++/13358
25400 * doc/invoke.texi (-Wlong-long): Update description.
25401 * c-lex (interpret_integer): Only warn if there was no previous
25402 overflow and -Wlong-long is enabled.
25403 * c-decl.c (declspecs_add_type): Drop redundant flags.
25404 * c.opt (Wlong-long): Init to -1.
25405 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
25406 and front-end warn_long_long. Wlong-long only depends on other
25407 flags if it is uninitialized.
25408 * c-parser.c (disable_extension_diagnostics): warn_long_long is
25409 the same for CPP and FE.
25410 (restore_extension_diagnostics): Likewise.
25411
bbbbb16a
ILT
254122009-04-20 Ian Lance Taylor <iant@google.com>
25413
25414 Fix enum conversions which are invalid in C++:
47f402d1
UB
25415 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
25416 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
25417 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
25418 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 25419 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 25420 (dbxout_parms): Likewise.
47f402d1 25421 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
25422 (df_clear_flags): Likewise.
25423 * df-problems.c (df_rd_bb_local_compute_process_def): Change
25424 top_flag parameter to int.
25425 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
25426 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
25427 Remove cast.
bbbbb16a
ILT
25428 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
25429 (df_ref_create_structure, df_def_record_1): Likewise.
25430 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
25431 (df_notes_rescan): Change 0 to VOIDmode in function call.
25432 (df_get_call_refs, df_insn_refs_collect): Likewise.
25433 (df_bb_regs_collect): Likewise.
25434 (df_entry_block_defs_collect): Likewise.
25435 (df_exit_block_uses_collect): Likewise.
25436 * df.h: Update declarations.
25437 * double-int.c (double_int_divmod): Add cast to enum type.
25438 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
25439 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
25440 (based_loc_descr): Likewise.
25441 (loc_descriptor_from_tree_1): Change first_op and second_op to
25442 enum dwarf_location_atom. Add cast to enum type.
25443 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 25444 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
25445 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
25446 (do_store_flag): Likewise.
25447 * fixed-value.h (struct fixed_value): Change mode to enum
25448 machine_mode.
47f402d1 25449 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
25450 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
25451 function call.
25452 (insert_insn_decl, insert_decl, insert_state): Likewise.
25453 (automata_list_finish): Likewise.
25454 * genrecog.c (process_define_predicate): Add cast to enum type.
25455 * gensupport.c (init_predicate_table): Add cast to enum type.
25456 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
25457 function call.
25458 (gimple_build_call_1, gimple_build_label): Likewise.
25459 (gimple_build_goto, gimple_build_asm_1): Likewise.
25460 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 25461 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
25462 (enum fallback): Rename from enum fallback_t.
25463 (fallback_t): Typedef as int.
25464 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
25465 GSI_SAME_STMT in function call.
25466 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
25467 enum type.
25468 (setup_reg_class_relations): Likewise.
47f402d1 25469 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
25470 (setup_prohibited_class_mode_regs): Add cast to enum type.
25471 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 25472 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
25473 (record_address_regs): Change i to enum reg_class.
25474 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
25475 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
25476 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
25477 (GET_MODE_2XWIDER_MODE): Likewise.
25478 (GET_CLASS_NARROWEST_MODE): Likewise.
25479 * omp-low.c (expand_omp_for): Add cast to enum type.
25480 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
25481 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
25482 * postreload.c (reload_cse_simplify_operands): Change rclass local
25483 to enum reg_class.
25484 * predict.c (combine_predictions_for_insn): Change best_predictor
25485 and predictor to enum br_predictor.
25486 (combine_predictions_for_bb): Likewise.
25487 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
25488 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 25489 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
25490 * reginfo.c (init_move_cost): Add casts to enum type.
25491 (init_reg_sets_1, init_fake_stack_mems): Likewise.
25492 * regmove.c (regclass_compatible_p): Change class0 and class1 to
25493 enum reg_class.
25494 * reload.c (find_valid_class): Add casts to enum type.
25495 (push_reload): Change 0 to NO_REGS in function call.
25496 (find_reloads): Change this_alternative to array of enum
25497 reg_class. Remove some now-unnecessary casts.
25498 (make_memloc): Change 0 to VOIDmode in function call.
25499 * reload1.c (reload): Change 0 to VOIDmode in function call.
25500 (eliminate_regs_1, elimination_effects): Likewise.
25501 (eliminate_regs_in_insn): Likewise.
25502 (emit_input_reload_insns): Add cast to enum type.
25503 (delete_output_reload): Change 0 to VOIDmode in function call.
25504 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
25505 to enum type in function call.
25506 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
25507 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 25508 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
25509 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
25510 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
25511 (dump_function): Likewise.
25512 * tree-dump.h: Update declarations.
25513 * tree-pass.h: Update declarations.
25514 * varasm.c (assemble_integer): Change mclass to enum mode_class.
25515 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
25516 enum type.
25517 (arm_rtx_costs_1): Correct parenthesization.
25518 (arm_rtx_costs): Add casts to enum type.
25519 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
25520 (vfp_emit_fstmd): Use add_rg_note.
25521 (emit_multi_reg_push, emit_sfm): Likewise.
25522 (thumb_set_frame_pointer): Likewise.
25523 (arm_expand_prologue): Likewise.
25524 (arm_regno_class): Change return type to enum reg_class.
25525 (thumb1_expand_prologue): Use add_reg_note.
25526 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
25527 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
25528 in function call.
25529 * config/arm/gentune.sh: Add cast to enum type.
25530 * config/arm/arm-tune.md: Rebuild.
25531 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
25532 (ix86_split_fp_branch, predict_jump): Likewise.
25533 (ix86_expand_multi_arg_builtin): Change sub_code from enum
25534 insn_code to enum rtx_code.
25535 (ix86_builtin_vectorized_function): Add cast to enum type.
25536 * config/i386/i386.md (truncdfsf2): Change slot to enum
25537 ix86_stack_slot.
25538 (truncxf<mode>2, isinf<mode>2): Likewise.
25539 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
25540 enum type.
25541 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
25542 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
25543 (insert_bundle_state): Change 1 to INSERT in function call.
25544 (ia64_add_bundle_selector_before): Likewise.
25545 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
25546 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
25547 (restore_stack_nonlocal): Likewise.
25548 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
25549 function call.
25550 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
25551 function call.
25552 (mips_rtx_costs): Likewise.
25553 (mips_override_options): Add casts to enum type.
25554 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
25555 in function call.
25556 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
25557 (store_reg, set_reg_plus_d): Likewise.
25558 (hppa_expand_prologue, hppa_profile_hook): Likewise.
25559 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
25560 cast to enum type.
25561 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
25562 function call.
25563 (emit_unlikely_jump): Use add_reg_note.
25564 (rs6000_emit_allocate_stack): Likewise.
25565 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
25566 (output_toc): Change 1 to INSERT in function call.
25567 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
25568 (rs6000_initialize_trampoline): Likewise.
25569 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
25570 function call.
25571 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
25572 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
25573 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
25574 (save_gprs): Use add_reg_note.
25575 (s390_emit_prologue): Likewise.
47f402d1 25576 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
25577 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
25578 (sparc_fold_builtin): Add cast to enum type.
25579 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
25580 enum insn_code.
25581 (spu_expand_prologue): Use add_reg_note.
47f402d1 25582 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
25583
255842009-04-20 Ian Lance Taylor <iant@google.com>
25585
25586 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
25587 (c_parser_postfix_expression_after_primary): Get VEC for list of
25588 arguments. Get original types of arguments. Call
25589 build_function_call_vec.
25590 (cached_expr_list_1, cached_expr_list_2): New static variables.
25591 (c_parser_expr_list): Change return type to VEC *. Add
25592 p_orig_types parameter. Change all callers.
25593 (c_parser_release_expr): New static function.
25594 (c_parser_vec_to_tree_list): New static function.
25595 * c-typeck.c (build_function_call): Rewrite to build a VEC and
25596 call build_function_call_vec.
25597 (build_function_call_vec): New function, based on old
25598 build_function_call.
25599 (convert_arguments): Remove nargs and argarray parameters. Change
25600 values to a VEC. Add origtypes parameter.
47f402d1 25601 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
25602 (convert_for_assignment): Add origtype parameter. Change all
25603 callers. If warn_cxx_compat, check for conversion to an enum
25604 type when calling a function.
25605 (store_init_value): Add origtype parameter. Change all callers.
25606 (digest_init): Likewise.
25607 (struct init_node): Add origtype field.
25608 (add_pending_init): Add origtype parameter. Change all callers.
25609 (output_init_element): Likewise.
25610 (output_pending_init_elements): Pass origtype from init_node to
25611 output_init_element.
f28a61ab 25612 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
25613 output_init_element.
25614 (c_finish_return): Add origtype parameter. Change all callers.
25615 * c-common.c (sync_resolve_size): Change params to VEC *. Change
25616 caller.
25617 (sync_resolve_params): Likewise.
47f402d1 25618 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 25619 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 25620 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
25621 * c-decl.c (finish_decl): Add origtype parameter. Change all
25622 callers. Call build_function_call_vec rather than
25623 build_function_call for cleanup.
25624 * c-tree.h: Update declarations.
25625 * c-common.h: Update declarations.
25626 * stub-objc.c (objc_rewrite_function_call): Change parameter from
25627 params to first_param.
25628 * target.h (struct gcc_target): Change resolve_overloaded_builtin
25629 params parameter from tree to void *.
25630 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25631 Change arglist parameter to have type void *, and to be a pointer
25632 to a VEC.
25633 * config/rs6000/rs6000-protos.h
25634 (altivec_resolve_overloaded_builtin): Update declaration.
25635 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
25636 fnargs parameter to have type void *, and to be a pointer to a
25637 VEC. Call build_function_call_vec instead of
25638 build_function_call.
47f402d1 25639 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 25640
6ff078d4 256412009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 25642 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
25643 H.J. Lu <hongjiu.lu@intel.com>
25644
25645 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
25646
25647 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
25648 (IX86_LEA_PRIORITY): Likewise.
25649 (distance_non_agu_define): New function.
25650 (distance_agu_use): Likewise.
25651 (ix86_lea_for_add_ok): Likewise.
25652 (ix86_dep_by_shift_count): Likewise.
25653
25654 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
25655 should split for LEA.
25656
25657 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
25658 function.
25659 (ix86_dep_by_shift_count): Likewise.
25660
87a5b4cc
RG
256612009-04-20 Richard Guenther <rguenther@suse.de>
25662
25663 * expr.c (handled_component_p): Move ...
25664 * tree.h (handled_component_p): ... here.
25665 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
25666 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
25667 and REALPART_EXPR to be in one group.
25668
438c239d
RG
256692009-04-20 Richard Guenther <rguenther@suse.de>
25670
25671 * basic-block.h (get_all_dominated_blocks): Declare.
25672 * dominance.c (get_all_dominated_blocks): New function.
25673 * tree-cfg.c (get_all_dominated_blocks): Remove.
25674 (remove_edge_and_dominated_blocks): Adjust.
25675 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
25676 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
25677 instead of recursing.
25678
fed5ae11
DK
256792009-04-20 Doug Kwan <dougkwan@google.com>
25680
25681 * cgraph.h (cgraph_node_ptr): New type for vector functions.
25682 (struct cgraph_node_set_def): New type.
25683 (cgraph_node_set) New type. Also declare vector functions.
25684 (struct cgraph_node_set_element_def): New type.
25685 (cgraph_node_set_element): Ditto.
25686 (cgraph_node_set_iterator): New iterator type.
25687 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
25688 cgraph_node_set_remove, dump_cgraph_node_set,
25689 debug_cgraph_node_set): New prototypes.
25690 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
25691 cgraph_node_set_size): New inlines.
25692 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
25693 including cgraph.h.
25694 (struct ipa_opt_pass): Add struct cgraph_node_set_def
25695 argument to function 'write_summary'.
25696 * ipa.c: Include ggc.h.
25697 (hash_cgraph_node_set_element,
25698 eq_cgraph_node_set_element, cgraph_node_set_new,
25699 cgraph_node_set_add, cgraph_node_set_remove,
25700 cgraph_node_set_find, dump_cgraph_node_set,
25701 debug_cgraph_node_set): New functions.
25702 * Makefile.in (ipa.o): Add dependency on GGC_H.
25703
c4551b28
IR
257042009-04-20 Ira Rosen <irar@il.ibm.com>
25705
25706 PR tree-optimization/39675
2ba9daa7 25707 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
25708 check of the return code of vect_schedule_slp. Check that
25709 stmt_vec_info still exists for the statement, before checking its
25710 vectorization type.
c4551b28 25711
21a495fb
MM
257122009-04-20 Michael Matz <matz@suse.de>
25713
25714 * Makefile.in (generated_files): Take out $(simple_generated_c).
25715
8e208874
DK
257162009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
25717
25718 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
25719 (UINTPTR_TYPE): Likewise.
25720
a45e580b
JM
257212009-04-19 Joseph Myers <joseph@codesourcery.com>
25722
25723 PR c/37481
25724 * c-typeck.c (digest_init): Check for initializing an array with a
25725 string literal.
25726
20845d35
JM
257272009-04-19 Joseph Myers <joseph@codesourcery.com>
25728
25729 PR c/19771
25730 * c-semantics.c (pop_stmt_list): Propagate
25731 STATEMENT_LIST_HAS_LABEL to parent statement list.
25732
28143fdd
AN
257332009-04-19 Adam Nemet <anemet@caviumnetworks.com>
25734
25735 * config/mips/mips.h (mips_tune_attr): New macro.
25736 * config/mips/mips.md (cpu): Use it.
25737
da377db9
JM
257382009-04-19 Joseph Myers <joseph@codesourcery.com>
25739
25740 PR c/38243
25741 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
25742 declaring a tag.
25743
3baf459d
DN
257442009-04-19 Diego Novillo <dnovillo@google.com>
25745
25746 * toplev.c (compile_file): Move call to coverage_finish ...
25747 * cgraphunit.c (ipa_passes): ... here.
25748 Call cgraph_process_new_functions.
25749 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
25750 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
25751
b6fa5b01
JH
257522009-04-19 Jan Hubicka <jh@suse.cz>
25753
47f402d1
UB
25754 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
25755 cfun.
b6fa5b01
JH
25756 (dump_cgraph_node): Dump can throw external flag.
25757 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
25758
ca409efd
MLI
257592009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
25760
25761 PR c/32061
25762 PR c++/36954
25763 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
25764 * common.opt (Wlogical-op): Move from here...
25765 * c.opt (Wlogical-op): ... to here.
25766 * c-typeck.c (parser_build_binary_op): Update call to
25767 warn_logical_operator.
25768 * c-opts.c (c_common_post_options): Enable warn_logical_op with
25769 extra_warnings.
25770 * c-common.c (warn_logical_op): Update.
25771 * c-common.h (warn_logical_op): Update declaration.
25772
9db4cdd3
EB
257732009-04-19 Eric Botcazou <ebotcazou@adacore.com>
25774
25775 * tree.c (protected_set_expr_location): Fix formatting.
25776
f37acdf9
JM
257772009-04-18 Joseph Myers <joseph@codesourcery.com>
25778
25779 PR c/27676
25780 * c-typeck.c (readonly_warning): new.
25781 (build_unary_op, build_modify_expr): Use readonly_warning for
25782 storing into something readonly but not const-qualified.
25783
2b4b7036
JM
257842009-04-18 Joseph Myers <joseph@codesourcery.com>
25785
25786 PR c/22367
25787 * c-typeck.c (build_unary_op): Check for taking address of
25788 expression of type void.
25789
3ce62965
JM
257902009-04-18 Joseph Myers <joseph@codesourcery.com>
25791
25792 PR c/35210
25793 * c-typeck.c (build_function_call): Check for calling a function
25794 with qualified void return types. Call require_complete_type when
25795 generating a trap.
25796
2505c5ed
JH
257972009-04-18 Jan Hubicka <jh@suse.cz>
25798
25799 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
25800 Set nothrow flag.
25801 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
25802 can_throw_external flag.
25803 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
25804 * ipa-pure-const.c (ignore_edge): New function.
25805 (propagate): Compute order for NOTHROW computation; set NOTHROWs
25806 only over can_throw_external edges.
25807 (local_pure_const): Add nothrow flag.
25808 * ipa-utils.c (searchc): Add ignore_edge callback.
25809 (ipa_utils_reduced_inorder): Add ignore_edge callback.
25810 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
25811 (set_nothrow_function_flags): Update cgraph.
25812 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
25813
2586ba4b
RG
258142009-04-18 Richard Guenther <rguenther@suse.de>
25815
25816 PR middle-end/39804
25817 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
25818 (fold_stmt): ... this and ...
25819 (fold_stmt_inplace): ... this.
25820 (fold_stmt_1): Fold references in calls and asms.
25821 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
25822
1eefab17
KH
258232009-04-18 Kazu Hirata <kazu@codesourcery.com>
25824
25825 * tree-vrp.c (ssa_name_nonzero_p): Remove.
25826 * tree.h: Remove the prototype for ssa_name_nonzero_p.
25827
aa424b01
KH
258282009-04-18 Kazu Hirata <kazu@codesourcery.com>
25829
25830 * tree.c (function_args_count): Remove.
25831 * tree.h: Remove the prototype for function_args_count.
25832
613a896b
KH
258332009-04-18 Kazu Hirata <kazu@codesourcery.com>
25834
25835 * tree-iterator.c (expr_only): Remove.
25836 * tree.h: Remove the prototype for expr_only.
25837
579e694c
KH
258382009-04-18 Kazu Hirata <kazu@codesourcery.com>
25839
25840 * reginfo.c (cannot_change_mode_set_regs): Remove.
25841 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
25842
ee7e3ad3
AS
258432009-04-08 Anatoly Sokolov <aesok@post.ru>
25844
25845 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
25846 whether operands 0 and 1 overlaps.
25847
92ef7fb1
MLI
258482009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
25849
25850 PR middle-end/36902
25851 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
25852 pointer. Use warning_at instead of warning.
25853 (search_for_addr_array): Likewise.
25854 (check_array_bounds): Likewise.
25855 (check_all_array_refs): Check that the incoming edge is not in the
25856 list of edges to be removed.
25857 (check_all_array_refs): Avoid the temporal pointer.
25858 (vrp_visit_cond_stmt): Fix typo.
25859 (simplify_switch_using_ranges): Handle the case where the switch
25860 index is an integer constant.
25861
0e097268
AN
258622009-04-18 Adam Nemet <anemet@caviumnetworks.com>
25863
25864 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
25865
c782f1dd
KH
258662009-04-18 Kazu Hirata <kazu@codesourcery.com>
25867
25868 * doc/extend.texi, doc/invoke.texi: Fix typos.
25869
668fb0e8
CC
258702009-04-17 Cary Coutant <ccoutant@google.com>
25871
25872 * tree-flow-inline.h (get_lineno): Fix inverted test.
25873
4d4014c1
DN
258742009-04-17 Diego Novillo <dnovillo@google.com>
25875
25876 * tree-ssa-pre.c (create_expression_by_pieces): Remove
25877 assertion for AVAIL_OUT.
25878
2984e1b6
MF
258792009-04-17 Mike Frysinger <vapier@gentoo.org>
25880
25881 PR target/38627
25882 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
25883 * config/sh/linux-atomic.asm: Likewise.
25884
9994a182
DN
258852009-04-17 Diego Novillo <dnovillo@google.com>
25886
25887 * except.c (debug_eh_tree): New.
25888 (struct eh_region, struct eh_status): Move ...
25889 * except.h: ... here.
25890 (add_type_for_runtime): Declare extern.
25891 (lookup_type_for_runtime): Likewise.
25892 (debug_eh_tree): Declare.
25893 * Makefile.in (GTFILES): List except.h before except.c
25894
07485407
DN
258952009-04-17 Diego Novillo <dnovillo@google.com>
25896
47f402d1 25897 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
25898 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
25899 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
25900 (find_vars_r): ... here.
25901 * tree-flow.h (find_referenced_vars_in): Declare.
25902 * tree-ssa-pre.c (create_expression_by_pieces): Assert
25903 that AVAIL_OUT exists for BLOCK.
25904 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
25905 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
25906 (tree-parloops.o): Likewise.
25907
4e53d196
SB
259082009-04-17 Simon Baldwin <simonb@google.com>
25909
25910 * toplev.c (default_tree_printer): Add handling for %E format.
25911
413d3aa8
DN
259122009-04-17 Diego Novillo <dnovillo@google.com>
25913
47f402d1
UB
25914 * tree-pretty-print.c (dump_generic_node): Add break after
25915 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
25916 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
25917 FUNCTION_TYPE together. Call print_struct_decl when printing
25918 structures and TDF_SLIM is not given.
413d3aa8
DN
25919 (print_struct_decl): Fix logic for detecting recursion.
25920
5a691e98
RAE
259212009-04-17 Rafael Avila de Espindola <espindola@google.com>
25922
25923 PR 31567
25924 * gcc.c (create_at_file): New.
25925 (compile_input_file_p): New.
25926 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
25927 * main.c (main): Update call to toplev_main.
25928 * toplev.c (toplev_main): Change signature. Call expandargv.
25929 * toplev.h (toplev_main): Change signature.
25930
9eacf7a6
EB
259312009-04-17 Eric Botcazou <ebotcazou@adacore.com>
25932
25933 * dwarf2out.c (field_byte_offset): Use the type size as the field size
25934 if the latter is not constant.
25935
58298177
DE
259362009-04-17 David Edelsohn <edelsohn@gnu.org>
25937
25938 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
25939
5b4c43d7
EB
259402009-04-17 Eric Botcazou <ebotcazou@adacore.com>
25941
25942 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
25943 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
25944
b51605c4
RG
259452009-04-17 Richard Guenther <rguenther@suse.de>
25946
25947 * tree-ssa-structalias.c (get_constraint_for_component_ref):
25948 Handle component references view-converting an invariant address.
25949
9e3be889
AN
259502009-04-17 Adam Nemet <anemet@caviumnetworks.com>
25951
25952 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
25953 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
25954 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
25955 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
25956 Use @deftypevr rather than @deftypevar.
25957
7c3e9dc3
RG
259582009-04-17 Richard Guenther <rguenther@suse.de>
25959
47f402d1 25960 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
25961 (get_prop_source_stmt): Likewise.
25962 (can_propagate_from): Likewise.
25963
aca600aa
AS
259642009-04-17 Andrew Stubbs <ams@codesourcery.com>
25965
25966 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
25967 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
25968 (--with-multilib-list): Add default value.
25969 * configure: Regenerate.
25970 * Makefile.in (TM_ENDIAN_CONFIG): Define.
25971 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
25972 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
25973 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
25974 Don't add default cpu to multilib list unnecessarily, but do enable
25975 the relevant compiler option..
25976 Add support for --with-multilib-list=<blank> and
25977 --with-multilib-list=!<somelib> to supress unwanted multilibs.
25978 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
25979 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
25980 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
25981 TM_MULTILIB_CONFIG.
25982 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
25983 (MULTILIB_OSDIRNAMES): New variable.
25984 * config/sh/t-1e: Delete file.
25985 * config/sh/t-mlib-sh1: Delete file.
25986 * config/sh/t-mlib-sh2: Delete file.
25987 * config/sh/t-mlib-sh2a: Delete file.
25988 * config/sh/t-mlib-sh2a-nofpu: Delete file.
25989 * config/sh/t-mlib-sh2a-single: Delete file.
25990 * config/sh/t-mlib-sh2a-single-only: Delete file.
25991 * config/sh/t-mlib-sh2e: Delete file.
25992 * config/sh/t-mlib-sh3e: Delete file.
25993 * config/sh/t-mlib-sh4: Delete file.
25994 * config/sh/t-mlib-sh4-nofpu: Delete file.
25995 * config/sh/t-mlib-sh4-single: Delete file.
25996 * config/sh/t-mlib-sh4-single-only: Delete file.
25997 * config/sh/t-mlib-sh4a: Delete file.
25998 * config/sh/t-mlib-sh4a-nofpu: Delete file.
25999 * config/sh/t-mlib-sh4a-single: Delete file.
26000 * config/sh/t-mlib-sh4a-single-only: Delete file.
26001 * config/sh/t-mlib-sh4al: Delete file.
26002 * config/sh/t-mlib-sh5-32media: Delete file.
26003 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
26004 * config/sh/t-mlib-sh5-64media: Delete file.
26005 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
26006 * config/sh/t-mlib-sh5-compact: Delete file.
26007 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
26008 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
26009 * doc/install.texi (Options specification): Add
26010 --with-multilib-list and --with-endian.
26011
cf8aba7f
RAE
260122009-04-17 Rafael Avila de Espindola <espindola@google.com>
26013
26014 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
26015 REVISION_c.
26016 (OBJS-common): Add plugin-version.o.
26017 (plugin-version.o): New.
26018 * gcc-plugin.h (plugin_gcc_version): New.
26019 (plugin_default_version_check): New.
26020 (plugin_init_func, plugin_init): Add version argument.
26021 * plugin-version.c: New.
26022 * plugin.c (str_plugin_gcc_version_name): New.
26023 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
26024 pass it to the init function.
26025 (plugin_default_version_check): New.
26026
61e20b90
RG
260272009-04-17 Richard Guenther <rguenther@suse.de>
26028
26029 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
26030 for decl-vs-decl disambiguation.
26031
90c6fd8a
AK
260322009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
26033
26034 * config/s390/s390.h (s390_tune_attr): New macro definition.
26035 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
26036
9fe9fe04
RG
260372009-04-17 Richard Guenther <rguenther@suse.de>
26038
26039 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
26040 (fold_stmt_r): Likewise.
26041 (maybe_fold_reference): New function.
26042 (fold_gimple_assign): Handle cases fold_stmt_r did.
26043 (fold_stmt): Do not use fold_stmt_r.
26044 (fold_stmt_inplace): Likewise.
26045
7e673273
RG
260462009-04-17 Richard Guenther <rguenther@suse.de>
26047
26048 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
26049 (record_equivalences_from_stmt): Remove useless checks and
26050 simplifications.
26051 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
26052 the type is already suitable.
26053
fabf2749
PB
260542009-04-17 Paolo Bonzini <bonzini@gnu.org>
26055
26056 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
26057
68f7b061
UB
260582009-04-17 Uros Bizjak <ubizjak@gmail.com>
26059
26060 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
26061 (CMPtype): Define as __gcc_CMPtype.
26062
532bfb0a
AJ
260632009-04-17 Aurelien Jarno <aurelien@aurel32.net>
26064
26065 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
26066 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
26067
e3ac77ff
RG
260682009-04-17 Richard Guenther <rguenther@suse.de>
26069
26070 PR tree-optimization/39746
26071 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
26072 special-casing for builtins and static variable use/def.
26073 (call_may_clobber_ref_p_1): Likewise.
26074
7072a650
ILT
260752009-04-16 Ian Lance Taylor <iant@google.com>
26076
26077 * df.h: Include "timevar.h".
26078 (struct df_problem): Change tv_id field to timevar_id_t.
26079 * tree-pass.h: Include "timevar.h".
26080 (struct opt_pass): Change tv_id field to timevar_id_t.
26081 * timevar.h (timevar_id_t): Define TV_NONE.
26082 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
26083 TV_NONE rather than tv_id != 0.
26084 (execute_one_pass): Likewise.
26085 * Makefile.in (DF_H): Add $(TIMEVAR_H).
26086 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
26087 dependencies to $(TREE_PASS_H).
26088 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
26089 to TV_NONE.
26090 (pass_branch_target_load_optimize2): Likewise.
26091 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
26092 (pass_outof_cfg_layout_mode): Likewise.
26093 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
26094 (pass_rebuild_cgraph_edges): Likewise.
26095 (pass_remove_cgraph_callee_edges): Likewise.
26096 * df-core.c (pass_df_initialize_opt): Likewise.
26097 (pass_df_initialize_no_opt): Likewise.
26098 (pass_df_finish): Likewise.
26099 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
26100 * except.c (pass_set_nothrow_function_flags): Likewise.
26101 (pass_convert_to_eh_region_ranges): Likewise.
26102 * final.c (pass_compute_alignments): Likewise.
26103 * function.c (pass_instantiate_virtual_regs): Likewise.
26104 (pass_init_function): Likewise.
26105 (pass_leaf_regs): Likewise.
26106 (pass_match_asm_constraints): Likewise.
26107 * gimple-low.c (pass_lower_cf): Likewise.
26108 (pass_mark_used_blocks): Likewise.
26109 * init-regs.c (pass_initialize_regs): Likewise.
26110 * integrate.c (pass_initial_value_sets): Likewise.
26111 * ira.c (pass_ira): Likewise.
26112 * jump.c (pass_cleanup_barriers): Likewise.
26113 * omp-low.c (pass_expand_omp): Likewise.
26114 (pass_lower_omp): Likewise.
26115 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
26116 * recog.c (pass_split_all_insns): Likewise.
26117 (pass_split_after_reload): Likewise.
26118 (pass_split_before_regstack): Likewise.
26119 (pass_split_before_sched2): Likewise.
26120 (pass_split_for_shorten_branches): Likewise.
26121 * reginfo.c (pass_reginfo_init): Likewise.
26122 (pass_subregs_of_mode_init): Likewise.
26123 (pass_subregs_of_mode_finish): Likewise.
26124 * passes.c (pass_postreload): Likewise.
26125 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
26126 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
26127 (pass_warn_function_return): Likewise.
26128 (pass_warn_function_noreturn): Likewise.
26129 * tree-complex.c (pass_lower_complex): Likewise.
26130 (pass_lower_complex_O0): Likewise.
26131 * tree-if-conv.c (pass_if_conversion): Likewise.
26132 * tree-into-ssa.c (pass_build_ssa): Likewise.
26133 * tree-mudflap.c (pass_mudflap_1): Likewise.
26134 (pass_mudflap_2): Likewise.
26135 * tree-nomudflap.c (pass_mudflap_1): Likewise.
26136 (pass_mudflap_2): Likewise.
26137 * tree-nrv.c (pass_return_slot): Likewise.
26138 * tree-object-size.c (pass_object_sizes): Likewise.
26139 * tree-optimize.c (pass_all_optimizations): Likewise.
26140 (pass_early_local_passes): Likewise.
26141 (pass_all_early_optimizations): Likewise.
26142 (pass_cleanup_cfg): Likewise.
26143 (pass_cleanup_cfg_post_optimizing): Likewise.
26144 (pass_free_datastructures): Likewise.
26145 (pass_free_cfg_annotations): Likewise.
26146 (pass_fixup_cfg): Likewise.
26147 (pass_init_datastructures): Likewise.
26148 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
26149 (pass_late_warn_uninitialized): Likewise.
26150 (pass_update_address_taken): Likewise.
26151 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
26152 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
26153 (pass_cse_sincos): Likewise.
26154 (pass_convert_to_rsqrt): Likewise.
26155 * tree-ssa-structalias.c (pass_build_alias): Likewise.
26156 * tree-stdarg.c (pass_stdarg): Likewise.
26157 * tree-tailcall.c (pass_tail_recursion): Likewise.
26158 (pass_tail_calls): Likewise.
26159 * tree-vect-generic.c (pass_lower_vector): Likewise.
26160 (pass_lower_vector_ssa): Likewise.
26161 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
26162
0051ef59
JM
261632009-04-16 Joseph Myers <joseph@codesourcery.com>
26164
26165 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
26166 XLR entry.
26167 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
26168 Handle -march=xlr.
26169 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
26170 logical and signext.
26171
b3f8558a
KK
261722009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
26173
26174 PR target/39767
26175 * config/sh/predicates.md (arith_operand): Check if the operand
26176 of TRUNCATE is a REG.
26177
f57597d9
KH
261782009-04-16 Kazu Hirata <kazu@codesourcery.com>
26179
26180 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
26181 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
26182
b172d063
KH
261832009-04-16 Kazu Hirata <kazu@codesourcery.com>
26184
26185 * tree-iterator.c (tsi_split_statement_list_after,
26186 tsi_split_statement_list_before): Remove.
26187 * tree-iterator.h: Remove the prototypes for
532bfb0a 26188 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 26189
78fe4f1f
KH
261902009-04-16 Kazu Hirata <kazu@codesourcery.com>
26191
26192 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
26193 * tree-ssa-propagate.h: Remove the prototype for
26194 stmt_makes_single_load.
26195
43dd3201
KH
261962009-04-16 Kazu Hirata <kazu@codesourcery.com>
26197
26198 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
26199 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
26200
4252a4aa
KH
262012009-04-16 Kazu Hirata <kazu@codesourcery.com>
26202
26203 * tree-iterator.c (EXPR_LAST_BODY): Remove.
26204
bfb69968
KH
262052009-04-16 Kazu Hirata <kazu@codesourcery.com>
26206
26207 * except.c (eh_region_outer_p): Remove.
26208 * except.h: Remove the prototype for eh_region_outer_p.
26209
c7db7fa5
KH
262102009-04-16 Kazu Hirata <kazu@codesourcery.com>
26211
26212 * function.c (current_function_assembler_name): Remove.
26213 * function.h: Remove the prototype for
26214 current_function_assembler_name.
26215
efc0b2bd
ILT
262162009-04-16 Ian Lance Taylor <iant@google.com>
26217
532bfb0a 26218 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
26219 (add_reg_note): Call alloc_reg_note.
26220 * rtl.h (alloc_reg_note): Declare.
26221 * combine.c (try_combine): Use alloc_reg_note.
26222 (recog_for_combine, move_deaths): Likewise.
26223 (distribute_notes): Use alloc_reg_note and add_reg_note.
26224 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
26225 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
26226 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
26227
6080348f
VM
262282009-04-16 Vladimir Makarov <vmakarov@redhat.com>
26229
26230 PR rtl-optimization/39762
26231 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
26232 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 26233 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 26234
6080348f
VM
26235 * ira-conflicts.c (process_regs_for_copy): Use function
26236 ira_get_register_move_cost instead of global
26237 ira_register_move_cost.
26238
26239 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
26240 color_pass, move_spill_restore, update_curr_costs): Ditto.
26241
26242 * ira-lives.c (process_single_reg_class_operands): Ditto.
26243
26244 * ira-emit.c (emit_move_list): Ditto.
26245
26246 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
26247 (record_reg_classes): Ditto. Use functions
26248 ira_get_register_move_cost and ira_get_may_move_cost instead of
26249 global vars ira_register_move_cost, ira_may_move_out_cost and
26250 ira_may_move_in_cost.
26251 (record_address_regs): Don't call ira_init_register_move_cost.
26252 Use function ira_get_may_move_cost instead of global
26253 ira_may_move_in_cost.
26254 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 26255 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 26256 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 26257
646bea10
RG
262582009-04-16 Richard Guenther <rguenther@suse.de>
26259
26260 * tree-cfg.c (verify_gimple_assign_binary):
26261 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
26262 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
26263 (create_general_new_stmt): Note that this function is broken.
26264
02e819ff
RAE
262652009-04-16 Rafael Avila de Espindola <espindola@google.com>
26266
26267 * common.opt (fhelp): Add Var(help_flag).
26268 * gcc-plugin.h (plugin_info): Add help.
26269 * plugin.c (plugin_name_args): Add help.
26270 (register_plugin_info): Set plugin->help.
26271 (print_help_one_plugin): New.
26272 (print_plugins_help): New.
26273 * plugin.h (print_plugins_help): New.
26274 * toplev.c (toplev_main): Call print_plugins_help if needed.
26275
ccacdf06
RG
262762009-04-16 Richard Guenther <rguenther@suse.de>
26277
26278 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
26279 (gimple_ior_addresses_taken_1): New function.
26280 (gimple_ior_addresses_taken): Likewise.
26281 * gimple.h (struct gimple_statement_with_ops_base): Remove
26282 addresses_taken member.
26283 (gimple_ior_addresses_taken): Declare.
26284 (gimple_addresses_taken, gimple_addresses_taken_ptr,
26285 gimple_set_addresses_taken): Remove.
26286 * ipa-reference.c (mark_address): New function.
26287 (scan_stmt_for_static_refs): Use it for marking addresses taken.
26288 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
26289 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
26290 (gimple_add_to_addresses_taken): Remove.
26291 (get_tmr_operands): Call mark_address_taken.
26292 (get_asm_expr_operands): Likewise.
26293 (get_expr_operands): Likewise.
26294 (build_ssa_operands): Do not clear the addresses_taken bitmap.
26295 (free_stmt_operands): Do not free it.
26296 * tree-ssa.c (delete_tree_ssa): Likewise.
26297 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
26298
346ef3fa
RG
262992009-04-16 Richard Guenther <rguenther@suse.de>
26300
26301 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
26302 (walk_stmt_load_store_ops): Likewise.
26303 * gimple.c (get_base_loadstore): New function.
26304 (walk_stmt_load_store_addr_ops): Likewise.
26305 (walk_stmt_load_store_ops): Likewise.
26306 * ipa-pure-const.c (check_op): Simplify.
26307 (check_load, check_store): New functions.
26308 (check_stmt): Use walk_stmt_load_store_ops.
26309 * ipa-reference.c (mark_load): Adjust signature.
26310 (mark_store): Likewise.
26311 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
26312
44e9f006
RAE
263132009-04-16 Rafael Avila de Espindola <espindola@google.com>
26314
26315 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
26316 (plugin_info): New.
26317 * opts.c (common_handle_option): Don't call print_version.
26318 * plugin.c (plugin_name_args): Add version.
26319 (register_plugin_info): New.
26320 (register_callback): Handle PLUGIN_INFO.
26321 (try_init_one_plugin): New.
26322 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
26323 if failed to init.
26324 (finalize_one_plugin): New.
26325 (finalize_plugins): New.
26326 (print_one_plugin): New.
26327 (print_plugins_versions): New.
26328 * plugin.h (print_plugins_versions): New.
26329 (finalize_plugins): New.
26330 * toplev.c (compile_file): Don't call initialize_plugins.
26331 (print_version): Call print_plugins_versions.
26332 (toplev_main): Call initialize_plugins. Print version if needed.
26333 Call finalize_plugins.
26334
41fd0f9b
RAE
263352009-04-16 Rafael Avila de Espindola <espindola@google.com>
26336
26337 * common.opt (fversion): New.
26338 * gcc.c (print_version): New.
26339 (process_command): Don't print the version. Just set print_version.
26340 (main): Print version. Call subprocesses if print_version and
26341 verbose_flag are set.
26342 * opts.c (common_handle_option): Handle OPT_fversion.
26343
550918ca 263442009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 26345 Ira Rosen <irar@il.ibm.com>
550918ca
RG
26346
26347 PR tree-optimization/39698
26348 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
26349 type of the reduction variable. Only generate the def if
26350 it is needed.
26351
26352 * omp-low.c (expand_omp_for_generic): When converting to a pointer
26353 make sure to first convert to an integer of the same precision.
26354 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
26355 the type of the evolution correctly in computing the new
26356 induction variable base.
26357
54634841
RG
263582009-04-16 Richard Guenther <rguenther@suse.de>
26359
26360 PR middle-end/39625
26361 * tree-cfg.c (make_blocks): Split statements with to-be
26362 abnormal SSA names on the lhs.
26363
b6fc2cdb
PB
263642009-04-16 Paolo Bonzini <bonzini@gnu.org>
26365
26366 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
26367 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
26368 * c-typeck.c (really_start_incremental_init): Likewise.
26369 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
26370 (TARGET_INITIALIZER): Remove it.
26371 * target.h (struct target): Remove vector_opaque_p.
26372 * tree.c (build_opaque_vector_type): New.
26373 * tree.h (TYPE_VECTOR_OPAQUE): New.
26374 (build_opaque_vector_type): Declare.
26375 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
26376 * config/rs6000/rs6000.c (build_opaque_vector_type,
26377 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
26378 (rs6000_init_builtins): Use build_opaque_vector_type for
26379 opaque_V4SI_type_node.
26380
a417cdd9
CM
263812009-04-15 Catherine Moore <clm@codesourcery.com>
26382
532bfb0a
AJ
26383 * debug.h (set_name): Declare.
26384 * dwarf2out.c (dwarf2out_set_name): Declare.
26385 (dwarf2_debug_hooks): Add set_name.
26386 (find_AT_string): New.
26387 (add_AT_string): Call find_AT_string.
26388 (dwarf2out_set_name): New.
26389 * cp/decl.c (grokdeclarator): Call set_name.
26390 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
26391 * debug.c (do_nothing_debug_hooks): Likewise.
26392 * dbxout.c (dbx_debug_hooks): Likewise.
26393 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 26394
60839f5d 263952009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 26396
532bfb0a
AJ
26397 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
26398 reg for single-precision FPU.
26399 * config/rs6000/rs6000.md (movsi_internal1): Only for
26400 !TARGET_SINGLE_FPU.
26401 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
26402 single-precision FP regs.
26403
ada39f0b
RG
264042009-04-15 Richard Guenther <rguenther@suse.de>
26405
26406 * omp-low.c (lower_rec_input_clauses): Build correct address
26407 expressions.
26408 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 26409 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
26410 (generate_memset_zero): Fix types.
26411 * tree-profile.c (prepare_instrumented_value): Correctly
26412 widen a pointer.
26413
6866c6e8
ILT
264142009-04-15 Ian Lance Taylor <iant@google.com>
26415
26416 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
26417 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
26418 for -Wall and for -Wc++-compat.
26419 (c_common_post_options): For C++, set warn_enum_compare if not
26420 already set.
26421 * c-tree.h (struct c_expr): Add field original_type.
26422 (build_external_ref): Update declaration.
26423 * c-parser.c (c_parser_braced_init): Set original_type.
26424 (c_parser_initelt): Likewise.
26425 (c_parser_expr_no_commas): Likewise.
26426 (c_parser_conditional_expression): Likewise.
26427 (c_parser_cast_expression): Likewise.
26428 (c_parser_unary_expression): Likewise. Pull setting of
26429 original_code to top of function.
26430 (c_parser_sizeof_expression): Set original_type.
26431 (c_parser_alignof_expression): Likewise.
26432 (c_parser_postfix_expression): Likewise. Pull setting of
26433 original_code to top of function.
532bfb0a 26434 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
26435 (c_parser_postfix_expression_after_primary): Likewise.
26436 (c_parser_expression): Likewise.
26437 * c-typeck.c (build_external_ref): Add type parameter. Change all
26438 callers.
26439 (c_expr_sizeof_expr): Set original_type field.
26440 (parser_build_unary_op): Likewise.
26441 (parser_build_binary_op): Likewise. Optionally warn about
26442 comparisons of enums of different types.
26443 (digest_init): Set original_type field.
26444 (really_start_incremental_init): Likewise.
26445 (push_init_level, pop_init_level): Likewise.
26446 * doc/invoke.texi (Warning Options): -Wenum-compare now
26447 supported in C.
26448
f116fecf
RG
264492009-04-15 Richard Guenther <rguenther@suse.de>
26450
26451 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
26452 out a necessary conversion.
26453 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
26454 names we didn't value number.
26455 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
26456
25e20805
RG
264572009-04-15 Richard Guenther <rguenther@suse.de>
26458
26459 PR tree-optimization/39764
26460 * tree-ssa-ccp.c (get_value): Canonicalize value with
26461 canonicalize_float_value.
26462
90cc3676
JH
264632009-04-15 Jan Hubicka <jh@suse.cz>
26464
26465 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
26466 Wrong version of patch.
26467
6d14c006
JH
264682009-04-15 Jan Hubicka <jh@suse.cz>
26469
26470 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
26471
5afaa917
NS
264722009-04-15 Nathan Sidwell <nathan@codesourcery.com>
26473
26474 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
26475 our distinct integral and vector types.
26476
3b482fca
RAE
264772009-04-15 Rafael Avila de Espindola <espindola@google.com>
26478
26479 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
26480 * init.c (build_vtbl_address): Remove call to assemble_external.
26481
6cd1d2e2
DJ
264822009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
26483
26484 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
26485 output for other floating point modes.
26486
dab71827
DN
264872009-04-14 Diego Novillo <dnovillo@google.com>
26488
26489 * diagnostic.c (diagnostic_report_diagnostic): Do not
26490 warn about loaded plugins for DK_ERROR and DK_WARNING.
26491 * c-decl.c (declspecs_add_type): Move call to
26492 invoke_plugin_callbacks ...
26493 * c-parser.c (c_parser_declspecs): ... here.
26494 * plugin.c (dump_active_plugins): Tidy output.
26495
68a607d8
DN
264962009-04-14 Diego Novillo <dnovillo@google.com>
26497 Le-Chun Wu <lcwu@google.com>
26498
26499 * configure.ac: Add --enable-plugin support.
26500 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
26501 * Makefile.in (PLUGIN_H): Define.
26502 Export ENABLE_PLUGIN and GMPINC to site.exp.
26503 Add PLUGINLIBS to link command.
26504 Add/modify dependencies for plugin.o and files including plugin.h.
26505 (plugin.o): New.
26506 * config.in: Regenerate.
2ba9daa7 26507
68a607d8
DN
26508 * opts.c (common_handle_option): Handle OPT_fplugin_ and
26509 OPT_fplugin_arg_.
26510
265112009-04-14 Le-Chun Wu <lcwu@google.com>
26512
26513 * tree-pass.h (register_one_dump_file): Add a prototype for
26514 register_one_dump_file.
26515 * toplev.c (compile_file): Call initialize_plugins.
26516 (do_compile): Call invoke_plugin_callbacks.
26517 (toplev_main): Call invoke_plugin_callbacks.
26518 * common.opt: Add -fplugin= and -fplugin-arg-.
26519 * gcc-plugin.h: New public header file for plugins to include.
26520 * plugin.c: New source file.
26521 * plugin.h: New internal header file.
26522 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 26523
68a607d8
DN
26524 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
26525
265262009-04-14 Diego Novillo <dnovillo@google.com>
26527
26528 * doc/plugins.texi: New.
26529 * doc/gccint.texi: Add reference to Plugins chapter.
26530 * doc/invoke.texi: Document -fplugin and -fplugin-arg
26531 * diagnostic.c (diagnostic_report_diagnostic): Warn about
26532 loaded plugins, if any.
26533 * timevar.def (TV_PLUGIN_INIT): Define.
26534 (TV_PLUGIN_RUN): Define.
26535 * plugin.c: Include timevar.h
26536 (plugins_active_p): New.
26537 (dump_active_plugins): New.
26538 (debug_active_plugins): New.
26539
50617257
JM
265402009-04-14 Joseph Myers <joseph@codesourcery.com>
26541
26542 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
26543 library paths.
26544 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
26545
b32f6fff
KH
265462009-04-14 Kazu Hirata <kazu@codesourcery.com>
26547
26548 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
26549 the same as a minus without a shift.
26550
85d04fa2
NC
265512009-04-14 Nick Clifton <nickc@redhat.com>
26552
26553 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
26554 comparisons with small integers will always produce a short
26555 branch.
26556
e495a0c8
RAE
265572009-04-14 Rafael Avila de Espindola <espindola@google.com>
26558
26559 Merge:
e495a0c8
RAE
26560 2008-12-19 Diego Novillo <dnovillo@google.com>
26561
532bfb0a 26562 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 26563
ad41bd84 265642009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
26565
26566 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
26567 verification.
26568 (verify_gimple_assign_binary): Likewise. Handle shifts and
26569 rotates correctly.
26570 (verify_gimple_phi): Print the mismatched argument position.
26571 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
26572 Fix types.
26573 (vect_update_init_of_dr): Likewise.
26574 * matrix-reorg.c (transform_access_sites): Do what the
26575 comment suggests.
26576 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
26577
60839f5d 265782009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
26579
26580 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
26581 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
26582 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 26583 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
26584 remove duplicate config
26585
b0e2d008
DR
265862009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
26587
26588 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
26589 file_name:line_number type locator of the call site.
2ba9daa7 26590
1244a8b7
VM
265912009-04-13 Vladimir Makarov <vmakarov@redhat.com>
26592
26593 * genautomata.c: Put blank after comma.
26594 (automaton_decls): New.
26595 (struct unit_usage): Add comments to member next.
26596 (store_alt_unit_usage): Keep the list ordered.
26597 (unit_present_on_list_p, equal_alternatives_p): New.
26598 (check_regexp_units_distribution): Check units distribution
26599 correctness correctly.
26600 (main): Don't write automata if error is found. Return correct
26601 exit code.
2ba9daa7 26602
1244a8b7
VM
26603 * config/m68k/cf.md (cfv4_ds): Remove.
26604 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
26605 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
26606
26607 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
26608 power4-load-ext, power4-store, power4-store-update,
26609 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
26610 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
26611 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
26612 power4-sqrt, power4-isync): Modify reservation to make correct
26613 unit distribution to automata.
26614
26615 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
26616 power5-store-update, power5-two, power5-three, power5-lmul,
26617 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 26618
f7dd1864
AN
266192009-04-13 Adam Nemet <anemet@caviumnetworks.com>
26620
26621 * except.c (pass_set_nothrow_function_flags): Set name and add
26622 TODO_dump_func.
26623 (set_nothrow_function_flags): Mention in the dump file when
26624 changing a function to nothrow.
26625
59a1171f
OS
266262009-04-13 Ozkan Sezer <sezeroz@gmail.com>
26627
26628 PR/39066
26629 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
26630 instead of unsigned long.
26631
934c2060
RR
266322009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26633
f7dd1864
AN
26634 * config/arm/arm.c (return_used_this_function): Remove.
26635 (arm_output_function_prologue): Remove use of
934c2060 26636 return_used_this_function.
f7dd1864 26637 (output_return_instruction): Replace use of
934c2060
RR
26638 return_used_this_function
26639 by cfun->machine->return_used_this_function.
f7dd1864
AN
26640 (arm_output_epilogue): Likewise.
26641 (arm_output_function_epilogue): Likewise.
26642 (thumb_unexpanded_epilogue): Likewise.
26643 * config/arm/arm.h (struct machine_function):
934c2060 26644 New member return_used_this_function.
f7dd1864 26645
ae5cc016
MM
266462009-04-12 Mark Mitchell <mark@codesourcery.com>
26647
26648 * doc/install.texi: Correct description of default directory for
26649 --with-gxx-include-dir.
26650
a0ce68df 266512009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
26652
26653 * fold-const.c (build_range_check): Properly deal with enumeral and
26654 boolean base types.
26655
3906a4a1
SB
266562009-04-12 Steven Bosscher <steven@gcc.gnu.org>
26657
26658 * doc/invoke.texi (max_gcse_passes): Remove documentation.
26659 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
26660 * params.h (MAX_GCSE_PASSES): Remove.
26661 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
26662 in sequence. Remove ability to run multiple passes.
26663 (bypass_jumps): Report run as third CPROP pass.
26664
efaadb93
AN
266652009-04-12 Adam Nemet <anemet@caviumnetworks.com>
26666
26667 PR middle-end/39651
26668 * except.c (can_throw_external): Look at each insn in a SEQUENCE
26669 when deciding whether the whole SEQUENCE can throw.
26670
4c48007b
UB
266712009-04-12 Uros Bizjak <ubizjak@gmail.com>
26672
26673 PR target/39740
26674 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
26675 offseted label references.
26676
b4104018
JH
266772009-04-11 Jan Hubicka <jh@suse.cz>
26678
26679 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
26680
32848948
RG
266812009-04-11 Richard Guenther <rguenther@suse.de>
26682
26683 PR middle-end/39732
26684 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
26685 return variables as TREE_ADDRESSABLE.
26686
8810712e
RG
266872009-04-11 Richard Guenther <rguenther@suse.de>
26688
26689 PR tree-optimization/39713
26690 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
26691 reference trees have SSA_NAME operands.
26692
fa78c0c1
RG
266932009-04-11 Richard Guenther <rguenther@suse.de>
26694
26695 PR c/39712
26696 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
26697 address expressions.
26698
4d722130
DK
266992009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
26700
26701 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
26702 match changes in Cygwin 1.7
26703 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
26704 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
26705
567a90f5
PB
267062009-04-10 Paolo Bonzini <bonzini@gnu.org>
26707
26708 PR tree-optimization/39701
26709 * doc/invoke.texi (Optimization Options): Document change in
26710 meaning and initialization of -fdelete-null-pointer-checks.
26711
1ad2f450
L
267122009-04-10 H.J. Lu <hongjiu.lu@intel.com>
26713
26714 PR middle-end/39701
26715 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
26716
26717 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
26718 here.
26719
26720 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
26721
1afc5373
CF
267222009-04-10 Chao-ying Fu <fu@mips.com>
26723
26724 * doc/tm.texi (Instruction Output): Document
26725 TARGET_ASM_FINAL_POSTSCAN_INSN.
26726 * target.h (final_postscan_insn): New field in asm_out.
26727 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
26728 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
26729 * final.c (final_scan_insn): Call
26730 targetm.asm_out.final_postscan_insn after outputting
26731 an asm macro and a normal instruction.
26732
26733 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
26734 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
26735 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
26736 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
26737 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
26738
4d35e75c
PB
267392009-04-10 Paolo Bonzini <bonzini@gnu.org>
26740
26741 PR middle-end/39701
1ad2f450
L
26742 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
26743 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 26744
62c49b83
L
267452009-04-10 H.J. Lu <hongjiu.lu@intel.com>
26746
26747 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
26748
80558628
L
267492009-04-09 H.J. Lu <hongjiu.lu@intel.com>
26750
26751 PR target/39678
26752 * config/i386/i386.c (classify_argument): Handle SCmode with
26753 (bit_offset % 64) != 0.
26754
8c70d28b
SL
267552009-04-09 Sandra Loosemore <sandra@codesourcery.com>
26756
26757 * doc/invoke.texi (Optimize Options): Add cross-reference to
26758 -Q --help=optimizers examples.
26759
e1ff19bf
BE
267602009-04-10 Ben Elliston <bje@au.ibm.com>
26761
26762 PR target/36800
26763 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
26764 regalign for the reg == fpr and TDmode case.
26765
52daca75
DA
267662009-04-09 David Ayers <ayers@fsfe.org>
26767
26768 PR objc/29200
26769 * objc/objc-act.c (warn_with_method): Remove helper function.
26770 (check_duplicates): Call warning and inform directly.
26771 (really_start_method): Likewise.
26772
b45f0e58
PB
267732009-04-09 Paolo Bonzini <bonzini@gnu.org>
26774
26775 * expmed.c (expand_divmod): Always use a comparison for a division
26776 by a large unsigned integer.
26777
1ad2f450
L
26778 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
26779 for things others than variables or functions as nonzero.
b45f0e58 26780
748086b7
JJ
267812009-04-09 Nick Clifton <nickc@redhat.com>
26782
26783 * unwind-compat.c: Change copyright header to refer to version
26784 3 of the GNU General Public License with version 3.1 of the
26785 GCC Runtime Library Exception and to point readers at the
7a715bba 26786 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
26787 * config/alpha/crtfastmath.c: Likewise.
26788 * config/alpha/linux-unwind.h: Likewise.
26789 * config/alpha/qrnnd.asm: Likewise.
26790 * config/alpha/vms-crt0-64.c: Likewise.
26791 * config/alpha/vms-crt0.c: Likewise.
26792 * config/alpha/vms-dwarf2.asm: Likewise.
26793 * config/alpha/vms-dwarf2eh.asm: Likewise.
26794 * config/alpha/vms-psxcrt0-64.c: Likewise.
26795 * config/alpha/vms-psxcrt0.c: Likewise.
26796 * config/alpha/vms_tramp.asm: Likewise.
26797 * config/arc/initfini.c: Likewise.
26798 * config/arc/lib1funcs.asm: Likewise.
26799 * config/arm/bpabi-v6m.S: Likewise.
26800 * config/arm/bpabi.S: Likewise.
26801 * config/arm/bpabi.c: Likewise.
26802 * config/arm/crti.asm: Likewise.
26803 * config/arm/crtn.asm: Likewise.
26804 * config/arm/ieee754-df.S: Likewise.
26805 * config/arm/ieee754-sf.S: Likewise.
26806 * config/arm/lib1funcs.asm: Likewise.
26807 * config/arm/libunwind.S: Likewise.
26808 * config/arm/linux-atomic.c: Likewise.
26809 * config/arm/mmintrin.h: Likewise.
26810 * config/arm/pr-support.c: Likewise.
26811 * config/arm/unaligned-funcs.c: Likewise.
26812 * config/arm/unwind-arm.c: Likewise.
26813 * config/arm/unwind-arm.h: Likewise.
26814 * config/avr/libgcc.S: Likewise.
26815 * config/bfin/crti.s: Likewise.
26816 * config/bfin/crtlibid.s: Likewise.
26817 * config/bfin/crtn.s: Likewise.
26818 * config/bfin/lib1funcs.asm: Likewise.
26819 * config/bfin/linux-unwind.h: Likewise.
26820 * config/cris/arit.c: Likewise.
26821 * config/cris/cris_abi_symbol.c: Likewise.
26822 * config/darwin-64.c: Likewise.
26823 * config/darwin-crt2.c: Likewise.
26824 * config/darwin-crt3.c: Likewise.
26825 * config/darwin.h: Likewise.
26826 * config/dbxelf.h: Likewise.
26827 * config/dfp-bit.c: Likewise.
26828 * config/dfp-bit.h: Likewise.
26829 * config/elfos.h: Likewise.
26830 * config/fixed-bit.c: Likewise.
26831 * config/fixed-bit.h: Likewise.
26832 * config/fp-bit.c: Likewise.
26833 * config/fp-bit.h: Likewise.
26834 * config/fr30/crti.asm: Likewise.
26835 * config/fr30/crtn.asm: Likewise.
26836 * config/fr30/lib1funcs.asm: Likewise.
26837 * config/freebsd-spec.h: Likewise.
26838 * config/frv/cmovd.c: Likewise.
26839 * config/frv/cmovh.c: Likewise.
26840 * config/frv/cmovw.c: Likewise.
26841 * config/frv/frvbegin.c: Likewise.
26842 * config/frv/frvend.c: Likewise.
26843 * config/frv/lib1funcs.asm: Likewise.
26844 * config/glibc-stdint.h: Likewise.
26845 * config/h8300/clzhi2.c: Likewise.
26846 * config/h8300/crti.asm: Likewise.
26847 * config/h8300/crtn.asm: Likewise.
26848 * config/h8300/ctzhi2.c: Likewise.
26849 * config/h8300/fixunssfsi.c: Likewise.
26850 * config/h8300/lib1funcs.asm: Likewise.
26851 * config/h8300/parityhi2.c: Likewise.
26852 * config/h8300/popcounthi2.c: Likewise.
26853 * config/i386/ammintrin.h: Likewise.
26854 * config/i386/att.h: Likewise.
26855 * config/i386/avxintrin.h: Likewise.
26856 * config/i386/biarch64.h: Likewise.
26857 * config/i386/bmmintrin.h: Likewise.
26858 * config/i386/cpuid.h: Likewise.
26859 * config/i386/cross-stdarg.h: Likewise.
26860 * config/i386/crtfastmath.c: Likewise.
26861 * config/i386/crtprec.c: Likewise.
26862 * config/i386/cygming-crtbegin.c: Likewise.
26863 * config/i386/cygming-crtend.c: Likewise.
26864 * config/i386/cygwin.asm: Likewise.
26865 * config/i386/emmintrin.h: Likewise.
26866 * config/i386/gmm_malloc.h: Likewise.
26867 * config/i386/gthr-win32.c: Likewise.
26868 * config/i386/i386.h: Likewise.
26869 * config/i386/immintrin.h: Likewise.
26870 * config/i386/linux-unwind.h: Likewise.
26871 * config/i386/linux64.h: Likewise.
26872 * config/i386/mm3dnow.h: Likewise.
26873 * config/i386/mmintrin-common.h: Likewise.
26874 * config/i386/mmintrin.h: Likewise.
26875 * config/i386/nmmintrin.h: Likewise.
26876 * config/i386/pmm_malloc.h: Likewise.
26877 * config/i386/pmmintrin.h: Likewise.
26878 * config/i386/smmintrin.h: Likewise.
26879 * config/i386/sol2-c1.asm: Likewise.
26880 * config/i386/sol2-ci.asm: Likewise.
26881 * config/i386/sol2-cn.asm: Likewise.
26882 * config/i386/sol2-gc1.asm: Likewise.
26883 * config/i386/tmmintrin.h: Likewise.
26884 * config/i386/unix.h: Likewise.
26885 * config/i386/w32-unwind.h: Likewise.
26886 * config/i386/wmmintrin.h: Likewise.
26887 * config/i386/x86-64.h: Likewise.
26888 * config/i386/x86intrin.h: Likewise.
26889 * config/i386/xmmintrin.h: Likewise.
26890 * config/ia64/crtbegin.asm: Likewise.
26891 * config/ia64/crtend.asm: Likewise.
26892 * config/ia64/crtfastmath.c: Likewise.
26893 * config/ia64/crti.asm: Likewise.
26894 * config/ia64/crtn.asm: Likewise.
26895 * config/ia64/fde-glibc.c: Likewise.
26896 * config/ia64/lib1funcs.asm: Likewise.
26897 * config/ia64/linux-unwind.h: Likewise.
26898 * config/ia64/quadlib.c: Likewise.
26899 * config/ia64/unwind-ia64.c: Likewise.
26900 * config/linux.h: Likewise.
26901 * config/m32c/m32c-lib1.S: Likewise.
26902 * config/m32c/m32c-lib2-trapv.c: Likewise.
26903 * config/m32c/m32c-lib2.c: Likewise.
26904 * config/m32r/initfini.c: Likewise.
26905 * config/m68hc11/larith.asm: Likewise.
26906 * config/m68hc11/m68hc11-crt0.S: Likewise.
26907 * config/m68k/cf.md: Likewise.
26908 * config/m68k/crti.s: Likewise.
26909 * config/m68k/crtn.s: Likewise.
26910 * config/m68k/lb1sf68.asm: Likewise.
26911 * config/m68k/linux-unwind.h: Likewise.
26912 * config/mcore/crti.asm: Likewise.
26913 * config/mcore/crtn.asm: Likewise.
26914 * config/mcore/lib1.asm: Likewise.
26915 * config/mips/linux-unwind.h: Likewise.
26916 * config/mips/loongson.h: Likewise.
26917 * config/mips/mips16.S: Likewise.
26918 * config/mmix/crti.asm: Likewise.
26919 * config/mmix/crtn.asm: Likewise.
26920 * config/pa/fptr.c: Likewise.
26921 * config/pa/hpux-unwind.h: Likewise.
26922 * config/pa/lib2funcs.asm: Likewise.
26923 * config/pa/linux-atomic.c: Likewise.
26924 * config/pa/linux-unwind.h: Likewise.
26925 * config/pa/milli64.S: Likewise.
26926 * config/pa/quadlib.c: Likewise.
26927 * config/pa/stublib.c: Likewise.
26928 * config/picochip/libgccExtras/adddi3.asm: Likewise.
26929 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
26930 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
26931 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
26932 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
26933 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
26934 * config/picochip/libgccExtras/divmod15.asm: Likewise.
26935 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
26936 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
26937 * config/picochip/libgccExtras/longjmp.asm: Likewise.
26938 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
26939 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
26940 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
26941 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
26942 * config/picochip/libgccExtras/setjmp.asm: Likewise.
26943 * config/picochip/libgccExtras/subdi3.asm: Likewise.
26944 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
26945 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
26946 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
26947 * config/rs6000/750cl.h: Likewise.
26948 * config/rs6000/altivec.h: Likewise.
26949 * config/rs6000/biarch64.h: Likewise.
26950 * config/rs6000/crtresfpr.asm: Likewise.
26951 * config/rs6000/crtresgpr.asm: Likewise.
26952 * config/rs6000/crtresxfpr.asm: Likewise.
26953 * config/rs6000/crtresxgpr.asm: Likewise.
26954 * config/rs6000/crtsavfpr.asm: Likewise.
26955 * config/rs6000/crtsavgpr.asm: Likewise.
26956 * config/rs6000/darwin-asm.h: Likewise.
26957 * config/rs6000/darwin-fallback.c: Likewise.
26958 * config/rs6000/darwin-fpsave.asm: Likewise.
26959 * config/rs6000/darwin-ldouble.c: Likewise.
26960 * config/rs6000/darwin-tramp.asm: Likewise.
26961 * config/rs6000/darwin-unwind.h: Likewise.
26962 * config/rs6000/darwin-vecsave.asm: Likewise.
26963 * config/rs6000/darwin-world.asm: Likewise.
26964 * config/rs6000/e500crtres32gpr.asm: Likewise.
26965 * config/rs6000/e500crtres64gpr.asm: Likewise.
26966 * config/rs6000/e500crtres64gprctr.asm: Likewise.
26967 * config/rs6000/e500crtrest32gpr.asm: Likewise.
26968 * config/rs6000/e500crtrest64gpr.asm: Likewise.
26969 * config/rs6000/e500crtresx32gpr.asm: Likewise.
26970 * config/rs6000/e500crtresx64gpr.asm: Likewise.
26971 * config/rs6000/e500crtsav32gpr.asm: Likewise.
26972 * config/rs6000/e500crtsav64gpr.asm: Likewise.
26973 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
26974 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
26975 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
26976 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
26977 * config/rs6000/eabi-ci.asm: Likewise.
26978 * config/rs6000/eabi-cn.asm: Likewise.
26979 * config/rs6000/eabi.asm: Likewise.
26980 * config/rs6000/linux-unwind.h: Likewise.
26981 * config/rs6000/linux64.h: Likewise.
26982 * config/rs6000/paired.h: Likewise.
26983 * config/rs6000/paired.md: Likewise.
26984 * config/rs6000/ppc64-fp.c: Likewise.
26985 * config/rs6000/ppu_intrinsics.h: Likewise.
26986 * config/rs6000/rs6000.h: Likewise.
26987 * config/rs6000/si2vmx.h: Likewise.
26988 * config/rs6000/sol-ci.asm: Likewise.
26989 * config/rs6000/sol-cn.asm: Likewise.
26990 * config/rs6000/spe.h: Likewise.
26991 * config/rs6000/spu2vmx.h: Likewise.
26992 * config/rs6000/sysv4.h: Likewise.
26993 * config/rs6000/tramp.asm: Likewise.
26994 * config/rs6000/vec_types.h: Likewise.
26995 * config/s390/linux-unwind.h: Likewise.
26996 * config/s390/tpf-unwind.h: Likewise.
26997 * config/score/crti.asm: Likewise.
26998 * config/score/crtn.asm: Likewise.
26999 * config/sh/crt1.asm: Likewise.
27000 * config/sh/crti.asm: Likewise.
27001 * config/sh/crtn.asm: Likewise.
27002 * config/sh/divtab-sh4-300.c: Likewise.
27003 * config/sh/divtab-sh4.c: Likewise.
27004 * config/sh/divtab.c: Likewise.
27005 * config/sh/lib1funcs-4-300.asm: Likewise.
27006 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
27007 * config/sh/lib1funcs.asm: Likewise.
27008 * config/sh/lib1funcs.h: Likewise.
27009 * config/sh/linux-atomic.asm: Likewise.
27010 * config/sh/linux-unwind.h: Likewise.
27011 * config/sh/shmedia.h: Likewise.
27012 * config/sh/sshmedia.h: Likewise.
27013 * config/sh/ushmedia.h: Likewise.
27014 * config/sparc/crtfastmath.c: Likewise.
27015 * config/sparc/linux-unwind.h: Likewise.
27016 * config/sparc/sol2-c1.asm: Likewise.
27017 * config/sparc/sol2-ci.asm: Likewise.
27018 * config/sparc/sol2-cn.asm: Likewise.
27019 * config/spu/divmodti4.c: Likewise.
27020 * config/spu/divv2df3.c: Likewise.
27021 * config/spu/float_disf.c: Likewise.
27022 * config/spu/float_unsdidf.c: Likewise.
27023 * config/spu/float_unsdisf.c: Likewise.
27024 * config/spu/float_unssidf.c: Likewise.
27025 * config/spu/mfc_multi_tag_release.c: Likewise.
27026 * config/spu/mfc_multi_tag_reserve.c: Likewise.
27027 * config/spu/mfc_tag_release.c: Likewise.
27028 * config/spu/mfc_tag_reserve.c: Likewise.
27029 * config/spu/mfc_tag_table.c: Likewise.
27030 * config/spu/multi3.c: Likewise.
27031 * config/spu/spu_internals.h: Likewise.
27032 * config/spu/spu_intrinsics.h: Likewise.
27033 * config/spu/spu_mfcio.h: Likewise.
27034 * config/spu/vec_types.h: Likewise.
27035 * config/spu/vmx2spu.h: Likewise.
27036 * config/stormy16/stormy16-lib2.c: Likewise.
27037 * config/svr4.h: Likewise.
27038 * config/sync.c: Likewise.
27039 * config/v850/lib1funcs.asm: Likewise.
27040 * config/vxlib-tls.c: Likewise.
27041 * config/vxlib.c: Likewise.
27042 * config/vxworks-dummy.h: Likewise.
27043 * config/xtensa/crti.asm: Likewise.
27044 * config/xtensa/crtn.asm: Likewise.
27045 * config/xtensa/ieee754-df.S: Likewise.
27046 * config/xtensa/ieee754-sf.S: Likewise.
27047 * config/xtensa/lib1funcs.asm: Likewise.
27048 * config/xtensa/lib2funcs.S: Likewise.
27049 * config/xtensa/linux-unwind.h: Likewise.
27050 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
27051 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
27052 * coretypes.h: Likewise.
27053 * crtstuff.c: Likewise.
27054 * defaults.h: Likewise.
27055 * dwarf2.h: Likewise.
27056 * emutls.c: Likewise.
27057 * gbl-ctors.h: Likewise.
27058 * gcov-io.h: Likewise.
27059 * ginclude/float.h: Likewise.
27060 * ginclude/iso646.h: Likewise.
27061 * ginclude/stdarg.h: Likewise.
27062 * ginclude/stdbool.h: Likewise.
27063 * ginclude/stddef.h: Likewise.
27064 * ginclude/stdfix.h: Likewise.
27065 * ginclude/stdint-gcc.h: Likewise.
27066 * ginclude/tgmath.h: Likewise.
27067 * gthr-aix.h: Likewise.
27068 * gthr-dce.h: Likewise.
27069 * gthr-gnat.c: Likewise.
27070 * gthr-gnat.h: Likewise.
27071 * gthr-lynx.h: Likewise.
27072 * gthr-mipssde.h: Likewise.
27073 * gthr-nks.h: Likewise.
27074 * gthr-posix.c: Likewise.
27075 * gthr-posix.h: Likewise.
27076 * gthr-posix95.h: Likewise.
27077 * gthr-rtems.h: Likewise.
27078 * gthr-single.h: Likewise.
27079 * gthr-solaris.h: Likewise.
27080 * gthr-tpf.h: Likewise.
27081 * gthr-vxworks.h: Likewise.
27082 * gthr-win32.h: Likewise.
27083 * gthr.h: Likewise.
27084 * libgcc2.c: Likewise.
27085 * libgcc2.h: Likewise.
27086 * libgcov.c: Likewise.
27087 * tsystem.h: Likewise.
27088 * typeclass.h: Likewise.
27089 * unwind-c.c: Likewise.
27090 * unwind-compat.h: Likewise.
27091 * unwind-dw2-fde-compat.c: Likewise.
27092 * unwind-dw2-fde-darwin.c: Likewise.
27093 * unwind-dw2-fde-glibc.c: Likewise.
27094 * unwind-dw2-fde.c: Likewise.
27095 * unwind-dw2-fde.h: Likewise.
27096 * unwind-dw2.c: Likewise.
27097 * unwind-dw2.h: Likewise.
27098 * unwind-generic.h: Likewise.
27099 * unwind-pe.h: Likewise.
27100 * unwind-sjlj.c: Likewise.
27101 * unwind.inc: Likewise.
27102 * config/arm/neon-gen.ml: Change generated copyright header to
27103 refer to version 3 of the GNU General Public License with
27104 version 3.1 of the GCC Runtime Library Exception and to point
27105 readers at the COPYING3 and COPYING3.RUNTIME files and the
27106 FSF's license web page.
27107 * config/arm/arm_neon.h: Regenerate.
27108
271092009-04-09 Jakub Jelinek <jakub@redhat.com>
27110
27111 * config/cris/cris.md: Change copyright header to refer to version
27112 3 of the GNU General Public License.
27113 * doc/install.texi2html: Change copyright header to refer to version
27114 3 of the GNU General Public License and to point readers at the
27115 COPYING3 file and the FSF's license web page.
27116 * config/vax/linux.h: Likewise.
27117
4a77c72b
PB
271182009-04-09 Paolo Bonzini <bonzini@gnu.org>
27119
1ad2f450
L
27120 * config/i386/i386.md (cmpcc): New.
27121 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
27122 (sync_compare_and_swap_cc*): Delete.
27123
27124 * config/s390/s390.c (s390_compare_emitted): Remove.
27125 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
27126 s390_compare_emitted used to be handled. Assert that modes match.
27127 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
27128 refer to sync_compare_and_swap_ccsi.
27129 * config/s390/s390.h (s390_compare_emitted): Remove.
27130 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
27131 instead of s390_compare_emitted.
27132 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
27133 instead of s390_compare_emitted.
27134 * config/s390/s390.md (cmpcc): New.
27135 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
27136 CC_REGNUM, do not pretend it's set.
27137 (sync_compare_and_swap_cc*): Delete.
27138 * config/s390/predicates.md (cc_reg_operand): New.
27139
27140 * expr.c (sync_compare_and_swap_cc): Delete.
27141 * optabs.h (sync_compare_and_swap_cc): Delete.
27142 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
27143 is being used with can_compare_p.
27144 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
27145 (find_cc_set): New.
27146 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
27147 look for a MODE_CC set instead. Use emit_store_flag.
27148 (expand_compare_and_swap_loop): Likewise, with some additional
27149 complication to avoid a force_reg when useless. Use
27150 emit_cmp_and_jump_insns.
27151 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
27152 * doc/md.texi (sync_compare_and_swap_cc): Merge with
27153 sync_compare_and_swap documentation.
4a77c72b 27154
0c0efb33
JH
271552009-04-09 Jan Hubicka <jh@suse.cz>
27156
27157 * except.c (find_prev_try): Break out from ....
27158 (duplicate_eh_regions): ... here; properly update prev_try pointers
27159 when duplication part of tree.
27160 (dump_eh_tree): Improve dumping.
27161 (verify_eh_region): New.
27162 (verify_eh_tree): Use it.
27163
22a65a54
RG
271642009-04-06 Richard Guenther <rguenther@suse.de>
27165
27166 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
27167 &ARRAY addresses by adjusting their types and prepending
27168 a conversion.
27169 * tree-cfg.c (verify_gimple_assign_single): Verify that
27170 addresses are correct.
27171
f76968e6
RG
271722009-04-09 Richard Guenther <rguenther@suse.de>
27173
27174 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
27175 indices into an array reference if possible.
27176 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
27177 Fold POINTER_PLUS_EXPR statements with invariant address.
27178
c90c5fb5
AM
271792009-04-09 Alan Modra <amodra@bigpond.net.au>
27180
27181 PR target/39634
27182 * config.gcc (powerpc64-*-linux*): Always build biarch.
27183
17cede2e
JM
271842009-04-09 Joseph Myers <joseph@codesourcery.com>
27185
27186 PR c/39613
27187 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
27188 it and pedwarn if this results in an INTEGER_CST.
27189
a3337ea2
KG
271902009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27191
27192 * doc/install.texi: Update minimum GMP version. Remove obsolete
27193 text in MPFR section.
27194
ce9ba79b
JJ
271952009-04-08 Jakub Jelinek <jakub@redhat.com>
27196
27197 * dwarf2out.c (class_scope_p): New static inline.
27198 (class_or_namespace_scope_p): Use it.
27199 (gen_variable_die): Use DW_TAG_member tag for static data member
27200 declarations instead of DW_TAG_variable.
27201
4f0ae266
JJ
27202 PR middle-end/39573
27203 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
27204 variables.
27205
d27f0ddc
RG
272062009-04-08 Richard Guenther <rguenther@suse.de>
27207
27208 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
27209 valueize random data.
27210
557cc596
DE
272112009-04-08 David Edelsohn <edelsohn@gnu.org>
27212
27213 * config.gcc (aix tm_file): Add aix-stdint.h.
27214 (aix tm clause use_gcc_stdint): Set to wrap.
27215 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 27216
75ccc1e7
RG
272172009-04-08 Richard Guenther <rguenther@suse.de>
27218
27219 PR middle-end/36291
27220 * tree-dfa.c (add_referenced_var): Do not recurse into
27221 global initializers.
27222 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
27223 exposed variables.
27224 (fold_const_aggregate_ref): Likewise.
27225
c6963675
PB
272262009-04-08 Paolo Bonzini <bonzini@gnu.org>
27227
6c44cf79
L
27228 * recog.c (ordered_comparison_operator): New.
27229 * gensupport.c (std_preds): Add it.
c6963675
PB
27230 * doc/md.texi (Machine-Independent Predicates): Document it.
27231
6d07ad98
JH
272322009-04-08 Jan Hubicka <jh@suse.cz>
27233
27234 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
27235 * function.h (rtl_eh): Remove exception_handler_label_map.
27236 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
27237 remove_exception_handler_label, for_each_eh_label_1): Remove.
27238 (rtl_remove_unreachable_regions): Remove.
27239 (convert_from_eh_region_ranges): Do not remove unreachable regions.
27240 (find_exception_handler_labels): Don't build the hashtable.
27241 (maybe_remove_eh_handler): Remove.
27242 (for_each_eh_label): Rewrite to walk the tree.
27243 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
27244 * except.h (maybe_remove_eh_handler): Remove.
27245 * passes.c (init_optimization_passes): Schedule second EH cleanup
27246 before out-of-ssa.
27247 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
27248 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
27249
7ddf71e3
PB
272502009-04-08 Paolo Bonzini <bonzini@gnu.org>
27251
27252 * genoutput.c (validate_optab_operands): New.
27253 (gen_insn, gen_expand): Call it.
27254
27255 * genflags.c (gen_insn): Detect misused iterators.
27256 (main): Pass line_no to gen_insn, exit with status 1 on error.
27257
27258 * genextract.c (line_no): Make global.
27259 (VEC_safe_set_locstr): Change assertion to error message.
27260 (main): Exit with status 1 on error.
27261
4d84fe7c
JM
272622009-04-08 Joseph Myers <joseph@codesourcery.com>
27263
27264 PR c/39614
27265 PR c/39673
27266 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
27267 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
27268 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
27269 * c-convert.c (convert): Do not call fold on results of conversion
27270 functions when the result is a C_MAYBE_CONST_EXPR.
27271 * c-parser.c (c_parser_postfix_expression): Do not fold condition
27272 of __builtin_choose_expr.
27273 * c-typeck.c (remove_c_maybe_const_expr): New.
27274 (build_unary_op, build_conditional_expr, build_compound_expr,
27275 build_binary_op, c_objc_common_truthvalue_conversion): Call
27276 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
27277 integer operands.
27278
60839f5d 272792009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 27280
2ba9daa7 27281 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 27282 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 27283
8e481a2c
DS
272842009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
27285
27286 PR bootstrap/39660
27287 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
27288 mix declarations and code.
27289
ee618c17
BE
272902009-04-08 Ben Elliston <bje@au.ibm.com>
27291
27292 * gcc.c: Replace `CC' with `GCC' throughout.
27293
f2a758a2
L
272942009-04-07 H.J. Lu <hongjiu.lu@intel.com>
27295
27296 * doc/invoke.texi: Document Atom support.
27297
6ea2bd47
JM
272982009-04-07 Jason Merrill <jason@redhat.com>
27299
27300 PR c++/25185
27301 * c-common.h, c-common.c: Add flag_pretty_templates.
27302 * c-opts.c (c_common_handle_option): Set it.
27303 * c.opt: Add -fno-pretty-templates.
27304 * doc/invoke.texi (C++ Dialect Options): Likewise.
27305
fcb82ab0
UB
273062009-04-07 Uros Bizjak <ubizjak@gmail.com>
27307
27308 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
27309 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
27310 (ia64_expand_builtin): Likewise.
27311
dc5e7298
MJ
273122009-04-07 Martin Jambor <mjambor@suse.cz>
27313
27314 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
27315 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
27316 ADDR_EXPRS are include too.
27317
0609b355
RG
273182009-04-07 Richard Guenther <rguenther@suse.de>
27319
27320 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
27321 decls are only used if passes as parameters or if they are
27322 local statics and the call is not to a builtin.
27323 (call_may_clobber_ref_p_1): Likewise.
27324
d8e535fa
PB
273252009-04-07 Paolo Bonzini <bonzini@gnu.org>
27326
27327 * expr.c (do_store_flag): Remove last argument. Simplify code
27328 to avoid duplication of tests already done by can_compare_p.
27329 (expand_expr_real_1): Adjust caller.
27330
c3c64f50
PB
273312009-04-07 Paolo Bonzini <bonzini@gnu.org>
27332
fcb82ab0
UB
27333 * optabs.c (can_compare_p): Test the predicate of a
27334 cbranch and cstore pattern.
c3c64f50 27335
9a53bc17
PB
273362009-04-07 Paolo Bonzini <bonzini@gnu.org>
27337
fcb82ab0
UB
27338 * expr.c (convert_move): Use emit_store_flag instead of
27339 "emulating" it.
9a53bc17 27340
67b8f1c1
PB
273412009-04-07 Paolo Bonzini <bonzini@gnu.org>
27342
fcb82ab0
UB
27343 * config/i386/i386.c (ix86_compare_emitted): Remove.
27344 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
27345 ix86_compare_op0 like ix86_compare_emitted used to be handled.
27346 * config/i386/i386.h (ix86_compare_emitted): Remove.
27347 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
27348 instead of ix86_compare_emitted.
27349 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 27350
44509946
AS
273512009-04-07 Andrew Stubbs <ams@codesourcery.com>
27352
27353 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
27354 Add t-sysroot-suffix to tmake_file.
27355 * config/print-sysroot-suffix.sh: New file.
27356 * config/t-sysroot-suffix: New file.
27357
ca22d882
BE
273582009-04-07 Ben Elliston <bje@au.ibm.com>
27359
27360 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
27361 as the latter produces a warning when the target does not support
27362 infinity.
27363
95aac11b
BE
273642009-04-07 Ben Elliston <bje@au.ibm.com>
27365
27366 * dfp.c: Replace type punning assignments with memcpy throughout.
27367 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 27368
633dd061
AM
273692009-04-07 Alan Modra <amodra@bigpond.net.au>
27370
27371 PR target/39634
27372 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
27373 Include soft-fp/t-softfp after rs6000/t-linux64.
27374
fe0a25ec
EB
273752009-04-06 Eric Botcazou <ebotcazou@adacore.com>
27376
27377 * stor-layout.c (set_sizetype): Use the full precision of their
27378 machine mode for bitsize types.
27379
0c011bc3
L
273802009-04-06 H.J. Lu <hongjiu.lu@intel.com>
27381
27382 * config/i386/i386.md: Revert 2 accidental checkins.
27383
b6837b94 273842009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 27385 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
27386 H.J. Lu <hongjiu.lu@intel.com>
27387
27388 Atom pipeline model, tuning and insn selection.
27389 * config.gcc (atom): Add atom config options and target.
27390
27391 * config/i386/atom.md: New.
27392
27393 * config/i386/i386.c (atom_cost): New cost.
27394 (m_ATOM): New macro flag.
27395 (initial_ix86_tune_features): Set m_ATOM.
27396 (x86_accumulate_outgoing_args): Likewise.
27397 (x86_arch_always_fancy_math_387): Likewise.
27398 (processor_target): Add Atom cost.
27399 (cpu_names): Add Atom cpu name.
27400 (override_options): Set Atom ISA.
27401 (ix86_issue_rate): New case PROCESSOR_ATOM.
27402 (ix86_adjust_cost): Likewise.
27403
27404 * config/i386/i386.h (TARGET_ATOM): New target macro.
27405 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
27406 (TARGET_OPT_AGU): New target option.
27407 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
27408 (processor_type): Add PROCESSOR_ATOM.
27409
27410 * config/i386/i386.md (cpu): Add new value "atom".
27411 (use_carry, movu): New attr.
27412 (atom.md): Include atom.md.
27413 (adddi3_carry_rex64): Set attr "use_carry".
27414 (addqi3_carry): Likewise.
27415 (addhi3_carry): Likewise.
27416 (addsi3_carry): Likewise.
27417 (*addsi3_carry_zext): Likewise.
27418 (subdi3_carry_rex64): Likewise.
27419 (subqi3_carry): Likewise.
27420 (subhi3_carry): Likewise.
27421 (subsi3_carry): Likewise.
27422 (x86_movdicc_0_m1_rex64): Likewise.
27423 (*x86_movdicc_0_m1_se): Likewise.
27424 (x86_movsicc_0_m1): Likewise.
27425 (*x86_movsicc_0_m1_se): Likewise.
27426 (*adddi_1_rex64): Emit add insn as much as possible.
27427 (*addsi_1): Likewise.
27428 (return_internal): Set atom_unit.
27429 (return_internal_long): Likewise.
27430 (return_pop_internal): Likewise.
27431 (*rcpsf2_sse): Set atom_sse_attr attr.
27432 (*qrt<mode>2_sse): Likewise.
27433 (*prefetch_sse): Likewise.
27434
27435 * config/i386/i386-c.c (ix86_target_macros_internal): New case
27436 PROCESSOR_ATOM.
27437 (ix86_target_macros_internal): Likewise.
27438
27439 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
27440 (*prefetch_sse_rex): Likewise.
27441 (sse_rcpv4sf2): Likewise.
27442 (sse_vmrcpv4sf2): Likewise.
27443 (sse_sqrtv4sf2): Likewise.
27444 (<sse>_vmsqrt<mode>2): Likewise.
27445 (sse_ldmxcsr): Likewise.
27446 (sse_stmxcsr): Likewise.
27447 (*sse_sfence): Likewise.
27448 (sse2_clflush): Likewise.
27449 (*sse2_mfence): Likewise.
27450 (*sse2_lfence): Likewise.
27451 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
27452 (<sse>_movup<ssemodesuffixf2c>): Likewise.
27453 (avx_movdqu<avxmodesuffix>): Likewise.
27454 (avx_lddqu<avxmodesuffix>): Likewise.
27455 (sse2_movntv2di): Change attr "type" to "ssemov".
27456 (sse2_movntsi): Likewise.
27457 (rsqrtv8sf2): Change attr "type" to "sseadd".
27458 (sse3_addsubv2df3): Set attr "atom_unit".
27459 (sse3_h<plusminus_insn>v4sf3): Likewise.
27460 (*sse2_pmaddwd): Likewise.
27461 (*vec_extractv2di_1_rex64): Likewise.
27462 (*vec_extractv2di_1_avx): Likewise.
27463 (sse2_psadbw): Likewise.
27464 (ssse3_phaddwv8hi3): Likewise.
27465 (ssse3_phaddwv4hi3): Likewise.
27466 (ssse3_phadddv4si3): Likewise.
27467 (ssse3_phadddv2si3): Likewise.
27468 (ssse3_phaddswv8hi3): Likewise.
27469 (ssse3_phaddswv4hi3): Likewise.
27470 (ssse3_phsubwv8hi3): Likewise.
27471 (ssse3_phsubwv4hi3): Likewise.
27472 (ssse3_phsubdv4si3): Likewise.
27473 (ssse3_phsubdv2si3): Likewise.
27474 (ssse3_phsubswv8hi3): Likewise.
27475 (ssse3_phsubswv4hi3): Likewise.
27476 (ssse3_pmaddubsw128): Likewise.
27477 (sse3_pmaddubsw: Likewise.
27478 (ssse3_palignrti): Likewise.
27479 (ssse3_palignrdi): Likewise.
27480
53e350d3
GP
274812009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
27482
27483 * doc/install.texi (Specific): Fix two cross-references to MinGW.
27484
439ef907
RG
274852009-04-06 Richard Guenther <rguenther@suse.de>
27486
27487 PR tree-optimization/28868
27488 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
27489 of which PHI results we inserted.
27490 (insert_into_preds_of_block): Record inserted PHIs.
27491 (eliminate): Eliminate redundant PHI nodes.
27492 (init_pre): Init inserted_phi_names.
27493
4bad83f5
RG
274942009-04-06 Richard Guenther <rguenther@suse.de>
27495
27496 PR tree-optimization/39643
27497 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
27498 IMAGPART_EXPRs of complex constants.
27499 (execute_fold_all_builtins): If we folded a call queue
27500 TODO_update_address_taken.
27501
570c4247
JH
275022009-04-06 Jan Hubicka <jh@suse.cz>
27503
27504 PR middle-end/39659
27505 * except.c (remove_unreachable_regions): Propagate may_contain_throw
27506 flag.
27507
a460d7a1
AS
275082009-04-06 Andrew Stubbs <ams@codesourcery.com>
27509
27510 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
27511 delay slot.
27512 (ic_invalidate_array): Likewise.
27513
60839f5d 275142009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
27515
27516 * calls.c (emit_library_call_value_1): Fix a problem with parameter
27517 alignment for library calls.
27518
7d253f6e
DS
275192009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
27520
27521 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
27522 (mingw32 tm clause use_gcc_stdint): Set to wrap.
27523 * config/i386/mingw-stdint.h: New file.
27524
941c3614
RB
275252009-04-05 Richard Guenther <rguenther@suse.de>
27526
27527 PR tree-optimization/39648
27528 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
27529 our &A vs. &A[0] IL deficiencies.
27530
12633413
JH
275312009-04-04 Jan Hubicka <jh@suse.cz>
27532
941c3614
RB
27533 * except.c (sjlj_find_directly_reachable_regions): Be ready for
27534 removed toplevel regions.
12633413
JH
27535 (sjlj_mark_call_sites): Likewise.
27536
bb2aaded
DK
275372009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
27538
27539 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
27540 (cygwin tm clause use_gcc_stdint): Set to wrap.
27541 * config/i386/cygwin-stdint.h: New file.
27542
86290011
RG
275432009-04-04 Richard Guenther <rguenther@suse.de>
27544
27545 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
27546 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
27547 single-argument PHIs if we are in loop-closed SSA form.
27548 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
27549 for the pre-condition.
27550 (slpeel_tree_peel_loop_to_edge): Likewise.
27551 (vect_build_loop_niters): Take an optional sequence to append stmts.
27552 (vect_generate_tmps_on_preheader): Likewise.
27553 (vect_do_peeling_for_loop_bound): Take extra guards for the
27554 pre-condition.
27555 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
27556 the cost model check.
27557 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 27558 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
27559 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
27560 (vect_do_peeling_for_loop_bound): Likewise.
27561 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
27562 loop bound only record extra pre-conditions, do not apply loop
27563 versioning.
27564
5eeeac64
RG
275652009-04-04 Richard Guenther <rguenther@suse.de>
27566
27567 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
27568 renaming code.
27569
1ff7d06b
JH
275702009-04-04 Jan Hubicka <jh@suse.cz>
27571
27572 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
27573 last_basic_block for size of bb->index indexed array.
27574 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
27575 compute_out, link_btr_uses, build_btr_def_use_webs,
27576 build_btr_def_use_webs, migrate_btr_defs): Likewise.
27577
14925fcd
JH
275782009-04-04 Jan Hubicka <jh@suse.cz>
27579
27580 * except.c (remove_eh_handler_and_replace): Break out from ...
27581 (remove_eh_handler): ... here.
27582 (bring_to_root): New function.
27583 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
27584 handled ones, bring others to root of tree.
27585
4e6d1743
JH
275862009-04-04 Jan Hubicka <jh@suse.cz>
27587
4cb735f7
JH
27588 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
27589 (all_phis_safe_to_merge): New function.
27590 (update_info): New structure.
27591 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
27592 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 27593
c6803d43
RG
275942009-04-04 Richard Guenther <rguenther@suse.de>
27595
27596 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
27597 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
27598 (append_vuse): Likewise.
27599
54f5943c
JJ
276002009-04-04 Jakub Jelinek <jakub@redhat.com>
27601
27602 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
27603 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
27604 instead of REG_UNSAVED for DW_CFA_undefined.
27605 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
27606 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
27607 outermost frame.
27608
aad2bccb
RE
276092009-04-04 Richard Earnshaw <rearnsha@arm.com>
27610
27611 PR target/39501
27612 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
aad2bccb 27613
aa7069aa
RG
276142009-04-04 Richard Guenther <rguenther@suse.de>
27615
27616 PR tree-optimization/8781
27617 PR tree-optimization/37892
27618 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
27619 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
27620 (valueize_refs): Call it for *& valueizations.
27621 (shared_reference_ops_from_ref): Rename to ...
27622 (valueize_shared_reference_ops_from_ref): ... this and valueize.
27623 (shared_reference_ops_from_call): Rename to ...
27624 (valueize_shared_reference_ops_from_call): ... this and valueize.
27625 (vn_reference_lookup): Update.
27626 (visit_reference_op_call): Likewise.
27627 * tree-ssa-pre.c (phi_translate_1): Fold *&.
27628 (eliminate): Value-replace the call address in call statements.
27629
cd15ad3e
RG
276302009-04-04 Richard Guenther <rguenther@suse.de>
27631
27632 PR tree-optimization/39636
27633 * tree-ssa-forwprop.c
27634 (forward_propagate_addr_into_variable_array_index): Check for
27635 GIMPLE_ASSIGN before accessing the rhs code.
27636
462f3262
JM
276372009-04-03 Jason Merrill <jason@redhat.com>
27638
27639 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
27640
6adb807e
SE
276412009-04-03 Steve Ellcey <sje@cup.hp.com>
27642
27643 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
27644 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
27645 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
27646 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
27647 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
27648 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
27649 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
27650 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
27651 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
27652 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
27653 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
27654 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
27655 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
27656 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
27657 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
27658 Use fr_reg_or_fp01_operand instead of fr_register_operand
27659
27660 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
27661 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
27662 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
27663
174b3107
VM
276642009-04-03 Vladimir Makarov <vmakarov@redhat.com>
27665
b844e5d8
L
27666 PR rtl-optimization/39607
27667 PR rtl-optimization/39631
7a715bba
UB
27668
27669 Revert:
2ba9daa7 27670
174b3107
VM
27671 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
27672 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
27673 instead of DF_LR_OUT.
27674 * ira-lives.c (process_bb_node_lives): Ditto.
27675 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
27676 instead of DF_LR_{OUT,IN}.
27677 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
27678 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
27679
535b544a
SB
276802009-04-03 Steven Bosscher <steven@gcc.gnu.org>
27681
27682 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
27683 (execute_lower_omp): Always run but take the short way out if -fopenmp
27684 is not given.
27685 (gate_lower_omp): Remove, forcing the pass manager to always run the
27686 pass and always set PROP_gimple_lomp.
27687 (pass_lower_omp): Remove gate function.
27688 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
27689 PROP_trees. Instead, require it.
27690 * ipa-cp.c (pass_ipa_cp): Likewise.
27691 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
27692 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
27693 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
27694 and PROP_gimple_leh.
27695
5006671f
RG
276962009-04-03 Richard Guenther <rguenther@suse.de>
27697
27698 PR middle-end/13146
27699 PR tree-optimization/23940
27700 PR tree-optimization/33237
27701 PR middle-end/33974
27702 PR middle-end/34093
27703 PR tree-optimization/36201
27704 PR tree-optimization/36230
27705 PR tree-optimization/38049
27706 PR tree-optimization/38207
27707 PR tree-optimization/38230
27708 PR tree-optimization/38301
27709 PR tree-optimization/38585
27710 PR middle-end/38895
27711 PR tree-optimization/38985
27712 PR tree-optimization/39299
27713 * tree-ssa-structalias.h: Remove.
27714 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
27715 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
27716 (struct vuse_element_d): Remove.
27717 (struct vuse_vec_d): Likewise.
27718 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
27719 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
27720 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
27721 VUSE_ELEMENT_VAR): Likewise.
27722 (struct voptype_d): Likewise.
27723 (NUM_VOP_FREE_BUCKETS): Likewise.
27724 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
27725 (struct stmt_operands_d): Remove.
27726 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
27727 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
27728 VDEF_NUM, VDEF_VECT): Likewise.
27729 (copy_virtual_operands): Remove.
27730 (operand_build_cmp): Likewise.
27731 (create_ssa_artificial_load_stmt): Likewise.
27732 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
27733 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
27734 vuse_index and mayuse_index members. Pack and move done and iter_type
27735 members to the front.
27736 (SSA_OP_VMAYUSE): Remove.
27737 (SSA_OP_VIRTUAL_USES): Adjust.
27738 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
27739 (unlink_stmt_vdef): Declare.
27740 (add_to_addressable_set): Remove.
27741 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
27742 (vrp_visit_stmt): Likewise.
27743 * doc/tree-ssa.texi (Alias analysis): Update.
27744 * doc/invoke.texi (max-aliased-vops): Remove docs.
27745 (avg-aliased-vops): Likewise.
27746 * tree-into-ssa.c (syms_to_rename): Remove.
27747 (need_to_update_vops_p): Likewise.
27748 (need_to_initialize_update_ssa_p): Rename to ...
27749 (update_ssa_initialized_fn): ... this. Track function we are
27750 initialized for.
27751 (symbol_marked_for_renaming): Simplify.
27752 (add_new_name_mapping): Do not set need_to_update_vops_p.
27753 (dump_currdefs): Use SYMS_TO_RENAME.
27754 (rewrite_update_stmt): Always walk all uses/defs.
27755 (dump_update_ssa): Adjust.
27756 (init_update_ssa): Take function argument. Track what we are
27757 initialized for.
27758 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
27759 (create_new_def_for): Initialize for cfun, assert we are initialized
27760 for cfun.
27761 (mark_sym_for_renaming): Simplify.
27762 (mark_set_for_renaming): Do not initialize update-ssa.
27763 (need_ssa_update_p): Simplify. Take function argument.
27764 (name_mappings_registered_p): Assert we ask for the correct function.
27765 (name_registered_for_update_p): Likewise.
27766 (ssa_names_to_replace): Likewise.
27767 (release_ssa_name_after_update_ssa): Likewise.
27768 (update_ssa): Likewise. Use SYMS_TO_RENAME.
27769 (dump_decl_set): Do not print a newline.
27770 (debug_decl_set): Do it here.
27771 (dump_update_ssa): And here.
27772 * tree-ssa-loop-im.c (move_computations): Adjust.
27773 (movement_possibility): Likewise.
27774 (determine_max_movement): Likewise.
27775 (gather_mem_refs_stmt): Likewise.
27776 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
27777 or NAME_MEMORY_TAG.
27778 * tree-complex.c (update_all_vops): Remove.
27779 (expand_complex_move): Adjust.
27780 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
27781 Simplify test for memory referencing statement. Exclude
27782 non-invariant ADDR_EXPRs.
27783 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
27784 * tree-loop-distribution.c (generate_memset_zero): Adjust.
27785 (rdg_flag_uses): Likewise.
27786 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
27787 related code.
27788 (tree_optimize_tail_calls_1): Also split the
27789 edge from the entry block if we have degenerate PHI nodes in
27790 the first basic block.
27791 * tree.c (init_ttree): Remove memory-tag related code.
27792 (tree_code_size): Likewise.
27793 (tree_node_structure): Likewise.
27794 (build7_stat): Re-write to be build6_stat.
27795 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
27796 (SSA_VAR_P): Adjust.
27797 (struct tree_memory_tag): Remove.
27798 (struct tree_memory_partition_tag): Likewise.
27799 (union tree_node): Adjust.
27800 (build7): Re-write to be build6.
27801 * tree-pass.h (pass_reset_cc_flags): Remove.
27802 (TODO_update_address_taken): New flag.
27803 (pass_simple_dse): Remove.
27804 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
27805 * params.h (MAX_ALIASED_VOPS): Remove.
27806 (AVG_ALIASED_VOPS): Likewise.
27807 * omp-low.c (expand_omp_taskreg): Update SSA form.
27808 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
27809 aliases the lhs in a copy stmt.
27810 * tree-ssa-dse.c (struct address_walk_data): Remove.
27811 (memory_ssa_name_same): Likewise.
27812 (memory_address_same): Likewise.
27813 (get_kill_of_stmt_lhs): Likewise.
27814 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
27815 unused stores. Look through PHI nodes into post-dominated regions.
27816 (dse_optimize_stmt): Simplify. Properly remove stores.
27817 (tree_ssa_dse): Compute dominators.
27818 (execute_simple_dse): Remove.
27819 (pass_simple_dse): Likewise.
27820 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
27821 gimple_loaded_syms and gimple_stored_syms computation.
27822 * toplev.c (dump_memory_report): Dump alias and pta stats.
27823 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
27824 (vn_reference_eq): Likewise.
27825 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
27826 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
27827 valueize_vuses): Remove.
27828 (get_def_ref_stmt_vuses): Simplify. Rename to ...
27829 (get_def_ref_stmt_vuse): ... this.
27830 (vn_reference_lookup_2): New function.
27831 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
27832 walking equivalent vuses. Simplify.
27833 (vn_reference_lookup): Likewise.
27834 (vn_reference_insert): Likewise.
27835 (vn_reference_insert_pieces): Likewise.
27836 (visit_reference_op_call): Simplify.
27837 (visit_reference_op_load): Likewise.
27838 (visit_reference_op_store): Likewise.
27839 (init_scc_vn): Remove shared_lookup_vuses initialization.
27840 (free_scc_vn): Remove shared_lookup_vuses freeing.
27841 (sort_vuses, sort_vuses_heap): Remove.
27842 (get_ref_from_reference_ops): Export.
27843 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
27844 vector with single vuse pointer.
27845 (vn_reference_lookup_pieces, vn_reference_lookup,
27846 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
27847 (shared_vuses_from_stmt): Remove.
27848 (get_ref_from_reference_ops): Declare.
27849 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
27850 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
27851 memory-tag related code.
27852 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
27853 (likely_value): Add comment, skip static-chain of call statements.
27854 (surely_varying_stmt_p): Adjust.
27855 (gimplify_and_update_call_from_tree): Likewise.
27856 (execute_fold_all_builtins): Do not rebuild alias info.
27857 (gimplify_and_update_call_from_tree): Properly update VOPs.
27858 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
27859 (copy_ref_info): Remove memory-tag related code.
27860 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
27861 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
27862 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
27863 computation.
27864 * tree-ssa-dom.c (gimple_p): Remove typedef.
27865 (eliminate_redundant_computations): Adjust.
27866 (record_equivalences_from_stmt): Likewise.
27867 (avail_expr_hash): Likewise.
27868 (avail_expr_eq): Likewise.
7a715bba 27869 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
27870 (stmt_makes_single_load): Likewise.
27871 (stmt_makes_single_store): Likewise.
27872 * tree-ssa-alias.c: Rewrite completely.
27873 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
27874 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
27875 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
27876 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
27877 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
27878 Remove public functions.
27879 (pass_reset_cc_flags): Remove.
27880 (pass_build_alias): Move ...
27881 * tree-ssa-structalias.c (pass_build_alias): ... here.
27882 * tree-ssa-alias.c (may_be_aliased): Move ...
27883 * tree-flow-inline.h (may_be_aliased): ... here.
27884 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
27885 count_uses_and_derefs): Move ...
27886 * gimple.c: ... here.
27887 * gimple.h (count_uses_and_derefs): Declare.
27888 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
27889 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
27890 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
27891 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
27892 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
27893 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
27894 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
27895 New functions.
27896 * tree-dfa.c (refs_may_alias_p): Move ...
27897 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
27898 * tree-ssa-alias.h: New file.
27899 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
27900 (statement_sink_location): Likewise.
27901 * opts.c (decode_options): Do not adjust max-aliased-vops or
27902 avg-aliased-vops values.
27903 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
27904 (TV_CALL_CLOBBER): Likewise.
27905 (TV_FLOW_SENSITIVE): Likewise.
27906 (TV_FLOW_INSENSITIVE): Likewise.
27907 (TV_MEMORY_PARTITIONING): Likewise.
27908 (TV_ALIAS_STMT_WALK): New timevar.
27909 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
27910 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
27911 (get_address_description): Remove memory-tag related code.
27912 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
27913 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
27914 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
27915 and immediate uses in statements. Document.
27916 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
27917 (dump_symbols): Remove.
27918 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
27919 * alias.c (get_deref_alias_set): New function split out from ...
27920 (get_alias_set): ... here.
27921 * alias.h (get_deref_alias_set): Declare.
27922 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
27923 type parameter. Remove restrict pointer handling. Create a
27924 ref-all pointer in case type-based alias sets do not conflict.
27925 (vect_analyze_data_refs): Remove SMT related code.
27926 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
27927 (vectorizable_load): Likewise.
27928 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
27929 (DR_SYMBOL_TAG, DR_VOPS): Remove.
27930 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
27931 Ignore vops and SMTs.
27932 (dr_analyze_alias): Likewise..
27933 (free_data_ref): Likewise.
27934 (create_data_ref): Likewise.
27935 (analyze_all_data_dependences): Likewise.
27936 (get_references_in_stmt): Adjust.
27937 * tree-flow-inline.h (gimple_aliases_computed_p,
27938 gimple_addressable_vars, gimple_call_clobbered_vars,
27939 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
27940 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
27941 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
27942 gimple_mem_ref_stats): Remove.
27943 (gimple_vop): New function.
27944 (op_iter_next_use): Remove vuses and mayuses cases.
27945 (op_iter_next_def): Remove vdefs case.
27946 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
27947 (clear_and_done_ssa_iter): Do not set removed fields.
27948 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
27949 Assert we are not iterating over vuses or vdefs if not also
27950 iterating over uses or defs.
27951 (op_iter_init_use): Likewise.
27952 (op_iter_init_def): Likewise.
27953 (op_iter_next_vdef): Remove.
27954 (op_iter_next_mustdef): Likewise.
27955 (op_iter_init_vdef): Likewise.
27956 (compare_ssa_operands_equal): Likewise.
27957 (link_use_stmts_after): Handle vuse operand.
27958 (is_call_used): Use is_call_clobbered.
27959 (is_call_clobbered): Global variables are always call clobbered,
27960 query the call-clobbers bitmap.
27961 (mark_call_clobbered): Ignore global variables.
27962 (clear_call_clobbered): Likewise.
27963 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
27964 virtual operands sanity check.
27965 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
27966 Remove.
27967 (TARGET_MEM_REF): Remove TMR_TAG operand.
27968 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
27969 Remove call-clobber related code.
27970 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
27971 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
27972 partitions or escape reason.
27973 (get_single_def_stmt, get_single_def_stmt_from_phi,
27974 get_single_def_stmt_with_phi): Remove.
27975 (dump_referenced_vars): Tidy.
27976 (get_ref_base_and_extent): Allow bare decls.
27977 (collect_dfa_stats): Adjust.
27978 * graphite.c (rename_variables_in_stmt): Adjust.
27979 (graphite_copy_stmts_from_block): Likewise.
27980 (translate_clast): Likewise.
27981 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
27982 (EXPR_DIES): New.
27983 (translate_vuse_through_block): Use the oracle.
27984 (phi_translate_1): Adjust.
27985 (value_dies_in_block_x): Use the oracle. Cache the outcome
27986 in EXPR_DIES.
27987 (valid_in_sets): Check if the VUSE for
27988 a REFERENCE is available.
27989 (eliminate): Do not remove stmts during elimination,
27990 instead queue and remove them afterwards.
27991 (do_pre): Do not rebuild alias info.
27992 (pass_pre): Run TODO_rebuild_alias before PRE.
27993 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
27994 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
27995 (mark_all_v_defs_stmt): Remove.
27996 (mark_all_v_defs_seq): Adjust.
27997 (sra_replace): Likewise.
27998 (scalarize_use): Likewise.
27999 (scalarize_copy): Likewise.
28000 (scalarize_init): Likewise.
28001 (scalarize_ldst): Likewise.
28002 (todoflags): Remove.
28003 (tree_sra): Do not rebuild alias info.
28004 (tree_sra_early): Adjust.
28005 (pass_sra): Run TODO_update_address_taken before SRA.
28006 * tree-predcom.c (set_alias_info): Remove.
28007 (prepare_initializers_chain): Do not call it.
28008 (mark_virtual_ops_for_renaming): Adjust.
28009 (mark_virtual_ops_for_renaming_list): Remove.
28010 (initialize_root_vars): Adjust.
28011 (initialize_root_vars_lm): Likewise.
28012 (prepare_initializers_chain): Likewise.
28013 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
28014 (may_propagate_copy_into_stmt): Likewise.
28015 (merge_alias_info): Do nothing for now.
28016 (propagate_tree_value_into_stmt): Adjust.
28017 (stmt_may_generate_copy): Likewise.
28018 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
28019 not mark symbols for renaming.
28020 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
28021 with the same statement, make sure to update the new pointed-to one.
28022 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
28023 call statements, do not mark symbols for renaming.
28024 (mark_operand_necessary): Dump something.
28025 (ref_may_be_aliased): New function.
28026 (mark_aliased_reaching_defs_necessary_1): New helper function.
28027 (mark_aliased_reaching_defs_necessary): Likewise.
28028 (mark_all_reaching_defs_necessary_1): Likewise.
28029 (mark_all_reaching_defs_necessary): Likewise.
28030 (propagate_necessity): Do not process virtual PHIs. For
28031 non-aliased loads mark all reaching definitions as necessary.
28032 For aliased loads and stores mark the immediate dominating
28033 aliased clobbers as necessary.
28034 (visited): New global static.
28035 (perform_tree_ssa_dce): Free visited bitmap after propagating
28036 necessity.
28037 (remove_dead_phis): Perform simple dead virtual PHI removal.
28038 (remove_dead_stmt): Properly unlink virtual operands when
28039 removing stores.
28040 (eliminate_unnecessary_stmts): Schedule PHI removal after
28041 stmt removal.
28042 * tree-ssa-ter.c (is_replaceable_p): Adjust.
28043 (process_replaceable): Likewise.
28044 (find_replaceable_in_bb): Likewise.
28045 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
28046 based on the single gimple vop.
28047 (verify_flow_insensitive_alias_info): Remove.
28048 (verify_flow_sensitive_alias_info): Likewise.
28049 (verify_call_clobbering): Likewise.
28050 (verify_memory_partitions): Likewise.
28051 (verify_alias_info): Likewise.
28052 (verify_ssa): Adjust..
28053 (execute_update_addresses_taken): Export. Update SSA
28054 manually. Optimize only when optimizing. Use a local bitmap.
28055 (pass_update_address_taken): Remove TODO_update_ssa, add
28056 TODO_dump_func.
28057 (pass_update_address_taken): Just use TODO_update_address_taken.
28058 (init_tree_ssa): Do not initialize addressable_vars.
28059 (verify_ssa): Verify new VUSE / VDEF properties.
28060 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
28061 Do not call verify_alias_info.
28062 (delete_tree_ssa): Clear the VUSE, VDEF operands.
28063 Do not free the loaded and stored syms bitmaps. Reset the escaped
28064 and callused solutions. Do not free addressable_vars.
28065 Remove memory-tag related code.
28066 (warn_uninitialized_var): Aliases are always available.
28067 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
28068 * lambda-code.c (can_put_in_inner_loop): Adjust.
28069 (can_put_after_inner_loop): Likewise.
28070 (perfect_nestify): Likewise.
28071 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
28072 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
28073 (vectorizable_conversion): Do not mark symbols for renaming.
28074 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
28075 (expand_call_inline): Unlink the calls virtual operands before
28076 replacing it.
28077 (tree_function_versioning): Do not call update_ssa if we are not
28078 updating clones. Simplify.
28079 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
28080 (propagate_with_phi): Likewise..
28081 * tree-outof-ssa.c (create_temp): Remove memory tag and call
28082 clobber code. Assert we are not aliased or global.
28083 * tree-flow.h: Include tree-ssa-alias.h
28084 (enum escape_type): Remove.
28085 (struct mem_sym_stats_d): Likewise.
28086 (struct mem_ref_stats_d): Likewise.
28087 (struct gimple_df): Add vop member. Remove global_var,
28088 call_clobbered_vars, call_used_vars, addressable_vars,
28089 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
28090 escaped and callused members.
28091 (struct ptr_info_def): Remove all members, add points-to solution
28092 member pt.
28093 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
28094 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
28095 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
28096 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
28097 (tree-ssa-alias.o): Likewise.
28098 (toplev.o): Add tree-ssa-alias.h
28099 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
28100 * gimple.c (gimple_set_bb): Fix off-by-one error.
28101 (is_gimple_reg): Do not handle memory tags.
28102 (gimple_copy): Also copy virtual operands.
28103 Delay updating the statement. Do not reset loaded and stored syms.
28104 (gimple_set_stored_syms): Remove.
28105 (gimple_set_loaded_syms): Likewise.
28106 (gimple_call_copy_skip_args): Copy the virtual operands
28107 and mark the new statement modified.
28108 * tree-ssa-structalias.c (may_alias_p): Remove.
28109 (set_uids_in_ptset): Take the alias set to prune with as
28110 parameter. Fold in the alias test of may_alias_p.
28111 (compute_points_to_sets): Compute whether a ptr is dereferenced
28112 in a local sbitmap.
28113 (process_constraint): Deal with &ANYTHING on the lhs, reject all
28114 other ADDRESSOF constraints on the lhs.
28115 (get_constraint_for_component_ref): Assert that we don't get
28116 ADDRESSOF constraints from the base of the reference.
28117 Properly generate UNKNOWN_OFFSET for DEREF if needed.
28118 (struct variable_info): Remove collapsed_to member.
28119 (get_varinfo_fc): Remove.
28120 (new_var_info): Do not set collapsed_to.
28121 (dump_constraint): Do not follow cycles.
28122 (dump_constraint_graph): Likewise.
28123 (build_pred_graph): Likewise.
28124 (build_succ_graph): Likewise.
28125 (rewrite_constraints): Likewise.
28126 (do_simple_structure_copy): Remove.
28127 (do_rhs_deref_structure_copy): Remove.
28128 (do_lhs_deref_structure_copy): Remove.
28129 (collapse_rest_of_var): Remove.
28130 (do_structure_copy): Re-implement.
28131 (pta_stats): New global variable.
28132 (dump_pta_stats): New function.
28133 (struct constraint_expr): Make offset signed.
28134 (UNKNOWN_OFFSET): Define special value.
28135 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
28136 (solution_set_expand): New helper function split out from ...
28137 (do_sd_constraint): ... here.
28138 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
28139 (do_ds_constraint): Likewise.
28140 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
28141 and CALLUSED = *CALLUSED.
28142 (set_union_with_increment): Make inc argument signed.
28143 (type_safe): Remove.
28144 (get_constraint_for_ptr_offset): Handle unknown and negative
28145 constant offsets.
28146 (first_vi_for_offset): Handle offsets before start. Bail
28147 out early for offsets beyond the variable extent.
28148 (first_or_preceding_vi_for_offset): New function.
28149 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
28150 Together with ESCAPED = *ESCAPED this properly computes reachability.
28151 (find_what_var_points_to): New function.
28152 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
28153 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
28154 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
28155 pt_solutions_intersect): New functions.
28156 (compute_call_used_vars): Remove.
28157 (compute_may_aliases): New main entry into PTA computation.
28158 * gimple.h (gimple_p): New typedef.
28159 (struct gimple_statement_base): Remove references_memory_p.
28160 (struct gimple_statement_with_memory_ops_base): Remove
28161 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
28162 members.
28163 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
28164 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
28165 gimple_set_references_memory): Remove.
28166 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
28167 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
28168 New functions.
28169 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
28170 (verify_expr): Allow RESULT_DECL.
28171 (gimple_duplicate_bb): Do not copy virtual operands.
28172 (gimple_duplicate_sese_region): Adjust.
28173 (gimple_duplicate_sese_tail): Likewise.
28174 (mark_virtual_ops_in_region): Remove.
28175 (move_sese_region_to_fn): Do not call it.
28176 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
28177 and pass_simple_dse.
28178 (execute_function_todo): Handle TODO_update_address_taken,
28179 call execute_update_addresses_taken for TODO_rebuild_alias.
28180 (execute_todo): Adjust.
28181 (execute_one_pass): Init dump files early.
28182 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
28183 call-clobbered.
28184 (create_general_new_stmt): Clear vops.
28185 * tree-ssa-reassoc.c (get_rank): Adjust.
28186 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
28187 symbols for renaming.
28188 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
28189 (PARAM_AVG_ALIASED_VOPS): Likewise.
28190 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
28191 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 28192 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
28193 (operand_build_cmp, copy_virtual_operands,
28194 create_ssa_artificial_load_stmt, add_to_addressable_set,
28195 gimple_add_to_addresses_taken): Remove public functions.
28196 (unlink_stmt_vdef): New function.
28197
457d1d00
AM
281982009-04-03 Alan Modra <amodra@bigpond.net.au>
28199
28200 * config.gcc (powerpc-*-linux*): Merge variants.
28201
e19da24c 282022009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 28203 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
28204
28205 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
28206 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
28207 cop0_sp_offset.
28208 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
28209 keep_interrupts_masked_p, use_debug_exception_return_p.
28210 (mips_attribute_table): Add interrupt, use_shadow_register_set,
28211 keep_interrupts_masked, use_debug_exception_return.
28212 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
28213 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
28214 New functions.
28215 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
28216 (mips_print_operand): Process COP0 registers to print $0 .. $31
28217 correctly for GAS to process.
28218 (mips_interrupt_extra_call_saved_reg_p): New function.
28219 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
28220 extra registers.
28221 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
28222 (mips_compute_frame_info): Add supports for interrupt context that
28223 includes doubleword accumulators and COP0 registers.
28224 (mips_for_each_saved_acc): New function.
28225 (mips_for_each_saved_gpr_and_fpr): Change the function name from
28226 mips_for_each_saved_reg.
28227 (mips_save_reg): Save accumulators.
28228 (mips_kernel_reg_p): A new for_each_rtx callback.
28229 (mips_expand_prologue): Support interrupt handlers.
28230 (mips_restore_reg): Restore accumulators.
28231 (mips_expand_epilogue): Support interrupt handlers.
28232 (mips_can_use_return_insn): Return false for interrupt handlers.
28233 (mips_epilogue_uses): New function.
28234 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
28235 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
28236 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
28237 cop0_move): New instructions.
28238 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
28239 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
28240 defines.
28241 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
28242 New defines.
28243 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
28244 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
28245 interrupt handlers, we use K0 as the temporary register.
28246 (EPILOGUE_USES): Change to a function call.
28247 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
28248 handlers, we use K0 as the temporary register.
2ba9daa7 28249
e19da24c
CF
28250 * doc/extend.texi (Function Attributes): Document interrupt,
28251 use_shadow_register_set, keep_interrupts_masked,
28252 use_debug_exception_return for MIPS attributes.
28253
aa1ca044
AM
282542009-04-03 Alan Modra <amodra@bigpond.net.au>
28255
28256 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
28257 Remove a number of t-files from tmake_file.
28258 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
28259 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
28260 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
28261 target_prototype, not TARGET_PROTOTYPE.
28262 (LINK_OS_GNU_SPEC): Define.
28263 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
28264 and darwin-ldoubdle.c.
28265
14fdc613
MM
282662009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
28267
28268 PR driver/39293
28269 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
28270 (cpp_options): Ditto.
28271 (default_compilers): Ditto.
28272 (display_help): Ditto.
28273 (process_command): Ditto.
28274 (do_spec_1): Ditto.
28275 (set_input): Use lbasename instead of duplicate code.
28276 (save_temps_prefix): New static for -save-temps=obj.
28277 (save_temps_length): Ditto.
2ba9daa7 28278
14fdc613
MM
28279 * doc/invoke.texi (-save-temps=obj): Document new variant to
28280 -save-temps switch.
28281
d3aa398e
JL
282822009-04-02 Jeff Law <law@redhat.com>
28283
28284 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
28285 variable.
28286
83f0ccb8
L
282872009-04-02 H.J. Lu <hongjiu.lu@intel.com>
28288
28289 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
28290 * configure: Regenerated.
28291
dcb6e951
RAE
282922009-04-02 Rafael Avila de Espindola <espindola@google.com>
28293
28294 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
28295 share the argument list.
28296
d85478c2
RAE
282972009-04-02 Rafael Avila de Espindola <espindola@google.com>
28298
28299 Merge
28300
28301 2009-02-12 Diego Novillo <dnovillo@google.com>
28302
83f0ccb8
L
28303 * varpool.c (debug_varpool): New.
28304 * cgraph.h (debug_varpool): Declare.
d85478c2 28305
34f42a49
JH
283062009-04-02 Jan Hubicka <jh@suse.cz>
28307
28308 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
28309 pass.
28310
a4747b4a
L
283112009-04-02 H.J. Lu <hongjiu.lu@intel.com>
28312
28313 * config/i386/i386.c (ix86_abi): Move initialization to ...
28314 (override_options): Here.
28315
63a9de54
CB
283162009-04-02 Christian Bruel <christian.bruel@st.com>
28317
28318 * config/sh/sh.c (sh_dwarf_register_span): New function.
28319 (TARGET_DWARF_REGISTER_SPAN): Define.
28320 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 28321
2f0fa28e
IR
283222009-04-02 Ira Rosen <irar@il.ibm.com>
28323
28324 PR tree-optimization/39595
2ba9daa7 28325 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
28326 interleaved loads group is not greater than the SLP group size.
28327
bbf7ce11
RAE
283282009-04-02 Rafael Avila de Espindola <espindola@google.com>
28329
28330 * builtins.c (is_builtin_name): New.
28331 (called_as_built_in): Use is_builtin_name.
28332 * tree.h (is_builtin_name): New.
28333 * varasm.c (incorporeal_function_p): Use is_builtin_name
28334
47e4dfcf
AS
283352009-04-02 Andrew Stubbs <ams@codesourcery.com>
28336
28337 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
28338
d0940d56
DS
283392009-04-02 Dodji Seketeli <dodji@redhat.com>
28340
28341 PR c++/26693
532bfb0a 28342 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
28343 * c-common.c (set_underlying_type): ... here.
28344 Also, make sure the function properly sets TYPE_STUB_DECL() on
28345 the newly created typedef variant type.
28346 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
28347 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
28348 points.
d0940d56 28349
bf1cbdc6
RG
283502009-04-02 Richard Guenther <rguenther@suse.de>
28351
28352 PR tree-optimization/37221
28353 * tree-flow.h (degenerate_phi_result): Declare.
28354 * tree-ssa-dom.c (degenerate_phi_result): Export.
28355 * tree-scalar-evolution.c (analyze_initial_condition): If
28356 the initial condition is defined by a degenerate PHI node
28357 use the degenerate value.
28358
87cfb32c
EB
283592009-04-01 Eric Botcazou <ebotcazou@adacore.com>
28360
28361 PR rtl-optimization/39588
28362 * combine.c (merge_outer_ops): Do not set the constant when this
28363 is not necessary.
28364 (simplify_shift_const_1): Do not modify it either in this case.
28365
bbb6eae8
SB
283662009-04-01 Steven Bosscher <steven@gcc.gnu.org>
28367
28368 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
28369 tuning is deprecated if -mtune value is set to an Itanium1 variant.
28370
839a3b8a
JJ
283712009-04-01 Janis Johnson <janis187@us.ibm.com>
28372
28373 PR c/29027
28374 * c-lex.c (interpret_float): Default (no suffix) is double.
28375
667e8acb
XDL
283762009-04-1 Xinliang David Li <davidxl@google.com>
28377
28378 * config/i386/i386.c (legitimate_constant_p): Recognize
28379 all one vector constant.
28380
60839f5d 283812009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28382
60839f5d 28383 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
28384 Change #include order to silence two warnings.
28385
60839f5d 283862009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28387
60839f5d 28388 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
28389 (ASM_SPEC): Pass -k to the assembler for PIC code.
28390
60839f5d 283912009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28392
60839f5d
EB
28393 * config.gcc: Add vax-*-linux* to the switch.
28394 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
28395 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
28396
60839f5d 283972009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28398
60839f5d 28399 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 28400 Use predicate macros instead of GET_CODE() == foo.
60839f5d 28401 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
28402 ashlsi3, rotrsi3, <unnamed>): Likewise.
28403
60839f5d 284042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28405
60839f5d 28406 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 28407 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d 28408 * config/vax/constraints.md: Likewise.
bd62d832 28409 * config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
60839f5d
EB
28410 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
28411 * config/vax/predicates.md: Likewise.
28412 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 28413 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
28414 * config/vax/vax.h: Likewise.
28415 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 28416
60839f5d 284172009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28418
60839f5d 28419 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
28420 (indirectable_address_p, adjacent_operands_p): Add spaces around
28421 braces.
60839f5d 28422 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 28423
60839f5d 284242009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28425
60839f5d 28426 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
28427 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
28428 index_term_p, reg_plus_index_p, legitimate_address_p,
28429 vax_mode_dependent_address_p): Update comments to match functions
28430 modified by the recent int->bool conversion.
28431
60839f5d 284322009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28433
60839f5d
EB
28434 * config/vax/builtins.md: Update copyright message.
28435 * config/vax/constraints.md: Likewise.
28436 * config/vax/netbsd-elf.h: Likewise.
28437 * config/vax/predicates.md: Likewise.
28438 * config/vax/vax-protos.h: Likewise.
28439 * config/vax/vax.c: Likewise.
28440 * config/vax/vax.h: Likewise.
28441 * config/vax/vax.md: Likewise.
28442 * config/vax/vax.opt: Likewise.
c4e75102 28443
60839f5d 284442009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28445
60839f5d 28446 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 28447 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
28448 * config/vax/constraints.md (B, R): Likewise.
28449 * config/vax/predicates.md (external_memory_operand,
c4e75102 28450 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
28451 * config/vax/vax.c (vax_output_int_add): Likewise.
28452 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
28453 untyped_call): Likewise.
28454
60839f5d 284552009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 28456
7a715bba
UB
28457 * config/vax/predicates.md: New file.
28458 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
28459 external_const_operand, nonsymbolic_operand, external_memory_operand,
28460 indirect_memory_operand, indexed_memory_operand,
28461 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
28462 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
28463 predicate.
7a715bba
UB
28464 * config/vax/constraints.md: New file.
28465 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
28466 New constraint.
28467 * config/vax/builtins.md: New file.
28468 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
28469 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
28470 jbbccisi): Define.
c4e75102
MT
28471 * config/vax/vax.opt (mqmath): Add option.
28472 * config/vax/vax.md (isfx): Extend with DI.
28473 (VAXintQH, VAXintQHSD): Define.
28474 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
28475 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
28476 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
28477 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
28478 (movdi): Update constraints and use vax_output_int_move().
28479 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
28480 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
28481 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
28482 nonlocal_goto): New.
28483 (mov<mode>): Extend accepted operand types.
28484 (subdi3_old): Rename from subdi3, change update constraints and use
28485 a new implementation.
60839f5d 28486 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
28487 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
28488 MOVE_RATIO, CLEAR_RATIO): Define.
28489 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
28490 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
28491 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 28492 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
28493 (split_quadword_operands): Make static and really allow variable
28494 splitting.
28495 (print_operand_address): Update for PIC generation.
28496 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
28497 indexable_address_p, fixup_mathdi_operand,
28498 vax_expand_addsub_di_operands, adjacent_operands_p): New.
28499 (vax_float_literal, legitimate_constant_p,
28500 indirectable_constant_address_p, index_term_p,
28501 reg_plus_index_p): Return bool instead of int.
28502 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
28503 where needed.
28504 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
28505 generation.
28506 (vax_output_conditional_branch): Indent.
28507 (legitimate_constant_address_p, indirectable_constant_address_p,
28508 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
28509 vax_mode_dependent_address_p): Return bool instead of int, update for
28510 PIC generation.
28511 * config/vax/vax-protos.h (legitimate_constant_address_p,
28512 legitimate_constant_p, legitimate_address_p,
28513 vax_mode_dependent_address_p): Change declaration to bool.
28514 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
28515 vax_expand_addsub_di_operands, vax_output_int_subtract,
28516 vax_output_movmemsi): Declare.
28517 (split_quadword_operands, vax_float_literal): Delete declaration.
28518 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
28519 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
28520 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
28521 ASM_OUTPUT_DWARF_PCREL): Define.
28522 (ASM_SPEC): Change definition to allow PIC generation.
28523
9332c6eb
L
285242009-04-01 Steve Ellcey <sje@cup.hp.com>
28525
28526 * doc/sourcebuild.texi: Update front-end requirements.
28527
d93e052c
JJ
285282009-04-01 Jakub Jelinek <jakub@redhat.com>
28529
28530 PR target/39226
28531 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
28532 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
28533 (booldi3_internal3): Use boolean_or_operator instead of
28534 boolean_operator.
28535
6ccb2a4a
JM
285362009-04-01 Joseph Myers <joseph@codesourcery.com>
28537
28538 PR c/39605
28539 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
28540 declarator whose size is not an integer constant expression but
28541 folds to an integer constant, then treat it as a constant
28542 subsequently.
28543
299b87f8
RG
285442009-04-01 Richard Guenther <rguenther@suse.de>
28545
28546 * fold-const.c (fold_plusminus_mult_expr): Do not fold
28547 i * 4 + 2 to (i * 2 + 1) * 2.
28548
b85eb797
JJ
285492009-04-01 Jakub Jelinek <jakub@redhat.com>
28550
28551 PR c/37772
28552 * c-parser.c (c_parser_asm_statement): Skip until close paren and
28553 return if c_parser_asm_string_literal returned NULL.
28554
235e1fe8
NC
285552009-04-01 Nick Clifton <nickc@redhat.com>
28556
28557 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
28558 already defined.
28559 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
28560 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
28561 other typedefs to avoid conflicts with libgcc2.c. Define labels
28562 to gain 16-bit bit-manipulation functions from libgcc2.c and then
28563 include it.
28564 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
28565 to gain 16-bit trapping arithmetic functions from libgcc2.c and
28566 then include it.
28567
d6868399
RAE
285682009-04-01 Rafael Avila de Espindola <espindola@google.com>
28569
7a715bba
UB
28570 * varasm.c (default_function_rodata_section): Declare DOT as
28571 const char*.
d6868399 28572
73d21f56 285732009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 28574 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
28575
28576 PR/39492
28577 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
28578 Make object_name unique for each process.
28579
03742a9b
JJ
285802009-04-01 Jakub Jelinek <jakub@redhat.com>
28581
28582 PR other/39591
28583 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
28584 addressable variables in the parallel that could go out of scope while
28585 running queued tasks.
28586
4223ff5f
AS
285872009-04-01 Anatoly Sokolov <aesok@post.ru>
28588
28589 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
28590 (CASE_VALUES_THRESHOLD): Redefine.
28591 * config/avr/avr.c (avr_override_options): Remove initialization of
28592 avr_case_values_threshold variable.
28593 (avr_case_values_threshold): Remove variable. Add new function.
28594 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
28595 * config/avr/avr.opt (mno-tablejump): Remove option.
28596 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
28597
e893f6f3
DD
285982009-04-01 DJ Delorie <dj@redhat.com>
28599
28600 * varasm.c (default_function_rodata_section): Don't assume
28601 anything about where the first '.' in the section name is.
28602
b246d100
AM
286032009-04-01 Alan Modra <amodra@bigpond.net.au>
28604
28605 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
28606 rs6000_emit_stack_tie.
28607
d3e37a9e
ILT
286082009-03-31 Ian Lance Taylor <iant@google.com>
28609
28610 * tree-eh.c (tree_remove_unreachable_handlers): Compare
28611 gimple_code with GIMPLE_RESX, not RESX.
28612
c1b61fca
JM
286132009-03-31 Joseph Myers <joseph@codesourcery.com>
28614
28615 * c-common.c (c_get_ident): New.
7a715bba 28616 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 28617
c2d2ad48
BE
286182009-04-01 Ben Elliston <bje@au.ibm.com>
28619
28620 * config/rs6000/sysv4.opt (msdata): Improve option description.
28621
13d1a6e7
SE
286222009-03-31 Steve Ellcey <sje@cup.hp.com>
28623
28624 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
28625 (divdf3_internal_lat): Remove.
28626 (divxf3_internal_lat): Remove.
28627 (divxf3_internal_thr): Remove.
28628 (divxf): Use divxf3_internal.
28629 * config/ia64/div.md (divsf3_internal_lat): New.
28630 (divdf3_internal_lat): New.
28631 (divxf3_internal): New.
28632
207bf79d
JM
286332009-03-31 Joseph Myers <joseph@codesourcery.com>
28634
28635 PR c/448
28636 * Makefile.in (USE_GCC_STDINT): Define.
28637 (stmp-int-hdrs): Install stdint.h if applicable.
28638 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
28639 if known.
28640 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
28641 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
28642 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
28643 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
28644 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
28645 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
28646 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
28647 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
28648 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
28649 (c_common_nodes_and_builtins): Initialize
28650 underlying_wchar_type_node. Do not initialize
28651 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
28652 nodes for new types.
28653 (c_stddef_cpp_builtins): Define macros for new types.
28654 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
28655 Remove.
28656 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
28657 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
28658 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
28659 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
28660 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
28661 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
28662 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
28663 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
28664 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
28665 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
28666 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
28667 int16_type_node, int32_type_node, int64_type_node,
28668 uint8_type_node, uint16_type_node, c_uint32_type_node,
28669 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
28670 int_least32_type_node, int_least64_type_node,
28671 uint_least8_type_node, uint_least16_type_node,
28672 uint_least32_type_node, uint_least64_type_node,
28673 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
28674 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
28675 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
28676 uintptr_type_node): Define.
28677 * c-cppbuiltin.c (builtin_define_constants,
28678 builtin_define_type_minmax): New.
28679 (builtin_define_stdint_macros): Define more macros.
28680 (c_cpp_builtins): Define more limit macros.
28681 (type_suffix): New.
28682 (builtin_define_type_max): Define in terms of
28683 builtin_define_type_minmax. Remove is_long parameter. All
28684 callers changed.
28685 * config.gcc (use_gcc_stdint): Define.
28686 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
28687 Add newlib-stdint.h for generic targets.
28688 * config/glibc-stdint.h, config/newlib-stdint.h,
28689 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
28690 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
28691 * config/score/score.h (UINTPTR_TYPE): Define.
28692 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
28693 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
28694 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
28695 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
28696 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
28697 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
28698 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
28699 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
28700 * config/spu/spu.h (STDINT_LONG32): Define.
28701 * configure.ac (use_gcc_stdint): Substitute.
28702 * configure: Regenerate.
28703 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
28704 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
28705 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
28706 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
28707 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
28708 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
28709 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
28710 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
28711 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
28712 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
28713 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
28714 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
28715 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
28716 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
28717 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
28718 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
28719 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
28720 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
28721 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
28722 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
28723 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
28724 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
28725 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
28726 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
28727 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
28728 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
28729 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
28730 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
28731 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
28732
ed853664
BS
287332009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
28734
28735 * loop-iv.c (suitable_set_for_replacement): Renamed from
28736 simplify_using_assignment; changed to return bool and to accept new
28737 args DEST and SRC. Return true iff we find a source/destination pair
28738 that can be used to make a replacement, and fill SRC and DEST if so.
28739 Remove arg ALTERED. Don't deal with altered regs here. All callers
28740 changed.
28741 (simplify_using_initial_values): Deal with altered regs here and track
28742 more precisely the effect they have on the validity of our expression.
28743
1569e190
BS
28744 * loop-iv.c (simplify_using_condition): A condition of the form
28745 (EQ REG CONST) can be used to simply make a substitution.
28746 (simplify_using_initial_values): Keep track of conditions we have seen
28747 and keep using them to simplify new expressions, while applying the
28748 same substitutions to them as to the expression.
28749
1d1eb80c
BS
28750 * simplify-rtx.c (simplify_relational_operation_1): Simplify
28751 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
28752 GEU/LTU reversed.
28753
28af33b0
BS
28754 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
28755 changed. Use this when trying to improve the upper bound.
28756 Generate the comparison by using simplify_gen_relational.
28757
b30321cd
BS
28758 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
28759
60081874
BS
28760 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
28761 functions.
2ba9daa7 28762 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
28763 replace_in_expr to make replacements. Call replace_single_def_regs
28764 once on the initial version of the expression.
28765
bebc6e07
RR
287662009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28767
fcb82ab0 28768 PR target/27237
bebc6e07 28769 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 28770
6b12efe9
RG
287712009-03-31 Richard Guenther <rguenther@suse.de>
28772
28773 PR middle-end/31029
28774 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
28775 equality comparisons. Fold C - X CMP X if C % 2 == 1.
28776
108f6c2f
RG
287772009-03-31 Richard Guenther <rguenther@suse.de>
28778
28779 * tree.h (div_if_zero_remainder): Declare.
28780 * fold-const.c (div_if_zero_remainder): Export.
28781 * tree-ssa-forwprop.c
28782 (forward_propagate_addr_into_variable_array_index): Handle
28783 constant array index addition outside of the variable index.
28784
8f612190
JM
287852009-03-31 Joseph Myers <joseph@codesourcery.com>
28786
28787 PR target/39592
28788 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
28789 define_splits, floatunssi<mode>2): Require x87 conversions from
28790 DImode to be permitted.
28791
47580d22
JM
287922009-03-31 Joseph Myers <joseph@codesourcery.com>
28793
28794 PR preprocessor/15638
28795 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
28796
ba4d8f9d
RG
287972009-03-31 Richard Guenther <rguenther@suse.de>
28798
28799 PR middle-end/23401
28800 PR middle-end/27810
28801 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
28802 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
28803 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
28804 a separate statement.
28805 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
28806 (lookup_tmp_var): Likewise.
28807 (is_gimple_formal_tmp_or_call_rhs): Remove.
28808 (is_gimple_reg_or_call_rhs): Rename to ...
28809 (is_gimple_reg_rhs_or_call): ... this.
28810 (is_gimple_mem_or_call_rhs): Rename to ...
28811 (is_gimple_mem_rhs_or_call): ... this.
28812 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
28813 DECL_GIMPLE_REG_P only if is_formal is true.
28814 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
28815 for non-proper post-modify expression gimplification.
28816 (gimplify_self_mod_expr): For post-modify expressions gimplify
28817 the lvalue to a minimal lvalue.
28818 (rhs_predicate_for): Remove formal temp case.
28819 (gimplify_modify_expr_rhs): Likewise.
28820 (gimplify_addr_expr): Use is_gimple_reg.
28821 (gimplify_expr): Remove formal temp cases.
28822 (gimple_regimplify_operands): Likewise.
28823 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
28824 and FILTER_EXPR like constants.
28825 * gimple.c (walk_gimple_op): Fix val_only initialization, use
28826 is_gimple_reg.
28827 (is_gimple_formal_tmp_rhs): Remove.
28828 (is_gimple_reg_rhs): Remove special casing.
28829 (is_gimple_mem_rhs): Fix.
28830 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
28831 (is_gimple_formal_tmp_var): Remove.
28832 (is_gimple_formal_tmp_reg): Likewise.
28833 (is_gimple_min_lval): Allow invariant component ref parts.
28834 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
28835 is_gimple_formal_tmp_reg): Remove declarations.
28836 * tree-cfg.c (verify_expr): Verify that variables with address
28837 taken do not have DECL_GIMPLE_REG_P set.
28838 * tree-mudflap.c (mf_build_check_statement_for): Use
28839 force_gimple_operand instead of gimplify_expr.
28840
8de9b877
AZ
288412009-03-31 Ayal Zaks <zaks@il.ibm.com>
28842
28843 * modulo-sched.c (sms_schedule_by_order): Pass the actual
28844 schedulable rows to compute_split_row.
28845
b5e3caf2
BE
288462009-03-31 Ben Elliston <bje@au.ibm.com>
28847
28848 PR target/31635
28849 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
28850 OPT_mvrsave.
28851
9752c4ad
AM
288522009-03-31 Alan Modra <amodra@bigpond.net.au>
28853
28854 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
28855 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
28856 * configure: Regenerate.
28857 * config.in: Regenerate.
28858 * config/rs6000/rs6000.opt (mtls-markers): Add.
28859 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
28860 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
28861 (tls_ld_aix, tls_ld_sysv): Likewise.
28862 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
28863 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
28864
b597d1b6
AM
288652009-03-31 Alan Modra <amodra@bigpond.net.au>
28866
28867 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
28868
a203a221
JH
288692009-03-30 Jan Hubicka <jh@suse.cz>
28870
b597d1b6
AM
28871 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
28872 out of RESX.
28873 (tree_remove_unreachable_handlers): Cleanup EH predecestor
28874 detection and label handling.
a203a221 28875
5b0c0b2c
VM
288762009-03-30 Vladimir Makarov <vmakarov@redhat.com>
28877
28878 * ira-int.h (ira_allocno): Rename left_conflicts_num to
28879 left_conflicts_size.
28880 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
28881 ALLOCNO_LEFT_CONFLICTS_SIZE.
28882
28883 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
28884 remove_allocno_from_bucket_and_push,
28885 allocno_spill_priority_compare, push_allocnos_to_stack,
28886 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
28887 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
28888 (setup_allocno_left_conflicts_num): Ditto. Rename to
28889 setup_allocno_left_conflicts_size.
28890 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
28891 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
28892 setup_allocno_left_conflicts_size instead of
28893 setup_allocno_left_conflicts_num.
28894
28895 * ira-build.c (ira_create_allocno): Use
28896 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
28897 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 28898
9a48a93f
VM
288992009-03-30 Vladimir Makarov <vmakarov@redhat.com>
28900
28901 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
28902 instead of DF_LR_OUT.
28903
28904 * ira-lives.c (process_bb_node_lives): Ditto.
28905
28906 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
28907 instead of DF_LR_{OUT,IN}.
28908
28909 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
28910
28911 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
28912
4c936d4f
JH
289132009-03-30 Jan Hubicka <jh@suse.cz>
28914
28915 * except.c (label_to_region_map): Fix thinko.
28916
f4d9f129
SE
289172009-03-30 Steve Ellcey <sje@cup.hp.com>
28918
28919 PR middle-end/38237
28920 * tree.h (tree_find_value): New declaration.
28921 * tree.c (tree_find_value): New function.
28922 * varasm.c (assemble_external): Avoid duplicate entries on lists.
28923
b3f27c15
JJ
289242009-03-30 Jakub Jelinek <jakub@redhat.com>
28925
28926 PR debug/39563
28927 * c-decl.c (struct c_binding): Add locus field.
28928 (bind): Add locus argument, set locus field from it.
28929 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
28930 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
28931 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
28932 implicitly_declare, undeclared_variable, lookup_label,
28933 declare_label, c_make_fname_decl, c_builtin_function,
28934 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
28935 bind callers.
28936
ad41bd84 289372009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
28938
28939 PR target/38781
28940 * config/i386/i386.c (classify_argument): Check total size of
28941 structure.
28942
133f9369
MJ
289432009-03-30 Martin Jambor <mjambor@suse.cz>
28944
28945 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
28946 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
28947 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
28948 respectively.
28949
28950 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
28951 seen_variable_array_ref while also traversing a union.
28952
28953 * tree-inline.c (optimize_inline_calls): Do not call
28954 cgraph_node_remove_callees.
28955 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
28956 (pass_remove_cgraph_callee_edges): New variable.
28957 * passes.c (init_optimization_passes): Add
28958 pass_remove_cgraph_callee_edges after early inlining and before all
28959 late intraprocedural passes.
28960
28961 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
28962
1190f2eb
PB
289632009-03-30 Paolo Bonzini <bonzini@gnu.org>
28964
28965 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
28966 Fix typos in names.
28967
fedc1775
PB
289682009-03-30 Paolo Bonzini <bonzini@gnu.org>
28969
fcb82ab0
UB
28970 * combine.c (simplify_comparison): Use have_insn_for.
28971 * dojump.c (do_jump): Likewise.
fedc1775 28972
65c5ae8b
PB
289732009-03-30 Paolo Bonzini <bonzini@gnu.org>
28974
28975 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
28976 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
28977 sparc_compare_op0 like sparc_compare_emitted used to be handled.
28978 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
28979 instead of sparc_compare_emitted.
28980 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
28981 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
28982 instead of sparc_compare_emitted.
28983
d25aa7ab
PB
289842009-03-30 Paolo Bonzini <bonzini@gnu.org>
28985
28986 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
28987 enter/exit cfglayout mode.
28988 (pass_partition_block): Require it.
28989 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
28990 (combine_instructions): Track basic blocks instead of labels.
28991 (update_cfg_for_uncondjump): New.
28992 (try_combine): Use it. Update jumps after rescanning.
28993 (pass_combine): Require PROP_cfglayout.
28994 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
28995
9c9e26f5
PB
289962009-03-30 Paolo Bonzini <bonzini@gnu.org>
28997
fcb82ab0
UB
28998 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
28999 Provide/destroy PROP_cfglayout respectively.
29000 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
29001 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 29002
28ddeea1
PB
290032009-03-30 Paolo Bonzini <bonzini@gnu.org>
29004
29005 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
29006 fold_convert_const_fixed_from_fixed,
29007 fold_convert_const_fixed_from_int,
29008 fold_convert_const_fixed_from_real, fold_negate_const): Do not
29009 set TREE_CONSTANT_OVERFLOW.
29010 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
29011 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
29012
ebfd146a
IR
290132009-03-30 Ira Rosen <irar@il.ibm.com>
29014
29015 * tree-vect-loop-manip.c: New file.
29016 * tree-vectorizer.c: Update documentation and included files.
29017 (vect_loop_location): Make extern.
29018 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
29019 (rename_variables_in_bb, rename_variables_in_loop,
29020 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
29021 slpeel_update_phi_nodes_for_guard1,
29022 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
29023 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
29024 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 29025 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
29026 find_loop_location): Likewise.
29027 (new_stmt_vec_info): Move to tree-vect-stmts.c.
29028 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
29029 get_vectype_for_scalar_type, vect_is_simple_use,
29030 supportable_widening_operation, supportable_narrowing_operation):
29031 Likewise.
29032 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
29033 (new_loop_vec_info, destroy_loop_vec_info,
29034 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
29035 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
29036 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
29037 (vect_supportable_dr_alignment): Likewise.
29038 * tree-vectorizer.h (tree-data-ref.h): Include.
29039 (vect_loop_location): Declare.
29040 Reorganize function declarations according to the new file structure.
29041 * tree-vect-loop.c: New file.
2ba9daa7 29042 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
29043 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
29044 * tree-vect-data-refs.c: New file.
29045 * tree-vect-patterns.c (timevar.h): Don't include.
29046 * tree-vect-stmts.c: New file.
2ba9daa7 29047 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 29048 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
29049 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
29050 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
29051 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
29052 (tree-vect-analyze.o): Remove.
29053 (tree-vect-transform.o): Likewise.
29054 (tree-vect-data-refs.o): Add rule.
2ba9daa7 29055 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
29056 tree-vect-slp.o): Likewise.
29057 (tree-vect-patterns.o): Remove redundant dependencies.
29058 (tree-vectorizer.o): Likewise.
29059 * tree-vect-slp.c: New file.
29060
40a1cfba
RW
290612009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29062
29063 * optc-gen.awk: Warn if an option flag has multiple different
29064 help strings.
29065
a9a7a9a2
SP
290662009-03-30 Sebastian Pop <sebastian.pop@amd.com>
29067
29068 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
29069 -floop-block): Document dependences on PPL, CLooG and Graphite.
29070
8ce94e44
JM
290712009-03-30 Joseph Myers <joseph@codesourcery.com>
29072
29073 PR rtl-optimization/323
29074 * c-common.c (c_fully_fold, convert_and_check,
29075 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
29076 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
29077 * c-common.def (EXCESS_PRECISION_EXPR): New.
29078 * c-cppbuiltin.c (builtin_define_float_constants): Define
29079 constants with enough digits for long double.
29080 * c-lex.c (interpret_float): Interpret constant with excess
29081 precision where appropriate.
29082 * c-opts.c (c_common_post_options): Set
29083 flag_excess_precision_cmdline. Give an error for
29084 -fexcess-precision=standard for C++ for processors where the
29085 option is significant.
29086 * c-parser.c (c_parser_conditional_expression): Handle excess
29087 precision in condition.
29088 * c-typeck.c (convert_arguments): Handle arguments with excess
29089 precision.
29090 (build_unary_op): Move excess precision outside operation.
29091 (build_conditional_expr): Likewise.
29092 (build_compound_expr): Likewise.
29093 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
29094 (build_modify_expr): Handle excess precision in RHS.
29095 (convert_for_assignment): Handle excess precision in converted
29096 value.
29097 (digest_init, output_init_element, process_init_element): Handle
29098 excess precision in initializer.
29099 (c_finish_return): Handle excess precision in return value.
29100 (build_binary_op): Handle excess precision in operands and add
29101 excess precision as needed for operation.
29102 * common.opt (-fexcess-precision=): New option.
29103 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
29104 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
29105 For standard excess precision, output explicit conversion to and
29106 truncation from XFmode.
29107 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
29108 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
29109 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
29110 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
29111 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
29112 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
29113 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
29114 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
29115 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
29116 define_splits, sqrt<mode>2): Disable where appropriate for
29117 standard excess precision.
29118 * convert.c (convert_to_real): Do not shorten arithmetic to type
29119 for which excess precision would be used.
29120 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
29121 * doc/invoke.texi (-fexcess-precision=): Document option.
29122 (-mfpmath=): Correct index entry.
29123 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
29124 flag_excess_precision): New.
29125 * langhooks.c (lhd_post_options): Set
29126 flag_excess_precision_cmdline.
29127 * opts.c (common_handle_option): Handle -fexcess-precision=.
29128 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
29129 init_excess_precision): New.
29130 (lang_dependent_init_target): Call init_excess_precision.
29131 * tree.c (excess_precision_type): New.
29132 * tree.h (excess_precision_type): Declare.
29133
1e57bf47
JM
291342009-03-30 Joseph Myers <joseph@codesourcery.com>
29135
29136 PR c/35235
29137 * c-typeck.c (build_component_ref): Do not copy qualifiers from
29138 non-lvalue to component.
29139
148e4216
JM
291402009-03-29 Joseph Myers <joseph@codesourcery.com>
29141
29142 PR preprocessor/34695
29143 * Makefile.in (c-opts.o): Depend on c-tree.h.
29144 * c-common.c: Move down include of diagnostic.h.
29145 (done_lexing, c_cpp_error): New.
29146 * c-common.h (done_lexing): Declare.
29147 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
29148 (parse_in).
29149 * c-opts.c: Include c-tree.h.
29150 (c_common_init_options): Set preprocessor error callback.
29151 (c_common_handle_option): Do not set preprocessor
29152 inhibit_warnings, warnings_are_errors, warn_system_headers,
29153 pedantic_errors or inhibit_warnings flags.
29154 (c_common_post_options): Do not check cpp_errors (parse_in).
29155 (c_common_finish): Do not output dependencies if there were
29156 errors. Do not check return value of cpp_finish.
29157 * c-ppoutput.c (pp_file_change): Set input_location.
29158 * c-tree.h (c_cpp_error): Declare.
29159 * diagnostic.c (diagnostic_set_info_translated): Also initialize
29160 override_column.
29161 (diagnostic_build_prefix): Check override_column.
29162 * diagnostic.h (diagnostic_info): Add override_column field.
29163 (diagnostic_override_column): Define.
29164
2ec5deb5
PB
291652009-03-28 Paolo Bonzini <bonzini@gnu.org>
29166
ba20e309
UB
29167 * c-common.c (c_expand_expr, c_staticp): Remove.
29168 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
29169 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
29170 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
29171 * c-gimplify.c (gimplify_compound_literal_expr,
29172 optimize_compound_literals_in_ctor): Remove.
29173 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
29174 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
29175 * c-semantics.c (emit_local_var): Remove.
29176
29177 * langhooks-def.h (lhd_expand_expr): Remove.
29178 * langhooks.c (lhd_expand_expr): Remove.
29179 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
29180
29181 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
29182 handling from c-semantics.c; don't call into langhook.
29183 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
29184 * gimplify.c (gimplify_compound_literal_expr,
29185 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
29186 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
29187 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
29188 as was done in c-gimplify.c.
29189 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
29190 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
29191 Move from c-common.h.
29192 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
29193
29194 * tree.c (staticp): Do not call langhook.
29195 * langhooks.c (lhd_staticp): Delete.
29196 * langhooks-def.h (lhd_staticp): Delete prototype.
29197 (LANG_HOOKS_STATICP): Delete.
29198 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
29199
ba20e309
UB
29200 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
29201 instead of DECL_STMTs.
2ec5deb5 29202
928c19bb
JM
292032009-03-29 Joseph Myers <joseph@codesourcery.com>
29204
29205 PR c/456
29206 PR c/5675
29207 PR c/19976
29208 PR c/29116
29209 PR c/31871
29210 PR c/35198
29211 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
29212 void_type_node.
29213 (fold_call_expr): Return a NOP_EXPR from folding rather than the
29214 contained expression.
ba20e309 29215 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
29216 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
29217 conditional expressions for C.
29218 (decl_constant_value_for_optimization): Move from
ba20e309 29219 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
29220 whether optimizing and that the expression is a VAR_DECL not of
29221 array type instead of doing such checks in the caller. Do not
29222 check pedantic. Call gcc_unreachable for C++.
29223 * c-common.def (C_MAYBE_CONST_EXPR): New.
29224 * c-common.h (c_fully_fold, c_save_expr,
29225 decl_constant_value_for_optimization): New prototypes.
29226 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
29227 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
29228 EXPR_INT_CONST_OPERANDS): Define.
29229 * c-convert.c (convert): Strip nops from expression.
29230 * c-decl.c (groktypename): Take extra parameters expr and
29231 expr_const_operands. Update call to grokdeclarator.
29232 (start_decl): Update call to grokdeclarator. Add statement for
29233 expressions used in type of decl.
29234 (grokparm): Update call to grokdeclarator.
29235 (push_parm_decl): Update call to grokdeclarator.
29236 (build_compound_literal): Add parameter non_const and build a
29237 C_MAYBE_COSNT_EXPR if applicable.
29238 (grokdeclarator): Take extra parameters expr and
29239 expr_const_operands. Track expressions used in declaration
29240 specifiers and declarators. Fold array sizes and track whether
29241 they are constant expressions and whether they are integer
29242 constant expressions.
29243 (parser_xref_tag): Set expr and expr_const_operands fields in
29244 return value.
29245 (grokfield): Update call to grokdeclarator.
29246 (start_function): Update call to grokdeclarator.
29247 (build_null_declspecs): Set expr and expr_const_operands fields in
29248 return value.
29249 (declspecs_add_type): Handle expressions in typeof specifiers.
29250 * c-parser.c (c_parser_declspecs): Set expr and
29251 expr_const_operands fields for declaration specifiers.
29252 (c_parser_enum_specifier): Likewise.
29253 (c_parser_struct_or_union_specifier): Likewise.
29254 (c_parser_typeof_specifier): Likewise. Update call to
29255 groktypename. Fold expression as needed. Return expressions with
29256 type instead of adding statements.
29257 (c_parser_attributes): Update calls to c_parser_expr_list.
29258 (c_parser_statement_after_labels): Fold expression before passing
29259 to objc_build_throw_stmt.
29260 (c_parser_condition): Fold expression.
29261 (c_parser_asm_operands): Fold expression.
29262 (c_parser_conditional_expression): Use c_save_expr. Update call
29263 to build_conditional_expr.
29264 (c_parser_alignof_expression): Update call to groktypename.
29265 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
29266 original_code. Fold expression argument of va_arg. Create
29267 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
29268 argument to va_arg. Update calls to groktypename. Fold array
29269 index for offsetof. Verify that first argument to
29270 __builtin_choose_expr has integer type.
29271 (c_parser_postfix_expression_after_paren_type): Update calls to
29272 groktypename and build_compound_literal. Handle expressions with
29273 side effects in type name.
29274 (c_parser_postfix_expression_after_primary): Update call to
29275 c_parser_expr_list. Set original_code for calls to
29276 __builtin_constant_p.
29277 (c_parser_expr_list): Take extra parameter fold_p. Fold
29278 expressions if requested.
29279 (c_parser_objc_type_name): Update call to groktypename.
29280 (c_parser_objc_synchronized_statement): Fold expression.
29281 (c_parser_objc_receiver): Fold expression.
29282 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
29283 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
29284 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
29285 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
29286 (struct c_typespec): Add elements expr and expr_const_operands.
29287 (struct c_declspecs): Add elements expr and expr_const_operands.
29288 (groktypename, build_conditional_expr, build_compound_literal):
29289 Update prototypes.
29290 (in_late_binary_op): Declare.
29291 * c-typeck.c (note_integer_operands): New function.
29292 (in_late_binary_op): New variable.
29293 (decl_constant_value_for_broken_optimization): Move to c-common.c
29294 and rename to decl_constant_value_for_optimization.
29295 (default_function_array_conversion): Do not strip nops.
29296 (default_conversion): Do not call
29297 decl_constant_value_for_broken_optimization.
29298 (build_array_ref): Do not fold result.
29299 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
29300 result when operand is a VLA.
29301 (c_expr_sizeof_type): Update call to groktypename. Handle
29302 expressions included in type name. Use C_MAYBE_CONST_EXPR for
29303 result when operand names a VLA type.
29304 (build_function_call): Update call to build_compound_literal.
29305 Only fold result for calls to __builtin_* functions. Strip
29306 NOP_EXPR from INTEGER_CST returned from such functions. Fold
29307 the function designator.
29308 (convert_arguments): Fold arguments. Update call to
29309 convert_for_assignment.
29310 (build_unary_op): Handle increment and decrement of
29311 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
29312 decrement earlier. Fold operand of increment and decrement.
29313 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
29314 built for integer operand. Wrap returns that are INTEGER_CSTs
29315 without being integer constant expressions or that have integer
29316 constant operands without being INTEGER_CSTs.
29317 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
29318 (build_conditional_expr): Add operand ifexp_bcp. Track whether
29319 result is an integer constant expression or can be used in
29320 unevaluated parts of one and avoid folding and wrap as
29321 appropriate. Fold operands before possibly doing -Wsign-compare
29322 warnings.
29323 (build_compound_expr): Wrap result for C99 if operands can be used
29324 in integer constant expressions.
29325 (build_c_cast): Update call to digest_init. Do not ignore
29326 overflow from casting floating-point constants to integers. Wrap
29327 results that could be confused with integer constant expressions,
29328 null pointer constants or floating-point constants.
29329 (c_cast_expr): Update call to groktypename. Handle expressions
29330 included in type name.
29331 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
29332 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
29333 Update calls to convert_for_assignment.
29334 (convert_for_assignment): Take new parameter
29335 null_pointer_constant. Do not strip nops or call
29336 decl_constant_value_for_broken_optimization. Set
29337 in_late_binary_op for conversions to boolean.
29338 (store_init_value): Update call to digest_init.
29339 (digest_init): Take new parameter null_pointer_constant. Do not
29340 call decl_constant_value_for_broken_optimization. pedwarn for
29341 initializers not constant expressions. Update calls to
29342 convert_for_assignment.
29343 (constructor_nonconst): New.
29344 (struct constructor_stack): Add nonconst element.
29345 (really_start_incremental_init, push_init_level, pop_init_level):
29346 Handle constructor_nonconst and nonconst element.
29347 (set_init_index): Call constant_expression_warning for array
29348 designators.
29349 (output_init_element): Fold value. Set constructor_nonconst as
29350 applicable. pedwarn for initializers not constant expressions.
29351 Update call to digest_init. Call constant_expression_warning
29352 where constant initializers are required.
29353 (process_init_element): Use c_save_expr.
29354 (c_finish_goto_ptr): Fold expression.
29355 (c_finish_return): Fold return value. Update call to
29356 convert_for_assignment.
29357 (c_start_case): Fold switch expression.
29358 (c_process_expr_stmt): Fold expression.
29359 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 29360 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
29361 (build_binary_op): Track whether results are integer constant
29362 expressions or may occur in such, disable folding and wrap results
29363 as applicable. Fold operands for -Wsign-compare warnings unless
29364 in_late_binary_op.
29365 (c_objc_common_truthvalue_conversion): Handle results folded to
29366 integer constants that are not integer constant expressions.
29367 * doc/extend.texi: Document when typeof operands are evaluated,
29368 that condition of __builtin_choose_expr is an integer constant
29369 expression, and more about use of __builtin_constant_p in
29370 initializers.
29371
5babbcc0
RG
293722009-03-29 Richard Guenther <rguenther@suse.de>
29373
29374 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
29375 propagate addresses of array references.
29376
0340f2ba
SB
293772009-03-29 Steven Bosscher <steven@gcc.gnu.org>
29378
29379 * regmove.c (perhaps_ends_bb_p): Remove.
29380 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
29381 from INSN and check that the main loop stays within that basic block.
29382 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
29383 (regmove_forward_pass): Split out from regmove_optimize. Use
29384 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
29385 (regmove_backward_pass): Split out from regmove_optimize. Use
29386 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
29387 (regmove_optimize): Simplify.
29388
eeae74a1
L
293892009-03-29 H.J. Lu <hongjiu.lu@intel.com>
29390
29391 PR target/39545
29392 * config/i386/i386.c (classify_argument): Ignore flexible array
29393 member in struct and warn ABI change.
29394
a24078b2
L
293952009-03-29 H.J. Lu <hongjiu.lu@intel.com>
29396
29397 * config/i386/i386-protos.h (ix86_agi_dependent): New.
29398
29399 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
29400 (ix86_adjust_cost): Updated.
29401
a8da523f
JH
294022009-03-29 Jan Hubicka <jh@suse.cz>
29403
29404 PR middle-end/28850
29405 * tree-pass.h (pass_cleanup_eh): New function.
29406 (remove_unreachable_regions): Break code handling RTL
29407 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
29408 that can not be reached by runtime.
29409 (can_be_reached_by_runtime): New function.
29410 (label_to_region_map): New function.
29411 (num_eh_regions): New function.
29412 (rtl_remove_unreachable_regions): New function.
29413 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
29414 (remove_eh_region): New function.
29415 * except.h: Include sbitmap and vecprim.
29416 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
29417 num_eh_regions): Declare.
29418 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 29419 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
29420 * tree-eh.c (tree_remove_unreachable_handlers): New function.
29421 (tree_empty_eh_handler_p): New function.
29422 (cleanup_empty_eh): New function.
29423 (cleanup_eh): New function.
29424 (pass_cleanup_eh): New function.
29425
98f358e5
JH
294262009-03-29 Jan Hubicka <jh@suse.cz>
29427
29428 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
29429 for removed regions.
29430
13a9fa44
JH
294312009-03-29 Jan Hubicka <jh@suse.cz>
29432
29433 * except.c (dump_eh_tree): Dump all datastructures.
29434
e38cf733
JH
294352009-03-29 Jan Hubicka <jh@suse.cz>
29436
29437 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
29438 (duplicate_eh_regions_1): Likewise.
29439 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
29440 vector; call EH verification.
29441 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
29442 Be ready for region being removed.
29443
12802c2b
JH
294442009-03-29 Jan Hubicka <jh@suse.cz>
29445
29446 * bitmap.c (bitmap_last_set_bit): New function.
29447 * bitmap.h (bitmap_last_set_bit): Declare.
29448
4ea80a41
DA
294492009-03-29 David Ayers <ayers@fsfe.org>
29450
29451 PR objc/27377
29452 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
29453 by calling objc_compare_types and surpress warnings about
29454 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 29455
4ea80a41 294562009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
29457
29458 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
29459 call initialize_inline_failed.
29460 (initialize_inline_failed): Move it from here ...
29461 * cgraph.c (initialize_inline_failed): ... to here.
29462 (cgraph_create_edge): Call initialize_inline_failed rather than
29463 setting inline_failed directly.
29464
7fb0ee07
BE
294652009-03-29 Ben Elliston <bje@au.ibm.com>
29466
29467 PR target/32542
29468 * sysv4.opt (msdata): Improve comment.
29469 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
29470 * sysv4.h (SVR4_ASM_SPEC): Likewise.
29471
0be77bf2
BE
294722009-03-29 Ben Elliston <bje@au.ibm.com>
29473
29474 PR target/30451
29475 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
29476 load and store attributes.
29477
593812b6
BE
294782009-03-29 Ben Elliston <bje@au.ibm.com>
29479
29480 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
29481 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
29482 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
29483 * doc/extend.texi (X86 Built-in Functions): Add index entries for
29484 __builtin_infq and __builtin_huge_valq.
29485
8272d11d
AS
294862009-03-28 Anatoly Sokolov <aesok@post.ru>
29487
29488 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
29489 atmega8m1 devices.
29490 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
29491 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
29492
74fe548b
XDL
294932009-03-28 Xinliang David Li <davidxl@google.com>
29494
2ba9daa7 29495 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
29496 (do_dbg_cnt): New function.
29497
33977f81
JH
294982009-03-28 Jan Hubicka <jh@suse.cz>
29499
29500 Merge from pretty-ipa:
29501
29502 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 29503
33977f81
JH
29504 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
29505 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
29506 * passes.c (function_called_by_processed_nodes_p): New.
29507 * ipa-pure-const.c (check_call): Fix handling of operands.
29508 (analyze_function): Dump debug output for skipped bodies.
29509 (local_pure_const): Use function_called_by_processed_nodes_p.
29510 * dwarf2out.c (reference_to_unused): Use output.
29511 * passes.c (do_per_function_toporder): Likewise.
29512
29513 2008-11-12 Jan Hubicka <jh@suse.cz>
29514
29515 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
29516 * ipa-pure-const.c (funct_state_d): Add can throw field; make
29517 state_set_in_source enum
29518 (check_decl): Ignore memory tags; do not set fake looping flags;
29519 dump diagnostics.
29520 (check_operand, check_tree, check_rhs_var, check_lhs_var,
29521 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
29522 (check_call, analyze_function): Rewrite.
29523 (check_stmt): New.
29524 (add_new_function): Update call of analyze_function.
29525 (generate_summary): Add call of analyze_function.
29526 (propagate): Propagate can_throw; handle state_set_in_source correctly.
29527 (local_pure_const): New function.
29528 (pass_local_pure_const): New pass.
29529 * ipa-inline.c (inline_transform): Set after_inlining.
29530 * tree-eh.c (stmt_can_throw_external): New.
29531 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
29532 work with aliasing built.
29533 * tree-flow.h (stmt_can_throw_external): New.
29534 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
29535 and local pure/const pass in early and late optimization queue.
ba20e309 29536
617f3897
MJ
295372009-03-28 Martin Jambor <mjambor@suse.cz>
29538
29539 * fold-const.c (get_pointer_modulus_and_residue): New parameter
29540 allow_func_align.
29541 (fold_binary): Allow function decl aligment consideration is the
29542 second argument is integer constant one.
29543 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
29544 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
29545 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
29546
fe89fbc5
JH
295472009-03-28 Jan Hubicka <jh@suse.cz>
29548
29549 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
29550 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
29551 * function.h (rtl_data): Add nothrow flag.
29552 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
29553 set DECL_NOTHROW for AVAILABLE functions.
29554
574872ff
JJ
295552009-03-28 Jakub Jelinek <jakub@redhat.com>
29556
b3bf8855
JJ
29557 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
29558 following vector keyword has expansion starting with pixel or bool
29559 keyword, expand vector to __vector and pixel or bool to __pixel or
29560 __bool.
29561
574872ff
JJ
29562 PR c++/39554
29563 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
29564 warn_if_disallowed_function_p): Removed.
29565 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
29566 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
29567 warning_if_disallowed_function_p.
29568 * flags.h (warn_if_disallowed_function_p,
29569 warn_disallowed_functions): Removed.
29570 * common.opt (Wdisallowed-function-list=): Removed.
29571 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
29572
b005da11
RG
295732009-03-28 Richard Guenther <rguenther@suse.de>
29574
29575 PR tree-optimization/38723
29576 * tree-ssa-pre.c (compute_avail): Add all default definitions to
29577 the entry block.
29578
1de812a6
JH
295792009-03-28 Jan Hubicka <jh@suse.cz>
29580
29581 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
29582 test introduced by my previous patch.
29583
fbb789d4
RG
295842009-03-28 Richard Guenther <rguenther@suse.de>
29585
29586 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
29587 the PHIs value undefined.
29588
6f1873a1
JH
295892009-03-28 Jan Hubicka <jh@suse.cz>
29590
29591 * tree-pass.h (pass_fixup_cfg): New pass.
29592 * ipa-inline.c (inline_transform): Set
29593 always_inline_functions_inlined/after_inlining.
29594 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
29595 (pass_fixup_cfg): New pass.
29596 * passes.c (init_optimization_passes): Add fixup_cfg.
29597
17021bc8
RG
295982009-03-28 Richard Guenther <rguenther@suse.de>
29599
29600 PR tree-optimization/38458
29601 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
29602 argument use the arguments copy-of value.
29603
e8114fba
RG
296042009-03-28 Richard Guenther <rguenther@suse.de>
29605
29606 PR tree-optimization/38180
29607 * tree-ssa-ccp.c (get_default_value): Simplify.
29608 (likely_value): Likewise.
29609 (surely_varying_stmt_p): Properly handle VOP case.
29610 (ccp_initialize): Likewise.
29611 (ccp_fold): Handle propagating through *&.
29612 (fold_const_aggregate_ref): Also handle decls.
29613
257eb6e3
JH
296142009-03-28 Jan Hubicka <jh@suse.cz>
29615
29616 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
29617 * cgraph.h (cgraph_node): Likewise.
29618 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
29619 (cgraph_reset_node): Use process flag.
29620 (cgraph_mark_functions_to_output): Likewise.
29621 (cgraph_expand_function): Likewise.
29622 (cgraph_expand_all_functions): Likewise.
29623 (cgraph_output_in_order): Likewise.
29624 * dwarf2out.c (reference_to_unused): Likewise.
29625 * passes.c do_per_function_toporder): Likewise.
29626
61a05df1
JH
296272009-03-28 Jan Hubicka <jh@suse.cz>
29628
29629 Bring from lto-branch:
ba20e309 29630
61a05df1
JH
29631 2008-09-03 Doug Kwan <dougkwan@google.com>
29632
29633 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
29634 enums instead of reason strings.
29635 * cgraph.c (cgraph_create_edge): Same.
29636 (cgraph_inline_failed_string): New function.
29637 * cgraph.h (cgraph_inline_failed_t): New enum type.
29638 (cgraph_inline_failed_string): New prototype.
29639 (struct cgraph_edge): Change type of INLINED_FAILED from constant
29640 char pointer to cgraph_inline_failed_t.
29641 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
29642 (cgraph_default_inline_p): Ditto.
60839f5d 29643 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
29644 to cgraph_inline_failed_t pointer.
29645 * cif-code.def: New file.
29646 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
29647 reason string.
29648 (cgraph_check_inline_limits): Change type of REASON to pointer to
29649 cgraph_inline_failed_t. Replace reason strings with enums.
29650 (cgraph_default_inline_p): Ditto.
29651 (cgraph_recursive_inlining_p): Ditto.
29652 (update_caller_keys): Change type of FAILED_REASON to
29653 cgraph_inline_failed_t.
29654 (cgraph_set_inline_failed): Change type of REASON to pointer to
29655 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
29656 convert enums to strings for text output.
29657 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
29658 to be of type cgraph_inline_failed_t. Replace reason strings with
29659 enums. Call cgraph_inline_failed_string to covert enums
29660 to strings for text output.
29661 (cgraph_decide_inlining): Replace reason strings with enums.
29662 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
29663 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
29664 for text output.
29665 * tree-inline.c (expand_call_inline): Change type of REASON
29666 to cgraph_inline_failed_t. Replace reason strings with enums.
29667 Call cgraph_inline_failed_string for text output.
29668 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
29669 (cgraph.o): Ditto.
29670
144e8aac
JH
296712009-03-28 Jan Hubicka <jh@suse.cz>
29672
29673 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
29674 cgraph_clone_node): Remove master clone handling.
29675 (cgraph_is_master_clone, cgraph_master_clone): Remove.
29676 * cgraph.h (master_clone): Remove.
29677 (cgraph_is_master_clone, cgraph_master_clone): Remove.
29678 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
29679 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
29680
4a371c8d
JH
296812009-03-28 Jan Hubicka <jh@suse.cz>
29682
29683 * cgraph.c (cgraph_function_body_availability): Functions declared
29684 inline are always safe to assume that it is not going to be replaced.
29685
6cdb0ee3
RG
296862009-03-28 Richard Guenther <rguenther@suse.de>
29687
29688 PR tree-optimization/38513
29689 * tree-ssa-pre.c (eliminate): Remove redundant stores.
29690 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
29691 EXC_PTR_EXPR and FILTER_EXPR.
29692 (get_ref_from_reference_ops): Likewise.
29693
8ca1fd76
RG
296942009-03-28 Richard Guenther <rguenther@suse.de>
29695
29696 PR tree-optimization/38968
29697 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
29698 Use FLOOR_MOD_EXPR to compute misalignment.
29699
a254e44d
RG
297002009-03-28 Richard Guenther <rguenther@suse.de>
29701
29702 PR tree-optimization/37795
29703 * tree.h (combine_comparisons): Declare.
29704 * fold-const.c (combine_comparisons): Export.
29705 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
29706 comparisons.
29707 (ifcombine_iforif): Use combine_comparisons.
29708
a8ee227c
JH
297092009-03-28 Jan Hubicka <jh@suse.cz>
29710
29711 * tree-eh.c (inlinable_call_p): New function.
29712 (make_eh_edges): Use it.
29713 (verify_eh_edges): Use it.
29714 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
29715 * except.c (reachable_next_level): Add inlinable_function argument
29716 (sjlj_find_directly_reachable_regions): Update.
29717 (add_reachable_handler): Do not set saw_any_handlers.
29718 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
29719 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
29720 Add new inlinable call parameter.
29721 (can_throw_internal, can_throw_external): Update.
29722 * except.h (can_throw_internal_1, can_throw_external_1,
29723 foreach_reachable_handler): Update declaration.
29724
52c0e446
JM
297252009-03-28 Joseph Myers <joseph@codesourcery.com>
29726
29727 * config/arm/t-arm-coff, config/h8300/coff.h,
29728 config/i386/i386-aout.h, config/i386/i386-coff.h,
29729 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
29730 config/pdp11/2bsd.h, config/rs6000/aix41.h,
29731 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
29732 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
29733 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
29734 sys-types.h: Remove.
29735 * Makefile.in: Remove protoize and fixproto support and references
29736 in comments.
29737 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
29738 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
29739 Remove.
29740 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
29741 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
29742 unprotoize$(exeext).
29743 (rest.encap): Don't depend on $(STMP_FIXPROTO)
29744 (.PHONY): Don't depend on proto.
29745 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
29746 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
29747 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
29748 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
29749 build/gen-protos.o, build/scan.o, xsys-protos.h,
29750 build/fix-header$(build_exeext), build/fix-header.o,
29751 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
29752 stmp-install-fixproto): Remove.
29753 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
29754 SYSCALLS.c or fixproto files.
29755 (install-common): Don't install protoize.
29756 (install-headers-tar, install-headers-cpio, install-headers-cp):
29757 Don't depend on $(STMP_FIXPROTO).
29758 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
29759 install fixproto files or write out fixproto settings.
29760 (uninstall): Don't uninstall protoize.
29761 * config.gcc (use_fixproto): Remove.
29762 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
29763 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
29764 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
29765 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
29766 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
29767 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
29768 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
29769 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
29770 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
29771 * config/t-vxworks (STMP_FIXPROTO): Remove.
29772 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
29773 STMP_FIXPROTO): Remove.
29774 * config.in, configure: Regenerate.
29775 * crtstuff.c (gid_t, uid_t): Don't undefine.
29776 * doc/install.texi: Change m68k-coff to m68k-elf in example.
29777 (arm-*-coff, arm-*-aout: Remove target entries.
29778 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
29779 Remove mention of AIX 4.1.
29780 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
29781 * doc/invoke.texi (Running Protoize): Remove.
29782 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
29783 (Protoize Caveats): Remove.
29784 * tsystem.h: Update comments on headers assumed to exist.
29785
20a07f44
VM
297862009-03-27 Vladimir Makarov <vmakarov@redhat.com>
29787
29788 * genautomata.c: Add a new year to the copyright. Add a new
29789 reference.
29790 (struct insn_reserv_decl): Add comments for member bypass_list.
29791 (find_bypass): Remove.
29792 (insert_bypass): New.
29793 (process_decls): Use insert_bypass.
29794 (output_internal_insn_latency_func): Output all bypasses with the
29795 same input insn in one switch case.
29796
29797 * rtl.def (define_bypass): Describe bypass choice.
29798 * doc/md.texi (define_bypass): Ditto.
29799
3a0d06c1
RB
298002009-03-27 Richard Guenther <rguenther@suse.de>
29801
29802 * gimplify.c (mark_addressable): Export.
29803 * tree-flow.h (mark_addressable): Declare.
29804 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
29805 * tree-ssa.c (verify_phi_args): Verify that address taken
29806 variables have TREE_ADDRESSABLE set.
29807
298082009-03-27 Richard Guenther <rguenther@suse.de>
29809
29810 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
29811 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
29812 Do not mark decls TREE_ADDRESSABLE.
29813 (build_fold_addr_expr): Adjust.
29814 (fold_addr_expr): Remove.
29815 (fold_unary): Use build_fold_addr_expr.
29816 (fold_comparison): Likewise.
29817 (split_address_to_core_and_offset): Likewise.
29818 * coverage.c (tree_coverage_counter_addr): Mark the array decl
29819 TREE_ADDRESSABLE.
29820 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
29821 (gimplify_modify_expr_to_memcpy): Mark source and destination
29822 addressable.
29823 * omp-low.c (create_omp_child_function): Mark the object decl
29824 TREE_ADDRESSABLE.
29825 (lower_rec_input_clauses): Mark the var we take the address of
29826 TREE_ADDRESSABLE.
29827 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
29828
2ac26e15
L
298292009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29830
29831 PR middle-end/39315
29832 * cfgexpand.c (expand_one_stack_var_at): Change alignment
29833 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
29834
472c7fbd
RG
298352009-03-27 Richard Guenther <rguenther@suse.de>
29836
29837 PR tree-optimization/39120
29838 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
29839 constraints.
29840 (handle_lhs_call): Process return constraints. Add escape
29841 constraints if necessary.
29842 (handle_const_call): Fill out return constraints. Make nested
29843 case more precise. Avoid consttmp if possible.
29844 (handle_pure_call): Fill out return constraints. Avoid
29845 callused if possible.
29846 (find_func_aliases): Simplify call handling.
29847
298482009-03-27 Richard Guenther <rguenther@suse.de>
29849
29850 PR tree-optimization/39120
29851 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
29852 as a representative.
29853 (solve_graph): Do propagate CALLUSED.
29854 (handle_pure_call): Use a scalar constraint from CALLUSED for
29855 the return value.
29856 (find_what_p_points_to): CALLUSED shall not appear in poins-to
29857 solutions.
29858
d9223014
L
298592009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29860
29861 PR c/39323
29862 * c-common.c (handle_aligned_attribute): Properly check alignment
29863 overflow. Use (1U << i) instead of (1 << i).
29864
ba20e309 29865 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
29866
29867 * expr.h (get_mem_align_offset): Updated.
29868
29869 * tree.h (tree_decl_common): Change align to "unsigned int" and
29870 move it before pointer_alias_set.
29871
689b689c
L
298722009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29873 Jakub Jelinek <jakub@redhat.com>
29874
29875 PR target/38034
29876 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
29877 gr_register_operand with gr_reg_or_0_operand.
29878 (cmpxchg_rel_di): Likewise.
29879 (sync_lock_test_and_set<mode>): Likewise.
29880
c619e982
L
298812009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29882
29883 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
29884 (true_regnum): Likewise.
29885
29886 * rtlanal.c (subreg_info): Moved to ...
29887 * rtl.h (subreg_info): Here. New.
29888 (subreg_get_info): New.
29889
29890 * rtlanal.c (subreg_get_info): Make it extern.
29891
51212b32
L
298922009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29893
29894 PR target/39472
29895 * config/i386/i386.c (ix86_abi): New.
29896 (override_options): Handle -mabi=.
ba20e309 29897 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
29898 (ix86_call_abi_override): Likewise.
29899 (init_cumulative_args): Likewise.
29900 (function_arg_advance): Likewise.
29901 (function_arg_64): Likewise.
29902 (function_arg): Likewise.
29903 (ix86_pass_by_reference): Likewise.
29904 (ix86_function_value_regno_p): Likewise.
29905 (ix86_build_builtin_va_list_abi): Likewise.
29906 (setup_incoming_varargs_64): Likewise.
29907 (is_va_list_char_pointer): Likewise.
29908 (ix86_init_machine_status): Likewise.
ba20e309 29909 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
29910 (ix86_function_type_abi): Return enum calling_abi. Rewrite
29911 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 29912 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
29913 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
29914 with ix86_abi.
29915 (ix86_fn_abi_va_list): Updated.
29916
29917 * config/i386/i386.h (ix86_abi): New.
29918 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
29919 (CONDITIONAL_REGISTER_USAGE): Likewise.
29920 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
29921 (machine_function): Likewise.
29922
29923 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
29924 with ix86_abi.
29925 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
29926 (STACK_BOUNDARY): Likewise.
29927 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
29928
29929 * config/i386/i386.opt (mabi=): New.
29930
29931 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
29932 return enum calling_abi.
29933 (ix86_function_type_abi): Likewise.
29934 (ix86_function_abi): Removed.
29935
29936 * doc/invoke.texi: Document -mabi= option for x86.
29937
7338ea63
KG
299382009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
29939
29940 * builtins.c (real_dconstp): Delete.
29941 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
29942
68599f33
DS
299432009-03-27 Dodji Seketeli <dodji@redhat.com>
29944 Jakub Jelinek <jakub@redhat.com>
29945
29946 PR debug/37959
29947 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
29948 (gen_subprogram_die): When a function is explicit, generate the
29949 DW_AT_explicit attribute.
29950 * langhooks.h (struct lang_hooks_for_decls): Add
29951 function_decl_explicit_p langhook.
29952 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
29953 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
29954
9f5e9983
JJ
299552009-03-27 Jakub Jelinek <jakub@redhat.com>
29956
64d7685c
JJ
29957 * builtins.c (fold_builtin_memory_op): Optimize memmove
29958 into memcpy if we can prove source and destination don't overlap.
29959
9f5e9983
JJ
29960 * tree-inline.c: Include gt-tree-inline.h.
29961 (clone_fn_id_num): New variable.
29962 (clone_function_name): New function.
29963 (tree_function_versioning): Use it.
29964 * Makefile.in (GTFILES): Add tree-inline.c.
29965
e54d52a8
MM
299662009-03-27 Mark Mitchell <mark@codesourcery.com>
29967
29968 * BASE-VER: Change to 4.5.0.
29969
e9d51dc6
XDL
299702009-03-27 Xinliang David Li <davidxl@google.com>
29971
29972 PR tree-optimization/39557
29973 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
29974
4577cea1
XDL
299752009-03-27 Xinliang David Li <davidxl@google.com>
29976
29977 PR tree-optimization/39548
2ba9daa7 29978 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
29979 candidate check.
29980
0f7464f4
L
299812009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29982
29983 * c-common.c (pointer_int_sum): Use %wd on return from
29984 tree_low_cst.
29985
a8847a7f
L
299862009-03-27 H.J. Lu <hongjiu.lu@intel.com>
29987
29988 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
29989 on return from tree_low_cst.
29990
b0957daf
AP
299912009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
29992
29993 PR c++/36799
ba20e309
UB
29994 * ginclude/stdarg.h (va_copy): Define also for
29995 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 29996
a5f805df
MLI
299972009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
29998
29999 PR c++/35652
30000 * builtins.h (c_strlen): Do not warn here.
30001 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
30002 * c-common.c (pointer_int_sum): Take an explicit location.
30003 Warn about offsets out of bounds.
30004 * c-common.h (pointer_int_sum): Adjust declaration.
30005
6f401211
RW
300062009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30007
a5f805df
MLI
30008 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
30009 markup glitch.
6f401211 30010
5a59b39e
JJ
300112009-03-26 Jakub Jelinek <jakub@redhat.com>
30012
30013 PR c++/39554
30014 * opts.c (warn_if_disallowed_function_p): Don't assume
30015 get_callee_fndecl must return non-NULL.
30016
d5f89b53
VM
300172009-03-26 Vladimir Makarov <vmakarov@redhat.com>
30018
30019 PR rtl-optimization/39522
30020 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
30021 when reg_reloaded_valid is set.
30022
61238a79
UW
300232009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30024
30025 * config/spu/divv2df3.c: New file.
30026 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
30027 (DPBIT_FUNCS): Filter out _div_df.
30028
03f8829b
BS
300292009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
30030
30031 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
30032 a jump insn, count that jump in the distance to the loop start.
30033
9fdcdc74
KK
300342009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
30035
30036 PR target/39523
30037 * config/sh/sh.c (calc_live_regs): Fix condition for global
30038 registers except PIC_OFFSET_TABLE_REGNUM.
30039
46994828
KT
300402009-03-25 Kai Tietz <kai.tietz@onevision.com>
30041
30042 PR/39518
30043 * doc/invoke.texi (-mconsole): New.
30044 (-mcygwin): New.
30045 (-mno-cygwin): New.
30046 (-mdll): New.
30047 (-mnop-fun-dllimport): New.
30048 (-mthread): New.
30049 (-mwin32): New.
30050 (-mwindows): New.
30051 (sub section "i386 and x86-64 Windows Options"): New.
30052
60839f5d 300532009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
30054
30055 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
30056 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
30057
ae560440
RG
300582009-03-25 Richard Guenther <rguenther@suse.de>
30059
30060 PR middle-end/39497
30061 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
30062 of -Wno-error.
30063
cd510f15
AM
300642009-03-25 Andrey Belevantsev <abel@ispras.ru>
30065
30066 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
30067 neither of haifa/selective schedulers are working.
30068
44ab0f0e
RW
300692009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30070
30071 * doc/invoke.texi (Debugging Options): Fix description of
30072 -fno-merge-debug-strings.
30073
ad9646c7
HPN
300742009-03-24 Hans-Peter Nilsson <hp@axis.com>
30075
e6142656
HPN
30076 * config/cris/libgcc.ver: New version-script.
30077 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
30078
ad9646c7
HPN
30079 * configure.ac <GAS features, nop mnemonic>: Add pattern
30080 crisv32-*-* for "nop".
ba20e309 30081 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
30082 * configure: Regenerate.
30083
09ac4473
IR
300842009-03-24 Ira Rosen <irar@il.ibm.com>
30085
30086 PR tree-optimization/39529
30087 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
30088 mark_sym_for_renaming for the tag copied to the new vector
30089 pointer.
30090
d94a427e
AL
300912009-03-24 Arthur Loiret <aloiret@debian.org>
30092
ba20e309 30093 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
30094 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
30095 EXTRA_SPEC_FUNCTIONS.
30096 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
30097 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
30098 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
30099 -march and -mtune options.
30100
60839f5d 301012009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
30102
30103 * config/m68k/t-rtems: Add m5329 multilib.
30104
603f5959
DS
301052009-03-24 Dodji Seketeli <dodji@redhat.com>
30106 Jakub Jelinek <jakub@redhat.com>
30107
30108 PR debug/39524
30109 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
30110 nodes.
30111
c5cdb03f
JJ
301122009-03-23 Jakub Jelinek <jakub@redhat.com>
30113
30114 PR c/39495
30115 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
30116 instead of c_parser_expression_conv, if original_code isn't one of the
30117 4 allowed comparison codes, fail.
30118
3691626c
RG
301192009-03-23 Richard Guenther <rguenther@suse.de>
30120
30121 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
30122 * tree.h (struct tree_type): Likewise.
30123 * reload.h (struct insn_chain): Likewise.
30124 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
30125 * function.h (struct function): Likewise.
30126 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
30127
88ccb72a
JJ
301282009-03-23 Jakub Jelinek <jakub@redhat.com>
30129
30130 PR tree-optimization/39516
30131 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
30132
60839f5d 301332009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 30134
2ba9daa7 30135 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
30136 should be set true if BITS_PER_WORD of target is bigger than 32
30137
f82162f8
HPN
301382009-03-22 Hans-Peter Nilsson <hp@axis.com>
30139
30140 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
30141 Translate -B-options to -rpath-link. Correct existing
30142 rpath-link and conditionalize on !nostdlib.
30143
048fd785
RW
301442009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30145
30146 * doc/extend.texi (Function Attributes, Variable Attributes):
30147 Fix typos.
30148 * doc/invoke.texi (Debugging Options, Optimize Options)
30149 (i386 and x86-64 Options, MCore Options): Likewise.
30150
6e75c1a9
JJ
301512009-03-20 Jakub Jelinek <jakub@redhat.com>
30152
30153 PR debug/37890
30154 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
30155 it for block local namespace aliases.
30156 (gen_decl_die): Pass context_die to gen_namespace_die.
30157
ea1199ee
JJ
301582009-03-19 Jakub Jelinek <jakub@redhat.com>
30159
30160 PR c/39495
30161 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
30162 minimum or maximum value.
30163
58929c10
AO
301642009-03-19 Alexandre Oliva <aoliva@redhat.com>
30165
30166 * reginfo.c (globalize_reg): Recompute derived reg sets.
30167
60839f5d 301682009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
30169
30170 PR target/39063
30171 * libgcc2.c (mprotect): Do not use signed arguments for
30172 VirtualProtect, use DWORD arguments. Also fix the 'may
30173 be used uninitialized' warning for the np variable.
30174
f57c2f04
JJ
301752009-03-19 Jakub Jelinek <jakub@redhat.com>
30176
30177 PR target/39496
30178 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
30179 functions using regparm calling conventions when not optimizing.
30180 (ix86_function_sseregparm): Similarly for sseregparm calling
30181 conventions.
30182
9e517d61
LF
301832009-03-19 Li Feng <nemokingdom@gmail.com>
30184
30185 PR middle-end/39500
30186 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
30187 dependence if the first conflict is after niter iterations.
30188
8ef20026
HPN
301892009-03-19 Hans-Peter Nilsson <hp@axis.com>
30190
30191 PR middle-end/38609
30192 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
30193 functions with dynamic stack-pointer adjustments.
30194
64e4a1a6
BE
301952009-03-19 Ben Elliston <bje@au.ibm.com>
30196
30197 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
30198 option; change to -msdata=data.
30199
9a0f3e86
RW
302002009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30201
30202 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
30203 and -fopenmp.
30204
09bc5979
EB
302052009-03-18 Eric Botcazou <ebotcazou@adacore.com>
30206
30207 PR target/35180
30208 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
30209
332459cd
SL
302102009-03-18 Sandra Loosemore <sandra@codesourcery.com>
30211
30212 * doc/invoke.texi (Code Gen Options): Expand discussion of
30213 -fno-common.
30214
8f5929e1
JJ
302152009-03-18 Jakub Jelinek <jakub@redhat.com>
30216
30217 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
30218 * matrix-reorg.c (struct matrix_info): Likewise.
30219 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
30220 * rtl.h (struct mem_attrs): Likewise.
30221 * df.h (struct df): Likewise.
30222 * tree-data-ref.h (struct data_dependence_relation): Likewise.
30223 * ira-int.h (struct ira_allocno): Likewise.
30224 * df-scan.c (struct df_collection_rec): Likewise.
30225 * ira.c (struct equivalence): Likewise.
30226 * function.c (struct temp_slot): Likewise.
30227 * cfgloop.h (struct loop): Likewise.
30228
d130d647
JJ
30229 PR debug/39485
30230 * function.c (use_register_for_decl): When not optimizing, disregard
30231 register keyword for variables with types containing methods.
30232
9968d233
SP
302332009-03-18 Sebastian Pop <sebastian.pop@amd.com>
30234
30235 PR middle-end/39447
30236 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
30237 (is_simple_operand): Call contains_component_ref_p before calling data
30238 reference analysis that would fail on COMPONENT_REFs.
30239
30240 * tree-vrp.c (search_for_addr_array): Fix formatting.
30241
69484bfd
RG
302422009-03-18 Richard Guenther <rguenther@suse.de>
30243
30244 * tree-vect-transform.c (vect_loop_versioning): Fold the
30245 generated comparisons.
30246 * tree-vectorizer.c (set_prologue_iterations): Likewise.
30247 (slpeel_tree_peel_loop_to_edge): Likewise.
30248
66811228
RW
302492009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30250
0631b69f
RW
30251 PR middle-end/37805
30252 * opts.c (print_specific_help): In addition to `undocumented',
30253 accept `separate' and `joined' flags if passed alone. Describe
30254 output by the first matched one of those.
30255 (common_handle_option): Skip over empty strings.
30256 * gcc.c (display_help): Fix help string for `--help='.
30257 * doc/invoke.texi (Option Summary, Overall Options): With
30258 `--help=', classes and qualifiers can both be repeated, but
30259 only the latter can be negated. One should not pass only
30260 negated qualifiers. Fix markup and examples.
30261
66811228
RW
30262 Revert
30263 2008-10-14 Jakub Jelinek <jakub@redhat.com>
30264 PR middle-end/37805
30265 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
30266 and -fhelp=separate.
30267
3c072c6b
JY
302682009-03-17 Jing Yu <jingyu@google.com>
30269
30270 PR middle-end/39378
80c65208
JY
30271 * function.h (struct rtl_data): Move is_thunk from here...
30272 (struct function): ...to here.
30273 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
30274 * varasm.c (assemble_start_function): Change is_thunk from crtl to
30275 cfun.
80c65208
JY
30276 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
30277 cfun.
30278 (alpha_does_function_need_gp, alpha_start_function): Likewise.
30279 (alpha_output_function_end_prologue): Likewise.
30280 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
30281 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
30282 (rs6000_output_function_epilogue): Likewise.
30283 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 30284
9ade279b
UB
302852009-03-17 Uros Bizjak <ubizjak@gmail.com>
30286
30287 PR target/39482
30288 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
30289 from different units in a single alternative.
30290 (*truncdfsf_i387): Ditto.
30291 (*truncxfsf2_mixed): Ditto.
30292 (*truncxfdf2_mixed): Ditto.
30293
16e60c17
JJ
302942009-03-17 Jakub Jelinek <jakub@redhat.com>
30295
98381eb4
JJ
30296 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
30297 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
30298
df5deb18
JJ
30299 PR debug/39474
30300 * tree-ssa-live.c (remove_unused_locals): Don't remove local
30301 unused non-artificial variables when not optimizing.
30302
a3f596ba
JJ
30303 PR debug/39471
30304 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
30305 DW_TAG_imported_module even if decl is IMPORTED_DECL with
30306 NAMESPACE_DECL in its DECL_INITIAL.
30307
6b2b8871
JJ
30308 PR middle-end/39443
30309 * optabs.c (set_user_assembler_libfunc): New function.
30310 * expr.h (set_user_assembler_libfunc): New prototype.
30311 * c-common.c: Include libfuncs.h.
30312 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
30313 for memcmp, memset, memcpy, memmove and abort.
30314 * Makefile.in (c-common.o): Depend on libfuncs.h.
30315
16e60c17
JJ
30316 PR debug/39412
30317 * dwarf2out.c (gen_inlined_enumeration_type_die,
30318 gen_inlined_structure_type_die, gen_inlined_union_type_die,
30319 gen_tagged_type_instantiation_die): Removed.
30320 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
30321 do nothing.
30322
4d936aca
JJ
303232009-03-17 Janis Johnson <janis187@us.ibm.com>
30324
30325 PR testsuite/38526
30326 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
30327 its use.
30328 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
30329 (check-parallel-%): Ditto.
30330 (check-consistency): Ditto.
30331
4e9b2e50
KT
303322009-03-17 Kai Tietz <kai.tietz@onevision.com>
30333
30334 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
30335 local variable rhs by NULL_TREE.
30336
21440b2d
L
303372009-03-17 H.J. Lu <hongjiu.lu@intel.com>
30338
30339 PR target/39477
9ade279b 30340 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 30341
d8905c6a
L
303422009-03-17 H.J. Lu <hongjiu.lu@intel.com>
30343
30344 PR target/39476
9ade279b 30345 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
30346
303472009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
30348
30349 PR target/39473
30350 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
30351 for ms->sysv ABI calls only in 64bit mode.
30352
30353 * config/i386/i386.md (untyped_call): Support 32bit.
30354
cdcabece
L
303552009-03-16 H.J. Lu <hongjiu.lu@intel.com>
30356
30357 * doc/extend.texi: Replace x86_65 with x86_64.
30358
97b4ba9f
JJ
303592009-03-16 Jakub Jelinek <jakub@redhat.com>
30360
30361 PR tree-optimization/39455
30362 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
30363 mismatches for POINTER_TYPE_P (type).
30364 (number_of_iterations_le): Likewise.
30365
60839f5d 303662009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
30367
30368 * config/picochip/picochip.c: Removed profiling support.
30369 * config/picochip/picochip.md: Removed profiling instruction.
30370 * config/picochip/picochip.h: Removed profiling builtin.
30371
f38095f3
JM
303722009-03-16 Joseph Myers <joseph@codesourcery.com>
30373
30374 * doc/install.texi (--with-host-libstdcxx): Document.
30375
2cb4817b
AS
303762009-03-14 Anatoly Sokolov <aesok@post.ru>
30377
30378 PR target/34299
30379 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
30380 generate a warning if the function name does not begin with
30381 "__vector" and the function has either the 'signal' or 'interrupt'
30382 attribute, from here to ...
30383 (avr_declare_function_name): ...here. New function.
30384 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
30385 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
30386
39b2ac74
JJ
303872009-03-14 Jakub Jelinek <jakub@redhat.com>
30388
30389 PR bootstrap/39454
30390 * cse.c (fold_rtx): Don't modify original const_arg1 when
30391 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
30392 separate variable instead.
30393 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
30394 from out of range shift counts.
30395 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
30396
ad41bd84 303972009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 30398
60839f5d 30399 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
30400 diagnostic.h with $(DIAGNOSTIC_H).
30401
ad41bd84 304022009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
30403
30404 PR target/39431
30405 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
30406 predicate.
30407 * config/i386/sync.md (sync_compare_and_swap<mode>,
30408 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
30409 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
30410 into a register.
30411 (sync_double_compare_and_swapdi_pic,
30412 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
30413 cmpxchg8b_pic_memory_operand instead of just memory_operand.
30414
122c59c7
L
304152009-03-12 H.J. Lu <hongjiu.lu@intel.com>
30416
30417 PR target/39445
9ade279b 30418 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 30419
cec8874f
L
304202009-03-12 H.J. Lu <hongjiu.lu@intel.com>
30421
30422 PR target/39327
30423 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
30424 (avx_addsubv4df3): Likewise.
30425 (*avx_addsubv4sf3): Likewise.
30426 (sse3_addsubv4sf3): Likewise.
30427
bbb52802
L
304282009-03-12 H.J. Lu <hongjiu.lu@intel.com>
30429
30430 PR target/38824
9ade279b 30431 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 30432
a812fb07
VM
304332009-03-12 Vladimir Makarov <vmakarov@redhat.com>
30434
30435 PR debug/39432
30436 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
30437 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
30438 registers for allocnos created from user-defined variables.
30439
4caab5ba
UW
304402009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30441
30442 PR target/39181
30443 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
30444 of non-integer mode as well.
30445
498e51ca
AN
304462009-03-11 Adam Nemet <anemet@caviumnetworks.com>
30447
30448 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
30449 for functions for which the parameter types are unknown.
30450
9bfaf89d
JJ
304512009-03-11 Jakub Jelinek <jakub@redhat.com>
30452
30453 PR target/39137
9ade279b 30454 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
30455 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
30456 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
30457 * config/i386/i386.c (ix86_local_alignment): For
30458 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
30459 long long variables on the stack to avoid dynamic realignment.
30460 Allow the first argument to be a decl rather than type.
30461 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
30462
18a3bdcb
NC
304632009-03-11 Nick Clifton <nickc@redhat.com>
30464
30465 PR target/5362
40190a76
NC
30466 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
30467 options.
30468 Add description to mno-lsim option.
30469 * config/mcore/mcore.h: Remove comment about deprecated m4align
30470 option.
30471 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
30472 * doc/invoke.texi: Add description of mno-lsim and
30473 mstack-increment options.
30474
18a3bdcb
NC
30475 * config/fr30/fr30.opt: Document the -mno-lsim option.
30476 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
30477 and -mno-lsim options.
30478
dc215785
UW
304792009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30480
30481 * fold-const.c (fold_comparison): Only call fold_inf_compare
30482 if the mode supports infinities.
30483
7716876b
JM
304842009-03-11 Jason Merrill <jason@redhat.com>
30485
30486 PR debug/39086
30487 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
30488 end already did. Notice GIMPLE_CALL modifications of the result.
30489 Don't copy debug information from an ignored decl or a decl from
30490 another function.
30491
ddef83d2
RG
304922009-03-10 Richard Guenther <rguenther@suse.de>
30493 Nathan Froyd <froydnj@codesourcery.com>
30494
30495 PR middle-end/37850
9ade279b 30496 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
30497 (__divMODE3): Likewise.
30498
9a9ba8d9
JJ
304992009-03-09 Jakub Jelinek <jakub@redhat.com>
30500
30501 PR tree-optimization/39394
30502 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
30503 DECL_SIZE_UNIT of variable length FIELD_DECLs.
30504
929b7fc3
AK
305052009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30506
30507 * recog.c (verfiy_changes): Disallow renaming of hard regs in
30508 inline asms for register asm ("") declarations.
30509
1803581d
EB
305102009-03-09 Eric Botcazou <ebotcazou@adacore.com>
30511
30512 * fold-const.c (fold_unary): Fix comment.
30513
8454d27e
JH
305142009-03-07 Jan Hubicka <jh@suse.cz>
30515
30516 PR target/39361
969a5433
JJ
30517 * tree-inline.c (setup_one_parameter): Do replacement of const
30518 argument by constant in SSA form.
8454d27e 30519
3a695389
UW
305202009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30521
30522 PR middle-end/38028
30523 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
30524 determine alignment passed to assign_stack_local.
30525 (assign_parms_unsplit_complex): Likewise.
30526 * except.c (sjlj_build_landing_pads): Likewise.
30527
9f0e7885
JJ
305282009-03-06 Jakub Jelinek <jakub@redhat.com>
30529
65401a0b
JJ
30530 PR middle-end/39360
30531 * tree-flow.h (add_referenced_var): Return bool instead of void.
30532 * tree-dfa.c (add_referenced_var): Return result of
30533 referenced_var_check_and_insert call.
30534 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
30535 of referenced_var_check_and_insert.
30536
9f0e7885 30537 PR debug/39372
9ade279b 30538 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
30539 (gen_variable_die): Emit DW_AT_location on abstract static variable's
30540 DIE, don't emit it if abstract origin already has it.
30541 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
30542 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
30543
3b664bd1
JBG
305442009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
30545
ba20e309 30546 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
30547 detection.
30548 (write_tm_constrs_h): Indent generated code.
30549
d8f8ca80
RR
305502009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30551
30552 * doc/extend.texi (Function Attributes): Add documentation
30553 for isr attributes.
30554
6c3d550c
JJ
305552009-03-06 Jakub Jelinek <jakub@redhat.com>
30556
30557 PR debug/39387
30558 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
30559 take locus from its DECL_SOURCE_LOCATION instead of input_location.
30560
f9e96751
BS
305612009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
30562
30563 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
30564 the loop as bad.
30565
ee0ee7e2
JJ
305662009-03-05 Jakub Jelinek <jakub@redhat.com>
30567
30568 PR debug/39379
30569 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
30570 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
30571
6c6094f1
UB
305722009-03-05 Uros Bizjak <ubizjak@gmail.com>
30573
30574 * config/i386/i386.md (R8_REG, R9_REG): New constants.
30575 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
30576 constants instead of magic numbers.
30577 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
30578 (QI_REG_P): Ditto.
30579 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
30580 (x86_64_ms_abi_int_parameter_registers): Ditto.
30581 (x86_64_int_return_registers): Ditto.
09f8a8d3 30582 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
30583 (ix86_expand_call): Ditto for clobbered_registers array.
30584 (ix86_hard_regno_mode_ok): Ditto.
30585 (x86_extended_QIreg_mentioned_p): Ditto.
30586
b267bd41
R
305872009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
30588
6c6094f1 30589 PR tree-optimization/39349
1f3ad3f0
R
30590 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
30591
b267bd41
R
30592 * combine.c (gen_lowpart_for_combine): Use omode when generating
30593 clobber.
30594
1242bc9d
R
305952009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
30596
6c6094f1 30597 PR rtl-optimization/39235
1242bc9d
R
30598 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
30599
48f03606
ZD
306002009-03-04 Zdenek Dvorak <ook@ucw.cz>
30601
30602 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
30603
b505e785
RG
306042009-03-04 Richard Guenther <rguenther@suse.de>
30605
30606 PR tree-optimization/39362
30607 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
30608 that occur in abnormal PHIs should be varying.
30609
f017bf5e
ZD
306102009-03-04 Zdenek Dvorak <ook@ucw.cz>
30611
30612 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
30613 Extend comments.
30614 (simple_iv): Take loop as an argument instead of statement.
30615 * tree-scalar-evolution.h (simple_iv): Declaration changed.
30616 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
30617 to simple_iv.
30618 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
30619 Ditto.
30620 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
30621 * matrix-reorg.c (analyze_transpose): Ditto.
30622 * tree-data-ref.c (dr_analyze_innermost): Ditto.
30623 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
30624 * tree-predcom.c (ref_at_iteration): Ditto.
30625 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
30626
6a66f28e
RG
306272009-03-04 Richard Guenther <rguenther@suse.de>
30628
30629 PR tree-optimization/39358
30630 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
30631 escaped_id and callused_id.
30632 (solve_graph): Likewise.
30633
57e454ee
RG
306342009-03-04 Richard Guenther <rguenther@suse.de>
30635
30636 PR tree-optimization/39339
30637 * tree-sra.c (try_instantiate_multiple_fields): Make it
30638 no longer ICE on the above.
30639
a6fe9ed4
JM
306402009-03-03 Joseph Myers <joseph@codesourcery.com>
30641
30642 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
30643 that fits within Pmode.
30644
dc672951
SE
306452009-03-03 Steve Ellcey <sje@cup.hp.com>
30646
30647 PR middle-end/10109
30648 * tm.texi (LIBCALL_VALUE): Update description.
30649
8b9d598f
SE
306502009-03-03 Steve Ellcey <sje@cup.hp.com>
30651
30652 PR middle-end/34443
30653 * doc/extend.texi (section): Update description.
30654
13e4e36e
L
306552009-03-03 H.J. Lu <hongjiu.lu@intel.com>
30656
30657 PR middle-end/39345
30658 * tree-inline.c (remapped_type): New.
30659 (can_be_nonlocal): Call remapped_type instead of remap_type.
30660
067dd3c9
JJ
306612009-03-03 Jakub Jelinek <jakub@redhat.com>
30662
30663 PR fortran/39354
30664 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
30665 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
30666
9bd9f738
RG
306672009-03-03 Richard Guenther <rguenther@suse.de>
30668
30669 PR middle-end/39272
30670 * tree.c (tree_nonartificial_location): New function.
30671 * tree.h (tree_nonartificial_location): Declare.
30672 * builtins.c (expand_builtin_memory_chk): Provide location
30673 of the call location for artificial function pieces.
30674 (maybe_emit_chk_warning): Likewise.
30675 (maybe_emit_sprintf_chk_warning): Likewise.
30676 (maybe_emit_free_warning): Likewise.
30677 * expr.c (expand_expr_real_1): Likewise.
30678
f07049c8
JJ
306792009-03-03 Jakub Jelinek <jakub@redhat.com>
30680
30681 PR tree-optimization/39343
30682 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
30683 COMPONENT_REF t has ARRAY_TYPE.
30684
7d4fba4a
SP
306852009-03-02 Sebastian Pop <sebastian.pop@amd.com>
30686
30687 PR middle-end/39335
30688 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
30689 when the type precision of the induction variable should be
30690 larger than the type precision of nit.
30691 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
30692 * graphite.c (graphite_loop_normal_form): Same.
30693 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
30694
78168632
UB
306952009-03-02 Uros Bizjak <ubizjak@gmail.com>
30696
30697 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
30698 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 30699 numbers to describe clobbered registers.
78168632 30700 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
30701 * config/i386/mmx.md (mmx_emms): Ditto.
30702 (mmx_femms): Ditto.
78168632 30703
63553059
RS
307042009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
30705
30706 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
30707 of ABI_64.
30708
500a1f85
UW
307092009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30710
30711 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
30712 (spu_section_type_flags): New function.
30713
962aae34
UB
307142009-03-02 Uros Bizjak <ubizjak@gmail.com>
30715
30716 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
30717 reg_class_contents of FLOAT_REGS into a temporary.
30718
6dfb529c 307192009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 30720 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
30721
30722 PR tree-optimization/39318
30723 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
30724 information to the vectorized statement.
30725
6b5629db
UB
307262009-03-01 Uros Bizjak <ubizjak@gmail.com>
30727
434426d2
UB
30728 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
30729 variable. Use defined names instead of magic constants for REX SSE
30730 registers.
6b5629db 30731
14e5b285
RG
307322009-03-01 Richard Guenther <rguenther@suse.de>
30733
30734 PR tree-optimization/39331
30735 * omp-low.c (lower_send_shared_vars): Do not receive new
30736 values for the reference of DECL_BY_REFERENCE parms or results.
30737
526d73ab
JH
307382009-03-01 Jan Hubicka <jh@suse.cz>
30739
30740 PR debug/39267
30741 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
30742 BLOCK_NONLOCALIZED_VAR): New macros.
30743 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
30744 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
30745 gen_decl_die): Add origin argument. Allow generation of die with
30746 origin at hand only.
526d73ab 30747 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
30748 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
30749 of gen_*.
526d73ab
JH
30750 (gen_block_die): Fix checking for unused blocks.
30751 (process_scope_var): Break out from .... ; work with origins only.
30752 (decls_for_scope) ... here; process nonlocalized list.
30753 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
30754 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
30755 vars.
526d73ab
JH
30756 (dump_scope_block): Dump them.
30757 * tree-inline.c (remap_decls): Handle nonlocalized vars.
30758 (remap_block): Likewise.
30759 (can_be_nonlocal): New predicate.
30760 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
30761
7a9d3fe8
RW
307622009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30763
30764 * configure: Regenerate.
30765
b3cdf3cb
RW
307662009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30767
a16d1645 30768 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 30769 Reuse help texts for duplicate options which do not have any.
a16d1645 30770
1156c176
RW
30771 * gcc.c (display_help): Document --version.
30772
033505fc
RW
30773 * gcc.c (main): If print_help_list and verbose_flag, ensure
30774 driver output comes before subprocess output.
30775
4d077054
RW
30776 * optc-gen.awk: Assign all remaining fields to help string,
30777 space-separated, for multi-line help in *.opt.
30778
a072f1cf
RW
30779 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
30780 -Wno-pedantic-ms-format is for MinGW targets only.
30781
b3cdf3cb
RW
30782 * doc/options.texi (Option file format): Fix bad indentation,
30783 restoring dropped sentence.
30784
a3aadcc5
JH
307852009-02-28 Jan Hubicka <jh@suse.cz>
30786
30787 * tree-inline.c (tree_function_versioning): Output debug info.
30788
1cf5abb3
JH
307892009-02-28 Jan Hubicka <jh@suse.cz>
30790
30791 PR debug/39267
30792 * tree-inline.c (setup_one_parameter): Do not copy propagate
30793 arguments when not optimizing.
30794
c4d3f42f
L
307952009-02-28 H.J. Lu <hongjiu.lu@intel.com>
30796
30797 PR target/39327
30798 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
30799 (avx_addsubv4df3): Likewise.
30800 (*avx_addsubv4sf3): Likewise.
30801 (sse3_addsubv4sf3): Likewise.
30802 (*avx_addsubv2df3): Likewise.
30803 (sse3_addsubv2df3): Likewise.
30804 (avx_unpckhps256): Correct item selectors.
30805 (avx_unpcklps256): Likewise.
30806 (avx_unpckhpd256): Likewise.
30807 (avx_unpcklpd256): Likewise.
30808
eb50f5f4
JH
308092009-02-28 Jan Hubicka <jh@suse.cz>
30810
30811 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
30812 static vars.
30813 (copy_arguments_for_versioning): If var is declared don't declare it.
30814 (tree_function_versioning): First setup substitutions and then copy
30815 args.
30816
26140130
JH
308172009-02-27 Jan Hubicka <jh@suse.cz>
30818
30819 PR debug/39267
30820 * cgraph.h (varpool_output_debug_info): Remove.
30821 * cgraphunit.c (varpool_output_debug_info): Remove.
30822 * dwarf2out.c (deferred_locations_struct): New struct
30823 (deferred_locations): New type.
30824 (deferred_locations_list): New static var.
30825 (deffer_location): New function.
30826 (gen_variable_die): Use it.
30827 (decls_for_scope): Output info on local static vars.
30828 (dwarf2out_finish): Process deferred locations.
30829 * varpool.c (varpool_output_debug_info): Remove.
30830
cff7525f
JH
308312009-02-27 Jan Hubicka <jh@suse.cz>
30832
30833 PR debug/39267
30834 * tree.h (TREE_PROTECTED): Fix comment.
30835 (BLOCK_HANDLER_BLOCK): Remove.
30836 (struct tree_block): Remove handler_block add body_block.
30837 (inlined_function_outer_scope_p): New.
30838 (is_body_block): Remove.
30839 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
30840 * dwarf2out.c (is_inlined_entry_point): Remove.
30841 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
30842 (gen_block_die): Use is_inlined_entry_point check. Remove body block
30843 code.
cff7525f
JH
30844 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
30845 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
30846 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
30847 block with multiple subblocks.
cff7525f
JH
30848 (dump_scope_block): Prettier output; dump more flags and info.
30849 (dump_scope_blocks): New.
30850 (remove_unused_locals): Use dump_scope_blocks.
30851 * tree-flow.h (dump_scope_blocks): Declare.
30852 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
30853 * stmt.c (is_body_block): Remove.
30854 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
30855 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
30856
c20993b9
SP
308572009-02-27 Sebastian Pop <sebastian.pop@amd.com>
30858
30859 PR middle-end/39308
2ba9daa7 30860 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
30861 number_of_iterations_exit from a gcc_assert.
30862
e3cba5e5
AK
308632009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30864
60839f5d 30865 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
30866 jumps if COND is NULL.
30867 (find_cond_jump): New function.
30868 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 30869 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 30870
9dadeeb8
UB
308712009-02-26 Uros Bizjak <ubizjak@gmail.com>
30872
30873 * config/alpha/alpha.h (alpha_expand_mov): Return false if
30874 force_const_mem returns NULL_RTX.
30875
625d3251
EB
308762009-02-26 Jan Hubicka <jh@suse.cz>
30877
30878 PR debug/39267
30879 * cgraph.h (varpool_output_debug_info): Remove.
30880 * cgraphunit.c (varpool_output_debug_info): Remove.
30881 * dwarf2out.c (deferred_locations_struct): New struct
30882 (deferred_locations): New type.
30883 (deferred_locations_list): New static var.
30884 (deffer_location): New function.
30885 (gen_variable_die): Use it.
30886 (decls_for_scope): Output info on local static vars.
30887 (dwarf2out_finish): Process deferred locations.
30888 * varpool.c (varpool_output_debug_info): Remove.
30889
38432148 308902009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
30891
30892 PR rtl-optimization/39241
30893 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
30894 to subreg_offset_representable_p.
30895
62d049cf
PB
308962009-02-25 Paolo Bonzini <bonzini@gnu.org>
30897
30898 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
30899 execute function prototype. Get f and nregs from max_reg_num
30900 and get_insns. Remove the first backward pass as it's dead,
30901 guard the forward pass by flag_expensive_optimizations.
30902 (rest_of_handle_regmove): Delete.
30903 (pass_regmove): Replace it with regmove_optimize.
30904
f618d33e
MJ
309052009-02-25 Martin Jambor <mjambor@suse.cz>
30906
30907 PR tree-optimization/39259
30908 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 30909 calls_alloca function flags.
f618d33e
MJ
30910 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
30911 calls are detected.
30912
c8a05f7c
PB
309132009-02-25 Paolo Bonzini <bonzini@gnu.org>
30914
30915 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
30916 flags_set_1_rtx, flags_set_1_set): Delete.
30917 (regmove_optimize): Do not call mark_flags_life_zones.
30918
6d2538f5
JB
309192009-02-24 Julian Brown <julian@codesourcery.com>
30920
30921 PR target/35965
30922 * config/arm/arm.c (require_pic_register): Only set
30923 cfun->machine->pic_reg once per function.
30924
a2fa6772
SL
309252009-02-24 Sandra Loosemore <sandra@codesourcery.com>
30926
30927 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 30928 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 30929
5472de36
SE
309302009-02-24 Steve Ellcey <sje@cup.hp.com>
30931
30932 PR target/33785
30933 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
30934
844216f3
RG
309352009-02-24 Richard Guenther <rguenther@suse.de>
30936
30937 PR debug/39285
30938 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
30939
71adbef3 309402009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 30941 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
30942
30943 PR tree-optimization/39233
30944 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
30945 from converting them to a generic type.
30946
f1a558e0
SP
309472009-02-23 Sebastian Pop <sebastian.pop@amd.com>
30948
30949 PR tree-optimization/39260
30950 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
30951 contains a condition with a real type.
30952 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
30953
d8028f2c
JM
309542009-02-23 Jason Merrill <jason@redhat.com>
30955
30956 PR c++/38880
30957 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
30958 narrowing_initializer_constant_valid_p.
2ba9daa7 30959 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
30960 null_pointer_node for adding a pointer to itself.
30961
9283b513
JH
309622009-02-23 Jan Hubicka <jh@suse.cz>
30963
30964 PR c/12245
9dadeeb8
UB
30965 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
30966 resizing.
9283b513 30967
61e04322
JH
309682009-02-23 Jan Hubicka <jh@suse.cz>
30969
9dadeeb8
UB
30970 PR tree-optimization/37709
30971 * tree.c (block_ultimate_origin): Move here from dwarf2out.
30972 * tree.h (block_ultimate_origin): Declare.
30973 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
30974 * tree-ssa-live.c (remove_unused_scope_block_p):
30975 Eliminate blocks containig no instructions nor live variables nor
30976 nested blocks.
30977 (dump_scope_block): New function.
30978 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 30979 enable dumping at TDF_DETAILS.
61e04322 30980
38432148 309812009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
30982
30983 * config/i386/i386.c (classify_argument): Don't allow COImode
30984 and OImode.
30985 (function_arg_advance_32): Don't allow OImode.
30986 (function_arg_32): Likewise.
30987 (function_value_32): Likewise.
30988 (return_in_memory_32): Likewise.
30989 (function_arg_64): Remove OImode comment.
30990
38432148 309912009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
30992
30993 PR target/39261
30994 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
30995 ix86_expand_vector_set for V4DImode in 64bit mode only.
30996 (ix86_expand_vector_init_one_var): Likewise.
30997
dcd739a6
SP
309982009-02-21 Sebastian Pop <sebastian.pop@amd.com>
30999
31000 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
31001
6c3b938d
RS
310022009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
31003
8e361f23 31004 PR bootstrap/39257
6c3b938d
RS
31005 * loop-iv.c: Revert last change.
31006 * emit-rtl.c: Likewise.
31007
38432148 310082009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
31009
31010 PR target/39256
31011 * config/i386/i386.c (type_natural_mode): Remove an extra
31012 space in the warning message.
31013 (function_value_32): Handle 32-byte vector modes.
31014 (return_in_memory_32): Likewise.
31015
2ec62529
RS
310162009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
31017
31018 * loop-iv.c (truncate_value): New function.
31019 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
31020 of lowpart_subreg.
31021 (lowpart_subreg): Move to...
31022 * emit-rtl.c: ...here.
31023
ecb8c3cc 310242009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 31025
ecb8c3cc
DS
31026 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
31027 accidental and undocumented change at revision 140860.
31028
ae46a823
JM
310292009-02-21 Joseph Myers <joseph@codesourcery.com>
31030
31031 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
31032 take gimple_seq * arguments.
31033 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
31034 types_compatible_p langhook.
31035
07d8efe3 310362009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 31037 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
31038
31039 * config/arm/arm.c (arm_builtin_va_list): New function.
31040 (arm_expand_builtin_va_start): Likewise.
31041 (arm_gimplify_va_arg_expr): Likewise.
31042 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
31043 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
31044 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
31045 (va_list_type): New variable.
31046 (arm_mangle_type): Mangle va_list_type appropriately.
31047
b1fb9f56
JJ
310482009-02-20 Jakub Jelinek <jakub@redhat.com>
31049
31050 PR middle-end/39157
31051 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
31052 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
31053 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
31054 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
31055 parameter to 1000 for -O1 by default.
31056 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
31057 parameter.
31058 * loop-invariant.c: Include params.h.
31059 (move_loop_invariants): Don't call move_single_loop_invariants on
31060 very large loops.
31061
5bc0807c
JM
310622009-02-20 Jaka Mocnik <jaka@xlab.si>
31063
31064 * calls.c (emit_library_call_value_1): Use slot_offset instead of
31065 offset when calculating bounds for indexing stack_usage_map. Fixes
31066 a buffer overflow with certain target setups.
31067
c69cd1f5
JJ
310682009-02-20 Jakub Jelinek <jakub@redhat.com>
31069
31070 PR target/39240
31071 * calls.c (expand_call): Clear try_tail_call if caller and callee
31072 disagree in promotion of function return value.
31073
09812622
JJ
310742009-02-19 Jakub Jelinek <jakub@redhat.com>
31075
31076 PR target/39175
31077 * c-common.c (c_determine_visibility): If visibility changed and
31078 DECL_RTL has been already set, call make_decl_rtl to update symbol
31079 flags.
31080
68017cb4
L
310812009-02-19 H.J. Lu <hongjiu.lu@intel.com>
31082
31083 PR c++/39188
31084 * varasm.c (assemble_variable): Don't check DECL_NAME when
31085 globalizing a variable.
31086
ab4194da
JM
310872009-02-19 Joseph Myers <joseph@codesourcery.com>
31088
31089 PR c/38483
31090 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
31091 expression before any __builtin_trap call.
31092 * c-typeck.c (build_function_call): Convert and check function
31093 arguments before generating a call to a trap. Evaluate the
31094 function arguments before the trap.
31095
6b67572e
UB
310962009-02-19 Uros Bizjak <ubizjak@gmail.com>
31097
31098 PR target/39228
31099 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
31100 (UNSPEC_FXAM_MEM): New unspec.
31101 (fxam<mode>2_i387_with_temp): New insn and split pattern.
31102 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
31103 memory using fxam<mode>2_i387_with_temp to remove excess precision.
31104
9e39dba6
RG
311052009-02-19 Richard Guenther <rguenther@suse.de>
31106
31107 PR tree-optimization/39207
31108 PR tree-optimization/39074
31109 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
31110 storedanything_tree): New.
31111 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 31112 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
31113 (build_succ_graph): Add edges from STOREDANYTHING to all
31114 non-direct nodes.
31115 (init_base_vars): Initialize STOREDANYTHING.
31116 (compute_points_to_sets): Free substitution info after
31117 building the succ graph.
31118 (ipa_pta_execute): Likewise.
31119
31120 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
31121 field.
31122 (do_ds_constraint): Do not add to special var or non-pointer
31123 field solutions.
31124 (type_could_have_pointers): Split out from ...
31125 (could_have_pointers): ... here. For arrays use the element type.
31126 (create_variable_info_for): Initialize may_have_pointers.
31127 (new_var_info): Likewise.
31128 (handle_lhs_call): Make the HEAP variable unknown-sized.
31129 (intra_create_variable_infos): Use a type with pointers for
31130 PARM_NOALIAS, make it unknown-sized.
31131
fd7b2603
L
311322009-02-18 H.J. Lu <hongjiu.lu@intel.com>
31133
31134 PR target/39224
6b67572e 31135 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 31136
98b80692
JM
311372009-02-18 Jason Merrill <jason@redhat.com>
31138
31139 PR target/39179
31140 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
31141 value if DECL_EXTERNAL.
31142 * tree-sra.c (sra_walk_gimple_assign): Likewise.
31143 * target.h (gcc_target::binds_local_p): Clarify "module".
31144 * tree.h (TREE_PUBLIC): Clarify "module".
31145
0705d3f4
L
311462009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
31147
31148 PR target/38891
31149 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
31150 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
31151
bce08d50
L
311522009-02-17 H.J. Lu <hongjiu.lu@intel.com>
31153
31154 PR target/39082
31155 * c.opt (Wabi): Support C and ObjC.
31156 (Wpsabi): New.
31157
31158 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
31159
31160 * config/i386/i386.c (classify_argument): Warn once about the ABI
31161 change when passing union with long double.
31162
31163 * doc/invoke.texi: Update -Wabi for warning psABI changes.
31164
5600f233
JM
311652009-02-18 Joseph Myers <joseph@codesourcery.com>
31166
31167 PR c/35447
31168 * c-parser.c (c_parser_compound_statement): Always enter and leave
31169 a scope.
31170
8cd01fe6
JDA
311712009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31172
31173 PR target/34587
31174 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
31175
418df9d7
JJ
311762009-02-18 Jakub Jelinek <jakub@redhat.com>
31177
31178 PR tree-optimization/36922
31179 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
31180 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
31181 Likewise.
31182
082d2ebb
RS
311832009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
31184
31185 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
31186 to 0 for EABI64.
31187
17de576c
RS
311882009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
31189
31190 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
31191
6d8d5435
RS
311922009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
31193
31194 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
31195 tree sharing.
31196
e69ff910
RB
311972009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
31198 Richard Sandiford <rdsandiford@googlemail.com>
31199
31200 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
31201 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
31202 (loongson_biadd): ...this.
31203
6b24ee26
RG
312042009-02-17 Richard Guenther <rguenther@suse.de>
31205
31206 PR tree-optimization/39202
31207 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
31208 a var make sure to follow existing collapses.
31209
91ab2c86
RG
312102009-02-17 Richard Guenther <rguenther@suse.de>
31211
31212 PR middle-end/39214
31213 * langhooks.c (lhd_print_error_function): Check for NULL block.
31214
73a63870
RG
312152009-02-17 Richard Guenther <rguenther@suse.de>
31216
31217 PR tree-optimization/39204
31218 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
31219 of the PHI arg.
31220
0e08f686
UB
312212009-02-17 Uros Bizjak <ubizjak@gmail.com>
31222
31223 * config/soft-fp/double.h: Update from glibc CVS.
31224
a60b7ddb
RG
312252009-02-17 Richard Guenther <rguenther@suse.de>
31226
31227 PR tree-optimization/39207
31228 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
31229 strict-aliasing warnings for pointers pointing to NULL.
31230
a47e20fd
JM
312312009-02-16 Joseph Myers <joseph@codesourcery.com>
31232
31233 PR c/35446
31234 * c-parser.c (c_parser_braced_init): Call pop_init_level when
31235 skipping until next close brace.
31236
50aab7dc
L
312372009-02-16 H.J. Lu <hongjiu.lu@intel.com>
31238
31239 PR target/37049
31240 * config/i386/i386.c (ix86_expand_push): Set memory alignment
31241 to function argument boundary.
31242
68e53db0
HS
312432009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
31244
31245 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
31246 in the lea_add. Reload eventually constraints it properly.
0d50d55a 31247 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
31248 "b", since it is not needed anymore.
31249
09e361bb
JJ
312502009-02-16 Jakub Jelinek <jakub@redhat.com>
31251
31252 * gthr-dce.h: Uglify function parameter and local variable names.
31253 * gthr-gnat.h: Likewise.
31254 * gthr-mipssde.h: Likewise.
31255 * gthr-nks.h: Likewise.
31256 * gthr-posix95.h: Likewise.
31257 * gthr-posix.h: Likewise.
31258 * gthr-rtems.h: Likewise.
31259 * gthr-single.h: Likewise.
31260 * gthr-solaris.h: Likewise.
31261 * gthr-tpf.h: Likewise.
31262 * gthr-vxworks.h: Likewise.
31263 * gthr-win32.h: Likewise.
31264
47f5a48f
L
312652009-02-15 H.J. Lu <hongjiu.lu@intel.com>
31266
31267 PR target/39196
31268 * config/i386/i386.md: Restrict the new peephole2 to move
31269 between MMX/SSE registers.
31270
68c9ab45
RG
312712009-02-15 Richard Guenther <rguenther@suse.de>
31272
31273 Revert
31274 2009-02-13 Richard Guenther <rguenther@suse.de>
31275
31276 * configure.ac: Enable LFS.
31277 * configure: Re-generate.
31278 * config.in: Likewise.
31279
d7815554
UW
312802009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31281
31282 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
31283 spu_srqwbyte, spu_srqwbytebc): Define.
31284 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
31285 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
31286 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
31287 "shrqby_<mode>"): New insn-and-split patterns.
31288 * config/spu/spu.c (expand_builtin_args): Determine and return
31289 number of operands using spu_builtin_description data.
31290 (spu_expand_builtin_1): Use it.
31291
c208436c
SE
312922009-02-13 Steve Ellcey <sje@cup.hp.com>
31293
31294 PR target/38056
31295 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
31296 TARGET_CONST_GP.
31297
c2e7ba7e
L
312982009-02-13 H.J. Lu <hongjiu.lu@intel.com>
31299
31300 PR target/39149
31301 * config/i386/i386.c (override_options): Correct warning
6c6094f1 31302 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 31303
72f4e3a7
L
313042009-02-13 H.J. Lu <hongjiu.lu@intel.com>
31305
31306 PR target/39152
31307 * config/i386/i386.md: Restrict the new peephole2 to move
31308 between the general purpose registers.
31309
53f648e2
L
313102009-02-13 H.J. Lu <hongjiu.lu@intel.com>
31311
31312 PR target/39162
31313 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 31314 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
31315 (function_arg_advance): Updated.
31316 (function_arg): Likewise.
31317 (ix86_function_value): Likewise.
31318 (ix86_return_in_memory): Likewise.
31319 (ix86_sol10_return_in_memory): Likewise.
31320 (ix86_gimplify_va_arg): Likewise.
31321 (function_arg_32): Don't warn ABX ABI change here.
31322 (function_arg_64): Likewise.
31323
38432148 313242009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
31325
31326 * loop-iv.c (implies_p): In the final case, test that operands 0
31327 of the two comparisons match.
31328
dd2139e7
BS
31329 * config/bfin/bfin.c (find_prev_insn_start): New function.
31330 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
31331 (find_next_insn_start): Move.
31332
601b3e1a
RG
313332009-02-13 Richard Guenther <rguenther@suse.de>
31334
31335 * configure.ac: Enable LFS.
31336 * configure: Re-generate.
31337 * config.in: Likewise.
31338
f007042e
JM
313392009-02-13 Joseph Myers <joseph@codesourcery.com>
31340
31341 PR c/35444
31342 * c-parser.c (c_parser_parms_list_declarator): Discard pending
31343 sizes on syntax error after some arguments have been parsed.
31344
3f238e8b
JJ
313452009-02-12 Jakub Jelinek <jakub@redhat.com>
31346
31347 * doc/invoke.texi (-fira): Remove.
31348
328e13b7
L
313492009-02-12 H.J. Lu <hongjiu.lu@intel.com>
31350
31351 * caller-save.c: Replace regclass.c with reginfo.c in comments.
31352 * recog.c: Likewise.
31353 * rtl.h: Likewise.
31354
c252db20
L
313552009-02-12 Uros Bizjak <ubizjak@gmail.com>
31356
31357 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
31358 (umul_ppmm): Likewise.
31359 (count_leading_zeros): Likewise.
31360 (count_trailing_zeros): Likewise.
31361 (UMUL_TIME): Likewise.
31362
313632009-02-12 H.J. Lu <hongjiu.lu@intel.com>
31364
ba181049
UB
31365 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
31366 soft-fp/t-softfp to tmake_file.
c252db20
L
31367
31368 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
31369 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
31370 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
31371 IA64_BUILTIN_INFQ]: New.
c252db20
L
31372 (ia64_init_builtins): Initialize __builtin_infq,
31373 __builtin_fabsq and __builtin_copysignq if not HPUX.
31374 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
31375 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
31376
31377 * config/ia64/lib1funcs.asm (__divtf3): Define only if
31378 SHARED is defined.
31379 (__fixtfti): Likewise.
31380 (__fixunstfti): Likewise.
31381 (__floattitf): Likewise.
31382
31383 * config/ia64/libgcc-glibc.ver: New.
31384 * config/ia64/t-fprules-softfp: Likewise.
31385 * config/ia64/sfp-machine.h: Likewise.
31386
31387 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
31388 (LIBGCC2_TF_CEXT): Likewise.
31389 (TF_SIZE): Likewise.
31390 (TARGET_INIT_LIBFUNCS): Likewise.
31391
ba181049 31392 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 31393 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 31394
f13eae6a
L
313952009-02-12 H.J. Lu <hongjiu.lu@intel.com>
31396
31397 * config/i386/i386.c (construct_container): Rewrite processing
31398 BLKmode with X86_64_SSE_CLASS.
31399
12019aec
L
314002009-02-12 Paolo Bonzini <bonzini@gnu.org>
31401
31402 PR target/39152
31403 * config/i386/i386.md: Replace simplify_replace_rtx with
31404 replace_rtx in the new peephole2.
31405
28c11eb3
NS
314062009-02-12 Nathan Sidwell <nathan@codesourcery.com>
31407
31408 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
31409 loop unrolling do not happen at -O2.
31410
c7b94907
MM
314112009-02-12 Michael Matz <matz@suse.de>
31412
31413 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
31414
61e98967
JJ
314152009-02-12 Jakub Jelinek <jakub@redhat.com>
31416
31417 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
31418 for -g3.
31419
a2a237b5
BE
314202009-02-12 Ben Elliston <bje@au.ibm.com>
31421
31422 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
31423 patterns when updating the back chain. Missed in the 2009-02-10
31424 change.
31425
853eda8d
JJ
314262009-02-11 Janis Johnson <janis187@us.ibm.com>
31427
31428 * doc/extend.texi (Decimal Floating Types): Update identifier of
31429 draft TR and list of missing support.
31430
3ad6b266
JJ
314312009-02-11 Jakub Jelinek <jakub@redhat.com>
31432
31433 PR middle-end/39154
31434 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
31435 bit to variable length decl's flags, add it also to its
31436 pointer replacement variable.
31437
b058b753
UB
314382009-02-11 Uros Bizjak <ubizjak@gmail.com>
31439 Jakub Jelinek <jakub@redhat.com>
31440
31441 PR target/39118
31442 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
31443 (memory_blockage): New expander.
31444 (*memory_blockage): New insn pattern.
31445 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
31446 instead of general blockage at the end of function prologue when
31447 frame pointer is used to access red zone area. Do not emit blockage
31448 when profiling, it is emitted in generic code.
31449 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
31450 function epilogue when frame pointer is used to access red zone area.
31451
bab64f23
PB
314522009-02-11 Paolo Bonzini <bonzini@gnu.org>
31453
0ce6dcfa 31454 PR target/38824
bab64f23
PB
31455 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
31456 by arithmetic with memory operands.
31457 * config/i386/predicates.md (commutative_operator): New.
31458
8fd94bda
JJ
314592009-02-10 Janis Johnson <janis187@us.ibm.com>
31460
31461 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
31462 bulleted lists.
31463
794511d2
EB
314642009-02-10 Eric Botcazou <ebotcazou@adacore.com>
31465
31466 * alias.h (record_alias_subset): Declare.
31467 * alias.c (record_alias_subset): Make global.
31468
6da7fc87
NC
314692009-02-10 Nick Clifton <nickc@redhat.com>
31470
31471 * tree-parloops.c: Change license to GPLv3.
31472 * ipa-struct-reorg.c: Change license to GPLv3.
31473 * ipa-struct-reorg.h: Change license to GPLv3.
31474
a03813c8
SE
314752009-02-10 Steve Ellcey <sje@cup.hp.com>
31476
31477 PR c/39084
31478 * c-decl.c (start_struct): Return NULL on error.
31479
fc3103e7
JJ
314802009-02-10 Jakub Jelinek <jakub@redhat.com>
31481
9b43d37b
JJ
31482 PR middle-end/39124
31483 * cfgloopmanip.c (remove_path): Call remove_bbs after
31484 cancel_loop_tree, not before it.
31485
fc3103e7 31486 PR target/39139
b058b753 31487 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
31488 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
31489 VAR_DECLs were seen.
31490 * tree-ssa-live.c (remove_unused_locals): Recompute
31491 cfun->has_local_explicit_reg_vars.
31492 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
31493 copies or clearings if cfun->has_local_explicit_reg_vars.
31494
dbf9ee15
UB
314952009-02-10 Uros Bizjak <ubizjak@gmail.com>
31496
31497 PR target/39118
31498 * config/i386/i386.c (expand_prologue): Emit blockage at the end
31499 of function prologue when frame pointer is used to access
31500 red zone area.
31501
bdec4dc7
RG
315022009-02-10 Richard Guenther <rguenther@suse.de>
31503
31504 PR middle-end/39127
31505 * gimplify.c (gimple_regimplify_operands): Always look if
31506 we need to create a temporary.
31507
7cae94fc
RG
315082009-02-10 Richard Guenther <rguenther@suse.de>
31509
31510 PR tree-optimization/39132
31511 * tree-loop-distribution.c (todo): New global var.
31512 (generate_memset_zero): Trigger TODO_rebuild_alias.
31513 (tree_loop_distribution): Return todo.
31514
a8800687
L
315152009-02-10 H.J. Lu <hongjiu.lu@intel.com>
31516
31517 PR target/39119
31518 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
31519 (x86_64_reg_class_name): Removed.
31520 (classify_argument): Return 0 if bytes > 32. Return 0 if the
31521 first one isn't X86_64_SSE_CLASS or any other ones aren't
31522 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
31523 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
31524 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
31525 and 3 X86_64_SSEUP_CLASS.
31526 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
31527 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
31528
d4bacef0
BE
315292009-02-10 Ben Elliston <bje@au.ibm.com>
31530
31531 * config/rs6000/rs6000.md (allocate_stack): Always use an update
31532 form instruction to update the stack back chain word, even if the
31533 user has disabled the generation of update instructions.
31534 (movdi_<mode>_update_stack): New.
31535 (movsi_update_stack): Likewise.
31536 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
31537 always use an update form instruction to update the stack back
31538 chain word.
31539
01d7d2f3
SP
315402009-02-09 Sebastian Pop <sebastian.pop@amd.com>
31541
31542 PR middle-end/38953
b058b753
UB
31543 * graphite.c (if_region_set_false_region): After moving a region in
31544 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
31545 (gloog): Remove wrong fix for PR38953.
31546
e41e2ab4
UW
315472009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31548
31549 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
31550 generation due to implicit sign extension.
31551
4bb07c5d
EB
315522009-02-09 Eric Botcazou <ebotcazou@adacore.com>
31553
31554 PR middle-end/38981
31555 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
31556 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
31557
f060a261
RG
315582009-02-09 Richard Guenther <rguenther@suse.de>
31559
31560 PR middle-end/35202
31561 * convert.c (convert_to_real): Disable (float)fn((double)x)
31562 to fnf(x) conversion if errno differences may occur and
31563 -fmath-errno is set.
31564
5a7e237c
AS
315652009-02-07 Anatoly Sokolov <aesok@post.ru>
31566
31567 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
31568 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
31569 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
31570
feab5a67
JM
315712009-02-06 Joseph Myers <joseph@codesourcery.com>
31572
31573 PR c/35434
31574 * c-common.c (handle_alias_attribute): Disallow attribute for
31575 anything not a FUNCTION_DECL or VAR_DECL.
31576
90ef2296
JJ
315772009-02-06 Janis Johnson <janis187@us.ibm.com>
31578
31579 PR c/39035
31580 * real.c (do_compare): Special-case compare of zero against
31581 decimal float value.
31582
1de2c900
JM
315832009-02-06 Joseph Myers <joseph@codesourcery.com>
31584
31585 PR c/36432
31586 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
31587 as indicating flexible array members unless the field itself is
31588 being declarared as the incomplete array.
31589
e901811a
JH
315902009-02-06 Jan Hubicka <jh@suse.cz>
31591
31592 PR tree-optimization/38844
31593 * ipa-inline.c (try_inline): Stop inlining recursion when edge
31594 is already inlined.
31595
3cfa762b
RG
315962009-02-06 Richard Guenther <rguenther@suse.de>
31597
31598 PR middle-end/38977
31599 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
31600 fork because we may expand it as __gcov_fork.
31601
8506528c
NC
316022009-02-06 Nick Clifton <nickc@redhat.com>
31603
dbf9ee15 31604 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 31605
85169114
PB
316062009-02-06 Paolo Bonzini <bonzini@gnu.org>
31607
31608 PR tree-optimization/35659
31609 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
31610 vn_phi_eq): Shortcut if hashcode does not match.
31611 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
31612 NULL operands.
31613 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
31614 and avoid iterative_hash_expr.
31615 (FOR_EACH_VALUE_ID_IN_SET): New.
31616 (value_id_compare): Remove.
31617 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
31618 sort expressions by value id.
31619
6d39673d
KK
316202009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
31621
31622 PR target/38991
31623 * config/sh/predicates.md (general_movsrc_operand): Don't check
31624 the subreg of system registers here.
31625
e6e1c050
JJ
316262009-02-05 Jakub Jelinek <jakub@redhat.com>
31627
31628 PR c++/39106
31629 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
31630 on the copied decl.
31631
65a74b5d
PB
316322009-02-05 Paolo Bonzini <bonzini@gnu.org>
31633
31634 PR rtl-optimization/39110
31635 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
31636 addresses, not aligned ones.
31637
08e14b2a
DB
316382009-02-05 Daniel Berlin <dberlin@dberlin.org>
31639 Richard Guenther <rguenther@suse.de>
31640
31641 PR tree-optimization/39100
31642 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
31643 comment says and add edges.
31644
5006381c
JM
316452009-02-05 Joseph Myers <joseph@codesourcery.com>
31646
31647 PR c/35435
31648 * c-common.c (handle_tls_model_attribute): Ignore attribute for
31649 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
31650
2ba9daa7 316512009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
31652
31653 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
31654 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
31655 register_bb_in_sese, new_sese, free_sese): Moved.
31656 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
31657 outermost_loop_in_scop, build_scop_iteration_domain,
31658 expand_scalar_variables_ssa_name, get_vdef_before_scop,
31659 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
31660 Use loop_in_sese_p instead of loop_in_scop_p.
31661 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
31662 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
31663 (scopdet_basic_block_info): Fix bug in scop detection.
31664 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
31665 eq_loop_to_cloog_loop): Remove.
31666 (nb_loops_around_loop_in_scop, nb_loop
31667 ref_nb_loops): Moved here...
31668 * graphite.h (ref_nb_loops): ... from here.
31669 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
31670 (loop_domain_dim, loop_iteration_vector_dim): Remove.
31671 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
b0789219 31672
48e8382e
PB
316732009-02-04 Paolo Bonzini <bonzini@gnu.org>
31674 Hans-Peter Nilsson <hp@axis.com>
31675
31676 PR rtl-optimization/37889
31677 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
31678 Move offset handling from PLUS to before the switch. Use new
31679 arguments when considering SYMBOL_REFs too.
31680 (rtx_addr_can_trap_p): Pass dummy offset and size.
31681 (enum may_trap_p_flags): Remove.
31682 (may_trap_p_1): Pass size from MEM_SIZE.
31683
31684 PR rtl-optimization/38921
31685 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
31686 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
31687 * rtlanal.c (may_trap_after_code_motion_p): Delete.
31688 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
31689
69349ea5
L
316902009-02-04 H.J. Lu <hongjiu.lu@intel.com>
31691
31692 AVX Programming Reference (January, 2009)
31693 * config/i386/sse.md (*vpclmulqdq): New.
31694
b545e411
JJ
316952009-02-04 Jakub Jelinek <jakub@redhat.com>
31696
31697 PR tree-optimization/38977
31698 PR gcov-profile/38292
bf9b2cc9 31699 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 31700
5b43bf05
HS
317012009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
31702
31703 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
31704 non-indexable addresses even before reload.
31705
062c4bb3
JM
317062009-02-03 Joseph Myers <joseph@codesourcery.com>
31707
31708 PR c/29129
31709 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
31710 as having variable size. Do not give an error for unnamed
31711 parameters with [*] declarators. Give a warning for type names
31712 with [*] declarators and mark them as variable size.
31713 * c-parser.c (c_parser_sizeof_expression): Do not give an error
31714 for sizeof applied to [*] type names.
31715
6175f578
AP
317162009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
31717
31718 PR C++/36607
31719 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
31720
d4f4bc84
JJ
317212009-02-03 Jakub Jelinek <jakub@redhat.com>
31722
31723 * gcc.c (process_command): Update copyright notice dates.
31724 * gcov.c (print_version): Likewise.
31725 * gcov-dump.c (print_version): Likewise.
31726 * mips-tfile.c (main): Likewise.
31727 * mips-tdump.c (main): Likewise.
31728
f6294de7
JM
317292009-02-03 Joseph Myers <joseph@codesourcery.com>
31730
31731 PR c/35433
31732 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
31733 for composite type involving a zero-length array type.
31734
754ccf7c
JJ
317352009-02-03 Jakub Jelinek <jakub@redhat.com>
31736
70f16287
JJ
31737 PR target/35318
31738 * function.c (match_asm_constraints_1): Skip over
31739 initial optional % in the constraint.
31740
754ccf7c
JJ
31741 PR inline-asm/39059
31742 * c-parser.c (c_parser_postfix_expression): If fixed point is not
31743 supported, don't accept FIXED_CSTs.
31744 * c-decl.c (finish_declspecs): Error if fixed point is not supported
31745 and _Sat is used without _Fract/_Accum. Set specs->type to
31746 integer_type_node for cts_fract/cts_accum if fixed point is not
31747 supported.
31748
965fdadf
CM
317492009-02-02 Catherine Moore <clm@codesourcery.com>
31750
dbf9ee15 31751 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 31752
2e8a796f
RS
317532009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
31754
31755 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
31756 (ABI_HAS_64BIT_SYMBOLS): Use it.
31757 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
31758
e0079468
PB
317592009-02-02 Paul Brook <paul@codesourcery.com>
31760
31761 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
31762
eca72963
JJ
317632009-02-02 Jakub Jelinek <jakub@redhat.com>
31764
31765 PR inline-asm/39058
31766 * recog.h (asm_operand_ok): Add constraints argument.
31767 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
31768 recurse on matching constraint.
31769 (check_asm_operands): Pass constraints as 3rd argument to
31770 asm_operand_ok. Don't look up matching constraint here.
31771 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
31772 to asm_operand_ok.
31773
b5bde9ff
BE
317742009-02-02 Ben Elliston <bje@au.ibm.com>
31775
31776 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
31777 TARGET_NARROW_VOLATILE_BITFIELD macro names.
31778
30f3e427
JDA
317792009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31780
be7659ba
JDA
31781 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
31782 information. Remove some obsolete information. Reorganize.
31783
30f3e427
JDA
31784 * config/pa/fptr.c: Revert license to GPL 2.
31785 * config/pa/milli64.S: Likewise.
31786
3cbfaf98
DK
317872009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
31788
31789 PR target/38904
31790 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
31791 LIBRARY name in, instead of hard-coding it.
31792 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
31793 extra target make frag to tmake_files according to EH model.
31794 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
31795 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
31796 frags that define makefile variable EH_MODEL appropriately.
31797 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
31798 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
31799 to "-sjlj" according to type of EH configured.
31800 (LIBGCC_SONAME): Concatenate it to shared library base name.
31801 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
31802 to "_sjlj" according to type of EH configured.
31803 (LIBGCC_SONAME): Concatenate it to shared library base name.
31804 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
31805 (SHLIB_LINK): Add missing semicolon to if-else construct.
31806 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
31807 string value of "pe_dll" command-line option.
31808 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
31809 (SHLIB_SONAME): Use it when overriding t-cygming default.
31810 (SHLIB_IMPLIB): Override t-cygming default.
31811 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
31812 string value of "pe_dll" command-line option.
31813
8d0b6068
DK
318142009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
31815
31816 PR target/38952
31817 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 31818 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 31819
14c28276
RG
318202009-01-31 Richard Guenther <rguenther@suse.de>
31821
31822 PR tree-optimization/38937
31823 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
31824 computing the transitive closure.
31825
5f4d82c2
RG
318262009-01-30 Richard Guenther <rguenther@suse.de>
31827
31828 PR tree-optimization/39041
31829 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
31830 Propagate variable indices only if the types match for this stmt.
31831
d0728ae0
JJ
318322009-01-30 Jakub Jelinek <jakub@redhat.com>
31833
31834 PR target/39013
31835 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
31836 inline but never defined.
31837
6b67572e 318382009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
31839
31840 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
31841 (*insv_h_di_reg_extimm): New insn.
31842 (*insv_l<mode>_reg_extimm): New insn.
31843
318442009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
31845
31846 * config/picochip/picochip.c (flag_conserve_stack): set
31847 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
31848 fconserve-stack. Reduce call-overhead used by inliner.
31849
9fec758d 318502009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
31851
31852 PR/38157
31853 * common.opt (flag_conserve_stack): Initialised to zero.
31854
7f1c539c
KT
318552009-01-30 Kai Tietz <kai.tietz@onevision.com>
31856
31857 PR/39002
31858 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
31859 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
31860 method.
31861
3631be48
L
318622009-01-29 H.J. Lu <hongjiu.lu@intel.com>
31863
31864 * ira-color.c (allocno_reload_assign): Update comments.
31865 * regmove.c (regmove_optimize): Likewise.
31866
31867 * ra.h: Removed.
31868
416ac4d4
RM
318692009-01-29 Robert Millan <rmh@aybabtu.com>
31870
60839f5d
EB
31871 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
31872 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 31873 `MD_UNWIND_SUPPORT'.
60839f5d 31874 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 31875
d5e54bc1
KH
318762009-01-29 Kazu Hirata <kazu@codesourcery.com>
31877
31878 PR tree-optimization/39007
31879 * tree-loop-distribution.c (generate_builtin): Use
31880 recompute_dominator to compute the immediate dominator of the
31881 basic block just after the loop.
31882
38432148 318832009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
31884
31885 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
31886 (ASM_OUTPUT_DWARF_PCREL): Define.
31887
38432148 318882009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
31889
31890 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
31891 * doc/passes.texi: Remove entries about regclass, local-alloc, and
31892 global. Modify entries about regmove and IRA.
31893
31894 * ra-conflict.c: Remove the file.
31895
31896 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
31897
31898 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
31899 (pass_regclass_init): Rename to pass_reginfo_init.
31900
31901 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
31902
31903 * toplev.h (flag_ira): Remove.
31904
31905 * caller-save.c (setup_save_areas): Remove flag_ira.
31906
bf9b2cc9 31907 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
31908
31909 * global.c: Remove the file.
31910
ba20e309 31911 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
31912
31913 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
31914
31915 * regmove.c: Modify file description.
31916 (find_use_as_address, try_auto_increment): Define them only if
31917 AUTO_INC_DEC is defined.
31918 (replacement_quality, replace_in_call_usage, fixup_match_1,
31919 stable_and_no_regs_but_for_p): Remove.
31920 (reg_set_in_bb): Make it static.
31921 (regmove_optimize): Remove flag_ira and code which worked for
31922 !flag_ira.
31923
31924 * local-alloc.c: Remove the file.
31925
31926 * common.opt (fira): Remove.
31927
31928 * ira.c: Include except.h.
31929 (eliminable_regset): Move from global.c.
31930 (mark_elimination): Ditto. Remove flag_ira.
31931 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
31932 equiv_mem_modified, validate_equiv_mem_from_store,
31933 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
31934 contains_replace_regs, memref_referenced_p, memref_used_between_p,
31935 no_equiv, recorded_label_ref): Move from local-alloc.c.
31936 (update_equiv_regs): Ditto. Make it static.
31937 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 31938 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
31939 (build_insn_chain): Ditto. Make it static.
31940 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
31941 Rename to init_live_subregs.
31942 (gate_ira): Remove flag_ira.
31943
31944 * regclass.c: Rename reginfo.c. Change file description.
31945 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 31946 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
31947 (init_reg_sets_1): Remove code for evaluation of
31948 reg_class_superclasses and losing_caller_save_reg_set.
31949 (init_regs): Remove init_reg_autoinc.
31950 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
31951 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 31952 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
31953 (pass_regclass_init): Rename to pass_reginfo_init. Modify
31954 corresponding entries.
31955 (dump_regclass, record_operand_costs, scan_one_insn,
31956 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
31957 record_address_regs, auto_inc_dec_reg_p): Remove.
31958 (gt-regclass.h): Rename to gt-reginfo.h.
31959
31960 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 31961 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
31962
31963 * Makefile.in (RA_H): Remove.
31964 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
31965 Rename regclass.o to reginfo.o.
31966 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
31967 gt-reginfo.h.
31968 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
31969 (GTFILES): Rename regclass.c to reginfo.c.
31970
31971 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 31972 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
31973
31974 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
31975 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
31976 Remove flag_ira.
6b67572e 31977 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 31978
c95b2534 319792009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
31980
31981 PR middle-end/35854
31982 * doc/invoke.texi (rtl debug options): Complete rewrite.
31983 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
31984 to auto_inc_dec".
31985 * mode-switching.c (pass_mode_switching): Rename pass from
31986 "mode-sw" to "mode_sw".
31987 * except.c (pass_convert_to_eh_ranges): Rename pass from
31988 "eh-ranges" to "eh_ranges".
31989 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
31990 to "subreg1".
2ba9daa7
AS
31991
31992
72a54528
AM
319932009-01-29 Andrey Belevantsev <abel@ispras.ru>
31994 Alexander Monakov <amonakov@ispras.ru>
31995
31996 PR middle-end/38857
31997 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
31998 register.
31999 (move_exprs_to_boundary): Change return type and pass through
32000 should_move from move_op. Relax assert. Update usage ...
32001 (schedule_expr_on_boundary): ... here. Use should_move instead of
32002 cant_move.
32003 (move_op_orig_expr_found): Indicate that insn was disconnected from
32004 stream.
32005 (code_motion_process_successors): Do not call after_merge_succs
32006 callback if original expression was not found when traversing any of
32007 the branches.
32008 (code_motion_path_driver): Change return type. Update prototype.
32009 (move_op): Update comment. Add a new parameter (should_move). Update
32010 prototype. Set *should_move based on indication provided by
32011 move_op_orig_expr_found.
32012
001b9eb6
PH
320132009-01-28 Pat Haugen <pthaugen@us.ibm.com>
32014
32015 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
32016 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
32017 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
32018 * config/rs6000/rs6000.c (rs6000_override_options): Default
32019 avoid-indexed-addresses on for Power6, off for everything else.
32020 (avoiding_indexed_address_p): New function.
32021 (rs6000_legitimize_address): Use it.
32022 (rs6000_legitimate_address): Likewise.
32023 * config/rs6000/rs6000.md (movXX_updateX): Likewise
32024
59dc4898
KH
320252009-01-28 Kazu Hirata <kazu@codesourcery.com>
32026
32027 PR tree-optimization/38997
32028 * tree-loop-distribution.c (generate_memset_zero): Use
32029 POINTER_PLUS_EXPR for a pointer addition.
32030
07da44ab
AK
320312009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
32032
32033 * config/s390/s390.md (bswap<mode>2): New pattern added.
32034
cdc15d23
WG
320352009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
32036
32037 * config/s390/s390.md (*tls_load_31): Added type attribute.
32038
d46f24b6
WG
320392009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
32040
32041 * config/s390/s390.md: Fix a few comments.
32042
729e750f
WG
320432009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
32044
32045 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
32046 (*tm<mode>_full): Fixed z10prop attribute.
32047 (*tst<mode>_extimm): Fixed z10prop attribute.
32048 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
32049 (*tstqiCCT_cconly): Fixed z10prop attribute.
32050 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
32051 (*movsi_larl): Fixed z10prop attribute.
32052 (*movsi_zarch): Fixed z10prop attribute.
32053 (*movsi_eas): Fixed z10prop attribute.
32054 (*movhi): Fixed z10prop attribute.
32055 (*movqi): Fixed z10prop attribute.
32056 (*movstrictqi): Fixed z10prop attribute.
32057 (*mov<mode>): Fixed z10prop attribute.
32058 (*movcc): Fixed z10prop attribute.
32059 (*sethighpartdi_64): Fixed z10prop attribute.
32060 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
32061 (*negdi2_sign_cc): Fixed z10prop attribute.
32062 (*negdi2_sign): Fixed z10prop attribute.
32063 (*absdi2_sign_cc): Fixed z10prop attribute.
32064 (*absdi2_sign): Fixed z10prop attribute.
32065 (*negabsdi2_sign_cc): Fixed z10prop attribute.
32066 (*negabsdi2_sign): Fixed z10prop attribute.
32067 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
32068 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
32069 (doloop_si64): Fixed z10prop attribute.
32070 (doloop_si31): Fixed z10prop attribute.
32071 (doloop_long): Fixed z10prop attribute.
32072 (indirect_jump): Fixed z10prop attribute.
32073 (nop): Fixed z10prop attribute.
32074 (main_base_64): Fixed z10prop attribute.
32075 (reload_base_64): Fixed z10prop attribute.
32076
c7789bfb
JJ
320772009-01-28 Jakub Jelinek <jakub@redhat.com>
32078
32079 PR rtl-optimization/38740
6b67572e
UB
32080 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
32081 if !optimize.
c7789bfb
JJ
32082 * config/mips/mips.c (mips_reorg): Likewise.
32083
de081cfd
RG
320842009-01-28 Richard Guenther <rguenther@suse.de>
32085
32086 PR tree-optimization/38926
32087 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
32088 with the correct value id to a value.
32089 (do_regular_insertion): Use the value number of edoubleprime
32090 for the value number of the expr.
32091
32092 Revert
32093 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 32094
d748c406
UB
32095 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
32096 a PHI ask VN if it is already available.
32097 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
32098 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 32099
a9d386a1
JJ
321002009-01-28 Jakub Jelinek <jakub@redhat.com>
32101
32102 PR middle-end/38934
32103 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
32104 set to varying whenever max has TREE_OVERFLOW set, similarly
32105 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
32106
97a170cd
RG
321072009-01-28 Richard Guenther <rguenther@suse.de>
32108
32109 PR middle-end/38908
32110 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
32111 uninitialized aggregate uses in call arguments.
32112
89ebafc6
PB
321132009-01-28 Paolo Bonzini <bonzini@gnu.org>
32114
32115 PR tree-optimization/38984
32116 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
32117 the nothing_id variable if -fno-delete-null-pointer-checks.
32118
bef3c57b
UB
321192009-01-28 Uros Bizjak <ubizjak@gmail.com>
32120
32121 PR target/38988
32122 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
32123 (set_got_offset_rex64): Ditto.
32124
0c6390fa
L
321252009-01-27 H.J. Lu <hongjiu.lu@intel.com>
32126
32127 PR target/38941
32128 * doc/extend.texi: Improve local variable with asm reg.
32129
bee6fa6d
AN
321302009-01-27 Adam Nemet <anemet@caviumnetworks.com>
32131
32132 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
32133 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
32134 was not supplied then set warn_packed_bitfield_compat to the
32135 default value of 1.
32136 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
32137 against 1.
32138
b5c3dfbb
RG
321392009-01-27 Richard Guenther <rguenther@suse.de>
32140
32141 PR tree-optimization/38503
32142 * cfgexpand.c (expand_gimple_basic_block): Ignore
32143 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
32144 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
32145 variables that cannot have TBAA applied.
32146 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
32147 statements.
32148
d748c406 321492009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
32150
32151 PR middle-end/38969
32152 * calls.c (initialize_argument_information): Do not wrap complex
32153 arguments in SAVE_EXPR.
32154
9112bb38
AT
321552009-01-26 Andreas Tobler <a.tobler@schweiz.org>
32156
32157 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 32158 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 32159
4757704f
RG
321602009-01-26 Richard Guenther <rguenther@suse.de>
32161
32162 PR tree-optimization/38745
32163 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
32164 from special handling.
32165
e3e6cff4
RG
321662009-01-26 Richard Guenther <rguenther@suse.de>
32167
32168 PR tree-optimization/38745
32169 * tree-ssa.c (execute_update_addresses_taken): Do not include
32170 variables that cannot possibly be a register in not_reg_needs.
32171 Do not clear TREE_ADDRESSABLE on vars that may not become
32172 registers.
32173 * tree-ssa.c (update_alias_info_1): Include those in the set
32174 of addressable vars.
32175
dc874b53
RG
321762009-01-26 Richard Guenther <rguenther@suse.de>
32177
32178 PR middle-end/38851
32179 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
32180 * tree-ssa-dse.c: Include langhooks.h
32181 (execute_simple_dse): Remove stores with zero size.
32182
849421a3
JJ
321832009-01-24 Jakub Jelinek <jakub@redhat.com>
32184
32185 PR c/38957
32186 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
32187 as PLUS_EXPR.
32188
82f70421
JB
321892009-01-24 Julian Brown <julian@codesourcery.com>
32190
32191 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
32192 config/arm/linux-atomic.c.
32193 * config/arm/linux-atomic.c: New.
32194
863412d6
EB
321952009-01-24 Eric Botcazou <ebotcazou@adacore.com>
32196
32197 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
32198 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
32199 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
32200
8c684300
L
322012009-01-24 H.J. Lu <hongjiu.lu@intel.com>
32202
32203 PR c/38938
93f1527a 32204 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
32205 properly.
32206
b840fb02
SP
322072009-01-24 Sebastian Pop <sebastian.pop@amd.com>
32208
32209 PR tree-optimization/38953
32210 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
32211 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
32212 (gloog): Split the exit of the scop when the scop exit is a loop exit.
32213 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
32214 changed the CFG.
32215
ecee559f
PB
322162009-01-24 Paul Brook <paul@codesourcery.com>
32217
32218 * config/arm/neon.md (neon_type): Move to arm.md.
32219 (neon_mov<VSTRUCT>): Add neon_type attribute.
32220 * config/arm/arm.md (neon_type): Move to here.
32221 (conds): Add "unconditioal" and use as default for NEON insns.
32222
61ad0914
BE
322232009-01-24 Ben Elliston <bje@au.ibm.com>
32224
32225 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
32226 void *' warning from -Wc++-compat.
32227 * Makefile.in (dominance.o-warn): Remove.
32228
38432148 322292009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
32230
32231 PR tree-optimization/38932
32232 * fold-const.c (fold_unary_ignore_overflow): New.
32233 * tree.h (fold_unary_ignore_overflow): Declare.
32234 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
32235 * tree-ssa-sccvn.c (visit_reference_op_load,
32236 simplify_unary_expression): Likewise.
32237
2cd36c22
AN
322382009-01-22 Adam Nemet <anemet@caviumnetworks.com>
32239
32240 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
32241 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
32242 regardless of their type.
32243 * c-common.c (handle_packed_attribute): Don't ignore packed on
32244 bitfields.
32245 * c.opt (Wpacked-bitfield-compat): New warning option.
32246 * stor-layout.c (place_field): Warn if offset of a field changed.
32247 * doc/extend.texi (packed): Mention the ABI change.
32248 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
32249 (Warning Options): Add it to the list.
32250
e4e624ab
L
322512009-01-22 H.J. Lu <hongjiu.lu@intel.com>
32252
32253 * c-opts.c (c_common_post_options): Fix a typo in comments.
32254
d0ea0759
SE
322552009-01-22 Steve Ellcey <sje@cup.hp.com>
32256
32257 PR middle-end/38615
32258 * gimplify.c (gimplify_init_constructor): Fix promotion of const
32259 variables to static.
32260 * doc/invoke.texi (-fmerge-all-constants): Update description.
32261
87673f84
UB
322622009-01-22 Uros Bizjak <ubizjak@gmail.com>
32263
32264 PR target/38931
32265 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
32266 (*movdi_1_rex64): Use type "mmx" for alternative 5.
32267
96339268
RE
322682009-01-22 Richard Earnshaw <rearnsha@arm.com>
32269
32270 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
32271 a word boundary.
32272 (LOCAL_ALIGNMENT): Similarly.
32273
442dc742 322742009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 32275 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
32276
32277 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
32278 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
32279 * config/arm/arm-tune.md: Regenerate.
32280 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
32281 -march=iwmmxt2.
32282
9b34732e
MS
322832009-01-22 Mark Shinwell <shinwell@codesourcery.com>
32284
32285 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
32286 version number to five.
32287
03c2a308
DS
322882009-01-22 Dodji Seketeli <dodji@redhat.com>
32289
32290 PR c++/38930
ba20e309 32291 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
32292 * c-common.c (set_underlying_type): Likewise.
32293 (is_typedef_decl ): Likewise
32294 * tree.h: Likewise
32295 (set_underlying_type): Likewise.
32296 (is_typedef_type): Likewise.
32297
1240d76e
VM
322982009-01-21 Vladimir Makarov <vmakarov@redhat.com>
32299
32300 PR middle-end/38587
32301 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
32302 crossing setjmps.
32303
b8a1087d
DK
323042009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
32305
32306 PR bootstrap/37660
32307 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
32308 (LIBGCC_SPEC): Don't define.
32309 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
32310
435da628
UB
323112009-01-21 Uros Bizjak <ubizjak@gmail.com>
32312
32313 PR rtl-optimization/38879
32314 * alias.c (base_alias_check): Unaligned access via AND address can
32315 alias all surrounding object types except those with sizes equal
32316 or wider than the size of unaligned access.
32317
d597b3ce
DS
323182009-01-21 Dodji Seketeli <dodji@redhat.com>
32319
32320 PR c++/26693
ba20e309 32321 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 32322 * c-common.c (set_underlying_type): ... here.
435da628 32323 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
32324 the newly created typedef variant type.
32325 (is_typedef_decl ): New entry point.
32326 * tree.h: Added a new member member_types_needing_access_check to
32327 struct tree_decl_non_common.
32328 (set_underlying_type): New entry point.
32329 (is_typedef_type): Likewise.
32330
71a6fe66
BM
323312009-01-21 Bingfeng Mei <bmei@broadcom.com>
32332
32333 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
32334 Check whether two instructions have memory references that
32335 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
32336 are helper functions for traversing.
32337 * alias.h (insn_alias_sets_confilict_p): New prototypes.
32338 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
32339 not to draw dependency edge for instructions with non-conflicting
32340 alias sets.
32341
5a248274
JM
323422009-01-20 Joseph Myers <joseph@codesourcery.com>
32343
32344 PR other/38758
6b67572e
UB
32345 * longlong.h: Update copyright years. Use soft-fp license notice.
32346 Sync __clz_tab declaration with glibc.
5a248274 32347
4b84f3de
SE
323482009-01-20 Steve Ellcey <sje@cup.hp.com>
32349
32350 PR target/30687
32351 * doc/extend.texi (syscall_linkage): New.
32352 (version_id): Modify.
32353
37348bf1 323542009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 32355 Richard Guenther <rguenther@suse.de>
37348bf1
AP
32356
32357 PR tree-optimization/38747
32358 PR tree-optimization/38748
32359 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
32360 conversion if the base address is an indirect reference and the
32361 aliasing sets could cause issues.
32362
d0a58904
SP
323632009-01-20 Sebastian Pop <sebastian.pop@amd.com>
32364
2ba9daa7 32365 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
32366 explaining why these options are not documented.
32367
71e7afb2
SP
323682009-01-20 Sebastian Pop <sebastian.pop@amd.com>
32369
32370 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
32371 gimple_call_lhs is NULL.
32372
38432148 323732009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
32374
32375 PR target/38868
32376 * emit-rtl.c (adjust_address_1): Make sure memref is never
32377 overwritten.
32378
cbb8dee3
BE
323792009-01-20 Ben Elliston <bje@au.ibm.com>
32380
32381 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 32382 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
32383 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
32384 const qualifier from arg 2.
32385
72c66596
IS
323862009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
32387
435da628 32388 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 32389
f68211cd
VM
323902009-01-19 Vladimir Makarov <vmakarov@redhat.com>
32391
32392 PR c/38869
32393 * rtl.h (reinit_regs): New prototype.
32394 * regclass.c: Include ira.h.
32395 (reinit_regs): New.
32396 * Makefile.in (regclass.o): Add ira.h.
32397 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
32398
6e4f1168
L
323992009-01-18 H.J. Lu <hongjiu.lu@intel.com>
32400
32401 PR target/38736
32402 * c-common.c (handle_aligned_attribute): Use
32403 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
32404 default alignment value.
32405
32406 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
32407
32408 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
32409 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
32410
32411 * doc/extend.texi: Update __attribute__ ((aligned)). Document
32412 __BIGGEST_ALIGNMENT__.
32413
32414 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
32415
890065bf
RG
324162009-01-18 Richard Guenther <rguenther@suse.de>
32417
32418 PR tree-optimization/38819
32419 * tree-flow.h (operation_could_trap_helper_p): Declare.
32420 * tree-eh.c (operation_could_trap_helper_p): Export.
32421 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
32422 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
32423 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
32424 are about to insert a possibly trapping instruction and fail
32425 in this case.
32426
a729d731
AS
324272009-01-18 Andreas Schwab <schwab@suse.de>
32428
32429 * doc/install.texi (Configuration): Remove obsolete paragraph
32430 about use of --with-gnu-ld with --with-gnu-as.
32431
a640c13b
KH
324322009-01-18 Kazu Hirata <kazu@codesourcery.com>
32433
32434 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
32435 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
32436 Follow spelling conventions.
32437
dba2cc0c
BE
324382009-01-18 Ben Elliston <bje@au.ibm.com>
32439
32440 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
32441 C++ warning about implicit conversion from void * to struct
32442 bitmap_head_def *.
32443 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 32444 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 32445
2207a498
DK
324462009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
32447
32448 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
32449
8137e465
SP
324502009-01-17 Sebastian Pop <sebastian.pop@amd.com>
32451 Tobias Grosser <tobi.grosser@amd.com>
32452
32453 * graphite.c (graphite_trans_scop_block): Do not block single
32454 nested loops.
32455
5be1c58c
AO
324562009-01-16 Alexandre Oliva <aoliva@redhat.com>
32457
32458 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
32459 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
32460 test with assertion.
32461
786ce82d
RG
324622009-01-16 Richard Guenther <rguenther@suse.de>
32463
32464 PR tree-optimization/38835
32465 PR middle-end/36227
32466 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
32467 and INT + PTR -> (INT)(PTR p+ INT) folding.
32468 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
32469
c1cb09ad
AN
324702009-01-16 Adam Nemet <anemet@caviumnetworks.com>
32471
32472 PR target/38554
32473 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
32474 the subreg from a lowpart subreg if it is also casting the value.
32475
bcab4e19
SP
324762009-01-16 Sebastian Pop <sebastian.pop@amd.com>
32477 Tobias Grosser <tobi.grosser@amd.com>
32478
32479 * graphite.c (compare_prefix_loops): New.
32480 (build_scop_canonical_schedules): Rewritten.
32481 (graphite_transform_loops): Move build_scop_canonical_schedules
32482 after build_scop_iteration_domain.
32483
0b040072
SP
324842009-01-16 Sebastian Pop <sebastian.pop@amd.com>
32485 Tobias Grosser <tobi.grosser@amd.com>
32486
2ba9daa7 32487 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
32488 the dimension of the iteration domain. Do copy the domain
32489 only when it exists.
32490 (build_scop_conditions_1): Do not call add_conditions_to_domain.
32491 (add_conditions_to_constraints): New.
32492 (can_generate_code_stmt, can_generate_code): Removed.
32493 (gloog): Do not call can_generate_code.
32494 (graphite_transform_loops): Call add_conditions_to_constraints
32495 after building the iteration domain.
32496
56c6a499
JJ
324972009-01-16 Jakub Jelinek <jakub@redhat.com>
32498
32499 PR tree-optimization/38789
32500 * tree-ssa-threadedge.c
32501 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
32502 __builtin_constant_p.
32503
c95b2534 325042009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
32505
32506 * dce.c (delete_unmarked_insns): Reversed the order that insns are
32507 examined before deleting them.
2ba9daa7 32508
c433cb14
RE
325092009-01-16 Richard Earnshaw <rearnsha@arm.com>
32510
32511 * function.c (aggregate_value_p): Correctly extract the function
32512 type from CALL_EXPR_FN lookup.
32513
c95b2534 325142009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
32515
32516 * config/picochip/picochip.c (picochip_override_options): Revert
32517 CFI asm flag disable commited previously.
32518
c77bb78f
SP
325192009-01-15 Sebastian Pop <sebastian.pop@amd.com>
32520 Tobias Grosser <tobi.grosser@amd.com>
32521 Jan Sjodin <jan.sjodin@amd.com>
32522
32523 * graphite.c (scan_tree_for_params): On substractions negate
32524 all the coefficients of the term.
32525 (clast_to_gcc_expression_red): New. Handle reduction expressions
32526 of more than two operands.
32527 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
32528 (get_vdef_before_scop): Handle also the case of default definitions.
32529
574af2d6
RS
325302009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
32531
32532 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
32533 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
32534 Also use them when walking CALL_INSN_FUNCTION_USAGE.
32535
e939805b
L
325362009-01-15 H.J. Lu <hongjiu.lu@intel.com>
32537 Joey Ye <joey.ye@intel.com>
32538
32539 PR middle-end/37843
32540 * cfgexpand.c (expand_stack_alignment): Don't update stack
32541 boundary nor check incoming stack boundary here.
32542 (gimple_expand_cfg): Update stack boundary and check incoming
32543 stack boundary here.
32544
c95b2534 325452009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 32546
435da628 32547 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 32548
0196c95e
JJ
325492009-01-14 Jakub Jelinek <jakub@redhat.com>
32550
32551 PR rtl-optimization/38245
32552 * calls.c (expand_call): Add stack arguments to
32553 CALL_INSN_FUNCTION_USAGE even for pure calls (when
32554 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
32555 in regs and partially in memory or BLKmode arguments.
32556 (emit_library_call_value_1): Add stack arguments to
32557 CALL_INSN_FUNCTION_USAGE even for pure calls (when
32558 ACCUMULATE_OUTGOING_ARGS).
32559 * dce.c: Include tm_p.h.
32560 (find_call_stack_args): New function.
32561 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
32562 argument.
32563 (mark_insn): Call find_call_stack_args for CALL_Ps.
32564 (prescan_insns_for_dce): Walk insns backwards in bb rather than
32565 forwards. Allocate and free arg_stores bitmap if needed, pass it
32566 down to deletable_insn_p, don't mark stores set in arg_stores
32567 bitmap, clear the bitmap at the beginning of each bb.
32568 * Makefile.in (dce.o): Depend on $(TM_P_H).
32569
6df6bcfa
MM
325702009-01-14 Michael Meissner <gnu@the-meissners.org>
32571
32572 PR target/22599
435da628
UB
32573 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
32574 to make sure the insn is a conditional test (bug 22599). Reformat a
32575 few long lines.
6df6bcfa 32576
765ec70c
SP
325772009-01-14 Sebastian Pop <sebastian.pop@amd.com>
32578
32579 PR middle-end/38431
32580 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
32581 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
32582 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 32583 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
32584 scops have been code generated.
32585
7de2b688
BS
325862009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
32587 * doc/gty.texi (Invoking the garbage collector): Added new node
32588 and section documenting ggc_collect.
32589
10bd6c5c
RG
325902009-01-14 Richard Guenther <rguenther@suse.de>
32591
32592 PR tree-optimization/38826
32593 PR middle-end/38477
32594 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
32595 initialization notes only if we actually emitted a warning.
32596 (intra_create_variable_infos): Add constraints for a result decl
32597 that is passed by hidden reference.
32598 (build_pred_graph): Mark all related variables non-direct on
32599 address-taking.
32600
9c7c70ee
NC
326012009-01-14 Nick Clifton <nickc@redhat.com>
32602
32603 * ira-conflicts.c: Include addresses.h for the definition of
32604 base_reg_class.
435da628
UB
32605 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
32606 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 32607
cf0c2a60
VM
326082009-01-13 Vladimir Makarov <vmakarov@redhat.com>
32609
32610 PR target/38811
32611 * Makefile.in (ira-lives.o): Add except.h.
32612
32613 * ira-lives.c: Include except.h.
32614 (process_bb_node_lives): Process can_throw_internal.
32615
d3302fd3
JJ
326162009-01-13 Jakub Jelinek <jakub@redhat.com>
32617
32618 PR rtl-optimization/38774
32619 * combine.c (simplify_set): When undoing cc_use change, don't do
32620 PUT_CODE on the newly created comparison, but instead put back the
32621 old comparison.
32622
7ab23fd0
JM
326232009-01-13 Joseph Myers <joseph@codesourcery.com>
32624
32625 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
32626 values. Remove duplicate arm8 entry.
32627
f9344488
SP
326282009-01-13 Sebastian Pop <sebastian.pop@amd.com>
32629
32630 PR tree-optimization/38786
32631 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
32632 the SSA_NAME case of expand_scalar_variables_expr.
32633 Set the type of an expression to the type of its assign statement.
32634 (expand_scalar_variables_expr): Also gather the scalar computation
32635 used to index the memory access. Do not pass loop_p.
32636 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
32637 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
32638 the gimple_stmt_iterator where it inserts new code.
32639 Do not pass loop_p.
f9344488
SP
32640 (copy_bb_and_scalar_dependences): Do not pass loop_p.
32641 (translate_clast): Update call to copy_bb_and_scalar_dependences.
32642
2d8bb84d
SP
326432009-01-13 Sebastian Pop <sebastian.pop@amd.com>
32644
32645 * graphite.h (debug_value): Removed.
32646 * graphite.c (debug_value): Removed.
32647
ff128632
RE
326482009-01-13 Richard Earnshaw <rearnsha@arm.com>
32649
435da628
UB
32650 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
32651 ldrd/strd with two 32-bit instructions.
ff128632 32652
d5a0a47b
RE
326532009-01-13 Richard Earnshaw <rearnsha@arm.com>
32654
435da628
UB
32655 * config/arm/arm.c (struct processors): Pass for speed down into
32656 cost helper functions.
d5a0a47b
RE
32657 (const_ok_for_op): Handle COMPARE and inequality nodes.
32658 (arm_rtx_costs_1): Rewrite.
32659 (arm_size_rtx_costs): Update prototype.
32660 (arm_rtx_costs): Pass speed down to helper functions.
32661 (arm_slowmul_rtx_costs): Rework cost calculations.
32662 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
32663 (arm_9e_rtx_costs): Likewise.
32664
26d5bf5b
UB
326652009-01-13 Uros Bizjak <ubizjak@gmail.com>
32666
32667 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 32668 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
32669 (alpha_legitimize_address): Do not split local symbols wider than
32670 UNITS_PER_WORD into HIGH/LO_SUM parts.
32671
5d14e3d5
DS
326722009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
32673
32674 PR bootstrap/38580
32675 * gcc.c (process_command): Replace call to execvp with calls
32676 to pex_one and exit.
32677
33faafca
AS
326782009-01-03 Anatoly Sokolov <aesok@post.ru>
32679
32680 PR target/29141
32681 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
32682 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
32683 variant for devices with 3-byte PC.
ba20e309 32684 (__tablejump_elpm__): New.
33faafca 32685
634b5df5
JJ
326862009-01-12 Jakub Jelinek <jakub@redhat.com>
32687
32688 PR c/32041
32689 * c-parser.c (c_parser_postfix_expression): Allow `->' in
32690 offsetof member-designator, handle it as `[0].'.
32691
2842bb86
JDA
326922009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32693
32694 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
32695 function when not using named sections on targets with named sections
32696 if branch distance is less than 262132.
32697
76ee70f6
RE
326982009-01-12 Richard Earnshaw <rearnsha@arm.com>
32699
32700 * combine.c (combine_instructions): Recompute
32701 optimize_this_for_speed_p for each BB in the main combine loop.
32702
f56e675d
TB
327032009-01-12 Tomas Bily <tbily@suse.cz>
32704
32705 PR middlend/38385
26d5bf5b
UB
32706 * tree-loop-distribution.c (prop_phis): New function.
32707 (generate_builtin): Call prop_phis.
f56e675d 32708
c2152239
JJ
327092009-01-12 Jakub Jelinek <jakub@redhat.com>
32710
32711 PR tree-optimization/38807
32712 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
32713 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
32714
0e510b3e
AN
327152009-01-11 Adam Nemet <anemet@caviumnetworks.com>
32716
32717 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
32718 subreg of op0 to the original op0.
32719
c95b2534 327202009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
32721
32722 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 32723
53a7ff9a
MS
327242009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
32725
32726 PR debug/7055
60839f5d 32727 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
32728 starting with digits.
32729
b3a796bc
JJ
327302009-01-10 Jakub Jelinek <jakub@redhat.com>
32731
32732 PR target/38695
32733 * config/arm/arm.c (arm_is_long_call_p): Don't call
32734 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
32735
b21b850e
SB
327362009-01-09 Steven Bosscher <steven@gcc.gnu.org>
32737
32738 * regrename.c (regrename_optimize): Fix dumping.
32739 (find_oldest_value_reg): Preserve REG_POINTER.
32740 (copy_hardreg_forward_1): Likewise.
32741
e0e10d3a
DN
327422009-01-09 Diego Novillo <dnovillo@google.com>
32743
bf9b2cc9 32744 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
32745 the restrictions on its use.
32746 (gimple_uid): Tidy.
32747 (gimple_set_uid): Tidy.
32748
c9da2ae8
JJ
327492009-01-09 Jakub Jelinek <jakub@redhat.com>
32750
32751 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
32752 zero guard even if align_bytes != 0 and count is smaller than
32753 size_needed.
32754
38432148 327552009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
32756
32757 PR rtl-optimization/38495
26d5bf5b 32758 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
32759 (add_range_and_copies_from_move_list): Print all added ranges.
32760 Add ranges to memory optimized destination.
32761
260fda3d
JJ
327622009-01-09 Jakub Jelinek <jakub@redhat.com>
32763
6f6278ad
JJ
32764 PR target/38686
32765 PR target/38708
32766 * config/i386/i386.c (override_options): Reject
32767 -mstringop-strategy=rep_8byte with -m32.
32768 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
32769 to 1. Do count comparison against epilogue_size_needed at compile
32770 time even when count_exp was constant forced into register. For
32771 size_needed don't jump to epilogue, instead just avoid aligning
32772 and invoke the body algorithm. If need_zero_guard, add zero guard
32773 even if count is non-zero, but smaller than size_needed + number of
32774 bytes that could be stored for alignment.
32775 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
32776 to 1. If need_zero_guard, add zero guard even if count is non-zero,
32777 but smaller than size_needed + number of bytes that could be stored
32778 for alignment. Compare size_needed with epilogue_size_needed instead
32779 of desired_align - align, don't adjust size_needed, pass
32780 epilogue_size_needed to the epilogue expanders.
32781
260fda3d 32782 PR c/35742
26d5bf5b 32783 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 32784
67b846fa
JDA
327852009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32786
32787 * pa.c (last_address): Change to unsigned.
32788 (update_total_code_bytes): Change argument to unsigned. Don't
32789 check if insn addresses are set.
32790 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
32791 addresses are not set.
32792 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
32793
91c82473
NC
327942009-01-09 Nick Clifton <nickc@redhat.com>
32795
32796 * config/sh/symbian.c: Replace uses of DECL_INLINE with
32797 DECL_DECLARED_INLINE_P.
32798
4017e262
JJ
327992009-01-09 Jakub Jelinek <jakub@redhat.com>
32800
0a49e5c2
JJ
32801 PR middle-end/38347
32802 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
32803 GET_MODE (op0) in operand_subword_force calls.
32804
4017e262
JJ
32805 PR middle-end/38771
32806 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
32807 fold_convert arg0 operands to TREE_TYPE (op0) first.
32808
7cd06356
VM
328092009-01-08 Vladimir Makarov <vmakarov@redhat.com>
32810
32811 * params.def (ira-max-conflict-table-size): Decrease default value
32812 to 1000.
32813
96867bbd
JJ
328142009-01-08 Jakub Jelinek <jakub@redhat.com>
32815
32816 PR tree-optimization/37031
32817 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
32818 on parameter_set.
32819 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
32820 allocate it using gc instead of heap, use VEC_quick_push instead of
32821 VEC_safe_push.
32822 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
32823 instead of heap, use VEC_quick_push instead of VEC_safe_push.
32824 * tree-data-ref.h (struct access_matrix): Change matrix to gc
32825 allocated vector from heap allocated.
32826 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
32827 * tree-loop-linear.c (linear_transform_loops): Allocate nest
32828 vector only after perfect_loop_nest_depth call.
32829
68f61c3d
SP
328302009-01-08 Sebastian Pop <sebastian.pop@amd.com>
32831 Jan Sjodin <jan.sjodin@amd.com>
32832
32833 PR tree-optimization/38559
32834 * graphite.c (debug_value, copy_constraint,
32835 swap_constraint_variables, scale_constraint_variable, ): New.
32836 (get_lower_bound, get_upper_bound): Removed.
32837 (graphite_trans_bb_strip_mine): Clean up this code that works
32838 only for constant number of iterations. Fully copy upper and
32839 lower bound constraints, not only the constant part of them.
32840 * graphite.h (debug_value): Declared.
32841
82567e33
IR
328422009-01-08 Ira Rosen <irar@il.ibm.com>
32843
32844 PR tree-optimization/37194
32845 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 32846 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
32847 outside cost in case of known number of iterations.
32848
7da13f1d
NF
328492009-01-07 Nathan Froyd <froydnj@codesourcery.com>
32850 Alan Modra <amodra@bigpond.net.au>
32851
32852 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
32853 non-word-aligned REG+CONST addressing.
32854
c0f64575
UB
328552009-01-07 Uros Bizjak <ubizjak@gmail.com>
32856
32857 PR target/38706
32858 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
32859 free_after_compilation when outputting a thunk.
32860 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
32861 Do not call free_after_compilation here.
32862
301b6a4e
UB
328632009-01-07 Uros Bizjak <ubizjak@gmail.com>
32864
32865 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
32866 (ix86_valid_target_attribute_inner_p): Ditto.
32867
6a114766
JS
328682009-01-07 Jan Sjodin <jan.sjodin@amd.com>
32869
32870 PR tree-optimization/38492
32871 PR tree-optimization/38498
32872 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
32873 * tree-chrec.h (scev_is_linear_expression): Declared.
32874 * graphite.c (graphite_cannot_represent_loop_niter): New.
32875 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
32876 (graphite_loop_normal_form): Use gcc_assert.
32877 (scan_tree_for_params): Use CASE_CONVERT.
32878 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
32879 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
32880 Use gcc_assert. Discard scops that contain unhandled cases.
32881 (build_scop_conditions): Return a boolean status for unhandled cases.
32882 (strip_mine_profitable_p): Print the loop number, not its depth.
32883 (is_interchange_valid): Pass the depth of the loop nest, don't
32884 recompute it wrongly.
32885 (graphite_trans_bb_block): Same.
32886 (graphite_trans_bb_block): Print tentative of loop blocking.
32887 (graphite_trans_scop_block): Do not print that the loop has been
32888 blocked.
32889 (graphite_transform_loops): Do not handle scops that contain condition
32890 scalar phi nodes.
32891
65b82caa
L
328922009-01-07 H.J. Lu <hongjiu.lu@intel.com>
32893
32894 AVX Programming Reference (December, 2008)
32895 * config/i386/avxintrin.h (_mm256_stream_si256): New.
32896 (_mm256_stream_pd): Likewise.
32897 (_mm256_stream_ps): Likewise.
32898
32899 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
32900 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
32901 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
32902 (bdesc_special_args): Add __builtin_ia32_movntdq256,
32903 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
32904 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
32905 (ix86_expand_special_args_builtin): Likewise.
32906
32907 * config/i386/sse.md (AVXMODEDI): New.
32908 (avx_movnt<mode>): Likewise.
32909 (avx_movnt<mode>): Likewise.
32910 (<sse>_movnt<mode>): Remove AVX support.
32911 (sse2_movntv2di): Likewise.
32912
cef158f9
RG
329132009-01-07 Richard Guenther <rguenther@suse.de>
32914
32915 PR middle-end/38751
32916 * fold-const.c (extract_muldiv): Remove obsolete comment.
32917 (fold_plusminus_mult_expr): Undo MINUS_EXPR
32918 to PLUS_EXPR canonicalization for the canonicalization.
32919
246cb5be
GP
329202009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
32921
32922 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
32923 hosted cross-compilers generating less efficient code.
32924
84b9b872
RS
329252009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
32926
32927 * function.h (rtl_data): Add a dbr_scheduled_p field.
32928 * reorg.c (dbr_schedule): Set it.
32929 (gate_handle_delay_slots): Check it.
32930 * config/mips/mips.c (mips_base_delayed_branch): Delete.
32931 (mips_reorg): Check flag_delayed_branch instead of
32932 mips_base_delayed_branch.
32933 (mips_override_options): Don't set mips_base_delayed_branch
32934 or flag_delayed_branch.
32935
ace984c8
RS
329362009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
32937
32938 PR rtl-optimization/38426.
32939 * ira.c (ira): Set current_function_is_leaf earlier.
32940
7ad7809b
JJ
329412009-01-06 Jakub Jelinek <jakub@redhat.com>
32942
32943 PR rtl-optimization/38722
32944 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
32945 too early, only set a flag and modify after last possible
32946 undo_all point.
32947
c52ec948
JJ
329482009-01-06 Janis Johnson <janis187@us.ibm.com>
32949
32950 PR c/34252
32951 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
32952 * real.c (decimal_single_format): Correct values of emin and emax.
32953 (decimal_double_format): Ditto.
32954 (decimal_quad_format): Ditto.
32955 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
32956 computation of DECnn_MIN and DECnn_MAX for corrected values of
32957 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
32958 __DECnn_MIN__, and adjust its computation for the corrected value
32959 of emin.
32960
300240e1
JH
329612009-01-06 Jan Hubicka <jh@suse.cz>
32962
32963 PR target/38744
435da628 32964 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 32965
271c069e
GP
329662009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
32967
32968 * doc/contrib.texi (Contributors): Slightly adjust the end note.
32969 Add Robert Clark to the list of testers.
32970
64e4c301 329712009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 32972 Kai Tietz <kai.tietz@onevision.com>
64e4c301 32973
435da628
UB
32974 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
32975 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 32976
7650b83e 329772009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 32978 Kai Tietz <kai.tietz@onevision.com>
7650b83e 32979
435da628
UB
32980 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
32981 for w64 ABI.
32982 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
32983 (ix86_nsaved_regs): Count only general purpose regs.
32984 (ix86_nsaved_sseregs): New.
32985 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
32986 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
32987 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
32988 general purpose regs.
7650b83e
JH
32989 (ix86_emit_save_sse_regs_using_mov): New.
32990 (ix86_expand_prologue): Save SSE regs if needed.
32991 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
32992 (ix86_emit_restore_sse_regs_using_mov): New.
32993 (ix86_expand_epilogue): Save SSE regs if needed.
32994
9aa5c1b2 329952009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 32996 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 32997
435da628
UB
32998 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
32999 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
33000 functions when accumulate outgoing args is off.
9aa5c1b2 33001
f7556aae
L
330022009-01-06 H.J. Lu <hongjiu.lu@intel.com>
33003
33004 PR bootstrap/38742
33005 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
33006 before using pseudos_have_intersected_live_ranges_p.
33007
33008 * ira-int.h (ira_assert): Always define.
33009
e47b7d04
L
330102009-01-06 H.J. Lu <hongjiu.lu@intel.com>
33011
33012 AVX Programming Reference (December, 2008)
33013 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
33014 (_mm256_permute2_pd): Likewise.
33015 (_mm_permute2_ps): Likewise.
33016 (_mm256_permute2_ps): Likewise.
33017 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
33018 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
33019
33020 * config/i386/i386.c (ix86_builtins): Remove
33021 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
33022 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
33023 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
33024 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
33025 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
33026 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
33027 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
33028 __builtin_ia32_vpermil2ps256.
33029 (ix86_init_mmx_sse_builtins): Updated.
33030 (ix86_expand_args_builtin): Likewise.
33031
44b86471
JDA
330322009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33033
e47b7d04
L
33034 * pa.c (output_call): Relocate non-jump insns in the delay slot of
33035 long absolute calls when generating PA 2.0 code.
44b86471 33036
311aab06
VM
330372009-01-05 Vladimir Makarov <vmakarov@redhat.com>
33038
33039 PR rtl-optimization/38583
33040 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
33041
33042 * params.def (ira-max-conflict-table-size): New.
33043
33044 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 33045
311aab06 33046 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 33047
311aab06
VM
33048 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
33049 table. Report this. Return result of building.
33050 (ira_build_conflicts): Use ira_conflicts_p. Check result of
33051 building conflict table.
33052
301b6a4e 33053 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 33054 (ira_color): Use ira_conflicts_p.
2ba9daa7 33055
311aab06
VM
33056 * global.c: Include ira.h.
33057 (pseudo_for_reload_consideration_p, build_insn_chain): Use
33058 ira_conflicts_p.
33059
33060 * Makefile.in (global.o): Add ira.h.
2ba9daa7 33061
311aab06
VM
33062 * ira-build.c (mark_all_loops_for_removal,
33063 propagate_some_info_from_allocno): New.
33064 (remove_unnecessary_allocnos): Call
33065 propagate_some_info_from_allocno.
33066 (remove_low_level_allocnos): New.
33067 (remove_unnecessary_regions): Add parameter. Call
33068 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
33069 parameter to remove_unnecessary_regions.
33070 (ira_build): Remove all regions but root if the conflict table was
33071 not built. Update conflict hard regs for allocnos crossing calls.
33072
33073 * ira.c (ira_conflicts_p): New global.
33074 (ira): Define and use ira_conflicts_p.
33075
33076 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
33077 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 33078 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 33079
5641785f
BE
330802009-01-06 Ben Elliston <bje@au.ibm.com>
33081
33082 * gengtype-lex.l (YY_NO_INPUT): Define.
33083
e4e5261f
AP
330842009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
33085
33086 PR c/34911
5641785f
BE
33087 * c-common.c (handle_vector_size_attribute): Also reject
33088 BOOLEAN_TYPE types.
e4e5261f 33089
7b10257f
SP
330902009-01-05 Sebastian Pop <sebastian.pop@amd.com>
33091
33092 PR tree-optimization/38492
33093 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
33094 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
33095 rename_map_elt_info, eq_rename_map_elts,
33096 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
33097 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
33098 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
33099 (sese_build_livein_liveouts): New.
33100 (new_sese, free_sese): New.
33101 (new_scop): Call new_sese.
33102 (free_scop): Call free_sese.
33103 (rename_variables_from_edge, rename_phis_end_scop): Removed.
33104 (register_old_new_names): Renamed register_old_and_new_names.
33105 (register_scop_liveout_renames, add_loop_exit_phis,
33106 insert_loop_close_phis, struct igp,
33107 default_liveout_before_guard, add_guard_exit_phis,
33108 insert_guard_phis, copy_renames): New.
33109 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
33110 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
33111 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
33112 (scop_adjust_phis_for_liveouts): New.
33113 (gloog): Call scop_adjust_phis_for_liveouts.
33114
33115 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 33116 num_ver and livein.
7b10257f
SP
33117 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
33118 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
33119 (struct scop): Added field liveout_renames.
33120 (SCOP_LIVEOUT_RENAMES): New.
33121
9761fcc7
HJ
331222009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
33123
33124 PR tree-optimization/38510
33125 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
33126 (translate_clast): Call recompute_all_dominators before
33127 graphite_verify.
33128 (gloog): Call recompute_all_dominators before graphite_verify.
33129
331302009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 33131 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
33132
33133 PR tree-optimization/38500
33134 * graphite.c (create_sese_edges): Call fix_loop_structure after
33135 splitting blocks.
33136
c95b2534 331372009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
33138
33139 * config.gcc: Add m32r*-*-rtems*.
33140 * config/m32r/rtems.h: New file.
33141
fc0cd180
BE
331422009-01-05 Ben Elliston <bje@au.ibm.com>
33143
33144 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
33145 (.po.pox): Likewise.
33146 (po/gcc.pot): Likewise.
33147
3106d8e5
DM
331482009-01-04 David S. Miller <davem@davemloft.net>
33149
33150 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
33151 (STARTING_FRAME_OFFSET): Always set to zero.
33152
0009b473
RS
331532009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
33154
33155 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
33156 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
33157 fixed-point types, and vectors of the same.
33158
4f24c6d6
RS
331592009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
33160
33161 * config/mips/sync.md (*mb_barrier): Rename to...
33162 (*memory_barrier): ...this.
33163
1df48f5c
JW
331642009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
33165
33166 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 33167 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
33168 and put in alphabetical order. Fix 'target' name and put in order.
33169 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
33170 typos.
33171
1a8c13b3
UB
331722009-01-04 Uros Bizjak <ubizjak@gmail.com>
33173
33174 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
33175 (memory_barrier): Expand as unspec instead of unspec_volatile.
33176 Remove mem:BLK from insn operands. Use Pmode scratch register.
33177 (*memory_barrier): Define as unspec instead of unspec_volatile.
33178 Use (match_dup 0) as input operand.
33179
33180 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
33181 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
33182 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
33183 scratch register. Remove operand 1.
33184 (*stbar): Define as unspec instead of unspec_volatile.
33185 Use (match_dup 0) as input operand, remove (const_int 8).
33186 (*membar): Define as unspec instead of unspec_volatile.
33187 Use (match_dup 0) as input operand, remove input operand 2.
33188
33189 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
33190 (memory_barrier): Expand as unspec instead of unspec_volatile.
33191 Remove mem:BLK from insn operands. Use Pmode scratch register.
33192 (*memory_barrier): Define as unspec instead of unspec_volatile.
33193 Use (match_dup 0) as input operand.
33194
33195 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
33196 Remove mem:BLK from insn operands. Use Pmode scratch register.
33197 Set volatile flag on operand 0.
33198 (*memory_barrier): New insn pattern.
33199
33200 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
33201 insn operands.
33202 (*memory_barrier): Use (match_dup 0) as input operand.
33203
33204 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
33205 Remove mem:BLK from insn operands. Use Pmode scratch register.
33206 Set volatile flag on operand 0.
301b6a4e 33207 (*mb_internal): New insn pattern.
1a8c13b3
UB
33208
33209 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
33210
fb0703f7
SB
332112009-01-04 Steven Bosscher <steven@gcc.gnu.org>
33212
33213 PR middle-end/38586
33214 * function.c (struct temp_slot): Move to the section of the file
33215 that deals with temp slots. Remove field 'address'.
33216 (temp_slot_address_table): New hash table of address -> temp slot.
33217 (struct temp_slot_address_entry): New struct, items for the table.
33218 (temp_slot_address_compute_hash, temp_slot_address_hash,
33219 temp_slot_address_eq, insert_temp_slot_address): Support functions
33220 for the new table.
33221 (find_temp_slot_from_address): Rewrite to use the new hash table.
33222 (remove_unused_temp_slot_addresses): Remove addresses of temp
33223 slots that have been made available.
33224 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
33225 worker function for remove_unused_temp_slot_addresses.
33226 (assign_stack_temp_for_type): Don't clear the temp slot address list.
33227 Add the temp slot address to the address -> temp slot map.
33228 (update_temp_slot_address): Update via insert_temp_slot_address.
33229 (free_temp_slots): Call remove_unused_temp_slot_addresses.
33230 (pop_temp_slots): Likewise.
33231 (init_temp_slots): Allocate the address -> temp slot map, or empty
33232 the map if it is already allocated.
33233 (prepare_function_start): Initialize temp slot processing.
33234
b5a430f3
SB
332352009-01-04 Steven Bosscher <steven@gcc.gnu.org>
33236
33237 PR middle-end/38584
33238 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
33239 Calculate the size of all stack vars assuming no packing of stack
33240 vars will happen, replacing a quadratic algorithm with a linear one.
33241
5d560619
JJ
332422009-01-03 Jakub Jelinek <jakub@redhat.com>
33243
33244 PR target/38707
33245 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
33246 can't be used.
33247
953a7caa
DN
332482009-01-03 Diego Novillo <dnovillo@google.com>
33249
33250 * doc/contrib.texi: Update contributions.
33251
5f26a230
JJ
332522009-01-03 Jakub Jelinek <jakub@redhat.com>
33253
493aa551
JJ
33254 PR c++/38705
33255 * builtins.c (fold_builtin_memory_op): Give up if either operand
33256 is volatile. Set srctype or desttype to non-qualified version
33257 of the other type.
33258
5f26a230
JJ
33259 PR c/38700
33260 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
33261 and FUNCTION_DECLs.
33262
c95b2534 332632009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
33264
33265 PR rtl-optimization/35805
33266 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
33267 problem if fast dce is able to remove any instructions.
33268 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 33269
0b355794
MM
332702009-01-02 Mark Mitchell <mark@codesourcery.com>
33271
33272 PR 33649
33273 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
33274
0cf0d02b
JJ
332752009-01-02 Jakub Jelinek <jakub@redhat.com>
33276
33277 PR middle-end/38690
33278 * tree-flow.h (op_code_prio, op_prio): New prototypes.
33279 * tree-pretty-print.c (op_code_prio): New function.
33280 (op_prio): No longer static. Use op_code_prio.
33281 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
33282 Use op_prio and op_code_prio to determine if () should be
33283 printed around operand(s) or not.
33284
33285 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
33286 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
33287 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
33288 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
33289 pp_character instead of pp_string for single letter printing.
33290
e3606f3b
RS
332912009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
33292
33293 * doc/extend.texi: Fix '#pragma GCC option' typo.
33294
c95b2534 332952009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 33296
a5f061dc
RG
33297 * doc/install.texi (--enable-checking): Mention different
33298 default for stage1.
33299 (--enable-stage1-checking): Document.
00f39bd5 33300
26de0bcb
AP
333012009-01-01 Andrew Pinski <pinskia@gmail.com>
33302
33303 PR middle-end/30142
33304 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
33305 case to be an error.
33306
7a7d8fab
BE
333072009-01-02 Ben Elliston <bje@au.ibm.com>
33308
33309 * config/fp-bit.h (pack_d): Constify argument.
33310 * config/fp-bit.c (makenan): Constify return type. Remove casts.
33311 (isnan): Constify argument.
33312 (isinf): Likewise.
33313 (iszero): Likewise.
33314 (pack_d): Likewise.
33315 (_fpadd_parts): Constify return type.
33316 (_fpmul_parts): Likewise.
33317 (_fpdiv_parts): Likewise.
33318
b295aee2
JJ
333192009-01-01 Jakub Jelinek <jakub@redhat.com>
33320
33321 PR c/36489
33322 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
33323 warn about overwriting initializer with side-effects or
33324 -Woverride-init if !IMPLICIT.
33325 (output_init_element): Likewise. Pass IMPLICIT down to
33326 add_pending_init.
33327 (process_init_element): Add IMPLICIT argument. Pass it down
33328 to output_init_element.
33329 (push_init_element, pop_init_level, set_designator): Adjust
33330 process_init_element callers.
33331 (set_nonincremental_init, set_nonincremental_init_from_string):
33332 Adjust add_pending_init callers.
33333 (output_pending_init_elements): Adjust output_init_element callers.
33334 * c-tree.h (process_init_element): Adjust prototype.
33335 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
33336 process_init_element callers.
ad41bd84
JM
33337
33338\f
33339Copyright (C) 2009 Free Software Foundation, Inc.
33340
33341Copying and distribution of this file, with or without modification,
33342are permitted in any medium without royalty provided the copyright
33343notice and this notice are preserved.