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