]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
175ddbd8 12008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
2
3 * config/s390/s390.h: Remove the remains of the recent search
4 & replace action of current_function_outgoing_args_size.
5
5c919262 62008-04-10 Ira Rosen <irar@il.ibm.com>
7
8 PR tree-optimization/35821
9 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
10 NEW_STMT_LIST is not NULL.
11
f3b662a5 122008-04-09 David Edelsohn <edelsohn@gnu.org>
13
14 PR libstdc++/35597
15 * toplev.c (process_options): Remove -ffunction-sections debugging
16 warning.
17
eeadedeb 182008-04-09 Peter Bergner <bergner@vnet.ibm.com>
19
20 PR middle-end/PR28690
21 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
22 than gen_rtx_fmt_ee to perform more canonicalizations.
23
c4c94b80 242008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25
26 PR driver/35665
27 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
28
04ba083d 292008-04-09 Richard Guenther <rguenther@suse.de>
30
31 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
32 (dump_function_to_file): Dump function arguments with types.
33
ff5dd140 342008-04-08 Richard Guenther <rguenther@suse.de>
35
36 * fold-const.c (fold_widened_comparison): Do not allow
37 sign-changes that change the result.
38
d44615ce 392008-04-08 Janis Johnson <janis187@us.ibm.com>
40
41 PR target/35839
42 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
43 kinds of indirect references.
44
b3b9cde3 452008-04-08 David Edelsohn <edelsohn@gnu.org>
46
47 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
48 GNU Fortran language string.
49
18f22ec3 502008-04-08 Rafael Espindola <espindola@google.com>
51
52 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
53 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
54 * tree.h (tree_call_nonnegative_warnv_p): New.
55
a9f6414b 562008-04-08 Jan Hubicka <jh@suse.cz>
57
58 * function.c (free_after_compilation): Clear out regno_reg_rtx
59 pointer.
60
d7cbf087 612008-04-08 Peter Bergner <bergner@vnet.ibm.com>
62
63 Revert
64 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
65
66 PR middle-end/PR28690
67 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
68 same precedence as REG_POINTER and MEM_POINTER operands.
69
63a29e85 702008-04-08 Richard Guenther <rguenther@suse.de>
71
72 PR middle-end/35834
73 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
74 for adding index to base.
75
11d6399c 762008-04-08 Kai Tietz <kai.tietz@onevision.com>
77
78 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
79 (MINGW_ENABLE_EXECUTE_STACK): New.
80 (IN_LIBGCC2): For libgcc include windows.h file for
81 function declarations.
82
fbedf334 832008-04-08 Hans-Peter Nilsson <hp@axis.com>
84
85 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
86 and tem2 if tem1 is not a REG or MULT.
87
abe32cce 882008-04-08 Jan Hubicka <jh@suse.cz>
89
90 * function.h (incomming_args): Break out of struct function.
91 (function_subsections): Break out of struct function.
92 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
93 return_rtx and hard_reg_initial_vals from struct function.
94 Kill inl_max_label_num.
95 (current_function_pops_args, current_function_args_info,
96 current_function_args_size, current_function_args_size,
97 current_function_pretend_args_size,
98 current_function_outgoing_args_size,
99 current_function_internal_arg_pointer, current_function_return_rtx):
100 Kill compatibility accestor macros.
101 * builtins.c (expand_builtin_apply_args_1): Update.
102 (expand_builtin_next_arg): Update.
103 * df-scan.c (df_get_call_refs): Update.
104 * dbxout.c (dbxout_function_end): Update.
105 * dwarf2out.c (dwarf2out_switch_text_section): Update.
106 (output_line_info): Update.
107 (secname_for_decl): Update.
108 (dwarf2out_var_location): Update.
109 * function.c (free_after_compilation): Update.
110 (assign_parm_find_stack_rtl): Update.
111 (assign_parms): Update.
112 (expand_dummy_function_end): Update.
113 (expand_function_end): Update.
114 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
115 (expand_call): Update.
116 (emit_library_call_value_1): Update.
117 (store_one_arg): Update.
118 * varasm.c (initialize_cold_section_name): Update.
119 (unlikely_text_section): Update.
120 (unlikely_text_section_p): Update.
121 (assemble_start_function): Update.
122 (assemble_end_function): Update.
123 (default_section_type_flags): Update.
124 (switch_to_section): Update.
125 * integrate.c (set_decl_abstract_flags): Update.
126 (get_hard_reg_initial_val): Update.
127 (has_hard_reg_initial_val): Update.
128 (allocate_initial_values): Update.
129 * resource.c (init_resource_info): Update.
130 * config/alpha/alpha.c (NUM_ARGS): Update.
131 (direct_return): Update.
132 (alpha_va_start): Update.
133 (alpha_sa_size): Update.
134 (alpha_initial_elimination_offset): Update.
135 (alpha_expand_prologue): Update.
136 (alpha_start_function): Update.
137 (alpha_expand_epilogue): Update.
138 (unicosmk_initial_elimination_offset):
139 * config/alpha/alpha.md (call expander): Update.
140 * config/s390/s390.c (s390_register_info): Update.
141 (s390_register_info): Update.
142 (s390_frame_info): Update.
143 (s390_initial_elimination_offset): Update.
144 (s390_build_builtin_va_list): Update.
145 (s390_va_start): Update.
146 * config/spu/spu.c (direct_return): Update.
147 (spu_expand_prologue): Update.
148 (spu_initial_elimination_offset): Update.
149 (spu_build_builtin_va_list): Update.
150 (spu_va_start): Update.
151 * config/sparc/sparc.c (sparc_init_modes): Update.
152 (sparc_compute_frame_size): Update.
153 (function_value): Update.
154 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
155 * config/i386/i386.md (return expander): Update.
156 * config/i386/i386.c (ix86_va_start): Update.
157 (ix86_can_use_return_insn_p): Update.
158 (ix86_compute_frame_layout): Update.
159 (ix86_expand_epilogue): Update.
160 * config/sh/sh.c (output_stack_adjust): Update.
161 (calc_live_regs): Update.
162 (sh_expand_prologue): Update.
163 (sh_builtin_saveregs): Update.
164 (sh_va_start): Update.
165 (initial_elimination_offset): Update.
166 (sh_allocate_initial_value): Update.
167 (sh_function_ok_for_sibcall): Update.
168 (sh_get_pr_initial_val): Update.
169 * config/sh/sh.md (return expander): Update.
170 * config/avr/avr.c (frame_pointer_required_p): UPdate.
171 * config/crx/crx.c (crx_compute_frame): UPdate.
172 (crx_initial_elimination_offset): UPdate.
173 * config/xtensa/xtensa.c (compute_frame_size): Update
174 (xtensa_builtin_saveregs): Update.
175 (xtensa_va_start): Update.
176 (order_regs_for_local_alloc): Update.
177 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
178 (xstormy16_expand_builtin_va_start): Update.
179 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
180 * config/m68hc11/m68hc11.md (return expanders): Update.
181 * config/m68hc11/m68hc11.c (expand_prologue): Update.
182 (expand_epilogue): Update.
183 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
184 (cris_simple_epilogue): Update.
185 (cris_expand_prologue): Update.
186 (cris_expand_epilogue): Update.
187 * config/iq2000/iq2000.c (iq2000_va_start): Update.
188 (compute_frame_size): Update.
189 * config/mt/mt.c (mt_compute_frame_size): Update.
190 * config/mn10300/mn10300.c (expand_prologue): Update.
191 (expand_epilogue): Update.
192 (initial_offset): Update.
193 (mn10300_builtin_saveregs):
194 * config/mn10300/mn10300.md (return expander): Update.
195 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
196 (ia64_initial_elimination_offset): Update.
197 (ia64_initial_elimination_offset): Update.
198 (ia64_expand_prologue): Update.
199 * config/m68k/m68k.md (return expander): Update.
200 * config/rs6000/rs6000.c (rs6000_va_start): Update.
201 (rs6000_stack_info): Update.
202 * config/mcore/mcore.c (layout_mcore_frame): Update.
203 (mcore_expand_prolog): Update.
204 * config/arc/arc.c (arc_compute_frame_size): Update.
205 * config/score/score3.c (score3_compute_frame_size): Update.
206 * config/score/score7.c (score7_compute_frame_size): Update.
207 * config/arm/arm.c (use_return_insn): Update.
208 (thumb_find_work_register): Update.
209 (arm_compute_save_reg_mask): Update.
210 (arm_output_function_prologue): Update.
211 (arm_output_epilogue): Update.
212 (arm_size_return_regs): Update.
213 (arm_get_frame_offsets): Update.
214 (arm_expand_prologue): Update.
215 (thumb_exit): Update.
216 (thumb_unexpanded_epilogue): Update.
217 (thumb1_output_function_prologue): Update.
218 * config/pa/pa.md (return expander): Update.
219 * config/pa/pa.c (compute_frame_size): Update.
220 (hppa_builtin_saveregs): Update.
221 * config/mips/mips.c (mips_va_start): Update.
222 (mips16_build_function_stub): Update.
223 (mips_compute_frame_info): Update.
224 (mips_restore_gp): Update.
225 (mips_output_function_prologue): Update.
226 (mips_expand_prologue): Update.
227 * config/v850/v850.c (compute_frame_size): Update.
228 (expand_prologue): * config/mmix/mmix.c (along): update.
229 (mmix_initial_elimination_offset): update.
230 (mmix_reorg): update.
231 (mmix_use_simple_return): update.
232 (mmix_expand_prologue): update.
233 (mmix_expand_epilogue): Update.
234 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
235 (emit_link_insn): Update.
236
cb373d8c 2372008-04-08 Anatoly Sokolov <aesok@post.ru>
238
239 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
240 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
241 instructions.
242 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
243 atmega103 device.
244
fd6ffb7c 2452008-04-07 Jan Hubicka <jh@suse.cz>
246
247 * function.h (rtl): Rename to x_rtl.
248 (crtl): New define.
249 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
250 frame_offset, stack_check_probe_note, arg_pointer_save_area,
251 used_temp_slots avail_temp_slots, temp_slot_level,
252 nonlocal_goto_handler_labels): Update accesstors.
253 (rtl): New global variable.
254 (struct function): Move some fileds to rtl_data.
255 (get_arg_pointer_save_area): Update prototype.
256 * builtins.c (expand_builtin_setjmp_receiver): Update call of
257 get_arg_pointer_save_area.
258 * expr.c (init_expr): Update
259 * function.c (get_frame_size): Update
260 (assign_stack_local): Update
261 (expand_function_end): Update.
262 (get_art_pointer_save_area): Update
263 * function.h
264 * emit-rtl.c (rtl): Declare.
265 (regno_reg_rtx): Declare.
266 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
267 Update.
268 (gen_reg_rtx): Update.
269 * varasm.c (n_deferred_constatns): Update accestor.
270 (init_varasm_status): Do not allocate varasm_status.
271 (force_const_mem, get_pool_size, output_constant_pool): Update.
272 * stmt.c (force_label_rtx): Do not use x_ prefixes.
273 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
274 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
275 * sparc/sparc.h (INIT_EXPANDERS): Update.
276 * ia64/ia64.h (INIT_EXPANDERS): Update.
277
92d21e32 2782008-04-07 James E. Wilson <wilson@tuliptree.org>
279
280 * reload.c (push_secondary_reload): Add missing break to for loop.
281
ae12ddda 2822008-04-07 Peter Bergner <bergner@vnet.ibm.com>
283
284 PR middle-end/PR28690
285 * rtlanal.c: Update copyright years.
286 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
287 as REG_POINTER and MEM_POINTER operands.
288 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
289 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
290 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
291 * gcse.c: Update copyright years.
292 (pre_delete): Call gen_reg_rtx_and_attrs.
293 (hoist_code): Likewise.
294 (build_store_vectors): Likewise.
295 (delete_store): Likewise.
296 * loop-invariant.c (move_invariant_reg): Likewise.
297 Update copyright years.
298
ae3049cd 2992008-04-07 Uros Bizjak <ubizjak@gmail.com>
300
301 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
302 control string instead of quoted.
303
6cbc0aeb 3042008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
305
ae3049cd 306 * doc/rtl.texi: Rewrite of subreg section.
307
814cfa37 3082008-04-07 Kai Tietz <kai.tietz@onevision.com>
309
ae3049cd 310 PR/35842
311 * config/i386/i386.c (legitimize_pic_address): Add treating
312 of dllimport SYM_REF's.
313 (legitimize_dllimport_symbol): Add prototype.
814cfa37 314
27e9f331 3152008-04-07 Eric Botcazou <ebotcazou@adacore.com>
316
317 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
318 reference in constructor with non self-referential type.
319
ff3ae375 3202008-04-07 Eric Botcazou <ebotcazou@adacore.com>
321
322 Removal of Return with Depressed Stack Pointer support
323 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
324 (ECF_SP_DEPRESSED): Likewise.
325 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
326 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
327 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
328 (expand_call): Do not test ECF_SP_DEPRESSED.
329 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
330 * function.c (keep_stack_depressed): Delete.
331 (handle_epilogue_set): Likewise.
332 (update_epilogue_consts): Likewise.
333 (emit_equiv_load): Likewise.
334 (thread_prologue_and_epilogue_insns): Remove support for Return with
335 Depressed Stack Pointer.
336 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
337
48674266 3382008-04-06 Richard Guenther <rguenther@suse.de>
339
340 PR tree-optimization/35400
341 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
342 information from SSA_NAMEs.
343
4f0e2214 3442008-04-06 Anatoly Sokolov <aesok@post.ru>
345
346 * config/avr/avr.h (avr_mega_p): Remove declaration.
347 (AVR_MEGA): Remove macro.
348 * config/avr/avr.c (avr_mega_p): Remove variable.
349 (avr_override_options): Remove inicializion of avr_mega_p.
350 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
351 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
352 (avr_jump_mode): (Ditto.).
353 (avr_output_progmem_section_asm_op): (Ditto.).
354 (avr_asm_init_sections): (Ditto.).
355 (avr_asm_init_sections): (Ditto.).
356 (avr_rtx_costs): (Ditto.).
357 * config/avr/avr.md: (Ditto.).
358 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
359 '__AVR_MEGA__'.
360
d8b498d3 3612008-04-06 Richard Guenther <rguenther@suse.de>
362
363 PR tree-optimization/35842
364 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
365 is_gimple_invariant_address.
366
00c6e780 3672008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
368
369 * gcc.c (default_compilers): Sync Fortran extensions list with
370 that in fortran/lang-specs.h.
371 * doc/invoke.texi: Likewise.
372 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
373 * dwarf2out.c (gen_compile_unit_die): Likewise.
374
58f96ec3 3752008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
376
377 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
378
e1dbffbf 3792008-04-05 Uros Bizjak <ubizjak@gmail.com>
380
381 PR target/12329
382 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
383 attribute is used for nested functions.
384
5d48fdb4 3852008-04-05 Jan Hubicka <jh@suse.cz>
386
3eedda05 387 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
388
5d48fdb4 389 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
390 letter argument.
391 (dump_files): Update.
392 (enable_rtl_dump_file): Do not accept letter argument.
393 * tree-pass.h (dump_file_info): Remove letter argument.
394 * toplev.c (decode_d_option): Update -da handling.
395 * toplev.h (enable_rtl_dump_file): Update prototype.
396 * passes.c (register_one_dump_file): Do not accept IPA argument; work
397 it out based on pass type.
398 (register_dump_files_1): Likewise.
399 (init_optimization_passes): Update register_one_dump_file calls.
e1dbffbf 400 (execute_one_pass): Sanity check that IPA passes are called at IPA
401 level and RTL passes at RTL level.
5d48fdb4 402 (execute_pass_list): IPA pass can not be after or subpass of
403 GIMPLE/RTL pass.
404 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
405 disallov RTL subpasses of IPA subpasses.
406
eb5bb63e 4072008-04-05 Ben Elliston <bje@au.ibm.com>
408
409 * tree-cfg.c (need_fake_edge_p): Return false for calls to
410 builtins that return exactly once and do not throw. Cache call to
411 call_expr_flags.
412
67f57040 4132008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
414
415 PR rtl-optimization/34916
416 PR middle-end/35519
417 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
418 between instruction pairs.
419
96a7f216 4202008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
421
422 * doc/invoke.texi: Document -mbitops for SH.
423 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
424 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
425 * config/sh/sh.c (print_operand): Add %t operand code.
426 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
427 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
428 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
429 (extendqihi2): Likewise.
430 (movqi_i): Likewise.
431 (insv): Use bset, bclr and bst instructions for SH2A if possible.
432 (extv): Use bld instruction for SH2A if possible.
433 (extzv): Likewise.
434 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
435 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
436 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
437 (bset.b, bclr.b): Define peepholes.
438 * config/sh/sh.opt (mbitops): New option.
439
d35d5b75 4402008-04-04 Janis Johnson <janis187@us.ibm.com>
441
442 PR target/35620
443 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
444 and view convert expression.
445
5018e7cd 4462008-04-04 Jakub Jelinek <jakub@redhat.com>
447
448 PR target/35364
449 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
450
1d9ef704 4512008-04-04 H.J. Lu <hongjiu.lu@intel.com>
452
453 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
454
455 * config/i386/cpuid.h (bit_AES): New.
456 (bit_PCLMUL): Likewise.
457
458 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
459 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
460 SSE2 if AES or PCLMUL is enabled.
461 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
462 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
463 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
464 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
465 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
466 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
467 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
468 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
469 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
470 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
471 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
472 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
473 __builtin_ia32_aeskeygenassist128 and
474 __builtin_ia32_pclmulqdq128.
475 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
476 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
477 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
478
479 * config/i386/i386.h (TARGET_AES): New.
480 (TARGET_PCLMUL): Likewise.
481 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
482
483 * config/i386/i386.md (UNSPEC_AESENC): New.
484 (UNSPEC_AESENCLAST): Likewise.
485 (UNSPEC_AESDEC): Likewise.
486 (UNSPEC_AESDECLAST): Likewise.
487 (UNSPEC_AESIMC): Likewise.
488 (UNSPEC_AESKEYGENASSIST): Likewise.
413347ff 489 (UNSPEC_PCLMUL): Likewise.
1d9ef704 490
491 * config/i386/i386.opt (maes): New.
492 (mpclmul): Likewise.
493
494 * config/i386/sse.md (aesenc): New pattern.
495 (aesenclast): Likewise.
496 (aesdec): Likewise.
497 (aesdeclast): Likewise.
498 (aesimc): Likewise.
499 (aeskeygenassist): Likewise.
500 (pclmulqdq): Likewise.
501
502 * config/i386/wmmintrin.h: New.
503
504 * doc/extend.texi: Document AES and PCLMUL built-in function.
505
506 * doc/invoke.texi: Document -maes and -mpclmul.
507
b75409ba 5082008-04-04 Paolo Bonzini <bonzini@gnu.org>
509
510 * function.c (free_after_parsing): Replace with
511 cxx_push_function_context from C++ front-end.
512 (allocate_struct_function): Don't call langhook.
513 * langhooks.h (struct lang_hooks_for_functions): Delete.
514 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
515 member "function".
516 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
517 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
518 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
519 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
520 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
521 remove LANG_HOOKS_FUNCTION_INITIALIZER.
522 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
523
524 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
525 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
526
87d31deb 5272008-04-04 Jakub Jelinek <jakub@redhat.com>
528
529 PR c/35440
530 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
531 for all types.
532
226c5ce4 5332008-04-04 Richard Guenther <rguenther@suse.de>
534
535 PR middle-end/35823
536 * fold-const.c (optimize_minmax_comparison): Use the correct
537 type for the constant in the simplified comparison.
538
4c8b808d 5392008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
540
541 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
542 Pass L2 size as "--param l2-cache-size" to the compiler.
543 (decode_l2_cache): New function to decode L2 cache parameters using
544 0x8000006 extended cpuid function.
545 (detect_caches_amd): Determine parameters of L2 cache using
546 decode_l2_caches function.
547 (decode_caches_intel): Decode L2 cache parameters.
548 (detect_caches_intel): Determine L2 cache parameters using
549 decode_caches_intel and decode_l2_caches functions.
550
da19f93f 5512008-04-03 Bob Wilson <bob.wilson@acm.org>
552
553 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
554 secondary input reload for subword loads from the constant pool.
555
3a58582a 5562008-04-03 Janis Johnson <janis187@us.ibm.com>
557
2bedfb20 558 PR target/35713
559 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
560 constants of the appropriate size for runtime calculations.
561
3a58582a 562 PR c/35712
563 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
564 decimal-float literal constant zero.
565
e7327393 5662008-04-03 Jakub Jelinek <jakub@redhat.com>
567
3cc31756 568 PR c/35738
569 * c-parser.c (c_parser_omp_atomic): Call
570 default_function_array_conversion on the RHS.
571
e7327393 572 PR middle-end/35818
573 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
574 call is_variable_sized if decl has incomplete type.
575
e0d72b88 5762008-04-03 H.J. Lu <hongjiu.lu@intel.com>
577
578 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
579
21d7f1af 5802008-04-03 Adam Nemet <anemet@caviumnetworks.com>
581
582 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
583 iterators.
ae3049cd 584 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
21d7f1af 585 (sgt<u>): Merge sgt and sgtu into new expander.
586 (sgt, sgtu): Remove expanders.
ae3049cd 587 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
21d7f1af 588 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
589 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
590 *sgtu_<mode>_mips16 into new pattern.
591 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
592 (sge<u>): Merge sge and sgeu into new expander.
593 (sge, sgeu): Remove expanders.
594 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
595 new pattern.
596 (*sge_<mode>, second *sge_<mode>): Remove patterns.
597 (slt<u>): Merge slt and sltu into new expander.
598 (slt, sltu): Remove expanders.
ae3049cd 599 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
21d7f1af 600 (*slt_<mode>, *sltu_<mode>): Remove patterns.
601 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
602 *sltu_<mode>_mips16 into new pattern.
603 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
604 (sle<u>): Merge sle and sleu into new expander.
605 (sle, sleu): Remove expanders.
ae3049cd 606 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
21d7f1af 607 (*sle_<mode>, *sleu_<mode>): Remove patterns.
608 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
609 *sleu_<mode>_mips16 into new pattern.
610 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
611
d5b52ebc 6122008-04-03 Jan Hubicka <jh@suse.cz>
613
614 PR tree-optimization/35795
615 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
616 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
617 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
618 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
619 * score/score3.c (score3_output_mi_thunk): Likewise.
620 * score/score7.c (score7_output_mi_thunk): Likewise.
621 * mips/mips.c (mips_output_mi_thunk): Likewise.
622
0d27ac1e 6232008-04-03 Richard Guenther <rguenther@suse.de>
624
625 * tree-vrp.c (extract_range_from_unary_expr): Handle all
626 conversions. Simplify code.
627
6c5df66e 6282008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
629
630 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
631
6fb2153a 6322008-04-03 Tom Tromey <tromey@redhat.com>
633 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
634
635 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
636 * config/bfin/t-bfin-linux (generated_files): Add
637 linux-sysroot-suffix.h.
638 * doc/install.texi (Prerequisites): Require make 3.80.
639 * doc/sourcebuild.texi (Front End Directory): Document new
640 variable.
641 * Makefile.in (generated_files): New variable.
642 (ALL_HOST_OBJS): New variable.
643 ($(ALL_HOST_OBJS)): New target.
644
32020b10 6452008-04-03 Paolo Bonzini <bonzini@gnu.org>
646
d5b52ebc 647 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
648 (remap_block): Call id->transform_lang_insert_block instead
649 of langhook.
650 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
651 Set id.transform_lang_insert_block to NULL.
652 (clone_body): Move to cp/optimize.c
653 * tree-inline.h (struct copy_body_data): Change
654 transform_lang_insert_block to function pointer.
655 (copy_generic_body, copy_decl_no_change): Export.
656 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
657 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
658 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
659
660 * c-tree.h (insert_block): Kill.
661 * c-decl.c (insert_block): Kill.
32020b10 662
d2764e2d 6632008-04-03 Paolo Bonzini <bonzini@gnu.org>
664
d5b52ebc 665 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
666 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
667 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
668 argument.
669 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
670 argument, call {push,pop}_function_context from here.
671 * c-parser.c: Use c_{push,pop}_function_context.
672
673 * function.c (push_function_context_to): Move meat ...
674 (push_function_context): ... here. Simplify.
675 * function.c (pop_function_context_from): Move meat ...
676 (pop_function_context): ... here. Simplify.
677 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
678 leave_nested).
679 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
680 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
681 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
682 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2764e2d 683
3fc499d6 6842008-04-03 Ben Elliston <bje@au.ibm.com>
685
686 * expmed.c (extract_force_align_mem_bit_field): Remove.
687
469b75f7 6882008-04-03 Richard Guenther <rguenther@suse.de>
689
690 PR middle-end/35800
691 * expr.h (try_casesi): Adjust prototype.
692 * expr.c (try_casesi): Take fallback label as extra parameter.
693 Use that for gen_casesi if default_label is NULL.
694 * stmt.c (expand_case): Pass fallback label to try_casesi,
695 make sure to fill gaps with a fallback label if default_label
696 is not present.
697
bdc98a90 6982008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
699
700 PR target/35801
701 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
702
6b2813fb 7032008-04-03 Ben Elliston <bje@au.ibm.com>
704
705 * expmed.c (extract_split_bit_field): Remove if (0) code.
706 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
707 (do_ds_constraint): Likewise.
708
34c3de48 7092008-04-02 Joseph Myers <joseph@codesourcery.com>
710
711 * doc/cppopts.texi (-dU): Document.
712 * c-common.h (flag_dump_macros): Update comment.
713 * c-opts.c (handle_OPT_d): Handle -dU.
714 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
715 dump_queued_macros, cb_used_define, cb_used_undef): New.
716 (init_pp_output): Handle -dU.
717 (cb_line_change): Call dump_queued_macros.
718 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
719
48310879 7202008-04-02 Anatoly Sokolov <aesok@post.ru>
721
722 * config/avr/predicates.md (io_address_operand): New predicate.
723 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
724 * config/avr/avr.c (avr_io_address_p): Remove function.
725 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
726 'avr_io_address_p' function.
727 (out_movhi_r_mr): (Ditto.).
728 (out_movqi_mr_r): (Ditto.).
729 (out_movhi_mr_r): (Ditto.).
730 (avr_address_cost): (Ditto.).
731
470d0bc8 7322008-04-02 Uros Bizjak <ubizjak@gmail.com>
733
734 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
735 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
736 in 32bit mode when XMM registers are available to avoid store
737 forwarding stalls.
738 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
739 corresponding post-reload splitters.
740
b1417d7e 7412008-04-02 H.J. Lu <hongjiu.lu@intel.com>
742
743 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
744 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
745 __builtin_ia32_roundss.
746 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
747 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
748 __builtin_ia32_roundss.
749 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
750 IX86_BUILTIN_SHUFPD here.
751
b6bc2701 7522008-04-02 H.J. Lu <hongjiu.lu@intel.com>
753
754 * config/i386/i386.md (plogic): New.
755 (plogicprefix): Likewise.
756
757 * config/i386/mmx.md (mmx_<code><mode>3): New.
758 (mmx_and<mode>3): Removed.
759 (mmx_ior<mode>3): Likewise.
760 (mmx_xor<mode>3): Likewise.
761
762 * config/i386/sse.md (<code><mode>3): New.
763 (*<code><mode>3): Likewise.
764 (*<code><mode>3): Likewise.
765 (<code><mode>3): Likewise.
766 (*sse_<code><mode>3): Likewise.
767 (*sse2_<code><mode>3): Likewise.
768 (<code>tf3): Likewise.
769 (*<code>tf3): Likewise.
770 (and<mode>3): Likewise.
771 (*and<mode>3): Likewise.
772 (ior<mode>3): Removed.
773 (*ior<mode>3): Likewise.
774 (xor<mode>3): Likewise.
775 (*xor<mode>3): Likewise.
776 (*and<mode>3): Likewise.
777 (*ior<mode>3): Likewise.
778 (*xor<mode>3): Likewise.
779 (and<mode>3): Likewise.
780 (*sse_and<mode>3): Likewise.
781 (*sse2_and<mode>3): Likewise.
782 (andtf3): Likewise.
783 (*andtf3): Likewise.
784 (ior<mode>3): Likewise.
785 (*sse_ior<mode>3): Likewise.
786 (*sse2_ior<mode>3): Likewise.
787 (iortf3): Likewise.
788 (*iortf3): Likewise.
789 (xor<mode>3): Likewise.
790 (*sse_xor<mode>3): Likewise.
791 (*sse2_xor<mode>3): Likewise.
792 (xortf3): Likewise.
793 (*xortf3): Likewise.
794
72c30859 7952008-04-02 Richard Guenther <rguenther@suse.de>
796
797 PR tree-optimization/14495
798 PR tree-optimization/34793
799 * tree-vrp.c (struct switch_update): New structure.
800 (to_remove_edges, to_update_switch_stmts): New VECs.
801 (simplify_switch_using_ranges): New function. Remove not taken
802 case labels and edges.
803 (simplify_stmt_using_ranges): Call it.
804 (identify_jump_threads): Mark edges we have queued for removal
805 so we don't thread them.
806 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
807 case label vector.
808 * tree-cfg.c (group_case_labels): Deal with missing default label.
809 (tree_verify_flow_info): Allow missing default label.
810 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
811 (emit_case_nodes): Likewise.
812 (expand_case): Do not rely on the default label to be present.
813 * expr.c (try_casesi): Deal with NULL default_label.
814 (do_tablejump): Likewise.
815
b6d7b6c5 8162008-04-02 Richard Guenther <rguenther@suse.de>
817
818 PR tree-optimization/14495
819 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
820 SWITCH_EXPR here ...
821 (vrp_visit_switch_stmt): ... but here (new function).
822 (find_case_label_index): New helper function.
823 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
824
217c0c86 8252008-04-02 Paolo Bonzini <bonzini@gnu.org>
826
827 * fwprop.c: Fix ISO-C99ism.
828
794723c1 8292008-04-02 Paolo Bonzini <bonzini@gnu.org>
830
831 PR bootstrap/35752
832 * Makefile.in (objdir): Set it here.
833 * configure.ac: Not here. Find dynamic linker characteristics.
834 * exec-tool.in: Use them.
835 * aclocal.m4: Regenerate.
836 * configure: Regenerate.
837
1a105fae 8382008-04-02 Paolo Bonzini <bonzini@gnu.org>
839
840 * expr.c (expand_var): Delete it.
841 * expr.h (expand_var): Delete prototype.
842 * function.c (expand_function_start): Use expand_decl instead.
843 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
844 langhook.
845
f533acbe 8462008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
847
848 PR rtl-optimization/35542
849 * fwprop.c (forward_propagate_and_simplify): Replace
850 loc_reg_mentioned_in_p with reg_mentioned_p.
851
f8f13645 8522008-04-02 Paolo Bonzini <bonzini@gnu.org>
853
f533acbe 854 PR rtl-optimization/35281
f8f13645 855 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
856 (propagate_rtx_1): Handle PR_HANDLE_MEM.
857 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
858 (varying_mem_p): Move above propagate_rtx.
859 (all_uses_available_at): Do not check MEMs.
860
a00913c7 8612008-04-02 Rafael Espindola <espindola@google.com>
862
863 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
864 (register_edge_assert_for_2): Split the cond argument.
865 (register_edge_assert_for_1): Adjust for the change in
866 register_edge_assert_for_2.
867 (register_edge_assert_for): Split the cond argument.
868 (find_switch_asserts): Adjust for the change in
869 register_edge_assert_for.
870
c8c521bb 8712008-04-02 Kai Tietz <kai.tietz@onevision.com>
872
873 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
c61eb773 874 * gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
875 offsets for 64-bit mingw.
876 * gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
877 abi for x86_64-pc-mingw.
c8c521bb 878
22cdb855 8792008-04-02 Richard Guenther <rguenther@suse.de>
880
881 * tree-vrp.c (extract_range_from_assert): Make sure to not
882 produce range min/max with TREE_OVERFOW set.
883 If merging a anti-range and a range keep the anti-range if
884 the range covers all values of the type.
885 (register_edge_assert_for_2): Only allow sign-changing
886 conversions in detecting canonical range checks. Also
887 register an assert for the unsigned name if useful.
888
889 PR tree-optimization/35787
890 * tree-vrp.c (vrp_val_max): New function.
891 (vrp_val_min): Likewise.
892 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
893 (vrp_val_is_min): Likewise.
894 (supports_overflow_infinity): Use vrp_val_{min,max}.
895 (negative_overflow_infinity): Likewise.
896 (positive_overflow_infinity): Likewise.
897 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
898 (is_positive_overflow_infinity): Likewise.
899 (is_overflow_infinity): Likewise.
900 (avoid_overflow_infinity): Use vrp_val_{min,max} and
901 vrp_val_is_{min,max}.
902 (set_and_canonicalize_value_range): Canonicalize anti-ranges
903 to ranges if possible. Avoid empty ranges.
904
10494d65 9052008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
906
907 PR middle-end/35705
908 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
909 the expression is a function address.
910
a12691f0 9112008-04-01 George Helffrich <george@gcc.gnu.org>
912
913 PR fortran/PR35154, fortran/PR23057
914 * fortran/trans-common.c (create_common): Add decl to function
915 chain to preserve identifier scope in debug output.
916
917 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
918 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
919 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
920 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
921 in common.
922 (dbxout_syms): Check for COMMON-based symbol and wrap in
923 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
924 in bracket for efficiency.
925
926 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
927 using DW_TAG_common_block + member offset.
928 (add_pubname_string): New function.
929 (dw_expand_expr): New function to find block name and offset for
930 COMMON var.
931 (common_check): New function to check whether symbol in Fortran COMMON.
932 (gen_variable_die): If COMMON, use DW_TAG_common_block.
933
934 * testsuite/gcc.dg/debug/pr35154.c: New test to check that non-Fortran
935 use of common is unchanged.
936
937 * testsuite/lib/gfortran-dg.exp: New harness to compile Fortran progs
938 with all combinations of debug options available on target.
939 * testsuite/gfortran.dg/debug/debug.exp: Ditto.
940 * testsuite/gfortran.dg/debug/trivial.f: Ditto.
941 * testsuite/gfortran.dg/debug/pr35154-stabs.f: New test case for
942 .stabs functionality.
943 * testsuite/gfortran.dg/debug/pr35154-dwarf2.f: New test case for
944 DWARF functionality.
945
fa3b771a 9462008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
947
948 PR c/35436
949 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
950
dbec73a5 9512008-04-02 Ben Elliston <bje@au.ibm.com>
952
953 * config/v850/v850.md (casesi): Remove if (0) code.
954 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
955 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
956
3a8f2ab9 9572008-04-01 Uros Bizjak <ubizjak@gmail.com>
958
959 * config/i386/i386.md (rex64suffix): New mode attribute.
960 (floathi<mode>2): Disable expander for SSE math.
961 (*floathi<mode>2_1): New insn insn_and_split pattern.
962 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
963 corresponding post-reload splitters.
964 (*floathi<mode>2_i387): New macroized insn pattern.
965 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
966 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
967 insn_and_split pattern.
968 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
969 New macroized instruction patterns and corresponding post-reload
970 splitters.
971 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
972 and corresponding post-reload splitters.
973 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
974 New macroized instruction patterns.
975 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
976 macroized instruction patterns and corresponding post-reload splitters.
977 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
978 corresponding post-reload splitters.
979 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
980 New macroized instruction patterns.
981 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
982 corresponding post-reload splitters.
983 (*floatsi<mode>2_i387): New macroized instruction patterns.
984
9409fce7 9852008-04-01 H.J. Lu <hongjiu.lu@intel.com>
986
987 * config/i386/i386.md (smaxmin): New.
988 (umaxmin): Likewise.
989 (maxminiprefix): Likewise.
990 (maxminfprefix): Likewise.
991 (<code><mode>3): Likewise.
992 (smin<mode>3): Removed.
993 (smax<mode>3): Likewise.
994
995 * config/i386/mmx.md (mmx_<code>v2sf3): New.
996 (mmx_<code>v4hi3): Likewise.
997 (mmx_<code>v8qi3): Likewise.
998 (mmx_smaxv2sf3): Removed.
999 (mmx_sminv2sf3): Likewise.
1000 (mmx_umaxv8qi3): Likewise.
1001 (mmx_smaxv4hi3): Likewise.
1002 (mmx_uminv8qi3): Likewise.
1003 (mmx_sminv4hi3): Likewise.
1004
1005 * config/i386/sse.md (<addsub><mode>3): New.
1006 (*<addsub><mode>3): Likewise.
1007 (<sse>_vm<addsub><mode>3): Likewise.
1008 (<maxmin><mode>3): Likewise.
1009 (*<maxmin><mode>3_finite): Likewise.
1010 (*<maxmin><mode>3): Likewise.
1011 (<sse>_vm<maxmin><mode>3): Likewise.
1012 (sse3_h<addsub>v4sf3): Likewise.
1013 (sse3_h<addsub>v2df3): Likewise.
1014 (<maxmin>v16qi3): Likewise.
1015 (*<maxmin>v16qi3): Likewise.
1016 (<maxmin>v8hi3): Likewise.
1017 (*<maxmin>v8hi3): Likewise.
1018 (*sse4_1_<maxmin><mode>3): Likewise.
1019 (*sse4_1_<maxmin><mode>3): Likewise.
1020 (add<mode>3): Removed.
1021 (*add<mode>3): Likewise.
1022 (<sse>_vmadd<mode>3): Likewise.
1023 (sub<mode>3): Likewise.
1024 (*sub<mode>3): Likewise.
1025 (<sse>_vmsub<mode>3): Likewise.
1026 (smin<mode>3): Likewise.
1027 (*smin<mode>3_finite): Likewise.
1028 (*smin<mode>3): Likewise.
1029 (<sse>_vmsmin<mode>3): Likewise.
1030 (smax<mode>3): Likewise.
1031 (*smax<mode>3_finite): Likewise.
1032 (*smax<mode>3): Likewise.
1033 (<sse>_vmsmax<mode>3): Likewise.
1034 (sse3_haddv4sf3): Likewise.
1035 (sse3_haddv2df3): Likewise.
1036 (sse3_hsubv4sf3): Likewise.
1037 (sse3_hsubv2df3): Likewise.
1038 (umaxv16qi3): Likewise.
1039 (*umaxv16qi3): Likewise.
1040 (smaxv8hi3): Likewise.
1041 (*smaxv8hi3): Likewise.
1042 (*sse4_1_smax<mode>3): Likewise.
1043 (*sse4_1_umax<mode>3): Likewise.
1044 (uminv16qi3): Likewise.
1045 (*uminv16qi3): Likewise.
1046 (sminv8hi3): Likewise.
1047 (*sminv8hi3): Likewise.
1048 (*sse4_1_smin<mode>3): Likewise.
1049 (*sse4_1_umin<mode>3): Likewise.
1050
d3ec693f 10512008-04-01 Rafael Espindola <espindola@google.com>
1052
1053 * tree-cfg.c (verify_expr): remove in_phi.
9409fce7 1054 (verify_stmt): Don't call walk_tree with verify_expr. Use
d3ec693f 1055 is_gimple_min_invariant instead of is_gimple_val.
1056
eae7da65 10572008-04-01 Joseph Myers <joseph@codesourcery.com>
1058
1059 * doc/include/gpl_v3.texi: Update for manpage generation.
1060 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
1061 gpl.texi.
1062 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
1063 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
1064 gpl_v3.texi instead of gpl.texi.
1065 (gpl.pod): New.
1066
f2225b1a 10672008-04-01 Jakub Jelinek <jakub@redhat.com>
1068
1069 PR pch/13675
1070 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
1071
7433d1d6 10722008-04-01 Rafael Espindola <espindola@google.com>
1073
1074 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
1075 (extract_code_and_val_from_cond): Use
1076 extract_code_and_val_from_cond_with_ops.
1077
1321f22c 10782008-04-01 Jan Hubicka <jh@suse.cz>
1079
1080 * function.c (free_after_compilation): Free epilogue_delay_list.
1081 (prepare_function_start): Assert that previous compilation was freed.
1082
08d2afb4 10832008-04-01 Jan Hubicka <jh@suse.cz>
1084 Jim Wilson <wilson@tuliptree.org>
1085 Andreas Tobler <andreast@gcc.gnu.org>
1086
1087 PR middle-end/35781
1088 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
1089 rtl.emit instead cfun->emit.
1090 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
1091 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
1092
21b45faa 10932008-04-01 Ben Elliston <bje@au.ibm.com>
1094
1095 * doc/c-tree.texi (Function Basics): Fix grammatical error.
1096
3e3a0e9c 10972008-03-31 Seongbae Park <seongbae.park@gmail.com>
1098
1099 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
1100 New options
1101 (fprofile-use): Add var flag_profile_use
3a8f2ab9 1102 * coverage.c (coverage_begin_output): Do not open a gcno file for
1103 output only if -ftest-coverage is set.
3e3a0e9c 1104 Do not add getpwd() to gcda file path.
3a8f2ab9 1105 (build_gcov_info): Check the new flag
3e3a0e9c 1106 flag_profile_datafile_relative_path.
1107 (coverage_init): Use profile_data_prefix.
1108 Read profile counter only if flag_profile_use is set.
1109 * opts.c (common_handle_option): New option fprofile-use=,
1110 fprofile-dir=, fprofile-generate=.
1111 * toplev.c (profile_data_prefix): New variable definition.
1112 * toplev.h (profile_data_prefix): New declaration.
1113 * doc/invoke.tex (Option Summary, Optimization Options):
1114 Add new options.
1115
4e508025 11162008-03-31 James E. Wilson <wilson@tuliptree.org>
1117
3a8f2ab9 1118 * varasm.c (output_constant_pool_1): In LABEL_REF check,
1119 use tmp consistently.
4bd8d9a1 1120
4e508025 1121 PR target/35695
1122 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
1123 * config/ia64/ia64.c (rtx_needs_barrier): Handle
1124 UNSPEC_FR_RECIP_APPROX_RES.
1125 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
1126
e911c0fe 11272008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
1128
1129 PR c/35750
1130 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
1131
70a866cf 11322008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
1133
1134 PR middle-end/30186
1135 * fold-const.c (fold_indirect_ref_1): Support accessing non first
1136 element of the vector via a pointer.
1137
168de4c5 11382008-03-31 Ian Lance Taylor <iant@google.com>
1139
3a8f2ab9 1140 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
168de4c5 1141
b079a207 11422008-03-31 Jan Hubicka <jh@suse.cz>
1143
1144 * builtins.c (expand_builtin_setjmp_receiver): Update call of
1145 get_arg_pointer_save_area.
1146 * expr.c (init_expr): Just clear out rtl.expr.
1147 * function.c (free_after_compilation): Clear out whole RTL structure.
1148 (get_func_frame_size): Merge into ...
1149 (get_frame_size): ... this one.
1150 (assign_stack_local_1): Merge into ...
1151 (assign_stack_local): ... this one.
1152 (expand_function_end): Update call of get_arg_pointer_save_area.
1153 (get_art_pointer_save_area): Remove cfun argument.
1154 * function.h (emit_status): regno_pointer_align does not need length
1155 attribute. Move x_regno_reg_rtx to ...
1156 (regno_reg_rtx): ... new global array.
1157 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
1158 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3a8f2ab9 1159 apply_args_value, forced_labels, stack_pointer_delta):
1160 Update accestors.
b079a207 1161 (struct varasm_status): Move here from varasm.c
1162 (struct rtl_data): New. Move here some fields from struct function.
1163 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1164 frame_offset, stack_check_probe_note, arg_pointer_save_area,
1165 used_temp_slots avail_temp_slots, temp_slot_level,
1166 nonlocal_goto_handler_labels): Update accesstors.
1167 (rtl): New global variable.
1168 (struct function): Move some fileds to rtl_data.
1169 (get_arg_pointer_save_area): Update prototype.
1170 * emit-rtl.c (rtl): Declare.
1171 (regno_reg_rtx): Declare.
3a8f2ab9 1172 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1173 Update.
b079a207 1174 (gen_reg_rtx): Update.
1175 (init_virtual_regs): Do not tate emit_status argument.
1176 (init_emit): Do not allocate emit.
1177 * varasm.c (varasm_statuc): Move to function.h.
1178 (n_deferred_constatns): Update accestor.
1179 (init_varasm_status): Do not allocate varasm_status.
1180 (force_const_mem, get_pool_size, output_constant_pool): Update.
1181 * stmt.c (force_label_rtx): Do not use x_ prefixes.
1182 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1183
13ecee21 11842008-03-31 Zdenek Dvorak <ook@ucw.cz>
1185
1186 PR rtl-optimization/35729
1187 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
1188 references.
1189
0010688c 11902008-03-31 H.J. Lu <hongjiu.lu@intel.com>
1191
1192 PR target/32000
1193 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
1194 load/store if memory is unaligned.
1195 (*movti_rex64): Likewise.
1196
1197 * config/i386/predicates.md (misaligned_operand): New.
1198
435e1a75 11992008-03-31 Andrew Pinski <pinskia@gmail.com>
1200
1201 PR tree-opt/35431
1202 * tree-ssa-phiopt.c (conditional_replacement): Return early for
1203 complex types.
1204
80538812 12052008-03-31 Jan Beulich <jbeulich@novell.com>
1206
1207 * config/ia64/constraints.md: Add 'j' constraint.
1208 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
1209 (movdi_internal): Likewise.
1210
ae4400fc 12112008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
1212
1213 PR c/35748
1214 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
1215
7b18adb1 12162008-03-30 H.J. Lu <hongjiu.lu@intel.com>
1217
1218 PR target/35757
1219 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
1220 proper error message for the third argument on blendpd and
1221 blendps.
1222
1223 * config/i386/sse.md (blendbits): New.
1224 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
1225
54bd17de 12262008-03-30 Eric Botcazou <ebotcazou@adacore.com>
1227
1228 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
1229
8db0c0ff 12302008-03-30 Richard Guenther <rguenther@suse.de>
1231
1232 PR middle-end/31023
1233 * fold-const.c (fold_sign_changed_comparison): Do leave
1234 conversions to base-types alone.
1235
29c144d1 12362008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
1237
1238 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
1239 the link register if one altivec register is be saved.
1240
55007e96 12412008-03-30 Ben Elliston <bje@au.ibm.com>
1242
1243 * final.c (final_scan_insn): Remove if (0) code.
1244
b3cafa91 12452008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
1246
1247 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
1248
18861bde 12492008-03-28 H.J. Lu <hongjiu.lu@intel.com>
1250
1251 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
1252 of V4SFmode to ix86_binary_operator_ok.
1253
d173d680 12542008-03-28 Uros Bizjak <ubizjak@gmail.com>
1255
1256 * config/i386/i386.c (override_options): Initialize
1257 ix86_veclib_handler to ix86_veclibabi_svml when
1258 -mveclibabi=svml is used.
1259 (ix86_veclibabi_svml): New function for SVML ABI style
1260 vectorization support.
1261 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
1262
93116081 12632008-03-28 Rafael Espindola <espindola@google.com>
1264
1265 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
1266 (tree_binary_nonnegative_warnv_p): Make it public.
1267 (tree_single_nonnegative_warnv_p): Make it public.
1268 (tree_invalid_nonnegative_warnv_p): Make it public.
1269 (tree_unary_nonzero_warnv_p): Make it public.
1270 (tree_binary_nonzero_warnv_p): Make it public
1271 (tree_single_nonzero_warnv_p): Make it public.
1272 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
1273 (extract_range_from_binary_expr): Split the expr argument.
1274 (extract_range_from_unary_expr): Split the expr argument.
1275 (extract_range_from_comparison): Split the expr argument.
1276 (extract_range_from_expr): Use the new aux functions.
1277 (vrp_evaluate_conditional_warnv): Use
1278 vrp_evaluate_conditional_warnv_with_ops.
1279 * tree.h (tree_unary_nonzero_warnv_p): Declare.
1280 (tree_binary_nonzero_warnv_p): Declare.
1281 (tree_single_nonzero_warnv_p): Declare.
1282 (tree_expr_nonzero_warnv_p): Declare.
1283 (tree_unary_nonnegative_warnv_p): Declare.
1284 (tree_binary_nonnegative_warnv_p): Declare.
1285 (tree_single_nonnegative_warnv_p): Declare.
1286 (tree_invalid_nonnegative_warnv_p): Declare.
1287
bed8bec4 12882008-03-28 Richard Guenther <rguenther@suse.de>
1289
1290 PR tree-optimization/30317
1291 PR tree-optimization/30911
1292 PR tree-optimization/34793
1293 * tree-vrp.c (set_and_canonicalize_value_range): New function.
1294 (struct assert_locus_d): New member EXPR.
1295 (register_new_assert_for): Add EXPR parameter to support
1296 ASSERT_EXPR <name, expr OP limit>.
1297 (register_edge_assert_for_1): Adjust callers.
1298 (find_assert_locations): Likewise.
d173d680 1299 (process_assert_insertions_for): Build condition from expression.
bed8bec4 1300 (extract_range_from_assert): Handle ASSERT_EXPRs
1301 of the form ASSERT_EXPR <name, expr OP limit>.
1302 (register_edge_assert_for_2): New helper registering
1303 asserts for comparisons. Recognize range tests of the form
1304 (unsigned)i - CST1 OP CST2.
1305 (register_edge_assert_for_1): Use it.
1306 (register_edge_assert_for): Likewise.
1307 (needs_overflow_infinity): Integer sub-types
1308 do not need overflow infinities.
1309 (vrp_val_is_max): The extreme values of integer sub-types
1310 are those of the base type.
1311 (vrp_val_is_min): Likewise.
1312 * tree.def (ASSERT_EXPR): Document extra allowed conditional
1313 expressions.
1314
55f3f40f 13152008-03-28 Nick Clifton <nickc@redhat.com>
1316
1317 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
d173d680 1318 Return GENERAL_REGS for stack adjustment reloads.
55f3f40f 1319
cb47bce8 13202008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1321
1322 PR target/31334
1323 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
1324 const_vector when all the vectors are constant.
1325
a22be2c5 13262008-03-27 Bob Wilson <bob.wilson@acm.org>
1327
1328 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
1329 comparisons.
1330 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
1331 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
1332 (scc_sf): New.
1333 (s<code>_sf): Use new scc_sf attribute for opcode names.
1334
21886706 13352008-03-27 Tom Tromey <tromey@redhat.com>
1336
1337 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
1338 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
1339 config/spu/t-spu-elf, config/i386/t-interix,
1340 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
1341 config/i386/x-darwin, config/i386/x-mingw32,
1342 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
1343 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
1344 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
1345 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
1346 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
1347 config/rs6000/x-darwin, config/rs6000/t-rs6000,
1348 config/score/t-score-elf, config/arm/t-strongarm-pe,
1349 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
1350 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
1351 Revert automatic dependency patch.
1352
4f0ebb16 13532008-03-27 H.J. Lu <hongjiu.lu@intel.com>
1354
1355 PR target/35657
1356 * config/i386/i386.c (ix86_function_arg_boundary): Align
1357 decimal floating point to its natural boundary.
1358
dd691fd8 13592008-03-27 Richard Guenther <rguenther@suse.de>
1360
1361 PR middle-end/35716
1362 * fold-const.c (fold_comparison): Restrict distinct decl
1363 comparison folding to VAR_DECLs and PARM_DECLs. Do not
1364 solely rely on operand_equal_p.
1365
059a60f3 13662008-03-27 Richard Guenther <rguenther@suse.de>
1367
1368 PR c/32511
1369 * c-common.c (handle_weak_attribute): Reject combination of
1370 weak and inline.
1371
590d65aa 13722008-03-27 Richard Guenther <rguenther@suse.de>
1373
1374 PR tree-optimization/32810
1375 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
1376 conversions from DECL_INITIAL.
1377 (fold_const_aggregate_ref): Likewise from constructor elements.
1378
063a8bce 13792008-03-27 Zdenek Dvorak <ook@ucw.cz>
1380
1381 * tree-affine.h (aff_combination_expand): Declare.
1382 (get_inner_reference_aff): Likewise.
1383 * tree-affine.c (aff_combination_expand): Split out from
1384 tree_to_aff_combination_expand.
1385 (get_inner_reference_aff): New function.
1386 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
d173d680 1387 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
1388 (struct lim_aux_data): sm_done field removed.
1389 (mem_ref_loc_p, mem_ref_locs_p): New types.
1390 (struct mem_ref): Added id, stored, accesses_in_loop,
1391 indep_loop, dep_loop, indep_ref, dep_ref fields.
1392 Removed is_stored, locs and next fields.
1393 (memory_accesses): New variable.
1394 (movement_possibility): Do not allow moving statements
1395 that store to memory.
1396 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
1397 New functions.
1398 (determine_max_movement): For statements with memory references,
1399 find the outermost loop in that the reference is independent.
1400 (move_computations_stmt): Mark the virtual operands for renaming.
1401 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
1402 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
1403 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
1404 add_vop_ref_mapping, create_vop_ref_mapping_loop,
1405 create_vop_ref_mapping, analyze_memory_references,
1406 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
1407 get_all_locs_in_loop, ref_always_accessed_p,
1408 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
1409 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
1410 store_motion_loop, store_motion): New functions.
1411 (struct vop_to_refs_elt): New type.
1412 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
1413 memref_hash, memref_eq, hoist_memory_references): Rewritten.
1414 (schedule_sm): Replaced by...
1415 (execute_sm): ... this.
1416 (determine_lsm_ref, hoist_memory_references,
1417 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
1418 find_more_ref_vops, free_mem_ref, free_mem_refs,
1419 determine_lsm_loop, determine_lsm): Removed.
1420 (tree_ssa_lim_finalize): Free data structures used by store motion.
1421 (tree_ssa_lim): Call analyze_memory_references. Use
1422 store_motion instead of determine_lsm.
063a8bce 1423
58a8c75f 14242008-03-27 Paolo Bonzini <bonzini@gnu.org>
1425
1426 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
1427 rename tmake_file to m68hc11/t-m68hc11.
1428 (mcore): Set inhibit_libc to true.
1429 * config.host (alpha*-dec-*vms*): Set extra_programs.
1430 (interix3*): Don't use host_xmake_file.
1431 * configure.ac: Let config.gcc override inhibit_libc.
1432 * configure: Regenerate.
1433
1434 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
1435 * config/t-openbsd-thread: Remove commented out lines.
1436
1437 * config/x-interix: Remove.
1438
1439 * config/m68hc11/t-m68hc11-gas: Rename to...
1440 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
1441
1442 * config/mcore/t-mcore: Remove T_CFLAGS.
1443 * config/mcore/t-mcore-pe: Likewise.
1444
b9146087 14452008-03-27 Paolo Bonzini <bonzini@gnu.org>
1446
1447 * configure.ac: Replace custom __GNU_SOURCE test with
1448 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
1449 * aclocal.m4: Regenerate.
1450 * configure: Regenerate.
1451 * config.in: Regenerate.
1452
ffdf1c47 14532008-03-27 Richard Guenther <rguenther@suse.de>
1454
1455 * fold-const.c (target.h): Include.
1456 (fold_comparison): Fold comparison of addresses of decls
1457 that bind locally or of constants. Consolidate address folding code.
1458 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
1459 results from fold_binary_to_constant.
1460 (compare_values_warnv): Likewise.
1461
d159b72d 14622008-03-27 Andrew Pinski <pinskia@gmail.com>
1463
1464 PR middle-end/35429
1465 * fold-const.c (fold_truthop): Check for integeral types when folding
1466 a == 0 && b == 0 and a != 0 || b != 0 .
1467
bed74a71 14682008-03-26 Eric Botcazou <ebotcazou@adacore.com>
1469
1470 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
1471
7e8061cf 14722008-03-26 Andreas Schwab <schwab@suse.de>
1473
1474 * doc/invoke.texi: Fix use of @item vs. @itemx.
1475
f731500e 14762008-03-26 Tom Tromey <tromey@redhat.com>
1477
1478 * Makefile.in (build/gensupport.o, build/print-rtl.o,
1479 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
1480 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
1481 build/gencodes.o, build/genconditions.o, build/genconfig.o,
1482 build/genconstants.o, build/genemit.o, build/genextract.o,
1483 build/genflags.o, build/genmddeps.o, build/genopinit.o,
1484 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
1485 options.h.
1486
e7d6ed86 14872008-03-26 Richard Guenther <rguenther@suse.de>
1488
1489 Revert
1490 2008-03-26 Richard Guenther <rguenther@suse.de>
1491
1492 * fold-const.c (target.h): Include.
1493 (fold_comparison): Fold comparison of addresses of two decls
1494 that bind locally. Consolidate address folding code.
1495
3fa759a9 14962008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1497
1498 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
1499 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
1500 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
1501 dconstsqrt2, dconstthird, dconste and/or dconst10.
1502 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
1503 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
1504 dconstsqrt2, dconste): Delete.
1505 (init_emit_once): Likewise. Simplify initializing dconstm1.
1506 Constify variable.
1507 * real.c (get_real_const): New.
1508 * real.h (dconst3, dconst10, dconstm2, dconstthird,
1509 dconstsqrt2, dconste): Delete.
1510 (real_value_const, get_real_const): New.
1511
3a8a26d5 15122008-03-26 H.J. Lu <hongjiu.lu@intel.com>
1513
1514 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
1515
1516 * config/i386/i386.c (ix86_function_arg_boundary): Check
1517 BIGGEST_ALIGNMENT instead of 128.
1518 (setup_incoming_varargs_64): Likewise.
1519
ae69189e 15202008-03-26 Tom Tromey <tromey@redhat.com>
1521
1522 * Makefile.in (DEPFILES): Add missing '/'.
1523
60f42188 15242008-03-26 Richard Guenther <rguenther@suse.de>
1525
1526 * fold-const.c (target.h): Include.
1527 (fold_comparison): Fold comparison of addresses of two decls
1528 that bind locally. Consolidate address folding code.
1529
a0ebe2ee 15302008-03-26 Nick Clifton <nickc@redhat.com>
1531
1532 PR target/31232
1533 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
1534 not allow INT+INT as a legitimate addressing mode.
1535
e607210a 15362008-03-26 Richard Guenther <rguenther@suse.de>
1537
1538 * tree-flow.h (widen_bitfield): Remove declaration.
1539 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
1540 (widen_bitfield): Remove function.
1541 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
1542 code.
1543
f082efb4 15442008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
1545
5c00ef9c 1546 PR target/31558
f082efb4 1547 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
1548 error_mark_node's.
1549
1e32b0c4 15502008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
1551
1552 PR rtl-optimization/35232
1553 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
1554 (forget_old_reloads_1, forget_marked_reloads): Don't clear
1555 reg_reloaded_call_part_clobbered here.
1556 (reload_regs_reach_end_p): New function.
1557 (reload_reg_rtx_for_input): New variable.
1558 (reload_reg_rtx_for_output): Likewise.
1559 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
1560 when reassigning a pseudo register. Load reloadreg from
1561 reload_reg_rtx_for_input, moving the mode and register
1562 calculation to...
1563 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
1564 instead of the original when deciding whether an input reload
1565 would be a no-op or whether an output reload can be deleted.
1566 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
1567 when setting up new_spill_reg_store. Load it from
1568 reload_reg_rtx_for_output, moving the mode and register
1569 calculation to...
1570 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
1571 instead of the original when deciding whether an output reload
1572 would be a no-op. Do the same when modifying insn notes.
1573 Use rtx_equal_p instead of == to compare the registers.
1574 (inherit_piecemeal_p): Take a mode and two register numbers
1575 as argument.
1576 (emit_reload_insns): Clear new_spill_reg_store for every hard
1577 register in the reload register. Remove spill registers
1578 from reg_reloaded_valid before considering whether to record
1579 inheritance information for them. Use reload_reg_rtx_for_output
1580 instead of reg_rtx when recording output reloads. Use
1581 reload_reg_rtx_for_input instead of reg_rtx when recording
1582 input reloads. Set or clear reg_reloaded_call_part_clobbered
1583 at the same time as setting reg_reloaded_valid.
1584 (delete_output_reload): Add a new_reload_reg parameter and use it
1585 instead of rld[j].reg_rtx.
1586 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
1587 calls accordingly.
1588
72490eb6 15892008-03-25 Tom Tromey <tromey@redhat.com>
1590
1591 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
1592 (build/genattr.o): Likewise.
1593 (build/genattrtab.o): Likewise.
1594 (build/gencodes.o): Likewise.
1595 (build/genconfig.o): Likewise.
1596 (build/genconstants.o): Likewise.
1597 (build/genemit.o): Likewise.
1598 (build/genextract.o): Likewise.
1599 (build/genflags.o): Likewise.
1600
1bdc4996 16012008-03-25 Bob Wilson <bob.wilson@acm.org>
1602
1603 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
1604 instead of size_int for integer types.
1605 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
1606 to match type of MINUS_EXPR.
1607
ac26af35 16082008-03-25 Tom Tromey <tromey@redhat.com>
1609
1610 * configure: Rebuilt.
1611 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
1612 Makefile.
1613
277b05bb 16142008-03-25 Tom Tromey <tromey@redhat.com>
1615
1616 * config/x-solaris (host-solaris.o): Update.
1617 * config/x-linux (host-linux.o): Update.
1618 * config/x-hpux (host-hpux.o): Update.
1619 * config/x-darwin (host-darwin.o): Update.
1620 * config/v850/t-v850e (v850-c.o): Update.
1621 * config/v850/t-v850 (v850-c.o): Update.
1622 * config/t-vxworks (vxworks.o): Update.
1623 * config/t-sol2 (sol2-c.o, sol2.o): Update.
a4be8081 1624 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
277b05bb 1625 * config/spu/t-spu-elf (spu-c.o): Update.
1626 (spu.o): Remove.
1627 * config/sh/t-symbian (sh-c.o): Update.
1628 (symbian.o): Update.
1629 * config/sh/t-sh (sh-c.o): Update.
1630 * config/score/t-score-elf (score7.o, score3.o): Update.
1631 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
1632 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
1633 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
1634 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
1635 (rs6000.o): Remove.
1636 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1637 * config/m32c/t-m32c (m32c-pragma.o): Update.
1638 * config/ia64/t-ia64 (ia64-c.o): Update.
1639 * config/i386/x-mingw32 (host-mingw32.o): Update.
1640 * config/i386/x-i386 (driver-i386.o): Update.
1641 * config/i386/x-darwin (host-i386-darwin.o): Update.
1642 * config/i386/x-cygwin (host-cygwin.o): Update.
1643 * config/i386/t-nwld (nwld.o): Update.
1644 * config/i386/t-netware (netware.o): Update.
1645 * config/i386/t-interix (winnt.o): Update.
1646 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
1647 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
1648 msformat-c.o): Update.
1649 * config/bfin/t-bfin-linux (generated_files): Add
1650 linux-sysroot-suffix.h.
1651 * config/arm/t-wince-pe (pe.o): Update.
1652 * config/arm/t-strongarm-pe (pe.o): Update.
1653 * config/arm/t-pe (pe.o): Update.
1654 * config/arm/t-arm (arm-c.o): Update.
1655 * doc/install.texi (Prerequisites): Require make 3.80.
1656 * Makefile.in: Remove .o targets.
1657 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
1658 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
1659 (simple_generated_h, simple_generated_c): Move earlier.
1660 (generated_files): New variable.
1661 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
1662 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
1663 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
1664 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
1665 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
1666 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
1667 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
1668 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
1669 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
1670 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
1671 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
1672 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
1673 (.c.o): Remove.
1674 (COMPILE.base, COMPILE): New variables.
1675 (%.o): New pattern rule.
1676 (ALL_HOST_OBJS): New variable.
1677 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
1678 (dummy-checksum.o, cc1-checksum.o): Remove.
1679 (DRIVER_SHLIB): New variable.
1680 (DRIVER_DEFINES): Use it.
1681 (gencondmd.c): Move out of build/.
1682 (s-conditions): Update.
1683 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
1684 (ALL_BUILD_OBJS): Likewise.
1685 (build/%.o): Use BUILDCOMPILE.
1686 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
1687 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
1688 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
1689 build/gencheck.o, build/gencodes.o, build/genconditions.o,
1690 build/genconfig.o, build/genconstants.o, build/genemit.o,
1691 build/genextract.o, build/genflags.o, build/genmddeps.o,
1692 build/genopinit.o, build/genoutput.o, build/genpeep.o,
1693 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
1694 build/gen-protos.o, build/scan.o, build/fix-header.o,
1695 build/scan-decls.o): Simplify.
1696 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
1697 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
1698 prefix.o, toplev.o): Reduce to variable setting.
a4be8081 1699 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
277b05bb 1700 ($(out_object_file), gcc-options.o): New targets.
a4be8081 1701 ($(ALL_HOST_OBJS)): New target. Include dependency files.
277b05bb 1702 * configure: Rebuilt.
a4be8081 1703 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
1704 * doc/sourcebuild.texi (Front End Directory): Document new variable.
277b05bb 1705
ebd21de4 17062008-03-25 Douglas Gregor <doug.gregor@gmail.com>
1707
a4be8081 1708 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
1709 complain when we hit an error, return ERROR_MARK_NODE.
ebd21de4 1710
bc1c5420 17112008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
1712
1713 * config/sh/constraints.md (Pso, Psz): New constraints.
1714 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
1715 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
1716
5897d9f3 17172008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
1718
a4be8081 1719 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
5897d9f3 1720 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
1721
5f3ca2f6 17222008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
1723
1724 * config/sh/sh.md (prefetch): Add condition for SH2A target.
1725 (prefetch_sh2a): New.
1726
419b390c 17272008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
1728 Naveen.H.S <naveen.hs@kpitcummins.com>
1729
1730 * config/sh/constraints.md (I28): New constraint.
1731 * config/sh/sh.c (broken_move): Add support for movi20s.
a4be8081 1732 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
419b390c 1733
5241f4ad 17342008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
1735 Jayant Sonar <Jayant.sonar@kpitcummins.com>
1736 Naveen.H.S <naveen.hs@kpitcummins.com>
1737
1738 * config/sh/sh.c (SH_ATTRIBUTES): Define.
1739 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
1740 (print_operand): Handle resbank in %@ operand code.
1741 (sh_encode_section_info): New.
1742 (push_regs): Add conditions for resbank.
1743 (sh_expand_epilogue): Likewise.
1744 (sh_insert_attributes): Likewise.
1745 (sh_attribute_table): Likewise.
1746 (sh_handle_resbank_handler_attribute): New.
1747 (sh2a_handle_function_vector_handler_attribute): New.
1748 (sh2a_is_function_vector_call): New.
1749 (sh2a_get_function_vector_number): New.
1750 (sh2a_function_vector_p): New.
1751 (sh_cfun_resbank_handler_p): New.
1752 * config/sh/sh.md (calli): Emit jsr/n if possible.
1753 (calli_tbr_rel): New.
1754 (calli_pcrel): Emit jsr/n if possible.
1755 (return_i): Emit rts/n if possible.
1756 (call_valuei_tbr_rel): New.
1757 (call_valuei_pcrel): Add condition for SH2A target.
1758 (call_value): Likewise.
1759 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
1760 (sh2a_get_function_vector_number): Likewise.
1761 (sh2a_is_function_vector_call): Likewise.
1762 * doc/extend.texi: Document TBR relative addressing of SH2A.
1763 (resbank): Add description for SH2A.
1764
80296012 17652008-03-24 Richard Guenther <rguenther@suse.de>
1766
1767 PR c/22371
1768 * gimplify.c (gimplify_modify_expr): For frontend type-correct
1769 pointer assignments change conversions according to middle-end rules.
1770 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
1771 * configure.ac: Include type checking in yes.
1772 * configure: Regenerate.
1773
43404f28 17742008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1775
1776 * diagnostic.c (diagnostic_count_diagnostic): Delete.
1777 (diagnostic_report_diagnostic): Update. Handle ICEs here.
1778
0a824f63 17792008-03-24 Nathan Sidwell <nathan@codesourcery.com>
1780
1781 * gthr-vxworks.h (UNUSED): Define.
1782
ffc0b1ed 17832008-03-23 H.J. Lu <hongjiu.lu@intel.com>
1784
d173d680 1785 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
ffc0b1ed 1786
9d5b78d0 17872008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
1788
1789 * doc/extend.texi (Function Attributes): Add missing comma in the
1790 example of the "alloc_size" attribute.
1791
933a719e 17922008-03-23 Uros Bizjak <ubizjak@gmail.com>
1793
1794 Revert:
1795 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
1796
1797 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
1798 32bit host.
1799
1800 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
1801
1802 PR target/35496
1803 * stor-layout.c (update_alignment_for_field): Set minimum alignment
1804 of the underlying type of a MS bitfield layout to the natural
1805 alignment of the type.
1806
1807 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
1808
1809 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
1810 to their natural alignment to avoid store forwarding stalls.
1811
0a685b29 18122008-03-22 Richard Guenther <rguenther@suse.de>
1813
1814 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
1815 For PHI nodes verify the address is invariant.
1816 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
1817 (get_symbol_constant_value): Use is_gimple_min_invariant.
1818 (maybe_fold_stmt_indirect): Likewise.
1819
10d4de0e 18202008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
1821
1822 PR rtl-optimization/33927
1823 * Makefile.in (dse.o): Depend on $(TM_P_H).
1824 * expr.h (extract_low_bits): Declare.
1825 * expmed.c (extract_low_bits): New function.
1826 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
1827 * dse.c: Include tm_p.h.
1828 (find_shift_sequence): Remove the read_reg argument and return the
1829 read value. Emit the instructions instead of returning them.
1830 Iterate on new_mode rather than calculating it each time.
1831 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
1832 source to NEW_MODE and extract_low_bits to convert the shifted
1833 value to READ_MODE.
1834 (replace_read): Allow the load and store to have different mode
1835 classes. Use extract_low_bits when SHIFT == 0. Create the shift
1836 or extraction instructions before trying the replacement. Update
1837 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
1838
941c7853 18392008-03-22 Uros Bizjak <ubizjak@gmail.com>
1840
1841 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
1842 to their natural alignment to avoid store forwarding stalls.
1843
3a1e8d7a 18442008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1845
3a30a2a9 1846 PR target/27946
3a1e8d7a 1847 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
1848 encouraging but not allowing gprs for input;
1849 change the input constraint to !f#r.
1850 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
1851 gprs for output;
1852 change the output constraint to !f#r.
1853
89ba852b 18542008-03-21 Uros Bizjak <ubizjak@gmail.com>
1855
1856 PR target/13958
1857 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
1858 corresponding post-reload splitters.
1859 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
1860 when x87 FP math is selected.
1861 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
1862 New function prototype.
1863 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
1864 unreachable function to ease macroization of insn patterns.
1865
4cc34f6b 18662008-03-21 Martin Jambor <mjambor@suse.cz>
1867
1868 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
1869 reference dumps if ddr is NULL or dependence is unknown.
1870
d9f903b8 18712008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
1872
1873 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
1874 unsigned extension into account.
1875 (ATOMIC_COMPARE_AND_SWAP): Likewise.
1876 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
1877 Do computations on a scratch register.
1878
71d9af81 18792008-03-21 Richard Guenther <rguenther@suse.de>
1880
1881 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1882 Use is_gimple_min_invariant instead of TREE_INVARIANT.
1883 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1884 * tree-ssa-dom.c (record_equality): Likewise.
1885 * tree-inline.c (copy_body_r): Likewise.
1886 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
1887 TREE_INVARIANT.
1888
5b54eabf 18892008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
1890
1891 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
1892 as 'delete_unused' argument.
1893
8ac2d49b 18942008-03-20 Richard Guenther <rguenther@suse.de>
1895
1896 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
1897 special casing of constant qualifiers.
1898 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
1899 care about them in general.
1900 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
1901 regardless of their type.
1902 (fold_stmt_r): Forcefully fold *& if we end up with that.
1903
9d6f81ac 19042008-03-20 Paul Brook <paul@codesourcery.com>
1905
1906 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
1907 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
1908 linker flags.
1909 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
1910 definition.
1911 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
1912 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
1913
f63eb5d3 19142008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
1915
1916 * common.opt (Wmudflap): New option.
1917 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
1918 (mx_register_decls): Likewise.
1919 (mudflap_finish_file): Likewise.
1920 * doc/invoke.texi: Document -Wno-mudflap.
1921
19222008-03-20 Kai Tietz <kai.tietz@onevision.com>
635c5a98 1923
1924 * c-format.c (replace_format_name_to_system_name): New.
1925 (cmp_attribs): New.
1926 (convert_format_name_to_system_name): New.
1927 (decode_format_attr): Add use of convert_format_name_to_system_name.
1928 (format_types_orig): Add gnu_ prefix to names.
1929 (check_format_info_main): Special treating of \0 escaped names for
1930 supporting multi-character format specifiers as I32, I64.
1931 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
1932 (gnu_target_overrides_format_attributes): New.
1933 * c-format.h: Add structure target_ovr_attr to hold
1934 system specific formatter names.
1935 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
1936 msformat-c.o file to c_target_objs and cxx_target_objs.
1937 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
1938 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
1939 (TARGET_N_FORMAT_TYPES): New.
1940 * config/i386/msformat-c.c: New.
1941 * config/i386/t-cygming: Add build rule for msformat-c.o.
1942 * doc/extend.texi: Add new format names gnu_* and ms_* and
1943 further details.
1944 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
1945
877e1093 19462008-03-20 Ira Rosen <irar@il.ibm.com>
1947
1948 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
1949 optimizations turned on under -O3.
1950 (ftree-vectorize): Add that the flag is turned on with -O3.
1951
73b5bf07 19522008-03-20 Ben Elliston <bje@au.ibm.com>
1953
1954 * regmove.c (try_auto_increment): Fix spelling error in comment.
1955 * final.c (final_scan_insn): Likewise.
1956
59047d58 19572008-03-20 Uros Bizjak <ubizjak@gmail.com>
1958
1959 PR target/14552
1960 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
1961 allocator preferences for "y" and "r" class registers.
1962 ("*mov<mode>_internal"): Ditto.
1963 ("*movv2sf_internal_rex64"): Ditto.
1964 ("*movv2sf_internal"): Ditto.
1965
c0e7e9f7 19662008-03-19 Michael Matz <matz@suse.de>
1967
1968 PR middle-end/35616
1969 * calls.c (expand_call): Check overlap of arguments with call
1970 address for sibcalls.
1971
bb51041c 19722008-03-19 Uros Bizjak <ubizjak@gmail.com>
1973
1974 PR target/35496
1975 * stor-layout.c (update_alignment_for_field): Set minimum alignment
1976 of the underlying type of a MS bitfield layout to the natural
1977 alignment of the type.
1978
20099e35 19792008-03-19 Jan Hubicka <jh@suse.cz>
1980
1981 PR other/35094
1982 * toplev.c (decode_d_option): Handle all CPP flags.
1983 * tree-vrp.c: Update tree_pass descriptors.
1984 * regrename.c: Update tree_pass descriptors.
1985 * fwprop.c: Update tree_pass descriptors.
1986 * doc/invoke.texi: Remove documentation of dropped -d? flags.
1987 * tree-into-ssa.c: Update tree_pass descriptors.
1988 * tree-dump.c: Update tree_pass descriptors.
1989 * tree-complex.c: Update tree_pass descriptors.
1990 * tree-dump.h: Update tree_pass descriptors.
1991 * see.c: Update tree_pass descriptors.
1992 * cgraphbuild.c: Update tree_pass descriptors.
1993 * tracer.c: Update tree_pass descriptors.
1994 * tree-loop-distribution.c: Update tree_pass descriptors.
1995 * cgraph.c: Update tree_pass descriptors.
1996 * postreload-gcse.c: Update tree_pass descriptors.
1997 * postreload.c: Update tree_pass descriptors.
1998 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
1999 * tree-tailcall.c: Update tree_pass descriptors.
2000 * tree-pass.h (tree_opt_pass): Rename to ...
2001 (opt_pass) ... this one; add "type" field and remove letter field.
2002 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
2003 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
2004 all_lowering_passes): Update declaration.
2005 * ipa-cp.c: Update tree_pass descriptors.
2006 * final.c: Update tree_pass descriptors.
2007 * omp-low.c: Update tree_pass descriptors.
2008 * tree-ssa-dse.c: Update tree_pass descriptors.
2009 * ipa-reference.c: Update tree_pass descriptors.
2010 * tree-ssa-uncprop.c: Update tree_pass descriptors.
2011 * auto-inc-dec.c: Update tree_pass descriptors.
2012 * reorg.c: Update tree_pass descriptors.
2013 * cgraphunit.c: Update tree_pass descriptors.
2014 * tree-ssa-copyrename.c: Update tree_pass descriptors.
2015 * tree-ssa-ccp.c: Update tree_pass descriptors.
2016 * df-core.c: Update tree_pass descriptors.
2017 * mode-switching.c: Update tree_pass descriptors.
2018 * tree-nomudflap.c: Update tree_pass descriptors.
2019 * modulo-sched.c: Update tree_pass descriptors.
2020 * ipa-pure-const.c: Update tree_pass descriptors.
2021 * cse.c: Update tree_pass descriptors.
2022 * web.c: Update tree_pass descriptors.
2023 * tree-stdarg.c: Update tree_pass descriptors.
2024 * tree-ssa-math-opts.c: Update tree_pass descriptors.
2025 * tree-ssa-dom.c: Update tree_pass descriptors.
2026 * tree-nrv.c: Update tree_pass descriptors.
2027 * tree-ssa-alias.c: Update tree_pass descriptors.
2028 * loop-init.c: Update tree_pass descriptors.
2029 * gimple-low.c: Update tree_pass descriptors.
2030 * ipa-inline.c: Update tree_pass descriptors.
2031 * tree-ssa-sink.c: Update tree_pass descriptors.
2032 * global.c: Update tree_pass descriptors.
2033 * ifcvt.c: Update tree_pass descriptors.
2034 * jump.c: Update tree_pass descriptors.
2035 * predict.c: Update tree_pass descriptors.
2036 * tree-ssa-loop.c: Update tree_pass descriptors.
2037 * recog.c: Update tree_pass descriptors.
2038 * dse.c: Update tree_pass descriptors.
2039 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
2040 * tree-eh.c: Update tree_pass descriptors.
2041 * regmove.c: Update tree_pass descriptors.
2042 * local-alloc.c
2043 * function.c: Update tree_pass descriptors.
2044 * tree-vectorizer.c: Update tree_pass descriptors.
2045 * gcse.c: Update tree_pass descriptors.
2046 * ipa-type-escape.c: Update tree_pass descriptors.
2047 * tree-if-conv.c: Update tree_pass descriptors.
2048 * init-regs.c: Update tree_pass descriptors.
2049 * ipa.c: Update tree_pass descriptors.
2050 * tree-ssa-phiopt.c: Update tree_pass descriptors.
2051 * rtl-factoring.c: Update tree_pass descriptors.
2052 * lower-subreg.c: Update tree_pass descriptors.
2053 * bt-load.c: Update tree_pass descriptors.
2054 * tree-dfa.c: Update tree_pass descriptors.
2055 * except.c: Update tree_pass descriptors.
2056 * emit-rtl.c: Update tree_pass descriptors.
2057 * cfgexpand.c: Update tree_pass descriptors.
2058 * tree-cfgcleanup.c: Update tree_pass descriptors.
2059 * cfgcleanup.c: Update tree_pass descriptors.
2060 * tree-ssa-pre.c: Update tree_pass descriptors.
2061 * tree-sra.c: Update tree_pass descriptors.
2062 * tree-mudflap.c: Update tree_pass descriptors.
2063 * tree-ssa-copy.c: Update tree_pass descriptors.
2064 * cfglayout.c: Update tree_pass descriptors.
2065 * tree-ssa-forwprop.c: Update tree_pass descriptors.
2066 * tree-ssa-dce.c: Update tree_pass descriptors.
2067 * tree-ssa.c: Update tree_pass descriptors.
2068 * regclass.c: Update tree_pass descriptors.
2069 * integrate.c: Update tree_pass descriptors.
2070 * tree-optimize.c: Update tree_pass descriptors.
2071 * tree-ssa-phiprop.c: Update tree_pass descriptors.
2072 * tree-object-size.c: Update tree_pass descriptors.
2073 * combine.c: Update tree_pass descriptors.
2074 * tree-outof-ssa.c: Update tree_pass descriptors.
2075 * bb-reorder.c: Update tree_pass descriptors.
2076 * stack-ptr-mod.c: Update tree_pass descriptors.
2077 * var-tracking.c: Update tree_pass descriptors.
2078 * tree-profile.c: Update tree_pass descriptors.
2079 * tree-vect-generic.c: Update tree_pass descriptors.
2080 * reg-stack.c: Update tree_pass descriptors.
2081 * sched-rgn.c: Update tree_pass descriptors.
2082 * tree-ssa-structalias.c: Update tree_pass descriptors.
2083 * tree-cfg.c: Update tree_pass descriptors.
2084 * passes.c (current_pass): Update declaration.
2085 (finish_optimization_passes): Update.
2086 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
2087 (register_one_dump_file, register_dump_files_1, next_pass_1):
2088 Update arguments.
2089 (init_optimization_passes): Update handling of new types.
2090 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
2091 * ipa-struct-reorg.c: Update tree_pass descriptors.
2092 * tree-ssa-reassoc.c: Update tree_pass descriptors.
2093 * combine-stack-adj.c: Update tree_pass descriptors.
2094 * cfgrtl.c: Update tree_pass descriptors.
2095 * dce.c: Update tree_pass descriptors.
2096 * tree-ssanames.c: Update tree_pass descriptors.
2097
25084579 20982008-03-19 Richard Guenther <rguenther@suse.de>
2099
2100 PR middle-end/35609
60f42188 2101 * tree-ssa.c (walk_data): New structure.
2102 (warn_uninitialized_var): If not always_executed warn with "maybe"
25084579 2103 instead of "is".
2104 (execute_early_warn_uninitialized): Compute post-dominators.
2105 Initialize always_executed before processing each basic block.
2106
671cfe26 21072008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
2108
2109 PR target/35504
2110 * config/i386/i386.c (x86_this_parameter): Calculate correct location
2111 of "this" pointer when "regparm = N" or "fastcall" is in effect.
2112
dd518ada 21132008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2114
2115 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
2116
dcfc697f 21172008-03-18 Paolo Bonzini <bonzini@gnu.org>
2118
671cfe26 2119 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
2120 is true.
2121 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
2122 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
2123 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
2124 target after ignore has been set, and move there also the commputation
2125 of subtarget and original_target.
2126 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2127 (LANG_HOOKS_INITIALIZER): Remove it.
2128 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
dcfc697f 2129
b9e98b8a 21302008-03-18 Richard Guenther <rguenther@suse.de>
2131
2132 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
2133 found an expression with constants, note that in the VN for the lhs.
2134 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
2135 fold them to constants if possible. Run cleanup_cfg if done so.
2136 (execute_pre): Return todo.
2137 (do_pre): Likewise.
2138 (execute_fre): Likewise.
2139 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
2140 of constants.
2141 (get_prop_source_stmt): Look through pointer conversions.
2142
4a1849e3 21432008-03-18 Jan Hubicka <jh@suse.cz>
2144
2145 * tree-pretty-print.c: Include predict.h.
2146 (dump_generic_node): Dump predictor.
2147 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
2148 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
2149 * gimple-low.c (lower_stmt): Likewise.
2150 * expr.c (expand_expr_real): Likewise.
2151 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
2152 them.
2153 (build_predict_expr, build_predict_expr): New.
2154 * predict.h (predictor_name, build_predict_expr): Update.
2155 * c-typeck.c (c_finish_bc_stmt): Add prediction.
2156 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
2157 * predict.def (PRED_CONTINUE): Update hitrate.
2158 * tree.def (PREDICT_EXPR): Define.
2159 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
2160 do not handle BIND_EXPR.
2161 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
2162 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
2163 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
2164 operands.
2165
a6eaabef 21662008-03-18 Michael Matz <matz@suse.de>
2167
2168 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
2169
ffb04365 21702008-03-18 Richard Guenther <rguenther@suse.de>
2171
2172 * tree-gimple.h (is_gimple_invariant_address): Declare.
2173 (is_gimple_constant): Likewise.
2174 * tree-gimple.c (is_gimple_constant): New function.
2175 (is_gimple_invariant_address): Likewise.
2176 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
2177 and is_gimple_invariant_address.
2178 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
2179 previous change.
2180 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
2181 an addressable base.
2182
0c378ed9 21832008-03-18 Jakub Jelinek <jakub@redhat.com>
2184
2185 PR middle-end/35611
2186 * gimplify.c (gimplify_expr): Gimplify second operand of
2187 OMP_ATOMIC_LOAD.
2188
0b4a6afc 21892008-03-17 Richard Guenther <rguenther@suse.de>
2190
2191 PR tree-optimization/19637
2192 * fold-const.c (fold_unary): Remove restrictions of removing
2193 intermediate pointer-conversions (P2)(P1)P0.
2194 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
2195 conversion to void pointer.
2196 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
2197
e845094d 21982008-03-16 James E. Wilson <wilson@tuliptree.org>
2199
2200 PR debug/31510
2201 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
2202 emulated thread local variables.
2203
25080779 22042008-03-16 Richard Guenther <rguenther@suse.de>
2205
2206 PR middle-end/35607
2207 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2208 expand TREE_INVARIANT operations that are not gimple invariant.
2209
7290f090 22102008-03-16 Hans-Peter Nilsson <hp@axis.com>
2211
2212 * doc/extend.texi (Alignment): Say that the ABI controls
2213 the __alignof__ for non-strict-alignment targets rather
2214 than being a recommendation.
2215
49a83a87 22162008-03-15 Paul Brook <paul@codesourcery.com>
2217
2218 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
2219 annotations.
2220 (arm_output_fn_unwind): Mark functions that can not be unwound.
2221
72e333b2 22222008-03-15 Paul Brook <paul@codesourcery.com>
2223
2224 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
2225 extension instructions.
2226
04236c3a 22272008-03-15 Richard Guenther <rguenther@suse.de>
2228
2229 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
2230 and fold constant aggregate refs.
2231 (fold_const_aggregate_ref): Handle string constants
2232 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
2233 (evaluate_stmt): Simplify now that ccp_fold folds constant
2234 aggregate refs.
2235
8b054d5a 22362008-03-15 Paul Brook <paul@codesourcery.com>
2237
2238 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
2239 (extzv): Use gen_extzv_t2.
2240 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
2241
e004838d 22422008-03-15 Richard Guenther <rguenther@suse.de>
2243
2244 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
2245 (fold_const_aggregate_ref): Likewise.
2246 (get_value): Return NULL if we don't have any values.
2247 (ccp_finalize): Set const_val to NULL after freeing it.
2248 * tree-flow.h (get_symbol_constant_value): Declare.
2249 (fold_const_aggregate_ref): Likewise.
2250 * tree-ssa-sccvn.c (try_to_simplify): Use them.
2251
b7488229 22522008-03-15 Richard Guenther <rguenther@suse.de>
2253
2254 PR middle-end/35593
2255 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
2256 to not produce negative array indices if not allowed. Add
2257 parameter to indicate that.
2258 (maybe_fold_offset_to_component_ref): Allow negative array
2259 indices only for the first member of a structure.
2260 (maybe_fold_offset_to_reference): Allow negative array indices.
2261 (maybe_fold_stmt_addition): Likewise.
2262
90ef7269 22632008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
bb51041c 2264 Anatoly Sokolov <aesok@post.ru>
90ef7269 2265
2266 * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
2267 (avr_arch): Add ARCH_AVR6.
2268 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
2269 (initial_elimination_offset): Initialize and use 'avr_pc_size'
2270 instead of fixed value 2.
2271 (print_operand_address): Use gs() asm specifier instead of pm().
2272 (avr_assemble_integer): (Ditto.).
2273 (avr_output_addr_vec_elt): (Ditto.).
2274 (print_operand): Handle "!" code.
2275 * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
2276 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
2277 (AVR_HAVE_EIJMP_EICALL): Define.
2278 (AVR_3_BYTE_PC): Redefine.
2279 (AVR_2_BYTE_PC): (Ditto.).
2280 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
2281 (LINK_SPEC): Add atmega2560 and atmega2561.
2282 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
2283 (crtm2561.o).
2284 * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall
2285 for 3 byte PC devices.
2286 (call_value_insn): (Ditto.).
2287 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
2288 (indirect_jump): Use only for for 2 byte PC devices.
2289 (*tablejump): (Ditto.).
2290 (*indirect_jump_avr6): Add insn.
2291 (*tablejump_rjmp): Don't use for 3 byte PC devices.
2292 * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp
2293 instead of ijmp for 3 byte PC devices.
2294 (__tablejump2__): (Ditto.).
2295 * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
2296 (MULITLIB_DIRNAMES): (Ditto.).
2297 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
2298
28a2ab9f 22992008-03-15 Uros Bizjak <ubizjak@gmail.com>
2300
2301 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
2302 "sse2_umulsidi3". Use V1DI mode for operand 0.
2303 ("mmx_psadbw"): Use V1DI mode for operand 0.
2304 * config/i386/i386-modes.def (V1SI): New vector mode.
2305 * config/i386/i386.c (struct builtin_description)
2306 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
2307 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
2308 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
2309 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
2310 v1di_ftype_v8qi_v8qi type.
2311 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
2312
2313 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
2314 __builtin_ia32_pmuludq]: Fix the mode of return value.
2315
a77a3698 23162008-03-15 Richard Guenther <rguenther@suse.de>
2317
2318 PR middle-end/35595
2319 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
2320 being a PHI_NODE.
2321
2c613040 23222008-03-14 Bob Wilson <bob.wilson@acm.org>
2323
2324 * doc/invoke.texi (Option Summary, Xtensa Options): Document
2325 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
2326 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
2327 unless TARGET_SERIALIZE_VOLATILE is enabled.
2328 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2329 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
2330 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
2331
404d6be4 23322008-03-14 Richard Guenther <rguenther@suse.de>
2333
2334 PR tree-optimization/34172
2335 * tree-flow.h (refs_may_alias_p): Declare.
2336 (get_single_def_stmt): Likewise.
2337 (get_single_def_stmt_from_phi): Likewise.
2338 (get_single_def_stmt_with_phi): Likewise.
2339 * tree-dfa.c (refs_may_alias_p): New function.
2340 (get_single_def_stmt): Likewise.
2341 (get_single_def_stmt_from_phi): Likewise.
2342 (get_single_def_stmt_with_phi): Likewise.
2343 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
2344 (vn_reference_lookup_1): New helper function.
2345 (vn_reference_lookup): Walk the virtual use-def chain to
2346 continue searching for a match if the def does not alias the
2347 reference we are looking for.
2348
a7af6b24 23492008-03-14 David Edelsohn <edelsohn@gnu.org>
2350
2351 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
2352 archive and Perzl. Update The Written Word listing.
2353
1d9353f3 23542008-03-14 Richard Guenther <rguenther@suse.de>
2355
2356 PR tree-optimization/34043
2357 PR tree-optimization/33989
2358 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
2359 when doing FRE.
2360 (bitmap_find_leader): Use extra argument to verify dominance
2361 relationship inside a basic-block.
2362 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
2363 (find_leader_in_sets): Adjust.
2364 (create_component_ref_by_pieces): Take extra argument for
2365 dominance check, handle lookup failures.
2366 (find_or_generate_expression): Likewise.
2367 (create_expression_by_pieces): Likewise.
2368 (insert_into_preds_of_block): Adjust.
2369 (create_value_expr_from): If asked for, verify all operands
2370 are in the blocks AVAIL_OUT set.
2371 (make_values_for_stmt): Check for SSA_NAMEs that are life
2372 over an abnormal edge.
2373 (compute_avail): Remove such check.
2374 (do_SCCVN_insertion): New function.
2375 (eliminate): If we do not find a leader suitable for replacement
2376 insert a replacement expression from SCCVN if available.
2377 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
2378 (struct vn_ssa_aux): Add needs_insertion flag.
2379 * tree-ssa-sccvn.c (may_insert): New global flag.
2380 (copy_reference_ops_from_ref): Value-number union member access
2381 based on its size, not type and member if insertion is allowed.
2382 (visit_reference_op_load): For a weak match from union type
2383 punning lookup a view-converted value and insert a SSA_NAME
2384 for that value if that is not found.
2385 (visit_use): Make dumps shorter. Do not disallow value numbering
2386 SSA_NAMEs that are life over an abnormal edge to constants.
2387 (free_scc_vn): Release inserted SSA_NAMEs.
2388 (run_scc_vn): New flag to specify whether insertion is allowed.
2389 Process SSA_NAMEs in forward order.
2390 * tree-ssa-loop-im.c (for_each_index): Handle invariant
2391 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
2392 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
2393 pointer type to/from integral types that do not change the
2394 precision to regular conversions.
2395
c9f96750 23962008-03-13 Uros Bizjak <ubizjak@gmail.com>
2397
2398 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
2399 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
2400 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
2401 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5b2ddfe1 2402 input arguments and the mode of return value. Built-in functions
2403 that operate on whole 64-bit MMX register now use V1DI mode.
c9f96750 2404
3992c686 24052008-03-13 Alon Dayan <alond@il.ibm.com>
2406 Olga Golovanevsky <olga@il.ibm.com>
2407
2408 PR tree-optimization/35041
2409 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
2410 to locate the right position in a statement.
2411
517b0286 24122008-03-13 Uros Bizjak <ubizjak@gmail.com>
2413
2414 PR target/34000
2415 PR target/35553
2416 * config/i386/xmmintrin.h: Change all static inline functions to
2417 extern inline and add __gnu_inline__ attribute.
2418 * config/i386/bmintrin.h: Ditto.
2419 * config/i386/smmintrin.h: Ditto.
2420 * config/i386/tmmintrin.h: Ditto.
2421 * config/i386/mmintrin-common.h: Ditto.
2422 * config/i386/ammintrin.h: Ditto.
2423 * config/i386/emmintrin.h: Ditto.
2424 * config/i386/pmmintrin.h: Ditto.
2425 * config/i386/mmintrin.h: Ditto.
2426 * config/i386/mm3dnow.h: Ditto.
2427
a4890dc9 24282008-03-13 Jakub Jelinek <jakub@redhat.com>
2429
2430 PR middle-end/35185
2431 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
2432 (lower_omp_2): New function.
2433 (lower_omp_1, lower_omp): Rewritten.
2434
ebba2dc7 24352008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
2436
2437 PR 35054
2438 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
2439 with the phrase "Microsoft Windows compilers".
2440 (Push/Pop Macro Pragmas): New subsection. Document
2441 #pragma push_macro and pragma pop_macro.
2442
1c4adc7a 24432008-03-12 Paul Brook <paul@codesourcery.com>
2444
2445 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
2446
1d9e8561 24472008-03-12 Paul Brook <paul@codesourcery.com>
2448
2449 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
2450 (thumb2_alusi3_short): Exclude PLUS and MINUS.
2451 (thumb2_addsi_shortim): Rename ...
2452 (thumb2_addsi_short): ... to this. Allow register operands.
2453 (thumb2_subsi_short): New pattern.
2454 (thumb2_one_cmplsi2_short,
2455 thumb2_negsi2_short): New patterns and peepholes.
2456
e077db18 24572008-03-12 Paul Brook <paul@codesourcery.com>
2458
e077db18 2459 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
2460
96b39775 24612008-03-12 Uros Bizjak <ubizjak@gmail.com>
2462
2463 * config/i386/i386.md (int_cond): New code iterator.
2464 (fp_cond): Ditto.
2465 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
2466 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
2467 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
2468 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
2469 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
2470 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
2471 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
2472 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
2473
bb21ed29 24742008-03-12 Paul Brook <paul@codesourcery.com>
2475
2476 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
2477 instead of {arm,thumb}_compute_save_reg_mask.
2478 (output_return_instruction): Ditto.
2479 (thumb_unexpanded_epilogue): Ditto.
2480 (thumb1_expand_prologue): Ditto.
2481 (thumb1_output_function_prologue): Ditto.
2482 (arm_set_return_address): Ditto.
2483 (thumb_set_return_address): Ditto.
2484 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
2485 regs to achieve stack alignment.
2486 (thumb1_compute_save_reg_mask): Fix compiler warning.
2487 (arm_output_epilogue): Use offsets->saved_regs_mask.
2488 Adjust stack pointer by poping call clobered registers.
2489 (arm_expand_prologue): Use offsets->saved_regs_mask.
2490 Adjust stack pointer by pushing extra registers.
a4890dc9 2491 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
bb21ed29 2492
92b2f241 24932008-03-12 Paolo Bonzini <bonzini@gnu.org>
2494
2495 PR tree-opt/35422
2496 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
2497 conversion to the operands of a multiplication.
2498
a2fd87ad 24992008-03-12 Richard Guenther <rguenther@suse.de>
2500
2501 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
2502 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
2503 * timevar.def (TV_TREE_PHIPROP): Add.
2504 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
2505 pass description. Use TV_TREE_PHIPROP.
2506 * tree-ssa-forwprop.c: Remove phiprop code.
2507
e8a588af 25082008-03-12 Jakub Jelinek <jakub@redhat.com>
2509
2510 PR middle-end/35549
2511 * omp-low.c (maybe_lookup_decl): Constify first argument.
2512 (use_pointer_for_field): Change last argument from bool to
2513 omp_context *. Disallow shared copy-in/out in nested
2514 parallel if decl is shared in outer parallel too.
2515 (build_outer_var_ref, scan_sharing_clauses,
2516 lower_rec_input_clauses, lower_copyprivate_clauses,
2517 lower_send_clauses, lower_send_shared_vars): Adjust callers.
2518
c6ba58f9 25192008-03-12 Victor Kaplansky <victork@il.ibm.com>
2520 Ira Rosen <irar@il.ibm.com>
2521
2522 * tree-vectorizer.c (free_stmt_vec_info): New function.
2523 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
2524 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
2525 * tree-vectorizer.h (free_stmt_vec_info): Declare.
2526 * tree-vect-transform.c (vectorizable_conversion): Free
2527 vec_oprnds0 if it was allocated.
2528 (vect_permute_store_chain): Remove unused VECs.
2529 (vectorizable_store): Free VECs that are allocated in the..
2530 function.
2531 (vect_transform_strided_load, vectorizable_load): Likewise.
2532 (vect_remove_stores): Simplify the code.
2533 (vect_transform_loop): Move code to vect_remove_stores().
2534 Call vect_remove_stores() and free_stmt_vec_info().
2535
feb01ed5 25362008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2537
2538 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
2539 TARGET_HPUX. Revise comment.
2540 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
2541 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
2542 Use sr4 variant of `be' instruction when not generating PIC code.
2543 (attr_length_call): Adjust for above change.
2544
6219f064 25452008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
2546
2547 * ipa-reference.c (static_execute): Remove module_statics_const and
2548 associated setting code.
2549
47b5db9d 25502008-03-11 Uros Bizjak <ubizjak@gmail.com>
2551
2552 PR target/35540
2553 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
59047d58 2554 predicate for operand 1.
2555 (paritysi2_cmp): Use register_operand predicate for operand 2.
47b5db9d 2556 Use earlyclobber modifier for operand 1. Remove support for
2557 memory operands.
59047d58 2558 (paritydi2_cmp): Use register_operand predicate for operand 3.
47b5db9d 2559 Use earlyclobber modifier for operand 1. Remove support for
2560 memory operands.
2561
6640ca58 25622008-03-11 Paul Brook <paul@codesourcery.com>
47b5db9d 2563 Vladimir Prus <vladimir@codesourcery.com>
6640ca58 2564
2565 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
2566 (arm_compute_save_reg0_reg12_mask): Always
2567 check if register 11 must be saved. Always safe hard frame pointer
2568 when frame_pointer_needeed.
2569 (arm_compute_save_reg_mask): Save IP and PC
2570 only with apcs frames.
2571 (arm_output_epilogue): Adjust Thumb2 codepath to
2572 be also invoked and work for ARM non-apcs frames.
2573 (arm_expand_prologue): Don't bother saving IP
2574 for non-apcs frame, since it's not clobbered by
2575 prologue code. Implement non-apcs frame
2576 layout.
2577
8ae2fa3b 25782008-03-11 Paolo Bonzini <bonzini@gnu.org>
2579
2580 PR rtl-optimization/35281
2581 * expr.c (convert_move): Use a new pseudo for the intermediate
2582 from_mode->word_mode result.
2583
c616456b 25842008-03-11 Paolo Bonzini <bonzini@gnu.org>
2585
6640ca58 2586 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
2587 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
2588 * toplev.c (compile_file): Don't call it.
c616456b 2589
e06aee53 25902008-03-11 Uros Bizjak <ubizjak@gmail.com>
2591
2592 PR middle-end/35526
2593 * expr.c (store_expr): Call emit_block_move if the mode
2594 of "temp" RTX is BLKmode.
2595
06240723 25962008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
e06aee53 2597 Richard Guenther <rguenther@suse.de>
06240723 2598
2599 PR tree-optimization/31358
2600 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
2601 the step with a NULL_TREE.
2602 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
2603 to sizetype if type is a pointer type.
2604 (add_candidate_1): Don't convert the base and step to
2605 the generic type if the orginal type is a pointer type.
2606 (add_iv_value_candidates): Use sizetype for the step
2607 if type is a pointer type.
2608 (cand_value_at): Likewise.
2609 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
2610 for pointer types.
2611 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
2612 Don't convert the tem affine to the type.
2613 (add_elt_to_tree): Use sizetype for the step if a pointer.
2614 Use POINTER_PLUS_EXPR for pointers.
2615 (aff_combination_to_tree): Use sizetype for the step if a
2616 pointer.
2617
267858a7 26182008-03-10 Vladimir Makarov <vmakarov@redhat.com>
2619
2620 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
2621 Remove commutativity hint.
2622
b821e790 26232008-03-10 Jakub Jelinek <jakub@redhat.com>
2624
50389d5d 2625 PR c/35438
2626 PR c/35439
2627 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
2628 errorneous type. Check that v is a VAR_DECL.
2629
b821e790 2630 PR middle-end/35099
2631 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
2632
ff949d47 26332008-03-10 H.J. Lu <hongjiu.lu@intel.com>
2634
2635 PR tree-optimization/35494
2636 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
2637 may be overriden at link and run time.
2638
466e11c3 26392008-03-10 Richard Guenther <rguenther@suse.de>
2640
2641 PR tree-optimization/34677
2642 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
2643 (poolify_tree): Likewise.
2644 (modify_expr_template): Likewise.
2645 (poolify_modify_stmt): Likewise.
2646 (insert_fake_stores): Handle all component-ref style stores
2647 in addition to INDIRECT_REF. Also handle complex types.
2648 Do not poolify the inserted load.
2649 (realify_fake_stores): Do not rebuild the tree but only
2650 make it a SSA_NAME copy.
2651 (init_pre): Remove initialzation of modify_expr_template.
2652 Do not allocate modify_expr_node_pool.
2653 (fini_pre): Do not free modify_expr_node_pool.
2654
2c2d2f40 26552008-03-10 Paul Brook <paul@codesourcery.com>
2656
2657 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
2658 to avoid conflicts.
2659
934a1e72 26602008-03-10 Paul Brook <paul@codesourcery.com>
e06aee53 2661 Mark Shinwell <shinwell@codesourcery.com>
934a1e72 2662
934a1e72 2663 * config/arm/cortex-r4.md: New.
2664 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
2665 insn attributes.
2666 * config/arm/arm.md: Include cortex-r4.md.
2667 (insn): Add smmls, sdiv and udiv values.
2668 (generic_sched): Don't use generic scheduling for Cortex-R4.
2669 (arm_issue_rate): New function.
2670 (TARGET_SCHED_ISSUE_RATE): Define.
2671
767297d1 26722008-03-10 Sebastian Pop <sebastian.pop@amd.com>
2673
2674 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
2675
10bf6100 26762008-03-10 Richard Guenther <rguenther@suse.de>
2677
2678 * tree-ssa-pre.c (get_sccvn_value): Simplify.
2679 (compute_avail): Do not add stmt uses to AVAIL_OUT.
2680
550a64af 26812008-03-10 Paolo Bonzini <bonzini@gnu.org>
2682
2683 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
2684 Set default to true.
2685
2c3b9819 26862008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2687
2688 * c.opt (Wsynth): Deprecate.
2689 * doc/invoke.texi (Option Summary, Warning Options): Document
2690 -Wno-format-contains-nul.
2691
e2cb4221 26922008-03-09 Uros Bizjak <ubizjak@gmail.com>
2693
2694 PR target/35496
2f6e3388 2695 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
e2cb4221 2696 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
2697
5c93936e 26982008-03-09 Ira Rosen <irar@il.ibm.com>
2699
2700 * config/rs6000/rs6000.c (builtin_description): Rename vector
2701 left shift operations.
2702 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
2703 (altivec_vsl<VI_char>): Rename to ...
2704 (ashl<mode>3): ... new name.
2705 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
2706 gen_ashlv4si3.
2707 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
2708
a961cdc2 27092008-03-08 Richard Guenther <rguenther@suse.de>
2710
2711 * coverage.h (tree_coverage_counter_addr): Declare.
2712 * coverage.c (tree_coverage_counter_addr): New function.
2713 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
2714 before using again.
2715 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
2716 (tree_gen_one_value_profiler): Likewise.
2717 (tree_gen_ic_profiler): Likewise.
2718 (tree_gen_average_profiler): Likewise.
2719 (tree_gen_ior_profiler): Likewise.
2720
51a23cfc 27212008-03-08 Richard Guenther <rguenther@suse.de>
2722
2723 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
2724 (vn_binary_op_insert): Likewise.
2725 (vn_unary_op_lookup): Likewise.
2726 (vn_unary_op_insert): Likewise.
2727 (vn_nary_op_lookup): Declare.
2728 (vn_nary_op_insert): Likewise.
2729 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
2730 and binary hashes, use a single obstack for unary_op_pool
2731 and binary_op_pool.
2732 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
2733 a single struct vn_nary_op_s. Store tree code length and
2734 a variable number of operands.
2735 (struct vn_reference_op_struct): Remove unused op2.
2736 (vn_reference_op_eq): Do not compare op2.
2737 (vn_reference_op_compute_hash): Do not compute hash of op2.
2738 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
2739 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
2740 with vn_nary_op_compute_hash.
2741 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
2742 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
2743 vn_nary_op_lookup.
2744 (vn_unary_op_insert, vn_binary_op_insert): Replace with
2745 vn_nary_op_insert.
2746 (visit_unary_op): Call nary functions.
2747 (visit_binary_op): Likewise.
2748 (process_scc): Adjust for struct vn_tables_s changes.
2749 (allocate_vn_table): Likewise.
2750 (free_vn_table): Likewise.
2751 * tree-vn.c (vn_add): Call nary functions.
2752 (vn_lookup): Likewise.
2753
ce096d07 27542008-03-08 Jakub Jelinek <jakub@redhat.com>
2755
2756 PR target/35498
2757 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
2758 wdst back after sync_compare_and_swapqhi_internal.
2759
7916ca8a 27602008-03-08 Uros Bizjak <ubizjak@gmail.com>
2761
2762 PR target/22152
2763 * config/i386/i386-modes.def (V1DI): New vector mode.
2764 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
2765 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
2766 (MMXMODE248): Ditto.
2767 (MMXMODE): Add V1DI mode.
2768 (mmxvecsize): Change DI mode to V1DI mode.
2769 ("mov<mode>): Use MMXMODEI8 mode iterator.
2770 ("*mov<mode>_internal_rex64"): Ditto.
2771 ("*mov<mode>_internal"): Ditto.
2772 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
2773 ("mmx_sub<mode>3"): Ditto.
2774 ("mmx_adddi3"): Remove insn pattern.
2775 ("mmx_subdi3"): Ditto.
2776 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
2777 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
2778 ("mmx_ashl<mode>3"): Ditto.
2779 ("mmx_lshrdi3"): Remove insn pattern.
2780 ("mmx_ashldi3"): Ditto.
2781 * config/i386/i386.c (classify_argument): Handle V1DImode.
2782 (function_arg_advance_32): Ditto.
2783 (function_arg_32): Ditto.
2784 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
2785 mmx_addv1di3 insn pattern.
2786 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
2787 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
2788 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
2789 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
2790 Remove definitions of built-in functions.
2791 (V1DI_type_node): New node.
2792 (v1di_ftype_v1di_int): Ditto.
2793 (v1di_ftype_v1di_v1di): Ditto.
2794 (v2si_ftype_v2si_si): Ditto.
2795 (v4hi_ftype_v4hi_di): Remove node.
2796 (v2si_ftype_v2si_di): Ditto.
2797 (ix86_init_mmx_sse_builtins): Handle V1DImode.
2798 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
2799 Redefine builtins using def_builtin_const with *_ftype_*_int node.
2800 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
2801 Add new builtins using def_builtin_const.
2802 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
2803 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
2804 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
2805 * config/i386/mmintrin.h (__v1di): New typedef.
2806 (_mm_add_si64): Cast arguments to __v1di type.
2807 (_mm_sub_si64): Ditto.
2808 (_mm_sll_pi16): Cast __count to __v4hi type.
2809 (_mm_sll_pi32): Cast __count to __v2si type.
2810 (_mm_sll_si64): Cast arguments to __v1di type.
2811 (_mm_srl_pi16): Cast __count to __v4hi type.
2812 (_mm_srl_pi32): Cast __count to __v2si type.
2813 (_mm_srl_si64): Cast arguments to __v1di type.
2814 (_mm_sra_pi16): Cast __count to __v4hi type.
2815 (_mm_sra_pi32): Cast __count to __v2si type.
2816 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
2817 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
2818 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
2819 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
2820 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
2821 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
2822 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
2823 (_mm_srai_pi32): Use __builtin_ia32_psradi.
2824 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
2825 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
2826 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
2827 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
2828
4d170403 28292008-03-07 Joseph Myers <joseph@codesourcery.com>
2830
2831 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
2832
55100279 28332008-03-07 Peter Bergner <bergner@vnet.ibm.com>
2834
2835 PR target/35373
2836 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
2837 reg+const addressing for Altivec modes. Don't generate reg+reg
2838 addressing for TFmode or TDmode quantities.
2839
29f51994 28402008-03-07 Paolo Bonzini <bonzini@gnu.org>
2841
2842 * c-common.c (vector_types_convertible_p): Call langhook
2843 instead of comptypes.
2844
6e6e51e5 28452008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
2846
2847 PR tree-opt/35402
2848 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
2849 integral and scalar float variables which have a
2850 NULL DECL_INITIAL.
2851
bf2e2aa9 28522008-03-06 Nathan Froyd <froydnj@codesourcery.com>
2853
2854 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
2855 dwarf_register_span hook when emitting unwind information for
2856 register-to-memory saves.
2857 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
2858 (rs6000_frame_related): Remove call to spe_synthesize_frame.
2859
83c5f690 28602008-03-06 Jakub Jelinek <jakub@redhat.com>
2861
2862 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
2863 for the same VAR_DECL.
2864
167057eb 28652008-03-06 Tom Tromey <tromey@redhat.com>
2866
2867 * treelang: Delete.
2868 * doc/standards.texi (Standards): Don't mention treelang.
2869 * doc/invoke.texi (Overall Options): Don't mention treelang.
2870 * doc/install.texi (Prerequisites): Don't mention bison or
2871 treelang.
2872 (Configuration): Don't mention treelang.
2873 (Building): Likewise.
2874 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
2875
8178351b 28762008-03-06 Paolo Bonzini <bonzini@gnu.org>
2877
2878 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
2879 word-extractions out of a multi-word object.
2880
70337474 28812008-03-06 Richard Guenther <rguenther@suse.de>
2882
2883 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
2884 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
2885 result type and precision.
2886 * expr.c (get_inner_reference): Set unsignedp based on the result
2887 type of BIT_FIELD_REF.
2888 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
2889 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
2890 (try_instantiate_multiple_fields): Likewise. Use the correct type
2891 for BIT_FIELD_REF.
2892 (sra_build_assignment): Likewise.
2893 (sra_build_elt_assignment): Likewise.
2894 (sra_explode_bitfield_assignment): Likewise.
2895 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
2896 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
2897 set BIT_FIELD_REF_UNSIGNED.
2898 (vectorizable_load): Likewise.
2899
b357aba8 29002008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
2901
2902 * cse.c (cse_extended_basic_block): Invalidate artificial defs
2903 at bb start.
2904
1e020227 29052008-03-06 Richard Guenther <rguenther@suse.de>
2906
2907 * alias.c (struct alias_set_entry): Move has_zero_child field
2908 to pack with alias_set.
2909
4a8f8ebf 29102008-03-05 H.J. Lu <hongjiu.lu@intel.com>
2911
2912 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2913 32bit host.
2914
f701cb4d 29152008-03-05 Ian Lance Taylor <iant@google.com>
2916
2917 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
2918
30de5b55 29192008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
2920
2921 * fwprop.c (update_df): Support width and offset parameters of
2922 df_ref_create.
2923 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
2924 global_conflicts): Change DF_REF_EXTRACT to either
2925 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
2926 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
2927 * df-scan.c (df_ref_record, df_defs_record,
2928 df_ref_create_structure, df_def_record_1, df_uses_record,
2929 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
2930 df_bb_refs_collect, df_entry_block_defs_collect,
2931 df_exit_block_uses_collect): Support new width and offset fields.
2932 (ref_extract_pool): New storage pool.
2933 (df_free_ref): New function.
2934 (df_reg_chain_unlink, df_free_collection_rec,
2935 df_sort_and_compress_refs): Call df_free_ref.
2936 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
2937 of df_ref_extract.
2938 (df_ref_create_structure): Allocate df_ref_extract if offset and
2939 width fields are used.
2940 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
2941 (df_uses_record): Get offset and width from ZERO_EXTRACT
2942 and SIGN_EXTRACT.
2943 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
2944 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
2945 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
2946 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
2947 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
2948 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
2949 (df_ref_extract): New structure.
2950 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
2951 (df_ref_create): Add width and offset parameters.
2952
a306ee43 29532008-03-05 Richard Guenther <rguenther@suse.de>
2954
2955 * tree-ssa-structalias.c (get_constraint_for_component_ref):
2956 Use ranges_overlap_p.
2957 (offset_overlaps_with_access): Rename
2958 to ranges_overlap_p and move ...
2959 * tree-flow-inline.h (ranges_overlap_p): ... here.
2960
2961 * tree.h (get_inner_reference, handled_component_p): Update
2962 comments.
2963
2964 * tree.h (record_component_aliases, get_alias_set,
2965 alias_sets_conflict_p, alias_sets_must_conflict_p,
2966 objects_must_conflict_p): Move declarations ...
2967 * alias.h (record_component_aliases, get_alias_set,
2968 alias_sets_conflict_p, alias_sets_must_conflict_p,
2969 objects_must_conflict_p): ... here.
2970 Include coretypes.h.
2971 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
2972
d03ba86f 29732008-03-05 Aldy Hernandez <aldyh@redhat.com>
2974
2975 * cfg.c: Include tree-flow.h.
2976 (remove_edge_raw): Call redirect_edge_var_map_clear.
2977 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
2978 * tree-flow-inline.h (redirect_edge_var_map_def): New.
2979 (redirect_edge_var_map_result): New.
2980 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
2981 PENDING_STMT use with redirect_edge_var_map_*.
2982 * tree-ssa.c (edge_var_maps): New definition.
2983 (redirect_edge_var_map_add): New.
2984 (redirect_edge_var_map_clear): New.
2985 (redirect_edge_var_map_dup): New.
2986 (redirect_edge_var_map_vector): New.
2987 (redirect_edge_var_map_destroy): New.
2988 (ssa_redirect_edge): Replace PENDING_STMT use with
2989 redirect_edge_var_map_*.
2990 (flush_pending_stmts): Same.
2991 (delete_tree_ssa): Destroy edge var map.
2992 * tree-flow.h (struct _edge_var_map): New.
2993 Define edge_var_map vector type.
2994 Declare redirect_edge_var_map_* prototypes.
2995 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
2996 * tree-cfg.c (reinstall_phi_args): Replace
2997 PENDING_STMT use with redirect_edge_var_map_*.
2998
7cf3d282 29992008-03-05 Richard Guenther <rguenther@suse.de>
3000
3001 PR tree-optimization/35472
3002 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
3003 whose single use_stmt has a overlapping set of loaded and
3004 stored symbols as that use_stmt might be a noop assignment then.
3005
2349cd3e 30062008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
3007
3008 * gthr-rtems.h: Implement __gthread_mutex_destroy.
3009
70d2daf7 30102008-03-05 Richard Guenther <rguenther@suse.de>
3011
3012 PR c++/35336
3013 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
3014 should be constants.
3015 * tree-cfg.c (verify_expr): Verify it.
3016 * fold-const.c (fold_truthop): Remove code generating
3017 BIT_FIELD_REFs of structure bases.
3018 (fold_binary): Likewise.
3019 (fold_ternary): Position and size of BIT_FIELD_REFs are
3020 always host integers.
3021 (make_bit_field_ref): Remove.
3022 (optimize_bit_field_compare): Remove.
3023 (all_ones_mask_p): Remove.
3024
a08778a2 30252008-03-05 Gabor Loki <loki@gcc.gnu.org>
3026
3027 PR gcc/33009
3028 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
3029 (split_block_and_df_analyze): New. Split basic block and rebuild
3030 dataflow.
3031 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
3032 SPLIT_BLOCK.
3033 (split_pattern_seq): Likewise.
3034 (erase_matching_seqs): Likewise.
3035 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
3036
ad7c187a 30372008-03-04 Geoff Keating <geoffk@apple.com>
3038
3039 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
3040 declaration and code.
3041 (tree_invalid_nonnegative_warnv_p): Likewise.
3042
57c56476 30432008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
3044
3045 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
3046 examples. Truncate option-names then causing overfull hbox.
3047
d4f869a6 30482008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3049
3050 PR target/35222
3051 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
3052 on hpux10.
3053 * configure: Rebuilt.
3054
ea1a85df 30552008-03-04 Rafael Espindola <espindola@google.com>
3056
3057 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
3058 (tree_unary_nonnegative_warnv_p): New.
3059 (tree_binary_nonnegative_warnv_p): New.
3060 (tree_single_nonnegative_warnv_p): New.
3061 (tree_invalid_nonnegative_warnv_p): New.
3062 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
3063
88d4fcc4 30642008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3065
3066 PR 28322
3067 * opts.c (handle_option): Postpone 'unknown option' errors only for
3068 warning options.
3069
f98d7ce9 30702008-03-04 H.J. Lu <hongjiu.lu@intel.com>
3071
3072 PR target/35453
3073 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
3074 (_SIDD_XXX): This.
3075
937bceaf 30762008-03-04 Rafael Espindola <espindola@google.com>
3077
3078 * fold-const.c (tree_unary_nonzero_warnv_p): New.
3079 (tree_binary_nonzero_warnv_p): New.
3080 (tree_single_nonzero_warnv_p): New.
3081 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
3082
01e93ec4 30832008-03-04 Uros Bizjak <ubizjak@gmail.com>
3084
3085 PR middle-end/35456
3086 * fold-const.c (fold_cond_expr_with_comparison): Prevent
3087 transformations for modes that have signed zeros.
3088 * ifcvt.c (noce_try_abs): Ditto.
3089
cfb92464 30902008-03-04 Joseph Myers <joseph@codesourcery.com>
3091
3092 * config/i386/i386.c (override_options): Force
3093 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
3094
fb1b7d77 30952008-03-04 Jan Hubicka <jh@suse.cz>
3096
3097 PR c++/35262
3098 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
3099 in last commit.
3100
9b980db1 31012008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
3102
3103 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
bb51041c 3104 label to probe the stack.
9b980db1 3105
abefb712 31062008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
3107
3108 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
3109 (__gthr_win32_mutex_destroy): Declare.
3110 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
3111 __gthr_win32_mutex_destroy.
3112 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
3113
99e909be 31142008-03-03 Jan Hubicka <jh@suse.cz>
3115
3116 PR c++/35262
3117 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
3118 aggressive on inlining cold calls.
3119
802d9f2f 31202008-03-03 Richard Guenther <rguenther@suse.de>
3121
3122 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
3123 struct copies into the expression table.
3124 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
3125 (try_to_simplify): Likewise.
3126 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
3127 integral and pointer arguments which do not change the
3128 precision to NOP_EXPRs.
3129 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
3130 VIEW_CONVERT_EXPR case.
3131
663608f5 31322008-03-02 Sebastian Pop <sebastian.pop@amd.com>
3133
3134 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
3135 defined in a loop at depth 0 is invariant.
3136 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3137 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
3138 be called at loop depth 0.
3139
e46a4556 31402008-03-02 Jakub Jelinek <jakub@redhat.com>
3141
3142 PR driver/35420
3143 * gcc.c (process_command): Update copyright notice dates.
3144 * gcov.c (print_version): Likewise.
3145 * gcov-dump.c (print_version): Likewise.
3146 * mips-tfile.c (main): Likewise.
3147 * mips-tdump.c (main): Likewise.
3148
07317e69 31492008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3150
3151 PR 24924
3152 * c-common.c (flag_permissive): Delete.
3153 (constant_expression_warnings): Check flags first.
3154 (constant_expression_error): New.
3155 * c-common.h (flag_permissive): Delete.
3156 (constant_expression_error): Declare.
3157 * flags.h (flag_permissive): Declare. Update description.
3158 * diagnostic.c (pedwarn): Update.
3159 (permerror): New.
3160 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
3161 (permissive_error_kind): New.
3162 * toplev.c (flag_permissive): Define. Update description.
3163 * toplev.h (permissive_error_kind): Declare.
3164 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
3165 (pedwarn_c90): Use pedantic_warning_kind.
3166 * c-opts.c (c_common_post_options): flag_permissive does not affect
3167 flag_pedantic_errors.
3168
462a0c31 31692008-03-02 Joseph Myers <joseph@codesourcery.com>
3170
3171 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
3172 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
3173 __absvsi2, __absvDI2): Use unsigned arithmetic.
3174
64cf91f5 31752008-03-02 Andi Kleen <ak@suse.de>
e06aee53 3176 Richard Guenther <rguenther@suse.de>
64cf91f5 3177
3178 * struct-equiv.c: Remove file.
3179 * cfg_cleanup.c (condjump_equiv_p): Remove.
3180 * Makefile.in (OBJS-common): Remove struct-equiv.o.
3181 (struct-equiv.o): Remove rule.
3182 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
3183 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
3184 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
3185
ba0b5cfc 31862008-03-01 Alexandre Oliva <aoliva@redhat.com>
3187
3188 * ifcvt.c (noce_process_if_block): Try to handle only the then
3189 block if the else block exists but isn't suitable.
3190
71239661 31912008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
3192
3193 PR gcc/35063
3194 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
3195 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
3196 regression from previous patch.
3197
1cd3a344 31982008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
3199
3200 PR gcc/35063
3201 * gthr.h: Add __gthread_mutex_destroy as a function that must be
3202 implemented.
3203 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
3204 * gthr-single.h (__gthread_mutex_destroy): Likewise.
3205 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
3206 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
3207 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
3208 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
3209 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
3210 (__gthread_mutex_destroy_function): Rename to
3211 __gthread_mutex_destroy.
3212 * gthr-dce.h (__gthread_mutex_destroy): Call
3213 pthread_mutex_destroy.
3214 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
3215 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
3216 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
3217
a2bdd643 32182008-03-01 Alexandre Oliva <aoliva@redhat.com>
3219
3220 * df-scan.c (df_ref_chain_change_bb): Simplify.
3221 (df_insn_change_bb): Add new_bb argument. Simplify. Call
3222 set_block_for_insn if there's any change.
3223 * df.h ((df_insn_change_bb): Fix prototype.
3224 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
3225 df_insn_change_bb, don't call set_block_for_insn.
3226 * emit-rtl.c (reorder_insns): Likewise.
3227 * haifa-sched.c (move_insn): Likewise.
3228
c8707f08 32292008-03-01 Alexandre Oliva <aoliva@redhat.com>
3230
3231 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
3232
200ad982 32332008-03-01 Alexandre Oliva <aoliva@redhat.com>
3234
3235 * tree-flow-inline.h (next_readonly_imm_use): Return
3236 NULL_USE_OPERAND_P after the end.
3237
0045e505 32382008-03-01 Richard Guenther <rguenther@suse.de>
3239
3240 PR tree-optimization/35411
3241 * tree-sra.c (sra_build_assignment): Split conversion to
3242 final type to a separate statement if we are not assigning
3243 to a register.
3244
4a2f7014 32452008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
3246
3247 * fold-const.c (fold_convertible_p): Correct the logic to follow
3248 that in fold_convert().
3249
e8e0078c 32502008-02-29 Douglas Gregor <doug.gregor@gmail.com>
3251
3252 PR c++/35315
3253 * tree-inline.c (build_duplicate_type): When we make a
3254 duplicate type, make it unique in the canonical types system.
3255
26cb3d1c 32562008-02-29 Tom Tromey <tromey@redhat.com>
3257
3258 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
3259 input_file_stack_history, input_file_stack_restored): Remove.
3260 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3261 * input.h (struct file_stack): Remove.
3262 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3263 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
3264 Likewise.
3265 * diagnostic.h (struct diagnostic_context) <last_module>: Change
3266 type.
3267 (diagnostic_last_module_changed): Add 'map' argument.
3268 (diagnostic_set_last_function): Likewise.
3269 * diagnostic.c (undiagnostic_report_current_module): Iterate using
3270 line map, not input_file_stack.
3271 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
3272
a09d6770 32732008-02-29 Paul Brook <paul@codesourcery.com>
3274
3275 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
3276
a7aa526d 32772008-02-29 Paul Brook <paul@codesourcery.com>
3278
3279 * config/arm/ieee754-df.S (muldf3): Use RET macros.
3280
d4cdfd27 32812008-02-29 Richard Guenther <rguenther@suse.de>
3282
3283 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
3284 vn_lookup_or_add.
3285 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
3286 value for comparing for a store match.
3287 (simplify_unary_expression): Do nothing for SSA_NAMEs.
3288 (try_to_simplify): Do not do a full-blown reference lookup.
3289
607ac910 32902008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
3291
3292 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
3293 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3294
3295 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
3296
2fcf1fbb 32972008-02-29 Sebastian Pop <sebastian.pop@amd.com>
3298
3299 * tree-loop-linear.c (try_interchange_loops): Compare memory access
3300 strides against cache sizes.
3301
583c0935 33022008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
3303
3304 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
3305 constant to fpul.
3306
ad76ccf5 33072008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
3308
3309 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
3310 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
3311 is smaller than the original promoted value.
3312 (simplify_subreg): If OP is a SUBREG, try to preserve its
3313 SUBREG_PROMOTED_VAR_P information.
3314
b9584939 33152008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
3316
3317 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
3318 (VN_INFO_GET): Allocate new objects on the obstack.
3319 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
3320 for rpo_numbers_temp, for consistency.
3321 (free_scc_vn): Free the obstack.
3322
801c5610 33232008-02-28 Sebastian Pop <sebastian.pop@amd.com>
3324
3325 * doc/invoke.texi: Document -ftree-loop-distribution.
3326 * tree-loop-distribution.c: New.
3327 * tree-pass.h (pass_loop_distribution): New.
3328 * graphds.h (struct graph): Add htab_t indices.
3329 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
3330 * tree-vectorizer.c (rename_variables_in_loop): Extern.
3331 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
3332 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
3333 * tree-data-ref.c (debug_data_dependence_relations): New.
3334 (dump_data_dependence_relation): Also print data references.
3335 (free_data_ref): Extern.
3336 (same_access_functions): Moved...
3337 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
3338 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3339 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
3340 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
3341 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
3342 (stmts_from_loop): Skip LABEL_EXPR.
01e93ec4 3343 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
3344 New.
801c5610 3345 (build_rdg): Initialize rdg->indices htab.
3346 (free_rdg, stores_from_loop, ref_base_address,
3347 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
3348 have_similar_memory_accesses_1, ref_base_address_1,
3349 remove_similar_memory_refs): New.
3350 * tree-data-ref.h: Depend on tree-chrec.h.
3351 (debug_data_dependence_relations, free_data_ref): Declared.
3352 (same_access_functions): ... here.
01e93ec4 3353 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
3354 New.
801c5610 3355 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
3356 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
3357 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
3358 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3359 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
3360 rdg_vertex_for_stmt): Declared.
3361 (struct rdg_edge): Add level.
3362 (RDGE_LEVEL): New.
3363 (free_rdg, stores_from_loop, remove_similar_memory_refs,
01e93ec4 3364 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
3365 Declared.
801c5610 3366 (rdg_has_similar_memory_accesses): New.
3367 * tree-vect-analyze.c: Remove unused static decls.
3368 * lambda.h (dependence_level): New.
3369 * common.opt (ftree-loop-distribution): New.
3370 * tree-flow.h (mark_virtual_ops_in_bb,
3371 slpeel_tree_duplicate_loop_to_edge_cfg,
3372 rename_variables_in_loop): Declared.
3373 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
3374 (OBJS-common): Add tree-loop-distribution.o.
3375 (tree-loop-distribution.o): New rule.
3376 * tree-cfg.c (mark_virtual_ops_in_bb): New.
3377 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
3378 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
3379
9c467f13 33802008-02-28 Joseph Myers <joseph@codesourcery.com>
3381
3382 PR target/33963
3383 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
3384 other than structures and unions.
3385
c0ff55b3 33862008-02-28 Richard Guenther <rguenther@suse.de>
3387
3388 Revert:
3389 2008-02-26 Richard Guenther <rguenther@suse.de>
3390
3391 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3392 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3393 (lookup_decl_from_uid): Declare.
3394 (remove_decl_from_map): Likewise.
3395 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3396 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3397 (decl_for_uid_map): New global hashtable mapping DECL_UID
3398 to the decl tree.
3399 (init_ttree): Allocate it.
3400 (insert_decl_to_uid_decl_map): New helper function.
3401 (make_node_stat): Insert new decls into the map.
3402 (copy_node_stat): Likewise.
3403 (lookup_decl_from_uid): New function.
3404 (remove_decl_from_map): Likewise.
3405 (print_decl_for_uid_map_statistics): New helper.
3406 (dump_tree_statistics): Call it.
3407
3408 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3409 (referenced_var_iterator): Adjust.
3410 (FOR_EACH_REFERENCED_VAR): Adjust.
3411 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3412 (num_referenced_vars): Adjust.
3413 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3414 (first_referenced_var): Remove.
3415 (end_referenced_vars_p): Likewise.
3416 (next_referenced_var): Likewise.
3417 (referenced_var_iterator_set): New helper function.
3418 * tree-dfa.c (referenced_var_lookup): Adjust.
3419 (referenced_var_check_and_insert): Likewise.
3420 (remove_referenced_var): Likewise.
3421 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
3422 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3423 (verify_call_clobbering): Likewise.
3424 (verify_memory_partitions): Likewise.
3425 (init_tree_ssa): Allocate bitmap instead of hashtable for
3426 referenced_vars.
3427 (delete_tree_ssa): Adjust.
3428 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
3429 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3430 (compute_tag_properties): Likewise.
3431 (set_initial_properties): Likewise.
3432 (find_partition_for): Likewise.
3433 (update_reference_counts): Likewise.
3434 (dump_may_aliases_for): Likewise.
3435 * tree-ssa-operands.c (add_virtual_operand): Likewise.
3436 (add_call_clobber_ops): Likewise.
3437 (add_call_read_ops): Likewise.
3438 (get_asm_expr_operands): Likewise.
3439 * tree-into-ssa.c (dump_decl_set): Likewise.
3440 (update_ssa): Likewise.
3441 * tree-sra.c (scan_function): Likewise.
3442 (decide_instantiations): Likewise.
3443 (scalarize_parms): Likewise.
3444 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3445 (dsa_named_for): Likewise.
3446 * tree-ssa-structalias.c (update_alias_info): Likewise.
3447 (merge_smts_into): Likewise.
3448
16b35285 34492008-02-27 David Daney <ddaney@avtrex.com>
3450
3451 PR target/34409
3452 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
3453 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
3454 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
3455 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
3456 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
3457
d243d9c9 34582008-02-27 Uros Bizjak <ubizjak@gmail.com>
3459
3460 PR target/25477
3461 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
3462 (BUILT_IN_NEXTTOWARD): Remove.
3463 (BUILT_IN_NEXTTOWARDF): Ditto.
3464 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
3465 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
3466
de9ebaea 34672008-02-27 Tom Tromey <tromey@redhat.com>
3468
3469 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
3470 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
3471
5f398d1f 34722008-02-27 Jan Beulich <jbeulich@novell.com>
3473
3474 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
3475 update the respective field on newdecl.
3476
9cc5df33 34772008-02-27 Revital Eres <eres@il.ibm.com>
3478
3479 PR rtl-optimization/34999
3480 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
3481 crossing edges that ends with a call insn.
3482 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
3483 call insn and clear the EDGE_CROSSING flag of the crossing edge
3484 when fixing fallthru edges.
3485
c2f5179d 34862008-02-27 Richard Guenther <rguenther@suse.de>
3487
c0ff55b3 3488 PR middle-end/35390
c2f5179d 3489 * fold-const.c (fold_unary): Return the correct argument,
3490 converted to the result type.
3491
6295ca72 34922008-02-27 Richard Guenther <rguenther@suse.de>
3493
3494 PR middle-end/34971
3495 * expr.c (expand_expr_real_1): Assert on rotates that operate
3496 on partial modes.
3497 * fold-const.c (fold_binary): Use the types precision, not the
3498 bitsize of the mode if folding rotate expressions. Build rotates
3499 only for full modes.
3500
146a4308 35012008-02-27 Jakub Jelinek <jakub@redhat.com>
3502
3503 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
3504 and CPP_PRAGMA_EOL.
3505 * c-pragma.c (pragma_ns_name): New typedef.
3506 (registered_pp_pragmas): New variable.
3507 (c_pp_lookup_pragma): New function.
3508 (c_register_pragma_1): If flag_preprocess_only, do nothing
3509 for non-expanded pragmas, for expanded ones push pragma's
3510 namespace and name into registered_pp_pragmas vector.
3511 (c_invoke_pragma_handler): Register OpenMP pragmas even when
3512 flag_preprocess_only, don't register GCC pch_preprocess
3513 pragma if flag_preprocess_only.
3514 * c-opts.c (c_common_init): Call init_pragma even if
3515 flag_preprocess_only.
3516 * c-pragma.c (c_pp_lookup_pragma): New prototype.
3517 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
3518 cpp_register_pragma if flag_preprocess_only.
3519
784c0df4 35202008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3521
3522 PR c/28800
3523 * c-parser.c (c_parser_translation_unit): Warn for empty
3524 translation unit, not empty source file.
3525
aaa37ad6 35262008-02-26 Paul Brook <paul@codesourcery.com>
3527
3528 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
3529 operand for Thumb-2.
3530 * config/arm/arm.h (reg_class): Add CORE_REGS.
3531 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
3532 (BASE_REG_CLASS): Use CORE_REGS.
3533 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
3534 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
3535 (REGNO_OK_FOR_INDEX_P): Exclude SP.
3536 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
3537 ARM_REGNO_OK_FOR_INDEX_P.
3538 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
3539 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
3540 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
3541 (ldm/stm peepholes): Ditto.
3542 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
3543 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
3544 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
3545 * config/arm/constraints.md: Enable "k" constraint on ARM.
3546
7effebe0 35472008-02-27 Ben Elliston <bje@au.ibm.com>
3548
3549 * config/rs6000/rs6000.c: Annotate cache line size field in all
3550 instances of struct processor_costs.
3551
4ff06051 35522008-02-26 David Edelsohn <edelsohn@gnu.org>
3553
3554 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
3555 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
3556 jump_bypass): New counters.
3557 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
3558 * dce.c (gate_ud_dce): Same.
3559 (gate_fast_dce): Same.
3560 * dse.c (gate_dse1): New function.
3561 (gate_dse2): New function.
3562 (gate_dse): Merge results of new gate functions.
3563 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
3564 (gate_handle_jump_bypass): Add dbg_cnt.
3565 (gate_handle_gcse): Add dbg_cnt.
3566 * ifcvt.c (gate_handle_if_conversion): Same.
3567 (gate_handle_if_after_combine): Same.
3568 (gate_handle_if_after_reload): Same.
3569 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
3570
0fc88469 35712008-02-26 Edmar Wienskoski <edmar@freescale.com>
3572
3573 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
3574 line sizes.
3575 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
3576
3ef0a05e 35772008-02-26 Jason Merrill <jason@redhat.com>
3578
3579 PR c++/35315
3580 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
3581 alone if it's the naming decl for the type's main variant.
3582
9c85a98a 35832008-02-26 Tom Tromey <tromey@redhat.com>
3584
3585 * system.h (USE_MAPPED_LOCATION): Poison.
3586 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
3587 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
3588 (make_goto_expr_edges): Likewise.
3589 (remove_bb): Likewise.
3590 (execute_warn_function_return): Likewise.
3591 * basic-block.h (struct edge_def) <goto_locus>: Change type to
3592 location_t.
3593 * c-common.c (fname_decl): Remove old location code.
3594 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
3595 location code.
3596 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
3597 variant.
3598 (ASM_INPUT_SOURCE_LOCATION): Likewise.
3599 (gen_rtx_ASM_INPUT): Likewise.
3600 (gen_rtx_ASM_INPUT_loc): Likewise.
3601 (get_rtx_asm_OPERANDS): Remove.
3602 * cfglayout.c (insn_locators_alloc): Remove old location code.
3603 (set_curr_insn_source_location): Likewise.
3604 (curr_insn_locator): Likewise.
3605 * print-tree.c (print_node): Remove old location code.
3606 * tree-mudflap.c (mf_varname_tree): Remove old location code.
3607 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
3608 * cfgexpand.c (expand_gimple_cond_expr): Don't use
3609 location_from_locus.
3610 (construct_exit_block): Remove old location code.
3611 * emit-rtl.c (force_next_line_note): Remove old location code.
3612 * profile.c (branch_prob): Remove old location code.
3613 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
3614 LOC_LINE): Remove old-location variants.
3615 * langhooks.c (lhd_print_error_function): Remove old location
3616 code.
3617 * configure, config.in: Rebuilt.
3618 * configure.ac (--enable-mapped-location): Remove.
3619 * c-decl.c (c_init_decl_processing): Remove old location code.
3620 (finish_function): Likewise.
3621 * recog.c (decode_asm_operands): Remove old location code.
3622 * c-pch.c (c_common_read_pch): Remove old location code.
3623 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
3624 variants.
3625 * gimple-low.c (lower_function_body): Remove old location code.
3626 * toplev.c (unknown_location): Remove.
3627 (push_srcloc): Remove old-location variant.
3628 (process_options): Remove old location code.
3629 (lang_dependent_init): Likewise.
3630 * input.h (UNKNOWN_LOCATION): Move definition.
3631 (location_t): Undeprecate.
3632 (source_locus): Remove.
3633 (location_from_locus): Remove.
3634 (struct location_s): Remove.
3635 Remove all old-location code.
3636 (input_line, input_filename): Remove.
3637 * final.c (final_scan_insn): Remove old location code.
3638 * diagnostic.c (diagnostic_build_prefix): Remove
3639 USE_MAPPED_LOCATION test.
3640 * tree.h (gimple_stmt) <locus>: Now a location_t.
3641 (tree_exp) <locus>: Likewise.
3642 (DECL_IS_BUILTIN): Remove old-location variant.
3643 (annotate_with_file_line, annotate_with_locus): Likewise.
3644 (expr_locus, set_expr_locus): Update.
3645 * tree.c (build1_stat): Remove old location code.
3646 (last_annotated_node): Remove.
3647 (annotate_with_file_line): Remove old-location variant.
3648 (annotate_with_locus): Likewise.
3649 (expr_location): Remove old location code.
3650 (set_expr_location): Likewise.
3651 (expr_has_location): Likewise.
3652 (expr_locus): Likewise.
3653 (set_expr_locus): Likewise.
3654 (expr_filename): Don't use location_from_locus.
3655 (expr_lineno): Likewise.
3656 * rtl-error.c (location_for_asm): Remove old location code.
3657 * c-lex.c (cb_line_change): Remove old location code.
3658 (fe_file_change): Likewise.
3659 (cb_def_pragma): Likewise.
3660 (c_lex_with_flags): Likewise.
3661 * gengtype.c (do_typedef): Don't special-case location types.
3662 (define_location_structures): Remove.
3663 (main): Don't call define_location_structures.
3664 * tree-pretty-print.c (dump_implicit_edges): Remove old location
3665 code.
3666
c0394294 36672008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3668
bb51041c 3669 PR 26264
c0394294 3670 * builtins.def (BUILT_IN_STDARG_START): Remove.
3671 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
3672 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
3673 * tree-inline.c (inline_forbidden_p_1): Likewise.
3674
20308404 36752008-02-26 Richard Guenther <rguenther@suse.de>
3676
3677 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3678 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3679 (lookup_decl_from_uid): Declare.
3680 (remove_decl_from_map): Likewise.
3681 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3682 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3683 (decl_for_uid_map): New global hashtable mapping DECL_UID
3684 to the decl tree.
3685 (init_ttree): Allocate it.
3686 (insert_decl_to_uid_decl_map): New helper function.
3687 (make_node_stat): Insert new decls into the map.
3688 (copy_node_stat): Likewise.
3689 (lookup_decl_from_uid): New function.
3690 (remove_decl_from_map): Likewise.
3691 (print_decl_for_uid_map_statistics): New helper.
3692 (dump_tree_statistics): Call it.
3693
3694 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3695 (referenced_var_iterator): Adjust.
3696 (FOR_EACH_REFERENCED_VAR): Adjust.
3697 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3698 (num_referenced_vars): Adjust.
3699 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3700 (first_referenced_var): Remove.
3701 (end_referenced_vars_p): Likewise.
3702 (next_referenced_var): Likewise.
3703 (referenced_var_iterator_set): New helper function.
3704 * tree-dfa.c (referenced_var_lookup): Adjust.
3705 (referenced_var_check_and_insert): Likewise.
3706 (remove_referenced_var): Likewise.
3707 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
3708 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3709 (verify_call_clobbering): Likewise.
3710 (verify_memory_partitions): Likewise.
3711 (init_tree_ssa): Allocate bitmap instead of hashtable for
3712 referenced_vars.
3713 (delete_tree_ssa): Adjust.
3714 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
3715 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3716 (compute_tag_properties): Likewise.
3717 (set_initial_properties): Likewise.
3718 (find_partition_for): Likewise.
3719 (update_reference_counts): Likewise.
3720 (dump_may_aliases_for): Likewise.
3721 * tree-ssa-operands.c (add_virtual_operand): Likewise.
3722 (add_call_clobber_ops): Likewise.
3723 (add_call_read_ops): Likewise.
3724 (get_asm_expr_operands): Likewise.
3725 * tree-into-ssa.c (dump_decl_set): Likewise.
3726 (update_ssa): Likewise.
3727 * tree-sra.c (scan_function): Likewise.
3728 (decide_instantiations): Likewise.
3729 (scalarize_parms): Likewise.
3730 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3731 (dsa_named_for): Likewise.
3732 * tree-ssa-structalias.c (update_alias_info): Likewise.
3733 (merge_smts_into): Likewise.
3734
75130fc7 37352008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3736
3737 PR 34351
3738 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
3739 * c-opts.c (c_common_handle_option): Wall enables
3740 Wvolatile-register-var.
3741 * common.opt: Move Wvolatile-register-var to...
3742 * c.opt: ...here.
3743
17c66687 37442008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3745
3746 * common.opt (Wlarger-than=): New.
3747 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
3748 -Wlarger-than=.
3749 * opts.c (common_handle_option): Handle -Wlarger-than=.
3750 * optc-gen.awk: Likewise.
3751 * opth-gen.awk: Likewise.
3752 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
3753 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3754
6cbbbc89 37552008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3756
3757 * c-common.c (match_case_to_enum_1): Add appropriate
3758 OPT_W* parameter to warning.
3759 (c_do_switch_warnings): Likewise.
3760 * c-typeck.c (warning_init): Add one more parameter following
3761 'warning' function.
3762 (push_init_level): Update call to warning_init.
3763 (pop_init_level): Likewise.
3764 (add_pending_init): Likewise.
3765 (output_init_element: Likewise.
3766
ddb48b82 37672008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3768
3769 PR 28322
3770 * toplev.c (toplev_main): If there are warnings or error, print
3771 errors for ignored options.
3772 * opts.c (ignored_options): New static variable.
3773 (postpone_unknown_option_error): New.
3774 (print_ignored_options): New.
3775 (handle_option): Postpone errors for unknown -Wno-* options.
3776 * opts.h (print_ignored_options): Declare.
3777
7ecd9299 37782008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
3779
3780 * config/mips/mips.md (loadgp_blockage, blockage): Change type
3781 to "ghost".
3782
3a0e28bd 37832008-02-25 Richard Guenther <rguenther@suse.de>
3784
3785 Revert:
3786 2008-02-25 Richard Guenther <rguenther@suse.de>
3787
3788 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3789 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3790 (lookup_decl_from_uid): Declare.
3791 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3792 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3793 (decl_for_uid_map): New global hashtable mapping DECL_UID
3794 to the decl tree.
3795 (init_ttree): Allocate it.
3796 (insert_decl_to_uid_decl_map): New helper function.
3797 (make_node_stat): Insert new decls into the map.
3798 (copy_node_stat): Likewise.
3799 (lookup_decl_from_uid): New function.
3800 (print_decl_for_uid_map_statistics): New helper.
3801 (dump_tree_statistics): Call it.
3802
3803 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3804 (referenced_var_iterator): Adjust.
3805 (FOR_EACH_REFERENCED_VAR): Adjust.
3806 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3807 (num_referenced_vars): Adjust.
3808 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3809 (first_referenced_var): Remove.
3810 (end_referenced_vars_p): Likewise.
3811 (next_referenced_var): Likewise.
3812 (referenced_var_iterator_set): New helper function.
3813 * tree-dfa.c (referenced_var_lookup): Adjust.
3814 (referenced_var_check_and_insert): Likewise.
3815 (remove_referenced_var): Likewise.
3816 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
3817 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3818 (verify_call_clobbering): Likewise.
3819 (verify_memory_partitions): Likewise.
3820 (init_tree_ssa): Allocate bitmap instead of hashtable for
3821 referenced_vars.
3822 (delete_tree_ssa): Adjust.
3823 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
3824 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3825 (compute_tag_properties): Likewise.
3826 (set_initial_properties): Likewise.
3827 (find_partition_for): Likewise.
3828 (update_reference_counts): Likewise.
3829 (dump_may_aliases_for): Likewise.
3830 * tree-ssa-operands.c (add_virtual_operand): Likewise.
3831 (add_call_clobber_ops): Likewise.
3832 (add_call_read_ops): Likewise.
3833 (get_asm_expr_operands): Likewise.
3834 * tree-into-ssa.c (dump_decl_set): Likewise.
3835 (update_ssa): Likewise.
3836 * tree-sra.c (scan_function): Likewise.
3837 (decide_instantiations): Likewise.
3838 (scalarize_parms): Likewise.
3839 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3840 (dsa_named_for): Likewise.
3841 * tree-ssa-structalias.c (update_alias_info): Likewise.
3842 (merge_smts_into): Likewise.
3843
7e959c84 38442008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
3845
3846 PR fortran/29549
3847 * doc/invoke.texi (-fcx-limited-range): Document new option.
3848 * toplev.c (process_options): Handle -fcx-fortran-rules.
bb51041c 3849 * common.opt: Add documentation for -fcx-fortran-rules.
7e959c84 3850
a8806066 38512008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
3852
3853 PR c/35162
3854 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
3855 actual behaviour and C99.
3856
b30c4a87 38572008-02-26 Ben Elliston <bje@au.ibm.com>
3858
3859 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
3860 (ASM_CPU_POWER6_SPEC): Likewise.
3861 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
3862 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
3863 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
3864
8ca26bdd 38652008-02-25 Richard Guenther <rguenther@suse.de>
3866
3867 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3868 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3869 (lookup_decl_from_uid): Declare.
3870 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3871 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3872 (decl_for_uid_map): New global hashtable mapping DECL_UID
3873 to the decl tree.
3874 (init_ttree): Allocate it.
3875 (insert_decl_to_uid_decl_map): New helper function.
3876 (make_node_stat): Insert new decls into the map.
3877 (copy_node_stat): Likewise.
3878 (lookup_decl_from_uid): New function.
3879 (print_decl_for_uid_map_statistics): New helper.
3880 (dump_tree_statistics): Call it.
3881
3882 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3883 (referenced_var_iterator): Adjust.
3884 (FOR_EACH_REFERENCED_VAR): Adjust.
3885 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3886 (num_referenced_vars): Adjust.
3887 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3888 (first_referenced_var): Remove.
3889 (end_referenced_vars_p): Likewise.
3890 (next_referenced_var): Likewise.
3891 (referenced_var_iterator_set): New helper function.
3892 * tree-dfa.c (referenced_var_lookup): Adjust.
3893 (referenced_var_check_and_insert): Likewise.
3894 (remove_referenced_var): Likewise.
3895 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
3896 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3897 (verify_call_clobbering): Likewise.
3898 (verify_memory_partitions): Likewise.
3899 (init_tree_ssa): Allocate bitmap instead of hashtable for
3900 referenced_vars.
3901 (delete_tree_ssa): Adjust.
3902 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
3903 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
3904 (compute_tag_properties): Likewise.
3905 (set_initial_properties): Likewise.
3906 (find_partition_for): Likewise.
3907 (update_reference_counts): Likewise.
3908 (dump_may_aliases_for): Likewise.
3909 * tree-ssa-operands.c (add_virtual_operand): Likewise.
3910 (add_call_clobber_ops): Likewise.
3911 (add_call_read_ops): Likewise.
3912 (get_asm_expr_operands): Likewise.
3913 * tree-into-ssa.c (dump_decl_set): Likewise.
3914 (update_ssa): Likewise.
3915 * tree-sra.c (scan_function): Likewise.
3916 (decide_instantiations): Likewise.
3917 (scalarize_parms): Likewise.
3918 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
3919 (dsa_named_for): Likewise.
3920 * tree-ssa-structalias.c (update_alias_info): Likewise.
3921 (merge_smts_into): Likewise.
3922
5fe61d21 39232008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
3924
3925 PR target/35258
3926 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
3927 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
3928 * alias.h (nonoverlapping_memrefs_p): Likewise.
3929
cab0c612 39302008-02-25 Jan Beulich <jbeulich@novell.com>
3931
d243d9c9 3932 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
cab0c612 3933 * config/i386/netware-libgcc.exp: Add __bswap?i2,
3934 __emultls_get_address, __emultls_register_common,
3935 __floatundi?f, and _Unwind_GetIPInfo.
3936 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
3937 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
3938 (gen_regparm_prefix): Likewise.
3939 (i386_nlm_encode_section_info): Sync with
3940 config/i386/winnt.c:i386_pe_encode_section_info().
3941 (i386_nlm_maybe_mangle_decl_assembler_name): New.
3942 i386_nlm_mangle_decl_assembler_name): New.
3943 (netware_override_options): New.
3944 * config/i386/netware.h (netware_override_options): Declare.
3945 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
3946 (i386_nlm_mangle_decl_assembler_name): Declare.
3947 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
3948
5243b29d 39492008-02-25 Ben Elliston <bje@au.ibm.com>
3950
3951 PR other/32948
3952 * c-decl.c (grokdeclarator): Remove unused local variables
3953 `typedef_type' and `type_as_written'.
3954 * bb-reorder.c
3955 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
3956 unused local variable `has_hot_blocks'.
3957 (fix_crossing_conditional_branches): Remove unused local variable
3958 `prev_bb'.
3959
620d0bf8 39602008-02-25 Uros Bizjak <ubizjak@gmail.com>
3961
3962 PR middle-end/19984
3963 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
3964 using DEF_C99_BUILTIN.
3965 (BUILT_IN_NANF): Ditto.
3966 (BUILT_IN_NANL): Ditto.
3967
84004523 39682008-02-25 Ayal Zaks <zaks@il.ibm.com>
34d8410f 3969 Revital Eres <eres@il.ibm.com>
84004523 3970
3971 * modulo-sched.c (calculate_must_precede_follow): Address TODO
3972 regarding the order of two dependent insns in the same row.
3973
23f65835 39742008-02-25 Eric Botcazou <ebotcazou@adacore.com>
3975
3976 * stor-layout.c (layout_decl): Do not bump the alignment of a
3977 bit-field to more than byte alignment if it is packed.
3978
b18d68e3 39792008-02-24 David Edelsohn <edelsohn@gnu.org>
3980
3981 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
3982 e300c2 and e300c3.
3983
100b67da 39842008-02-24 Diego Novillo <dnovillo@google.com>
3985
3986 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
3987
3988 PR 33738
3989 * tree-vrp.c (vrp_evaluate_conditional): With
3990 -Wtype-limits, emit a warning when comparing against a
3991 constant outside the natural range of OP0's type.
3992 * c.opt (Wtype-limits): Move ...
3993 * common.opt (Wtype-limits): ... here.
3994
2aeab935 39952008-02-24 Edmar Wienskoski <edmar@freescale.com>
73edc44b 3996
3997 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
3998 * config/rs6000/e300c2c3.md: New file.
3999 * config/rs6000/rs6000.c (processor_costs): Add new costs for
4000 e300c2 and e300c3.
4001 (rs6000_override_options): Add e300c2 and e300c3 cases to
4002 processor_target_table. Do not allow usage of Altivec or Spe
4003 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
4004 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
4005 * config/rs6000/rs6000.h (processor_type): Add
4006 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
4007 (ASM_CPU_SPEC): Add e300c2 and e300c3.
4008 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
4009 and ppce300c3. Include e300c2c3.md.
4010
070270ea 40112008-02-23 David Edelsohn <edelsohn@gnu.org>
4012
4013 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
4014 instead of TARGET_STRICT_ALIGN.
4015
64ec1b61 40162008-02-23 Joseph Myers <joseph@codesourcery.com>
4017
4018 * explow.c (memory_address): Assert that the generated address is
4019 valid.
4020
6aee6ac8 40212008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
4022
4023 PR target/25477
4024 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
4025 * config/darwin-ppc-ldouble-patch.def: New file.
4026 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
4027 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
4028 SUBTARGET_INIT_BUILTINS if defined.
620d0bf8 4029 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
4030 New functions.
6aee6ac8 4031
3d72a1b5 40322008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
4033
4034 PR rtl-opt/33512
4035 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
4036 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
4037
c12ee0c6 40382008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
4039
4040 PR pch/35027
4041 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
4042 file" warning condtional on -Winvalid-PCH.
4043
05b481df 40442008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
4045
4046 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
4047
78624f54 40482008-02-23 Uros Bizjak <ubizjak@gmail.com>
4049
4050 PR target/22076
4051 PR target/34256
4052 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
4053 prevent reload from using MMX registers.
4054 (*mov<mode>_internal): Ditto.
4055 (*movv2sf_internal_rex64): Ditto.
4056 (*movv2sf_internal): Ditto.
4057
ed3f349a 40582008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4059
4060 PR documentation/31569
4061 * doc/install.texi2html: Use makeinfo --no-number-sections.
4062
e720c3f0 40632008-02-22 Nathan Froyd <froydnj@codesourcery.com>
4064
4065 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
4066 ensure that we can address an entire entity > 8 bytes. Don't
4067 generate reg+reg addressing for such data.
4068
dc3be372 40692008-02-22 Nathan Froyd <froydnj@codesourcery.com>
4070
4071 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
4072 strings when optimizing for size, unless the target cares about
4073 alignment.
4074
af3f5a19 40752008-02-22 Tom Tromey <tromey@redhat.com>
4076
4077 * regclass.c (current_pass): Remove declaration.
4078
9e926232 40792008-02-22 Anatoly Sokolov <aesok@post.ru>
4080
4081 * config/avr/libgcc.S (__RAMPZ__): Define.
4082 (__do_copy_data): Add for devices with 128KB code memory.
4083
b9cd27b3 40842008-02-22 Nathan Froyd <froydnj@codesourcery.com>
4085
4086 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4087 Use spe_abi.
4088 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
4089
e8cb528f 40902008-02-22 Hans-Peter Nilsson <hp@axis.com>
4091
4092 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
4093 GENNONACR_REGS.
4094
067d82a2 40952008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4096
4097 PR c/19999
4098 * c-typeck.c (build_binary_op): Warn about floating point
4099 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
4100
f9c1a520 41012008-02-21 Janis Johnson <janis187@us.ibm.com>
4102
4103 PR target/34526
4104 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
4105 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
4106 add vrsave.
4107 (rs6000_override_options): Set altivec_abi as default, not override,
4108 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
4109 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
4110 is used; use new member spe_abi.
4111 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
4112 spe_abi and altivec_abi.
4113
c7dcbde4 41142008-02-22 Tomas Bily <tbily@suse.cz>
4115
4116 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
4117
d45cdac2 41182008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4119
4120 PR bootstrap/35273
4121 * config.build (build_file_translate): Set to `CMD //c' only if
4122 it works.
4123 * Makefile.in (build_file_translate): Improve comment.
4124
f3cb8b1d 41252008-02-21 Jan Hubicka <jh@suse.cz>
4126
4127 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
4128 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
4129 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
4130
6ef19463 41312008-02-21 Michael Matz <matz@suse.de>
4132
4133 PR target/35264
4134 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
4135
3da2a73c 41362008-02-21 Uros Bizjak <ubizjak@gmail.com>
4137
4138 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
4139 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
4140 as insn constraint.
4141 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
4142 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
4143 SSE_VEC_FLOAT_MODE_P as insn constraint.
4144 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
4145 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
4146 sse4a_movntdf using MODEF mode iterator.
4147 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
4148 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
4149 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
4150 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
4151 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
4152 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
4153 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
4154
751ff693 41552008-02-21 Richard Guenther <rguenther@suse.de>
4156
4157 * tree.def (PAREN_EXPR): New tree code.
4158 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
4159 and PAREN_EXPR.
4160 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
4161 * expr.c (expand_expr_real_1): Likewise.
4162 * tree-inline.c (estimate_num_insns_1): Likewise.
4163 * tree-complex.c (expand_complex_move): Likewise.
4164 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
4165 as plain x.
4166
64c985e4 41672008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
4168
4169 PR target/35225
4170 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
4171
af122d60 41722008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
4173
4174 PR target/35190
4175 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
4176
4177 * config/sh/sh.c (find_barrier): Don't go past
4178 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
4179
610e569b 41802008-02-20 DJ Delorie <dj@redhat.com>
4181
4182 * config/h8300/h8300.md (insv): Force source operand to be a register.
4183
4184 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
4185 as a jump, not as a plain insn.
4186
6fdade09 41872008-02-20 Seongbae Park <seongbae.park@gmail.com>
4188
4189 * doc/invoke.texi (Warning Options): Add new option
4190 -Wframe-larger-than=.
4191 (-Wframe-larger-than): Document.
4192
4193 * flags.h (warn_frame_larger_than, frame_larger_than_size):
4194 Add declarations for new option variables.
4195
4196 * final.c (final_start_function): Check the frame size
4197 before emission and issue a Wframe-larger-than warning.
4198
4199 * opts.c (warn_frame_larger_than, frame_larger_than_size):
4200 Add definitions for new option variables.
4201 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
4202
4203 * common.opt (Wframe-larger-than=): New option.
4204
82cc8ae1 42052008-02-20 Uros Bizjak <ubizjak@gmail.com>
4206
4207 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
4208 (<sse>_div<mode>3): Ditto.
4209 (<sse>_vmdiv<mode>3): Ditto.
4210 (<sse>_vmsqrt<mode>2): Ditto.
4211 (*smax<mode>3): Ditto.
4212 (sse5_frcz<mode>2): Ditto.
4213 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
4214 as insn constraint.
4215
c7f617c2 42162008-02-20 Richard Guenther <rguenther@suse.de>
4217
4218 PR middle-end/35265
4219 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
4220 be happy with INTEGRAL_TYPE_P.
4221
a145256a 42222008-02-20 Richard Guenther <rguenther@suse.de>
4223
4224 * fold-const.c (split_tree): Associate floatig-point expressions
4225 if flag_associative_math is set.
4226
46ef5347 42272008-02-20 Richard Guenther <rguenther@suse.de>
4228
4229 * tree.h (fold_real_zero_addition_p): Declare.
4230 * fold-const.c (fold_real_zero_addition_p): Export.
4231 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
4232 floating-point operations with zero and one.
4233
c898f165 42342008-02-20 Paolo Bonzini <bonzini@gnu.org>
4235
a55f1b4b 4236 * doc/install.texi: Correct references to CFLAGS, replacing them
4237 with BOOT_CFLAGS. Document flags used during bootstrap for
4238 target libraries.
c898f165 4239
2a466fea 42402008-02-20 Uros Bizjak <ubizjak@gmail.com>
4241
4242 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
4243 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
4244 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
4245 insn constraint.
4246 (smin<mode>3): Ditto from similar patterns.
4247 (smax<mode>3): Ditto.
4248 (*ieee_smin<mode>3): Ditto.
4249 (*ieee_smax<mode>3): Ditto.
4250 * config/i386/sse.md (sse): New mode attribute.
4251 (mov<mode>): Macroize expander from movv4sf and movv2df using
4252 SSEMODEF2P mode iterator.
4253 (<sse>_movnt<mode>): Ditto from similar patterns. Use
4254 SSE_VEC_FLOAT_MODE_P as insn constraint.
4255 (storent<mode>): Ditto.
4256 (storent<mode>): Macroize expander from storentsf and storentdf using
4257 MODEF mode iterator.
4258 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
4259 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
4260 (abs<mode>2): Ditto from similar patterns.
4261 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
4262 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
4263 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
4264 (<sse>_vmsqrt<mode>2): Ditto.
4265 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
4266 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
4267 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
4268 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
4269 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
4270 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
4271 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
4272 insn constraint.
4273 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
4274 iterator and SSE_FLOAT_MODE_P as insn constraint.
4275 (<sse>_ucomi): Ditto from similar patterns.
4276 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
4277 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
4278 SSE_VEC_FLOAT_MODE_P as insn constraint.
4279 (vcond<mode>): Ditto from similar patterns.
4280 (and<mode>3, *and<mode>3): Ditto.
4281 (<sse>_nand<mode>3): Ditto.
4282 (ior<mode>3, *ior<mode>3): Ditto.
4283 (xor<mode>3, *xor<mode>3): Ditto.
4284 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
4285 iterator and SSE_FLOAT_MODE_P as insn constraint.
4286 (*nand<mode>3): Ditto from similar patterns.
4287 (*ior<mode>3): Ditto.
4288 (*xor<mode>3): Ditto.
4289
8c85798c 42902008-02-20 Ira Rosen <irar@il.ibm.com>
4291
4292 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
4293 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
4294 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
4295
3ed4a4a1 42962008-02-19 Jan Hubicka <jh@suse.cz>
4297
2d5652e4 4298 * predict.c (tree_bb_level_predictions): Remove variable next
4299 mistakely introduced by previous commit.
3ed4a4a1 4300
d704ea82 43012008-02-19 Jan Hubicka <jh@suse.cz>
4302
4303 * predict.c (predict_paths_leading_to): Rewrite.
4304 (predict_paths_for_bb): New.
4305 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
4306
fbf9447e 43072008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4308
4309 PR bootstrap/35218
4310 * Makefile.in (build_file_translate): New.
4311 (gcc-vers.texi): Use it for translating $(abs_srcdir).
4312 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
4313 * configure.ac (build_file_translate): Substitute it.
4314 * configure: Regenerate.
4315
f82220c2 43162008-02-19 Jan Hubicka <jh@suse.cz>
4317
4318 PR rtl-optimization/34408
d704ea82 4319 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
4320 invalid sharing.
f82220c2 4321
d4c3b5cd 43222008-02-19 Jan Hubicka <jh@suse.cz>
4323
4324 PR middle-end/28779
d704ea82 4325 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
4326 call_expr.
d4c3b5cd 4327
1158320c 43282008-02-19 H.J. Lu <hongjiu.lu@intel.com>
4329
4330 PR Ada/35186
4331 * config/i386/i386-modes.def: Revert the last DI alignment
4332 change until Ada people can look into it.
4333
d06cb02d 43342008-02-19 Nick Clifton <nickc@redhat.com>
4335
4336 * opts.c (print_specific_help): Fix typo in --help text.
4337
beb96ec8 43382008-02-19 Jakub Jelinek <jakub@redhat.com>
4339
4340 PR target/35239
4341 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
4342 32-bit inline asm without asm alternatives for host GCC < 3.0.
4343
971c637a 43442008-02-19 Richard Guenther <rguenther@suse.de>
4345
4346 PR tree-optimization/34989
4347 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
4348 Allow propagation to INDIRECT_REF if we can simplify only.
4349
23ce1cf6 43502008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4351
4352 * c-common.c (warn_for_collisions_1): Use appropriate option when
4353 warning.
4354
86895a67 43552008-02-19 Nick Clifton <nickc@redhat.com>
4356
4357 PR other/31349
2d5652e4 4358 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
86895a67 4359 (handle_options): Fix indentation.
4360 (print_filtered_help): If no language-specific options were
4361 displayed tell the user how to list all the options supported by
4362 the language's front-end.
4363 (print_specific_help): Fix indentation and remove duplicate line.
4364 (common_handle_option): Handle the -v option.
4365 For --help enable the display of undocumented options if the -v
4366 switch has been included on the command line.
4367 For --help= check for overlaps in the arguments between the option
4368 classes and the language names and issue a warning when they
4369 cannot be disambiguated.
4370 * c.opt (v): Pass on to the common option handler.
4371
34c7f568 43722008-02-19 Revital Eres <eres@il.ibm.com>
4373
4374 * modulo-sched.c (sms_schedule): Change dump message when
4375 create_ddg function fails.
4376 (try_scheduling_node_in_cycle): Rename row to cycle.
4377 (print_partial_schedule): Rename CYCLE to ROW.
4378
90bd1b58 43792008-02-19 Christian Bruel <christian.bruel@st.com>
2d5652e4 4380 Zdenek Dvorak <ook@ucw.cz>
4381
4382 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
4383
bd416d70 43842008-02-19 Uros Bizjak <ubizjak@gmail.com>
4385
4386 PR target/33555
4387 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
4388 (*x86_movdicc_0_m1_se): Ditto.
4389
2a5abea1 43902008-02-19 Uros Bizjak <ubizjak@gmail.com>
4391
4392 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
4393 (CMPtype): Define as __gcc_CMPtype.
4394 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
4395 (CMPtype): Define as __gcc_CMPtype.
4396
a7779e75 43972008-02-19 Hans-Peter Nilsson <hp@axis.com>
4398
4399 Support valgrind 3.3 for --enable-checking=valgrind.
4400 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
4401 here.
4402 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
4403 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
4404 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
4405 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
4406 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
4407 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
4408 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
4409 respectively.
4410 * ggc-zone.c: Similar.
4411 * ggc-page.c: Similar.
4412
7addba43 44132008-02-19 Paul Brook <paul@codesourcery.com>
4414
4415 PR target/35071
4416 * config/arm/ieee754-df.S: Fix do_it typo.
4417 * config/arm/ieee754-sf.S: Fix do_it typo.
4418
4e06f6f8 44192008-02-18 H.J. Lu <hongjiu.lu@intel.com>
4420
4421 PR target/35189
4422 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
4423 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
4424 (OPTION_MASK_ISA_SSE_SET): Likewise.
4425 (OPTION_MASK_ISA_SSE2_SET): Likewise.
4426 (OPTION_MASK_ISA_SSE3_SET): Likewise.
4427 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
4428 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
4429 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
4430 (OPTION_MASK_ISA_SSE4_SET): Likewise.
4431 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
4432 (OPTION_MASK_ISA_SSE5_SET): Likewise.
4433 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
4434 (OPTION_MASK_ISA_MMX_UNSET): Updated.
4435 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
4436 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
4437 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
4438 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
4439 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
4440 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
4441 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
4442 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
4443 (OPTION_MASK_ISA_SSE4): Removed.
4444 (ix86_handle_option): Turn on bits in ix86_isa_flags and
2f6e3388 4445 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
4e06f6f8 4446 (override_options): Don't turn on implied SSE/MMX bits in
4447 ix86_isa_flags.
4448
dbbcdcd5 44492008-02-18 H.J. Lu <hongjiu.lu@intel.com>
4450
4451 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4452 32bit host.
4453
beebc64a 44542008-02-18 Joey Ye <joey.ye@intel.com>
4455
4456 PR middle-end/34921
4457 * tree-nested.c (insert_field_into_struct): Set type alignment
4458 to field alignment if the former is less than the latter.
4459
8d705311 44602008-02-18 Jakub Jelinek <jakub@redhat.com>
4461
4462 * BASE-VER: Set to 4.4.0.
4463
7a5a9c54 44642008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4465
4466 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
4467 * doc/cfg.texi: Likewise.
4468 * doc/extend.texi: Likewise.
4469 * doc/gty.texi: Likewise.
4470 * doc/invoke.texi: Likewise.
4471 * doc/loop.texi: Likewise.
4472 * doc/md.texi: Likewise.
4473 * doc/passes.texi: Likewise.
4474 * doc/rtl.texi: Likewise.
4475 * doc/sourcebuild.texi: Likewise.
4476 * doc/tm.texi: Likewise.
4477 * doc/tree-ssa.texi: Likewise.
4478
89cd38e0 44792008-02-17 Richard Guenther <rguenther@suse.de>
4480
4481 PR middle-end/35227
4482 * tree-complex.c (init_parameter_lattice_values): Handle parameters
4483 without default definition.
4484
d149d356 44852008-02-17 Richard Guenther <rguenther@suse.de>
4486
4487 PR tree-optimization/35231
4488 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
4489 if A | B != 1.
4490
a3c40304 44912008-02-17 Uros Bizjak <ubizjak@gmail.com>
4492
4493 Revert:
a3c40304 4494 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
4495 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
4496 libgcc_cmp_return mode.
4497
a2e4e045 44982008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4499
4500 PR c/28368
4501 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
4502
8e2e6800 45032008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
4504
4505 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
4506 multilibs.
4507
a81d4cba 45082008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4509
4510 * doc/c-tree.texi: Use `@.' where appropriate.
4511 * doc/extend.texi: Likewise.
4512 * doc/install.texi: Likewise.
4513 * doc/invoke.texi: Likewise.
4514 * doc/loop.texi: Likewise.
4515 * doc/makefile.texi: Likewise.
4516 * doc/md.texi: Likewise.
4517 * doc/passes.texi: Likewise.
4518 * doc/standards.texi: Likewise.
4519 * doc/tm.texi: Likewise.
4520
d74e6897 45212008-02-15 Jakub Jelinek <jakub@redhat.com>
4522
4523 PR middle-end/35196
4524 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
4525 in entry_bb.
4526 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
4527 rather than in entry_bb.
4528
c12b3bc6 45292008-02-15 Uros Bizjak <ubizjak@gmail.com>
4530
4531 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
4532 libgcc_cmp_return mode.
4533
a5268989 45342008-02-15 Jakub Jelinek <jakub@redhat.com>
4535
4536 PR middle-end/35130
4537 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
4538 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
4539
b75537fb 45402008-02-15 Richard Guenther <rguenther@suse.de>
c12b3bc6 4541 Zdenek Dvorak <ook@ucw.cz>
b75537fb 4542
4543 PR tree-optimization/35164
4544 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
4545 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
4546 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4547 Only propagate addresses which do not have abnormal SSA_NAMEs
4548 in their operands.
4549
86891459 45502008-02-15 Joseph Myers <joseph@codesourcery.com>
4551
4552 PR target/35088
4553 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
4554
a4cb010f 45552008-02-15 Jan Hubicka <jh@suse.cz>
4556
4557 PR middle-end/35149
4558 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
4559
b3f75873 45602008-02-15 Uros Bizjak <ubizjak@gmail.com>
4561
4562 PR middle-end/34621
4563 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
4564 when calculating alignment_pad.
4565
46de89e7 45662008-02-15 Uros Bizjak <ubizjak@gmail.com>
4567
4568 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
4569 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
4570 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
4571 and STACK_BOUNDARY define.
4572
b8989bc3 45732008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
4574
4575 PR preprocessor/35061
4576 * c-pragma.c (handle_pragma_pop_macro): Check that
4577 pushed_macro_table has been allocated.
4578
0e41e637 45792008-02-14 Eric Botcazou <ebotcazou@adacore.com>
4580
4581 PR middle-end/35136
4582 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
4583 (force_gimple_operand): Likewise.
4584 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
4585 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
4586 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
4587 (find_interesting_uses_address): Check addressability and alignment
4588 of the base expression only after substituting bases of IVs into it.
4589
7e507322 45902008-02-14 Michael Matz <matz@suse.de>
4591
4592 PR target/34930
4593 * function.c (instantiate_virtual_regs_in_insn): Reload address
4594 before falling back to reloading the whole operand.
4595
7338c728 45962008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
4597
4598 * config/s390/s390.c (s390_mainpool_start): Emit the pool
4599 before the first section switch note.
4600
83d10720 46012008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4602
49a55c95 4603 * doc/bugreport.texi: Update copyright years.
4604 * doc/c-tree.texi: Likewise.
4605 * doc/cfg.texi: Likewise.
4606 * doc/cpp.texi: Likewise.
4607 * doc/cppinternals.texi: Likewise.
4608 * doc/fragments.texi: Likewise.
4609 * doc/frontends.texi: Likewise.
4610 * doc/gcc.texi: Likewise.
4611 * doc/gty.texi: Likewise.
4612 * doc/hostconfig.texi: Likewise.
4613 * doc/implement-c.texi: Likewise.
4614 * doc/libgcc.texi: Likewise.
4615 * doc/loop.texi: Likewise.
4616 * doc/makefile.texi: Likewise.
4617 * doc/options.texi: Likewise.
4618 * doc/passes.texi: Likewise.
4619 * doc/rtl.texi: Likewise.
4620 * doc/sourcebuild.texi: Likewise.
4621 * doc/standards.texi: Likewise.
4622 * doc/tree-ssa.texi: Likewise.
4623 * doc/trouble.texi: Likewise.
4624
83d10720 4625 * doc/extend.texi: Use @: or add comma where appropriate.
4626 * doc/invoke.texi: Likewise.
4627 * doc/tm.texi: Likewise.
4628
2a4fe7b7 46292008-02-14 Alan Modra <amodra@bigpond.net.au>
4630
4631 PR target/34393
4632 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
4633 to a reg.
4634
4ebee9e4 46352008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
4636
4637 * doc/md.texi (clz, ctz): Add reference.
4638 * doc/rtl.texi (clz, ctz): Likewise.
4639
a1a0674f 46402008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4641
4642 PR other/35148
4643 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
4644 srcdir.
4645
86428198 46462008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
4647
4648 * config/s390/s390.c (struct constant_pool): New field
4649 emit_pool_after added.
4650 (s390_mainpool_start): Set the emit_pool_after flag according
4651 to the section switch notes.
4652 (s390_mainpool_finish): Consider emit_pool_after when emitting
4653 the literal pool at the end of the function.
4654 (s390_chunkify_start): Force literal pool splits at section
4655 switch notes.
4656
86079287 46572008-02-13 Michael Matz <matz@suse.de>
4658
4659 PR debug/35065
4660 * var-tracking.c (clobber_variable_part): Correctly traverse the
4661 list.
4662
bfce1236 46632008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4664
4665 PR 29673
4666 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
4667 Add -fdump-ipa-inline.
4668 * tree-dump.c (dump_files): Remove tree-inlined dump.
4669 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
4670
e3e3ee4b 46712008-02-12 Richard Guenther <rguenther@suse.de>
4672
4673 PR tree-optimization/35171
4674 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
4675 default defs.
4676
d06ed0b1 46772008-02-12 Richard Guenther <rguenther@suse.de>
4678
4679 PR middle-end/35163
4680 * fold-const.c (fold_widened_comparison): Use get_unwidened in
4681 value-preserving mode. Disallow final truncation.
4682
06b0fbf1 46832008-02-12 Eric Botcazou <ebotcazou@adacore.com>
4684
4685 PR middle-end/35136
4686 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
4687 code from here to...
4688 (force_gimple_operand): ...here.
4689
3f982e5a 46902008-02-12 Jakub Jelinek <jakub@redhat.com>
4691
194bd83c 4692 PR c++/35144
4693 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
4694 non-compatible pointers.
4695 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
4696 different FIELD_DECLs, try harder by comparing field offsets, sizes
4697 and types.
4698
3f982e5a 4699 PR inline-asm/35160
4700 * function.c (match_asm_constraints_1): Don't replace the same input
4701 multiple times.
4702
637dc5b6 47032008-02-12 Anatoly Sokolov <aesok@post.ru>
4704
4705 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
4706 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
4707 (expand_epilogue): Restore RAMPZ register.
4708 * config/avr/avr.md (RAMPZ_ADDR): New constant.
4709
41992f82 47102008-02-11 Kai Tietz <kai.tietz@onevision.com>
4711
6144731c 4712 * config/i386/cygwin.asm: (__alloca): Correct calling
41992f82 4713 convention and alignment.
4714 (__chkstk): Force 8 byte stack alignment.
4715
3de988b5 47162008-02-11 Uros Bizjak <ubizjak@gmail.com>
efd43187 4717 Richard Guenther <rguenther@suse.de>
3de988b5 4718
4719 PR tree-optimization/33992
4720 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
4721 the zero we compare against.
4722
6144731c 47232008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
4724
4725 PR libfortran/35063
4726 * gthr-win32.h (__gthread_mutex_destroy_function): New function
4727 to CloseHandle after unlocking to prevent accumulation of handle
4728 count.
4729
3e478718 47302008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4731
4732 PR middle_end/34150
4733 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
4734 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
4735 and update LABEL_NUSES during and after reload.
4736
76d5115a 47372008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
4738
4739 PR middle-end/34627
ae731b4f 4740 * combine.c (simplify_if_then_else): Make sure the comparison is
76d5115a 4741 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
4742
e506f1d4 47432008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
4744
4745 PR bootstrap/35051
4746 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
4747 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
4748 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
4749 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
4750 * tree.h (get_type_static_bounds): Likewise.
4751
bfbab40c 47522008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4753
4754 * doc/invoke.texi (Option Summary, C++ Dialect Options)
4755 (Objective-C and Objective-C++ Dialect Options, Warning Options):
4756 Make -Wfoo language annotations match what the compiler outputs.
4757
c7386c28 47582008-02-08 Sa Liu <saliu@de.ibm.com>
4759
4760 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
4761 intrinsics spu_convts, spu_convtu, spu_convtf.
4762 * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
4763
9bc2537d 47642008-02-08 Hans-Peter Nilsson <hp@axis.com>
4765
4766 * doc/extend.texi (Function Attributes) <noinline>: Mention
4767 asm ("") as method to keep calls.
4768
30b0f428 47692008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4770
4771 PR other/32754
4772 * doc/options.texi (Options): Replace references to opts.sh with
4773 optc-gen.awk.
4774 * opts-common.c: Likewise.
4775 * optc-gen.awk: Likewise.
4776
8364148d 47772008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
4778
4779 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
4780
47812008-02-07 Richard Henderson <rth@redhat.com>
e8e27646 4782
4783 PR rtl-opt/33410
4784 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
4785 EXPR_LIST for the REG_EQUAL instead of a comparison with a
4786 funny mode.
4787
4251ed76 47882008-02-07 Uros Bizjak <ubizjak@gmail.com>
4789
4790 PR tree-optimization/35085
4791 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
4792 for operand entry oe2 in addition to operand entry oe3 in order to
4793 expose more opportunities for vectorizer sum reduction.
4794
6ca01c3b 47952008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4796
4797 PR other/35107
4798 * Makefile.in (LIBS): Remove $(GMPLIBS).
4799 (cc1-dummy, cc1): Add $(GMPLIBS).
4800
1dbb4355 48012008-02-06 Jan Hubicka <jh@suse.cz>
4802
5f704018 4803 PR target/23322
1dbb4355 4804 * i386.md (moddf_integer): Do not produce partial memory stalls for
4805 targets where it hurts.
4806
4c8054f4 48072008-02-06 Uros Bizjak <ubizjak@gmail.com>
4808
4809 PR target/35083
4810 * optabs.c (expand_float): Do not check for decimal modes when
4811 expanding unsigned integer through signed conversion.
4812
48f4cf85 48132008-02-06 Nick Clifton <nickc@redhat.com>
4814
4815 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
4816 inside the clobber with a match_operand and duplicated operand
4817 number in the constraint.
4818 (ineqbranchsi): Delete redundant comment.
4819
3b7a17d9 48202008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
4821
f04beaef 4822 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
4823 builtin_define ("__USE_INIT_FINI__").
4824 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
4825 -msx multilibs.
3b7a17d9 4826 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
4827
b518f2ae 48282008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4829
4830 PR documentation/30330
4831 * doc/invoke.texi (C++ Dialect Options)
4832 (Objective-C and Objective-C++ Dialect Options, Warning Options):
4833 For each warning option -Wfoo that allows -Wno-foo, ensure both
4834 -Wfoo and -Wno-foo are listed in the option index. Fix index
4835 entry of -Wswitch-default, index -Wnormalized= including the
4836 `=', and -Wlarger-than-@var{len} including @var{len}.
4837
840638ec 48382008-02-05 Uros Bizjak <ubizjak@gmail.com>
4839
4840 * config/i386/i386.md (floatunssisf2): Use
4841 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
4842 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
4843 Macroize expander using MODEF mode iterator.
4844
09885372 48452008-02-05 Diego Novillo <dnovillo@google.com>
4846
4847 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
4848
4849 PR 33738
840638ec 4850 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
09885372 4851
ceb21d85 48522008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4853
4854 PR other/35070
4855 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
4856
df3ba0fe 48572008-02-05 H.J. Lu <hongjiu.lu@intel.com>
4858
4859 PR target/35084
4860 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
4861 to indicate if a message should be generated.
4862 (init_cumulative_args): Updated.
4863 (function_value_32): Likewise.
4864
79f7a0b8 48652008-02-05 Joseph Myers <joseph@codesourcery.com>
4866
4867 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
4868
470195a4 48692008-02-05 Uros Bizjak <ubizjak@gmail.com>
4870
4871 PR target/35083
4872 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
4873 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
4874
82ec0d8f 48752008-02-04 Diego Novillo <dnovillo@google.com>
4876
4877 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
4878
4879 PR 33738
4880 * tree-vrp.c (vrp_evaluate_conditional): With
4881 -Wtype-limits, emit a warning when comparing against a
4882 constant outside the natural range of OP0's type.
4883
bbf511cd 48842008-02-04 Richard Guenther <rguenther@suse.de>
4885
4886 PR middle-end/33631
4887 * expr.c (count_type_elements): Give for unions instead of
4888 guessing.
4889
5bad702f 48902008-02-04 Richard Guenther <rguenther@suse.de>
4891
4892 PR middle-end/35043
4893 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
4894 to TYPE_DOMAINs base type instead of using bitsizetype here.
4895
930e8175 48962008-02-03 Jason Merrill <jason@redhat.com>
4897
4898 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
4899
c55906eb 49002008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4901
4902 PR other/29972
4903 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
4904 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
4905 (RS/6000 and PowerPC Options): Fix typos and markup.
4906 * doc/passes.texi (Tree-SSA passes): Likewise.
4907
ce53880e 49082008-02-02 Michael Matz <matz@suse.de>
4909
4910 PR target/35045
4911 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
4912 from record_last_reg_set_info.
4913 (record_last_reg_set_info): Take an RTX argument, iterate over all
4914 constituent hardregs.
4915 (record_last_set_info, record_opr_changes): Change calls to
4916 new signature or to record_last_reg_set_info_regno.
4917
957fb083 49182008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4919
4920 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
4921
dec9a6b8 49222008-02-01 Hans-Peter Nilsson <hp@axis.com>
4923
4924 PR rtl-optimization/34773
4925 * reg-notes.def (EQUAL): Mention significance of combination of
4926 REG_EQUAL and REG_RETVAL.
4927 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
4928 insn that has a REG_RETVAL.
4929
6ccd4361 49302008-02-01 Roger Sayle <roger@eyesopen.com>
4931
4932 PR bootstrap/33781
4933 * configure.ac (--enable-fixed-point): Disable unless explicitly
4934 requested on IRIX.
4935 * configure: Regenerate.
4936
39e88a5d 49372008-02-01 Richard Guenther <rguenther@suse.de>
4938
4939 PR other/35042
4940 * invoke.texi (-finline-limit): Remove no longer true parts
4941 of the documentation. Note that there is no default value.
4942
2f5beddc 49432008-02-01 Andrew Pinski <pinskia@gmail.com>
4944 Mark Mitchell <mark@codesourcery.com>
4945 Ben Elliston <bje@au.ibm.com>
4946
4947 PR c/29326
4948 * doc/extend.texi (Other Builtins): Document.
4949
d40533b6 49502008-01-31 Tom Browder <tom.browder@gmail.com>
4951
4952 * doc/c-tree.texi (Types): Fix grammar.
4953 (Expression trees): Ditto.
4954 * doc/passes.texi (Tree-SSA passes): Ditto.
4955
4956 * doc/configterms.texi (Configure Terms): Fix typo.
4957 * doc/cpp.texi (Common Predefined Macros): Ditto.
4958 * doc/md.texi (Machine Constraints): Ditto.
4959
4960 * doc/makefile.texi (Makefile): Add comma.
4961
38cd7009 49622008-01-31 Tom Browder <tom.browder@gmail.com>
4963 Gerald Pfeifer <gerald@pfeifer.com>
4964
4965 * doc/sourcebuild.texi (Front End): Remove references to CVS
4966 and CVSROOT/modules.
4967 (Texinfo Manuals): Replace reference to CVS by one to SVN.
4968 (Back End): Remove reference to CVS.
4969
0d399d52 49702008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
4971
4972 PR target/34900
4973 * config/mips/mips.c (gen_load_const_gp): New function, taking a
4974 comment from...
4975 (mips16_gp_pseudo_reg): ...here.
4976 * config/mips/mips.md (load_const_gp): Replace with...
4977 (load_const_gp_<mode>): ...this :P-based insn.
4978
c75a5ac5 49792008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4980
4981 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
4982 options. Minor fixes.
4983 (-std): Move reference to standards closer to where language
4984 standards are first mentioned.
4985
53716799 49862008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
4987
4988 PR rtl-optimization/34995
4989 * reload.c (alternative_allows_const_pool_ref): Take an rtx
4990 parameter and return a bool. If the rtx parameter is nonnull,
4991 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
4992 (find_reloads): Update call accordingly. Pass the new operand
4993 if it needed no address reloads, otherwise pass null.
4994
e14d689c 49952008-01-30 Richard Henderson <rth@redhat.com>
4996
4997 PR c/34993
4998 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
4999 for unbounded arrays.
5000
9424a8b9 50012008-01-30 Silvius Rus <rus@google.com>
5002
5003 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
5004
89beb200 50052008-01-30 Jan Hubicka <jh@suse.cz>
5006
5007 PR target/34982
5008 * i386.c (init_cumulative_args): Use real function declaration when
5009 calling locally.
5010
9a9cbcd2 50112008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
5012
5013 PR rtl-optimization/34998
5014 * global.c (build_insn_chain): Treat non-subreg_lowpart
5015 SUBREGs of pseudos as clobbering all the words covered by the
5016 SUBREG, not just all the bytes.
5017 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
5018 original df_ref rather than an extract parameter.
5019 (global_conflicts): Update call accordingly.
5020
365b8932 50212008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
5022
5023 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
5024 the overflow check to make it easier to read.
5025 (__fixtfdi): Change the type of the ll member in union
5026 long_double to UDItype_x.
5027
c55e2943 50282008-01-30 Jakub Jelinek <jakub@redhat.com>
5029
117ef3d7 5030 PR middle-end/34969
5031 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
5032 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
5033 * tree-inline.c (fold_marked_statements): Call
5034 cgraph_update_edges_for_call_stmt if folding a call statement.
5035 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
5036 debug_generic_stmt calls, reset it back afterwards.
5037
c55e2943 5038 PR c/35017
5039 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
5040 static decls.
5041 * c-typeck.c (build_external_ref): Don't pedwarn about
5042 static vars in current function's scope.
5043
5bcb8578 50442008-01-29 Joseph Myers <joseph@codesourcery.com>
5045
5046 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
5047
94023798 50482008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
5049
5050 PR c/35002
5051 * ipa-struct-reorg.c: Fix spelling.
5052 * params.def: Ditto.
5053
ed6049c8 50542008-01-29 Richard Guenther <rguenther@suse.de>
5055
5056 PR middle-end/35006
5057 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
5058 field.
5059 * tree-inline.c (remap_type): Increment remapping_type_depth
5060 around remapping types.
5061 (copy_body_r): Only add referenced variables if they are referenced
5062 from code, not types.
5063
830a6615 50642008-01-29 Douglas Gregor <doug.gregor@gmail.com>
5065
5066 PR c++/34055
5067 PR c++/34103
5068 PR c++/34219
5069 PR c++/34606
5070 PR c++/34753
5071 PR c++/34754
5072 PR c++/34755
5073 PR c++/34919
5074 PR c++/34961
5075 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
5076 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
5077
48bffadc 50782008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
5079
5080 PR target/34412
5081 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
5082 pointer for tiny stack.
5083
260cf6df 50842008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
5085
5086 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
5087
345ff830 50882008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
5089
5090 * config/vx-common.h: Fix typo in comment.
5091
c5f257af 50922008-01-28 Ian Lance Taylor <iant@google.com>
5093
5094 PR c++/34862
5095 PR c++/33407
5096 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5097 coalesce pointers if they have different DECL_NO_TBAA_P values.
5098 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
5099 between variables with different DECL_NO_TBAA_P values.
5100
c64b5439 51012008-01-28 Nathan Froyd <froydnj@codesourcery.com>
5102
5103 PR 31535
5104 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
5105 are not legitimate small data references on SPE targets.
5106
bcedfa23 51072008-01-28 David Daney <ddaney@avtrex.com>
5108
5109 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
5110
fe30b803 51112008-01-28 David Daney <ddaney@avtrex.com>
5112
5113 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
5114
453829c7 51152008-01-27 Joseph Myers <joseph@codesourcery.com>
5116
5117 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
5118 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
5119 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
5120 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
5121 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
5122 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
5123 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
5124 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
5125
511934f9 51262008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
5127
5128 * basic-block.h (condjump_equiv_p): Fix comment.
5129
ba810638 51302008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
5131
5132 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
5133 print_generic_stmt_indented): Fix comment.
5134
e214b635 51352008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
5136
5137 * configure.ac (__stack_chk_fail): Add detecion for availability
5138 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
5139 * configure: Regenerate.
5140
b32b308d 51412008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
5142
5143 PR middle-end/34688
5144 * final.c (output_addr_const): Handle TRUNCATE.
5145
3c2818b0 51462008-01-26 Zdenek Dvorak <ook@ucw.cz>
5147
5148 PR target/34711
5149 * tree-ssa-loop-ivopts.c (comp_cost): New type.
5150 (zero_cost, infinite_cost): New constants.
5151 (struct cost_pair): Change type of cost to comp_cost.
5152 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
5153 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
5154 New functions.
5155 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
5156 split_address_cost, ptr_difference_cost, difference_cost,
5157 get_computation_cost_at, get_computation_cost,
5158 determine_use_iv_cost_generic, determine_use_iv_cost_address,
5159 determine_use_iv_cost_condition, determine_use_iv_costs,
5160 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
5161 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
5162 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
5163 Change type of cost to comp_cost.
5164 (determine_iv_cost): Increase cost of non-original ivs, instead
5165 of decreasing the cost of original ones.
5166 (get_address_cost): Indicate the complexity of the addressing mode
5167 in comp_cost.
5168 (try_add_cand_for): Prefer using ivs not specific to some object.
5169 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
5170
b32b308d 51712008-01-26 Peter Bergner <bergner@vnet.ibm.com>
bc5e6ea1 5172 Janis Johnson <janis187@us.ibm.com>
5173
5174 PR target/34814
5175 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
5176 (TARGET_INSTANTIATE_DECLS): Likewise.
5177 * target.h (expand_to_rtl_hook): New target hook.
5178 (instantiate_decls): Likewise.
5179 * function.c (instantiate_decl): Make non-static. Rename to...
5180 (instantiate_decl_rtl): ... this.
5181 (instantiate_expr): Use instantiate_decl_rtl.
5182 (instantiate_decls_1): Likewise.
5183 (instantiate_decls): Likewise.
5184 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
5185 * function.h (instantiate_decl_rtl): Add prototype.
5186 * cfgexpand.c (target.h): New include.
5187 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
5188 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
5189 (TARGET_INSTANTIATE_DECLS): Likewise.
5190 (TARGET_INITIALIZER): New target hooks added.
5191 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
5192 New prototype.
5193 * config/rs6000/rs6000.c (tree-flow.h): New include.
5194 (machine_function): Add sdmode_stack_slot field.
5195 (rs6000_alloc_sdmode_stack_slot): New function.
5196 (rs6000_instantiate_decls): Likewise.
5197 (rs6000_secondary_memory_needed_rtx): Likewise.
5198 (rs6000_check_sdmode): Likewise.
5199 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
5200 (TARGET_INSTANTIATE_DECLS): Likewise.
5201 (rs6000_hard_regno_mode_ok): Allow SDmode.
5202 (num_insns_constant): Likewise. Handle _Decimal32 constants.
5203 (rs6000_emit_move): Handle SDmode.
5204 (function_arg_advance): Likewise.
5205 (function_arg): Likewise.
5206 (rs6000_gimplify_va_arg): Likewise. Add special handling of
5207 SDmode var args for 32-bit compiles.
5208 (rs6000_secondary_reload_class): Handle SDmode.
5209 (rs6000_output_function_epilogue): Likewise.
5210 (rs6000_function_value): Simplify if statement.
5211 (rs6000_libcall_value): Likewise.
5212 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
5213 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
5214 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
5215 (movsd_hardfloat): New define_insn.
5216 (movsd_softfloat): Likewise.
5217 (movsd_store): Likewise.
5218 (movsd_load): Likewise.
5219 (extendsddd2): Likewise.
5220 (extendsdtd2): Likewise.
5221 (truncddsd2): Likewise.
5222 (movdd_hardfloat64): Fixup comment.
5223 (UNSPEC_MOVSD_LOAD): New constant.
5224 (UNSPEC_MOVSD_STORE): Likewise.
5225
37aea014 52262008-01-26 Jakub Jelinek <jakub@redhat.com>
5227
5228 PR c++/34965
5229 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
5230 TRUTH_XOR_EXPR.
5231 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
5232 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
5233 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
5234 and TRUTH_XOR_EXPR.
5235
0cc77516 52362008-01-26 David Edelsohn <edelsohn@gnu.org>
5237
5238 PR target/34794
5239 * config.gcc: Separate AIX 5.3 from AIX 6.1.
5240 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5241 __LONGDOUBLE128 too.
5242 * config/rs6000/aix61.h: New file.
5243
e03d813f 52442008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
5245
5246 PR rtl-optimization/34959
5247 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
5248 popcount and parity rtxes the same mode as their operand.
5249 Truncate or extend the result to the return value's mode
5250 if necessary.
5251
5eec32fe 52522008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
5253
5254 PR target/34981
5255 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
5256 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
5257 to GOT_VERSION_REGNUM.
5258 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
5259 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
5260 * config/mips/mips.c (mips_emit_call_insn): New function.
5261 (mips_call_tls_get_addr): Call mips_expand_call directly.
5262 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
5263 emit_call_insn.
5264 (mips16_build_call_stub): Likewise. Return the call insn or null.
5265 (mips_expand_call): Update the call to mips16_build_call_stub
5266 accordingly and a remove redundant condition. Assert that MIPS16
5267 stubs do not use lazy binding. Use mips_emit_call_insn and return
5268 the call insn.
5269 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
5270 TARGET_USE_GOT.
5271 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
5272 (mips_avoid_hazard): Remove hazard_set handling.
5273 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
5274 (UNSPEC_RESTORE_GP): ...this.
5275 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
5276 (FAKE_CALL_REGNO): Rename to...
5277 (GOT_VERSION_REGNUM): ...this.
5278 (type): Add "ghost" value. Add an associated insn reservation.
5279 (hazard_set): Remove.
5280 (exception_receiver): Rename to...
5281 (restore_gp): ...this and update the unspec identifier accordingly.
5282 (exception_receiver, nonlocal_got_receiver): New expanders.
5283 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
5284 FAKE_CALL_REGNO. Remove hazard_set attribute.
5285 (set_got_version, update_got_version): New patterns.
5286
26b142a4 52872008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
5288
5289 PR target/34970
5290 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
5291
74a4b47f 52922008-01-25 Joseph Myers <joseph@codesourcery.com>
5293
5294 PR other/31955
5295 * doc/install.texi2html: Generate gcc-vers.texi.
5296
2cc20bba 52972008-01-25 DJ Delorie <dj@redhat.com>
5298
5299 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5300
99c77e32 53012008-01-25 Joseph Myers <joseph@codesourcery.com>
5302
5303 * config/c4x: Remove directory.
5304 * config.gcc (crx-*, mt-*): Mark obsolete.
5305 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
5306 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
5307 sh-*-rtemscoff*): Remove cases.
5308 * defaults.h (C4X_FLOAT_FORMAT): Remove.
5309 * real.c (encode_c4x_single, decode_c4x_single,
5310 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
5311 c4x_extended_format): Remove.
5312 * real.h (c4x_single_format, c4x_extended_format): Remove.
5313 * doc/extend.texi (interrupt, naked): Remove mention of attributes
5314 on C4x.
5315 (Pragmas): Remove comment about c4x pragmas.
5316 * doc/install.texi (c4x): Remove target-specific instructions.
5317 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
5318 * doc/md.texi (Machine Constraints): Remove C4x documentation.
5319 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
5320 refer to C4x source files as examples.
5321 (C4X_FLOAT_FORMAT): Remove documentation.
5322
ced0033c 53232008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
5324
5325 * config/bfin/bfin.c (override_options): Reorder tests so that
5326 flag_pic gets enabled for -msep-data.
5327
5c9c131f 53282008-01-25 Richard Guenther <rguenther@suse.de>
5329
5330 PR middle-end/32244
5331 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
5332 to its bitfield precision if required.
5333
b43fc0dc 53342008-01-25 Jakub Jelinek <jakub@redhat.com>
5335
5336 PR middle-end/33880
5337 * tree-nested.c (walk_omp_for): New function.
5338 (convert_nonlocal_reference, convert_local_reference): Call
5339 walk_omp_for on OMP_FOR.
5340 (convert_call_expr): Call walk_body on OMP_FOR's
5341 OMP_FOR_PRE_INIT_BODY.
5342
8090c12d 53432008-01-25 Richard Guenther <rguenther@suse.de>
5344
5345 PR tree-optimization/34966
5346 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
5347 default defs and PHI_NODEs we have to insert after the
5348 defining statement.
5349
bcf954af 53502008-01-24 Nick Clifton <nickc@redhat.com>
5351
5352 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
5353 Provide a default definition.
5354 (LIBGCC2_UNITS_PER_WORD): Likewise.
5355
5356 * config/stormy16/stormy16.c: Include df.h for the prototype
5357 for df_regs_ever_live_p.
5358 (xstormy16_expand_builtin_va_start): Convert the stack offset
5359 into a component_ref and then use POINTER_PLUS_EXPR to add it
5360 to the incoming_virtual_args_rtx.
5361 (xstormy16_gimplify_va_arg_expr): Rename to
5362 xstormy16_gimplify_va_arg_expr.
5363 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
5364 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
5365 xstormy16_gimplify_va_arg_expr.
5366 Fix up some formatting issues.
5367
5368 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
5369 Move to predicates.md.
5370 (xs_hi_general_operand): Likewise.
5371 (xs_hi_nonmemory_operand): Likewise.
5372 * config/stormy16/predicates.md:
5373 (xstormy16_carry_plus_operand): New predicate.
5374 (xs_hi_general_operand): New predicate.
5375 (xs_hi_nonmemory_operand): New predicate.
5376 * config/stormy16/stormy16-protos.h:
5377 (xstormy16_carry_plus_operand): Delete prototype.
5378 (xs_hi_general_operand): Likewise.
5379 (xs_hi_nonmemory_operand): Likewise.
5380
5381 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
5382 modifiers as they are no longer needed and they can trigger
5383 reload spill failures.
5384
5385 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
5386 with a match_operand in order to help reload.
5387
5388 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
5389 constraint with 'e' for the 8th alternative as this version of
5390 the mov.w instruction only accepts the lower 8 registers.
5391
72412d4b 53922008-01-25 Uros Bizjak <ubizjak@gmail.com>
5393
5394 PR target/34856
5395 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
5396 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
5397 vector elements.
5398
b22f2ff4 53992008-01-25 Jakub Jelinek <jakub@redhat.com>
5400
5401 PR middle-end/33333
5402 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
5403
009b0c6d 54042008-01-25 Golovanevsky Olga <olga@il.ibm.com>
5405
5406 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
5407 New functions.
5408 (remove_structure): Update allocations list before removing structure.
5409
864a494e 54102008-01-25 Golovanevsky Olga <olga@il.ibm.com>
5411
5412 * ipa-struct-reorg.c (is_safe_cond_expr,
5413 create_new_stmts_for_cond_expr): Use integer_zerop function,
5414 that recognize not only zero-pointer, but zero-integer too.
5415
98bdcbcf 54162008-01-25 Ben Elliston <bje@au.ibm.com>
5417
5418 PR other/22232
5419 * fixproto: Escape "." in sed expression that strips leading "./".
5420
79d52444 54212008-01-24 H.J. Lu <hongjiu.lu@intel.com>
5422
5423 PR driver/34904
5424 * gcc.c (SWITCH_OK): Removed.
5425 (SWITCH_LIVE): Changed to bit.
5426 (SWITCH_FALSE): Likewise.
5427 (SWITCH_IGNORE): Likewise.
5428 (switchstr): Change live_cond to unsigned int.
5429 (process_command): Replace SWITCH_OK with 0.
5430 (do_self_spec): Likewise.
5431 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
5432 (give_switch): Likewise.
5433 (used_arg): Likewise.
5434 (do_spec_1): Set the SWITCH_IGNORE bit.
5435 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
5436 bits. Set the SWITCH_LIVE bit.
5437
6cb659b1 54382008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
5439
5440 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
5441
66bc4f2f 54422008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
5443
5444 PR tree-optimization/34472
5445 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
5446 parameter to a "bool *" and set *DATA to false if there is
5447 an unsafe access. Do not delete the structure here.
5448 (check_cond_exprs): Delete it here instead.
5449 (check_cond_exprs, exclude_cold_structs): Do not increase
5450 I when removing a structure.
5451
098e8492 54522008-01-24 Uros Bizjak <ubizjak@gmail.com>
5453
5454 PR target/34856
5455 * config/i386/i386.c (ix86_expand_vector_init): Consider only
5456 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
5457
4b53147e 54582008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
5459
5460 PR middle-end/34934
5461 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
5462 a fixed vector for stack.
5463
0af13ed4 54642008-01-24 Ben Elliston <bje@au.ibm.com>
5465
5466 PR c++/25701
5467 * doc/gcc.texi (Software development): Add a direntry for g++.
5468
631d7bf1 54692008-01-23 Hans-Peter Nilsson <hp@axis.com>
5470
248c1389 5471 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
5472 stale and straggling -fforce-addr comments above.
5473
631d7bf1 5474 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
5475 define.
5476 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
5477 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
5478
f4aea3f4 54792008-01-23 Michael Matz <matz@suse.de>
5480
5481 PR debug/34895
5482 * dwarf2out.c (force_type_die): Use modified_type_die instead of
5483 gen_type_die.
5484
c7108d79 54852008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
5486
5487 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
5488 malloc result type.
5489
b1eb5c83 54902008-01-23 Anatoly Sokolov <aesok@post.ru>
5491
5492 * config/avr/avr.c (avr_current_arch): New variable.
5493 (avr_arch_types): Add 'avr31' and 'avr51' entries.
5494 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
5495 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
5496 (avr_override_options): Init 'avr_current_arch'.
5497 (base_arch_s): Move from here...
5498 * config/avr/avr.h (base_arch_s): ... here. Add new members
5499 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
5500 'mega' to 'have_jmp_call'.
5501 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
5502 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
5503 macros.
5504 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
5505 architectures.
5506 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5507 MULTILIB_MATCHES): (Ditto.).
5508
46beef9a 55092008-01-23 Richard Guenther <rguenther@suse.de>
5510
5511 PR middle-end/31529
5512 * cgraphunit.c (cgraph_reset_node): Always mark the node
5513 not reachable if it is not queued already.
5514
f5c2bcb7 55152008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
5516
5517 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
5518 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
5519 (cputype_selected): New static variable.
5520 (bfin_handle_option): Set it if -mcpu is used.
5521 (override_option): Select default set of workarounds if no cpu type
5522 selected on the command line.
5523 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27bedcb4 5524
5525 From Michael Frysinger <michael.frysinger@analog.com>
5526 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
5527 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
5528
5529 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
5530 for bf547, bf523, bf524, and bf526.
5531 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
5532 bf526.
5533 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5534 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
5535 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
5536 __ADSPBF547__ and __ADSPBF54x__ for bf547.
5537 * doc/invoke.texi (Blackfin Options): Document that
5538 -mcpu now accept bf547, bf523, bf524, and bf526.
5539
3888eedd 55402008-01-22 Eric Botcazou <ebotcazou@adacore.com>
5541
5542 PR rtl-optimization/34628
5543 * combine.c (try_combine): Stop and undo after the first combination
5544 if an autoincrement side-effect on the first insn has effectively
5545 been lost.
5546
e74b57b1 55472008-01-22 David Edelsohn <edelsohn@gnu.org>
5548
5549 PR target/34529
5550 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
5551 Offset addresses are not valid for Altivec or paired float modes.
5552
06faa2fe 55532008-01-22 Jakub Jelinek <jakub@redhat.com>
5554
bb436d4e 5555 PR c++/34607
5556 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
5557 if DECL_INITIAL (decl) is error_mark_node.
5558
2cb0e5d9 5559 PR c++/34914
5560 * c-common.c (handle_vector_size_attribute): Only allow
5561 integral, scalar float and fixed point types. Handle OFFSET_TYPE
5562 the same way as pointer, array etc. types.
5563 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
5564
06faa2fe 5565 PR c++/34917
5566 * tree.c (build_type_attribute_qual_variant): Call
5567 build_qualified_type if attributes are equal, but quals are not.
5568
a54ab330 55692008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5570
5571 PR 32102
5572 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
5573 * flags.h (warn_strict_aliasing): Remove.
5574 (warn_strict_overflow): Remove.
5575 * opts.c (warn_strict_aliasing): Remove.
5576 (warn_strict_overflow): Remove.
5577 * c-opts.c (c_common_handle_option): -Wall only sets
5578 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
5579 (c_common_post_options): Give default values to -Wstrict-aliasing
5580 and -Wstrict-overflow if they are uninitialized.
5581 * common.opt (Wstrict-aliasing): Specify Var and Init.
5582 (Wstrict-overflow): Likewise.
5583
f437e46d 55842008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5585
5586 PR rtl-optimization/26854
5587 PR rtl-optimization/34400
5588 PR rtl-optimization/34884
5589 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
5590 DF_RD->gen.
5591 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
5592 (df_rd_bb_info.expanded_lr_out): Deleted
5593 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
5594 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
5595 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
5596 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
5597 Removed code to allocate, initialize or free expanded_lr_out.
5598 (df_rd_bb_local_compute_process_def): Restructured to make more
5599 understandable.
5600 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
5601 sets if the sets are being trimmed.
5602
c7871c82 56032008-01-22 H.J. Lu <hongjiu.lu@intel.com>
5604
5605 PR bootstrap/32287
5606 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
5607 (as_vers): Likewise.
5608 * configure: Regenerated.
5609
df3f0669 56102008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5611
5612 PR middle-end/33092
5613 * tree-pass.h (pass_build_alias): New pass.
5614 * tree-ssa-alias.c (gate_build_alias): New.
5615 (pass_build_alias): New.
5616 * passes.c (init_optimization_passes): Add pass_build_alias after
5617 pass_create_structure_vars.
5618
d1191819 56192008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
5620
5621 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
5622 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
5623 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
5624 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
5625 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
5626 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
5627 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
5628 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
5629 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
5630 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
5631 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
5632 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
5633 * config/s390/s390.md (FP_ALL): New mode iterator.
5634 (_d): New mode attribute.
5635 ("*signbit<mode>2>"): Changed mode of first operand.
5636 ("isinf<mode>2"): Changed mode of first operand.
5637 ("*TDC_insn"): Adaptation for DFP modes.
5638
f47ba5b1 56392008-01-22 Ben Elliston <bje@au.ibm.com>
5640
5641 * tree.c (check_qualified_type): Improve function description.
5642
0bc060a4 56432008-01-21 Jason Merrill <jason@redhat.com>
5644
5645 PR c++/34196
5646 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
5647 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
5648 if it is set.
5649
1c64e82e 56502008-01-21 DJ Delorie <dj@redhat.com>
5651
5652 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
5653 return zero.
5654
2a2aef73 56552008-01-21 Richard Guenther <rguenther@suse.de>
5656
5657 PR middle-end/34856
5658 * tree-cfg.c (verify_expr): Allow all invariant expressions
5659 instead of just constant class ones as reference argument.
5660 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
5661 like any other constant.
5662 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5663
d8d756b9 56642008-01-21 H.J. Lu <hongjiu.lu@intel.com>
5665
5666 * regmove.c (fixup_match_1): Update call crossed frequencies.
5667
62437c86 56682008-01-21 Richard Guenther <rguenther@suse.de>
5669
5670 PR c/34885
5671 * tree-inline.c (setup_one_parameter): Deal with mismatched
5672 types using a VIEW_CONVERT_EXPR.
5673
f25ba2cf 56742008-01-21 Alon Dayan <alond@il.ibm.com>
5675 Olga Golovanevsky <olga@il.ibm.com>
5676
5677 PR tree-optimization/34701
5678 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
5679 when the structure size is not a power of 2.
5680
dbc72697 56812008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
5682
5683 * doc/install.texi: Add doc for --enable-checking=df.
5684
c556495e 56852008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
5686
5687 PR rtl-optimization/34808
5688 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
5689
d8f69cf6 56902008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
5691
5692 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
5693 input.
5694
2e49e3bc 56952008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
5696
5697 PR rtl-optimization/26854
5698 PR rtl-optimization/34400
5699 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
5700 DF_RD->gen.
5701 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
5702 (df_rd_bb_info.expanded_lr_out): New.
5703 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
5704 * loop_iv.c (iv_analysis_loop_init): Ditto.
5705 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
5706 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
5707 Added code to allocate, initialize or free expanded_lr_out.
5708 (df_rd_bb_local_compute_process_def): Restructured to make
5709 more understandable.
5710 (df_rd_confluence_n): Add code to do nothing with fake edges and
5711 code to no apply invalidate_by_call sets if the sets are being trimmed.
5712 (df_lr_local_finalize): Renamed to df_lr_finalize.
5713 (df_live_local_finalize): Renamed to df_live_finalize.
5714
d2f3e075 57152008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
5716
5717 PR target/34831
5718 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
5719 deciding whether to use reciprocal instructions.
5720
4e971a07 57212008-01-19 Uros Bizjak <ubizjak@gmail.com>
5722
5723 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
5724 dwarf2out_note_section_used if cold_text_section is NULL.
5725
b3a3ddec 57262008-01-19 Jakub Jelinek <jakub@redhat.com>
5727
5728 PR gcov-profile/34610
5729 * tree-cfg.c (make_edges): Mark both outgoing edges from
5730 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
5731 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
5732 from OMP_FOR and OMP_CONTINUE outgoing edges.
5733
5734 * tree-profile.c (tree_profiling): Return early if
5735 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
5736 at the end.
5737 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
5738 from cfun to child_cfun.
5739 * function.h (struct function): Add after_tree_profile bit.
5740
cb20fbcc 57412008-01-19 Anatoly Sokolov <aesok@post.ru>
5742
5743 * config/avr/avr.S (_exit): Disable interrupt.
5744
a7bc23c0 57452008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
5746 Steven Bosscher <stevenb.gcc@gmail.com>
5747
5748 PR rtl-optimization/26854
5749 PR rtl-optimization/34400
5750 * df-problems.c (df_live_scratch): New scratch bitmap.
5751 (df_live_alloc): Allocate df_live_scratch when doing df_live.
5752 (df_live_reset): Clear the proper bitmaps.
5753 (df_live_bb_local_compute): Only process the artificial defs once
5754 since the order is not important.
5755 (df_live_init): Init the df_live sets only with the variables
5756 found live by df_lr.
5757 (df_live_transfer_function): Use the df_lr sets to prune the
5758 df_live sets as they are being computed.
5759 (df_live_free): Free df_live_scratch.
5760
7765591b 57612008-01-18 Ian Lance Taylor <iant@google.com>
5762
5763 * common.opt: Add fmerge-debug-strings.
5764 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
5765 flag_merge_debug_strings rather than flag_merge_constants.
5766 * doc/invoke.texi (Option Summary): Mention
5767 -fmerge-debug-strings.
5768 (Debugging Options): Document -fmerge-debug-strings.
5769
68d6de5b 57702008-01-18 Ian Lance Taylor <iant@google.com>
5771
5772 PR c++/33407
5773 * tree.h (DECL_IS_OPERATOR_NEW): Define.
5774 (struct tree_function_decl): Add new field operator_new_flag.
5775 * tree-inline.c (expand_call_inline): When inlining a call to
5776 operator new, force the return value to go into a variable, and
5777 set DECL_NO_TBAA_P on that variable.
5778 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
5779
af30c139 57802008-01-18 Uros Bizjak <ubizjak@gmail.com>
5781
5782 PR debug/34484
5783 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
5784 DWARF2_DEBUGGING_INFO.
5785 (dwarf2out_note_section_used): Ditto. Add prototype.
5786 (have_multiple_function_sections, text_section_used,
5787 cold_text_section_used, *cold_text_sections): Move declarations
5788 before their uses.
5789
1650f4d3 57902008-01-17 Bob Wilson <bob.wilson@acm.org>
92f6e056 5791
5792 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
5793 field and add signal_ra.
5794 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
5795 assignments to frame state pc. Move end of stack check after
5796 MD_FALLBACK_FRAME_STATE_FOR.
5797 (uw_update_context_1): Use frame state signal_regs if set, instead
5798 of checking signal_frame flag.
5799 (uw_update_context): Use frame state signal_ra if set.
5800 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
5801 * config/xtensa/linux-unwind.h: New file.
5802
1650f4d3 58032008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
c15d54d8 5804
5805 * modulo-sched.c (get_sched_window): Fix comment typo.
5806
ea5876d9 58072008-01-17 Andrew MacLeod <amacleod@redhat.com>
5808
5809 PR tree-optimization/34648
5810 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
5811
d5f9ff99 58122008-01-17 Anatoly Sokolov <aesok@post.ru>
5813
5814 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
5815 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
5816
a9e21c4c 58172008-01-17 Seongbae Park <seongbae.park@gmail.com>
5818
5819 PR rtl-optimization/34400
5820 * df-core.c (df_worklist_dataflow_overeager,
5821 df_worklist_dataflow_doublequeue): New functions.
5822 (df_worklist_dataflow): Two different worklist solvers.
5823 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
5824 New param.
5825
9d6f50ba 58262008-01-16 Sebastian Pop <sebastian.pop@amd.com>
5827
5828 PR testsuite/34821
5829 * doc/invoke.texi: Document the dependence on pthread for fopenmp
5830 and ftree-parallelize-loops.
5831
fa7f4c0c 58322008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
5833
5834 PR rtl-optimization/34826
5835 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
5836
74748e47 58372008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
5838
5839 * global.c (find_reg): Mark the eh regs as used if necessary.
5840 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
5841 * ra.h (struct allocno): no_eh_reg field added. Changed
5842 no_stack_reg type to bitfield.
5843
a13ff590 58442008-01-17 Eric Botcazou <ebotcazou@adacore.com>
5845
5846 * tree.c (substitute_in_expr): Add missing 'break'.
5847
119368d7 58482008-01-17 Richard Guenther <rguenther@suse.de>
5849
5850 PR tree-optimization/34825
5851 * tree-ssa-math-opts.c (is_division_by): Do not recognize
5852 x / x as division to handle.
5853
9f4dc59e 58542008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5855
5856 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
5857 "-pthread" is specified.
5858 * pa-hpux11.h (LIB_SPEC): Likewise.
5859
1650f4d3 58602008-01-16 Janis Johnson <janis187@us.ibm.com>
2379ccd9 5861 Peter Bergner <bergner@vnet.ibm.com>
5862
5863 PR rtl-optimization/33796
5864 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
5865
a2060dc3 58662008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5867
5868 PR libgfortran/34699
5869 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
5870 static links.
5871 * pa-hpux10.h (LINK_SPEC): Likewise.
5872 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
5873
0cfec3e9 58742008-01-16 Richard Guenther <rguenther@suse.de>
5875
5876 PR middle-end/32628
5877 * fold-const.c (fold_convert_const_int_from_int): Do not
5878 set overflow if that occured only because of a sign extension
5879 change when converting from/to a sizetype with the same
5880 precision and signedness.
5881
d848c04f 58822008-01-16 Uros Bizjak <ubizjak@gmail.com>
5883
5884 PR debug/34249
5885 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
5886 location address to the correct place. Update copyright year.
5887
b44df49a 58882008-01-16 Sebastian Pop <sebastian.pop@amd.com>
5889
5890 * lambda-code.c (lambda_transform_legal_p): Handle the case of
5891 no dependences in the dependence_relations vector.
5892
a8587796 58932008-01-16 Jan Hubicka <jh@suse.cz>
5894
5895 PR rtl-optimization/31396
5896 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
5897 * cfg.c (dump_reg_info): Print it.
5898 * regs.h (struct reg_info_t): add freq_calls_crossed.
5899 (REG_FREQ_CALLS_CROSSED): New macro.
5900 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
5901 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
5902 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
5903 regmove_optimize): Update call crossed frequencies.
5904 * local-alloc.c (struct qty): Add freq_calls_crossed.
5905 (alloc_qty): Copute freq_calls_crossed.
5906 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
5907 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
5908 * ra.h (struct allocno): Add freq_calls_crossed.
5909
061202f8 59102008-01-16 Sebastian Pop <sebastian.pop@amd.com>
5911
5912 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
5913 libgomp when compiling with ftree-parallelize-loops.
5914 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
5915
c782188f 59162008-01-16 Richard Guenther <rguenther@suse.de>
5917
5918 PR tree-optimization/34769
5919 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
5920 * tree.c (int_cst_value): Instead make this function more
5921 permissive in what it accepts as valid input. Document this
5922 function always sign-extends the value.
5923
db812c94 59242008-01-16 Jakub Jelinek <jakub@redhat.com>
4e971a07 5925 Richard Guenther <rguenther@suse.de>
db812c94 5926
5927 PR c/34668
5928 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
5929 (gimple_fold_indirect_ref_rhs): ... this.
5930 (gimple_fold_indirect_ref): New function with foldings
5931 that preserve lvalueness.
5932 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
5933 * tree-flow.h (gimple_fold_indirect_ref): Declare.
5934 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
5935 to fold an INDIRECT_REF, fall back to the old use of
5936 fold_indirect_ref_1.
5937
e34df749 59382008-01-16 Sebastian Pop <sebastian.pop@amd.com>
5939
5940 * tree-data-ref.c (subscript_dependence_tester_1): Call
5941 free_conflict_function.
5942 (compute_self_dependence): Same.
5943
9bf03e06 59442008-01-16 Uros Bizjak <ubizjak@gmail.com>
5945
5946 PR debug/34249
5947 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
5948 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
5949 function global.
5950 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
5951 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
5952 for DWARF2_UNWIND_INFO targets.
5953
36d43c4a 59542008-01-16 Richard Guenther <rguenther@suse.de>
5955
5956 PR c/34768
5957 * c-typeck.c (common_pointer_type): Do not merge inconsistent
5958 type qualifiers for function types.
5959
6f22df65 59602008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
5961
5962 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
5963 loop_iterator li from previous commit.
5964
59652008-01-15 Sebastian Pop <sebastian.pop@amd.com>
d46d3c1c 5966
5967 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
5968
d4fcfd16 59692008-01-12 Sebastian Pop <sebastian.pop@amd.com>
5970
5971 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
5972 (parallelize_loops): Don't parallelize irreducible components.
5973
c9d90c25 59742008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5975
5976 PR c++/24924
5977 * c-opts (c_common_post_options): Do not enable CPP
5978 flag_pedantic_errors by default.
5979
d2c970fe 59802008-01-14 Eric Botcazou <ebotcazou@adacore.com>
5981
5982 PR rtl-optimization/31944
5983 * cse.c (remove_pseudo_from_table): New function.
5984 (merge_equiv_classes): Use above function to remove pseudo-registers.
5985 (invalidate): Likewise.
5986
3ff99faa 59872008-01-13 Richard Guenther <rguenther@suse.de>
5988
5989 PR middle-end/34601
5990 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
5991 instead of TYPE_MODE to deal with calls from expand_one_error_var.
5992
3e179c53 59932008-01-13 Uros Bizjak <ubizjak@gmail.com>
5994
5995 * gcse.c (cprop_jump): Call validate_unshare_change instead of
5996 validate_change to unshare the source of the PC set.
5997
b513c084 59982008-01-12 Jan Hubicka <jh@suse.cz>
5999
6000 PR middle-end/32135
6001 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
6002 references above array bounds. This might trigger bounds checks for
6003 pointers to arrays.
6004
c2df357d 60052008-01-12 Sebastian Pop <sebastian.pop@amd.com>
6006
6007 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
6008 new_replaceable_dependencies.
6009
36e37a87 60102008-01-12 Doug Kwan <dougkwan@google.com>
6011
6012 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
6013 instead of OPT_Wreturn_type in warning due to ignored return type
6014 qualifiers.
6015 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
6016 options included in -Wextra.
6017 * c.opt: New option -Wignored_qualifiers.
6018 * doc/invoke.texi (Warning Options, -Wextra): Add new option
6019 -Wignore_qualifiers.
6020 (-Wignored-qualifiers): Document.
6021 (-Wreturn-type): Remove description of functionality now handled
6022 by -Wignored-qualifiers.
6023
134ae613 60242008-01-12 Eric Botcazou <ebotcazou@adacore.com>
6025
6026 PR ada/33788
6027 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
6028 NOP_EXPR if it is between integral types with the same precision.
6029
f9f517cc 60302008-01-12 Jan Hubicka <jh@suse.cz>
6031
6032 PR other/28023
6033 * invoke.texi (max-inline-recursive-depth): Fix default value.
6034
33f263f5 60352008-01-12 Zdenek Dvorak <ook@ucw.cz>
6036
6037 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
6038 correct type.
6039
0d1c6644 60402008-01-11 Bob Wilson <bob.wilson@acm.org>
6041
6042 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
6043
6090393c 60442008-01-11 James E. Wilson <wilson@specifix.com>
6045
6046 PR target/26015
6047 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
6048
a0a028c2 60492008-01-11 Anatoly Sokolov <aesok@post.ru>
6050
6051 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
6052 save/restore frame pointer register and don't use 'call-prologues'
6053 optimization in function with "OS_task" attribute.
6054
13a68d5b 60552008-01-11 Eric Botcazou <ebotcazou@adacore.com>
6056
6057 PR middle-end/31309
6058 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
6059 when copying to memory.
6060
1ae2ffa7 60612008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
6062
6063 PR rtl-optimization/30905
6064 * cfgcleanup.c: Include dce.h
6065 (crossjumps_occured): New global variable.
6066 (try_crossjump_bb): Exit loop after finding a fallthru edge.
6067 If something changed, set crossjumps_occured to true.
6068 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
6069 Don't add/remove fake edges to exit here...
6070 (cleanup_cfg): ...but do it here, when crossjumping.
6071 Run a fast DCE when successful crossjumps occured in the latest
6072 iteration of try_optimize_cfg.
6073
12661815 60742008-01-11 Richard Guenther <rguenther@suse.de>
6075
6076 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
6077 (struct vn_unary_op_s): Likewise.
6078 (vn_reference_insert): Free old reference on hash collision.
6079
5bed1dca 60802008-01-10 Raksit Ashok <raksit@google.com>
6081
6082 PR rtl-optimization/27971
7650360f 6083 * combine.c (find_split_point): Split PLUS expressions which are
6084 inside a MEM rtx, and whose first operand is complex.
5bed1dca 6085
4a6a8336 60862008-01-10 DJ Delorie <dj@redhat.com>
6087
6088 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
6089 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
6090 (m32c_hard_regno_ok): Call the underlying function.
6091
5c6e4974 60922008-01-10 Richard Guenther <rguenther@suse.de>
6093
6094 PR middle-end/34683
6095 * tree-cfg.c (tree_merge_blocks): Do not go through the
6096 full-blown folding and stmt updating path if we just deal
6097 with virtual operands.
6098 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
6099 test for abnormal SSA_NAMEs.
6100
cd6659e3 61012008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
6102
6103 PR middle-end/34641
6104 * reload.c (push_reload): Add assertions. All constants from
6105 reg_equiv_constant should have been used for replacing the respective
6106 pseudo earlier.
6107 (find_reloads_address): Invoke find_reloads_address_part for
6108 constant taken from the reg_equiv_constant array.
6109
6d6adc82 61102008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
6111
6112 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
6113 field (valnum) the first in the struct. Replace bools with
6114 unit bit fields.
6115
b050ae3e 61162008-01-10 Richard Guenther <rguenther@suse.de>
6117
6118 PR tree-optimization/34651
6119 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
6120 types and ordering for masking and converting.
6121
77727654 61222008-01-09 Sebastian Pop <sebastian.pop@amd.com>
6123
6124 PR tree-optimization/34017
6125 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
6126 also for PHI_NODE expressions.
6127
cc9c1c51 61282008-01-09 Jan Hubicka <jh@suse.cz>
6129
6130 PR tree-optimization/34708
6131 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
6132 based on number of case labels.
6133 (init_inline_once): Remove switch_cost.
6134 * tree-inline.h (eni_weights_d): Remove switch_cost.
6135
e8b8bad7 61362008-01-09 Richard Guenther <rguenther@suse.de>
6137 Andrew Pinski <andrew_pinski@playstation.sony.com>
6138
6139 PR middle-end/30132
6140 * gimplify.c (gimplify_cond_expr): Do not create an addressable
6141 temporary if an rvalue is ok or an lvalue is not required.
6142
8b58aec5 61432008-01-09 Richard Guenther <rguenther@suse.de>
6144
6145 PR middle-end/34458
6146 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
6147 adjust return type.
6148
b2ee3594 61492008-01-09 Richard Guenther <rguenther@suse.de>
6150
6151 PR middle-end/34679
6152 * tree.c (host_integerp): Check for sizetype only if the
6153 type is an integer type.
6154
3e6bab0c 61552008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
6156
6157 PR debug/26364
6158 * opts.c (decode_options): Disable inlining of functions called
6159 once if not in unit-at-a-time mode.
6160
f72a5ea4 61612008-01-09 Alexandre Oliva <aoliva@redhat.com>
6162
6163 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
6164
454a1307 61652008-01-08 Richard Guenther <rguenther@suse.de>
6166
6167 PR middle-end/31863
6168 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
6169 out early if the result will be unused.
6170
1615433d 61712008-01-08 Uros Bizjak <ubizjak@gmail.com>
6172
6173 PR target/34709
6174 Revert:
6175
6176 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
6177 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
6178 for TARGET_RECIP.
6179
e96df6c2 61802008-01-08 Jan Sjodin <jan.sjodin@amd.com>
6181
1615433d 6182 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
6183 for vectorization tuned.
e96df6c2 6184
911908dc 61852008-01-08 Richard Guenther <rguenther@suse.de>
6186
6187 PR tree-optimization/34683
6188 * tree-ssa-operands.c (operand_build_cmp): Export.
6189 * tree-ssa-operands.h (operand_build_cmp): Declare.
6190 * tree-vn.c (vuses_compare): Remove.
6191 (sort_vuses): Use operand_build_cmp.
6192 (sort_vuses_heap): Likewise.
6193 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
6194 to re-use old VEC if available. Do not sort already sorted VUSEs.
6195 (vdefs_to_vec): Do not sort already sorted VDEFs.
6196
d7c85fac 61972008-01-08 Jakub Jelinek <jakub@redhat.com>
6198
6199 PR middle-end/34694
6200 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
6201
c7f0e882 62022008-01-08 Uros Bizjak <ubizjak@gmail.com>
6203
6204 PR target/34702
6205 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
6206 limitations of reciprocal sequences on x86 targets.
6207
b5ea3701 62082008-01-08 Richard Guenther <rguenther@suse.de>
6209
6210 PR tree-optimization/34683
6211 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
6212
a7df40d7 62132008-01-07 Jakub Jelinek <jakub@redhat.com>
6214
6215 PR target/34622
6216 * config/darwin.c (darwin_mergeable_string_section): Don't use
6217 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
6218
5921cbdf 62192008-01-07 Uros Bizjak <ubizjak@gmail.com>
6220
6221 PR target/34682
6222 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
6223 negxf2. Macroize expander using X87MODEF mode iterator. Change
6224 predicates of op0 and op1 to register_operand.
c7f0e882 6225 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
6226 expander using X87MODEF mode iterator. Change predicates of
6227 op0 and op1 to register_operand.
5921cbdf 6228 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
6229 corresponding patterns and macroize using MODEF macro. Change
6230 predicates of op0 and op1 to register_operand and remove
6231 "m" constraint. Disparage "r" alternative with "!".
6232 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
6233 macroize using X87MODEF macro. Change predicates of op0 and op1
6234 to register_operand and remove "m" constraint. Disparage "r"
6235 alternative with "!".
6236 (absneg splitter with memory operands): Remove.
6237 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
6238 patterns and macroize using X87MODEF mode iterator.
6239 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
6240 Change predicate of op1 to register_operand.
6241 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
c7f0e882 6242 for memory operands.
5921cbdf 6243
1dd6dd88 62442008-01-07 Nathan Froyd <froydnj@codesourcery.com>
6245
6246 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
6247
b041d147 62482008-01-07 Richard Guenther <rguenther@suse.de>
6249
6250 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
6251 fields.
6252
3ee3dfa4 62532008-01-07 Richard Guenther <rguenther@suse.de>
6254
6255 PR tree-optimization/34683
6256 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
6257 VOPs of the needed size to save memory. Use VEC_quick_push
6258 to save compile-time.
6259 (vdefs_to_vec): Likewise.
6260
ca03fed0 62612008-01-07 Sa Liu <saliu@de.ibm.com>
3ee3dfa4 6262
5921cbdf 6263 * config/spu/spu.md (divdf3): Genetate inline code for double
6264 division. The implementation doesn't handle INF or NAN, therefore it
6265 only applies when -ffinite-math-only is given.
ca03fed0 6266
be46c846 62672008-01-06 Paolo Carlini <pcarlini@suse.de>
6268
6269 PR libstdc++/34680
6270 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
6271 * doc/cpp.texi ([Common Predefined Macros]): Document.
6272
9edaf48c 62732008-01-06 Uros Bizjak <ubizjak@gmail.com>
6274
6275 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
6276 order to use commutative addition instead of subtraction.
6277
aa620173 62782008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
6279 Mircea Namolaru <namolaru@il.ibm.com>
6280 Vladimir Yanovsky <yanov@il.ibm.com>
6281 Revital Eres <eres@il.ibm.com>
6282
6283 PR tree-optimization/34263
6284 * tree-outof-ssa.c (process_single_block_loop_latch,
6285 contains_tree_r): New functions.
6286 (analyze_edges_for_bb): Call process_single_block_loop_latch
6287 function to empty single-basic-block latch block if possible.
6288
459609ab 62892008-01-05 Uros Bizjak <ubizjak@gmail.com>
6290
6291 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
6292 for TARGET_RECIP.
6293 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
6294
35160457 62952008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
6296
6297 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
6298
5f98e2aa 62992008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
6300
6301 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
6302
640fba6f 63032008-01-05 Jakub Jelinek <jakub@redhat.com>
6304
6305 PR tree-optimization/34618
6306 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
6307 flag from T.
6308
1a086819 63092008-01-05 Uros Bizjak <ubizjak@gmail.com>
6310
6311 PR target/34673
6312 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
6313 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
6314 Update copyright year.
6315
6316 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
6317 Update copyright year.
6318 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
6319 using NR fixup.
6320
f831baaf 63212008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
6322
6323 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
6324 edge does not point to current bb before changing need_assert.
6325
cd3f90e2 63262008-01-04 Richard Guenther <rguenther@suse.de>
6327
6328 PR middle-end/34029
6329 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
6330 for verifying purposes if they are is_gimple_min_invariant.
6331
5b56c905 63322008-01-04 Aldy Hernandez <aldyh@redhat.com>
6333
6334 PR tree-optimization/34448
6335 PR tree-optimization/34465
6336 * gimplify.c (gimplify_init_constructor): Add new parameter
6337 notify_temp_creation. Use it.
6338 (gimplify_modify_expr_rhs): Take volatiles into account when
6339 optimizing constructors.
6340 Do not optimize constructors if gimplify_init_constructor will dump to
6341 memory.
6342 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
6343 * gcc.c-torture/compile/pr34448.c: New.
6344
dfbb5324 63452008-01-04 Jakub Jelinek <jakub@redhat.com>
6346
6347 PR gcov-profile/34609
6348 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
6349 return_slot if result is TREE_ADDRESSABLE.
6350
1bbc673e 63512008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
6352
6353 * config/mips/mips.md (sqrt_condition): Tweak comment.
6354 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
6355
78c2e180 63562008-01-03 Tom Tromey <tromey@redhat.com>
6357
dfbb5324 6358 PR c/34457
78c2e180 6359 * c-common.c (c_type_hash): Handle VLAs.
6360
186f5fff 63612008-01-03 Jan Hubicka <jh@suse.cz>
6362
6363 PR tree-optimization/31081
6364 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
6365 0 when inlining and not inlining to first basic block.
6366 (remap_decl): When var is initialized to 0, don't set default_def.
6367 (expand_call_inline): Set entry_bb.
6368 * tree-inline.h (copy_body_data): Add entry_bb.
6369
361c9aad 63702008-01-03 Jakub Jelinek <jakub@redhat.com>
6371
e3a37aef 6372 PR c++/34619
6373 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
6374 before returning.
6375
361c9aad 6376 PR tree-optimization/29484
6377 * tree-inline.c (inline_forbidden_p_2): New function.
6378 (inline_forbidden_p): Disallow inlining if some static var
6379 has an address of a local LABEL_DECL in its initializer.
6380 * doc/extend.texi (Labels as Values): Document &&foo behaviour
6381 vs. inlining.
6382
e1feff4f 63832008-01-03 Sebastian Pop <sebastian.pop@amd.com>
bfe20447 6384
6385 PR tree-optimization/34635
6386 * tree-data-ref.c (add_other_self_distances): Make sure that the
6387 evolution step is constant.
6388
fbe86b1b 63892008-01-03 Jakub Jelinek <jakub@redhat.com>
6390
6391 PR middle-end/34608
f831baaf 6392 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
fbe86b1b 6393
99f35fae 63942008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
6395
6396 * tree-sra.c (scalarize_init): Insert the generate_element_init
6397 statements after the generate_element_zero statements.
6398
20e67c9a 63992008-01-02 Richard Guenther <rguenther@suse.de>
6400
6401 PR middle-end/34093
6402 PR middle-end/31976
6403 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
6404 for very large number of operands instead of ICEing.
6405
02be515c 64062008-01-02 Arthur Norman <acn1@cam.ac.uk>
6407
f831baaf 6408 PR target/34013
a4890dc9 6409 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
02be515c 6410 while stack probing.
6411
799bdf64 64122008-01-01 Douglas Gregor <doug.gregor@gmail.com>
6413
02be515c 6414 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
f831baaf 6415 in C++0x mode.
799bdf64 6416
65e47be2 64172008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
6418
6419 PR libmudflap/26442
6420 * tree-mudflap.c (mx_register_decls): Guard warning by
6421 !DECL_ARTIFICIAL check.
6422
25a3b4c5 64232008-01-01 Jakub Jelinek <jakub@redhat.com>
6424
6425 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
6426 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
6427 sse5_perm<mode>): Fix constraints.