OSDN Git Service

2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
4         (UNSPEC_LDDQU): This.
5         * config/i386/sse.md (sse3_lddqu): Updated.
6
7 2006-10-21  Richard Guenther  <rguenther@suse.de>
8
9         * builtins.c (expand_builtin_int_roundingfn_2): New function.
10         (expand_builtin): Use it to expand lrint instead of
11         expand_builtin_mathfn.
12
13 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
14
15         PR middle-end/28252
16         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
17         flag_unsafe_math_optimizations is set.
18
19 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
20
21         PR target/19398
22         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
23         patterns to use memory input operand in x87->mem->XMM
24         reload sequences.  Skip transformation for TARGET_K8.
25
26 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
27
28         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
29         force operand1 to register if both operands are memory operands.
30         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
31         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
32         if both operands are memory operands.
33         (truncdfsf2): Do not force operand1 to register if both operands
34         are memory operands.
35
36 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37
38         * Makefile.in (LIBS): Add $(GMPLIBS).
39         * doc/install.texi: Update GMP and MPFR requirements.
40         * doc/sourcebuild.texi (need_gmp): Delete.
41
42 2006-10-21  Richard Guenther  <rguenther@suse.de>
43
44         PR tree-optimization/3511
45         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
46         got new invariant arguments during PHI translation.
47
48 2006-10-21  Richard Guenther  <rguenther@suse.de>
49
50         PR middle-end/26898
51         * fold-const.c (fold_comparison): Fold signed comparisons
52         of the form X +- C1 CMP Y +- C2.
53
54 2006-10-21  Richard Guenther  <rguenther@suse.de>
55
56         PR target/19116
57         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
58         if flag_unsafe_math_optimizations is specified.  We have
59         flag_finite_math_only for that.
60         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
61         or flag_unsafe_math_optimizations.
62
63 2006-10-21  Richard Guenther  <rguenther@suse.de>
64
65         * builtins.c (fold_builtin_classify): Fix typo.
66
67 2006-10-21  Richard Guenther  <rguenther@suse.de>
68
69         PR middle-end/28796
70         * simplify-rtx.c (simplify_const_relational_operation):
71         Do not constant-fold ORDERED and UNORDERED for
72         flag_unsafe_math_optimizations but only we do not need to
73         honor NaNs for the given mode.
74
75 2006-10-21  Richard Guenther  <rguenther@suse.de>
76
77         PR target/29512
78         * config/i386/i386.c (classify_argument): Remove redundant
79         walking of the BINFOs.
80         (contains_128bit_aligned_vector_p): Likewise.
81
82 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
83
84         * BASE-VER: Set to 4.3.0.
85
86 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
87
88         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
89         (tree_decl_with_vis): Remove artificial_pta_var flag.
90         * tree-flow.h (referenced_var_check_and_insert): Expose.
91         (nonlocal_all): New prototype.
92         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
93         (nonlocal_all): Make global.
94         (nonlocal_lookup): Remove.
95         (nonlocal_insert): Ditto.
96         (create_nonlocal_var): Do not call nonlocal_insert.
97         (get_nonlocal_id_for_type): Remove.
98         (find_global_initializers): Mark new vars we find for renaming.
99         (intra_create_variable_infos): Only create one nonlocal.
100         (expand_nonlocal_solutions): Remove.
101         (compute_points_to_sets): Don't call it.
102         (ipa_pta_execute): Ditto.
103         (init_alias_heapvars): Don't create nonlocal_for_type.
104         (delete_alias_heapvars): Don't remove it.
105         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
106         nonlocal_all.
107
108 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
109
110         * doc/install.texi (Downloading GCC): Clarify mention of
111         Fortran in the "full distribution" description.
112
113 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
114
115         Fix PR tree-optimization/28778
116         Fix PR tree-optimization/29156
117         Fix PR tree-optimization/29415
118         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
119         (tree_decl_with_vis): Add artificial_pta_var flag.
120         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
121         pushed into callers.
122         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
123         (nonlocal_all): Ditto.
124         (struct variable_info): Add directly_dereferenced member.
125         (var_escaped_vars): New variable.
126         (escaped_vars_tree): Ditto.
127         (escaped_vars_id): Ditto.
128         (nonlocal_vars_id): Ditto.
129         (new_var_info): Set directly_dereferenced.
130         (graph_size): New variable
131         (build_constraint_graph): Use graph_size.
132         (solve_graph): Don't process constraints that cannot change the
133         solution, don't try to propagate an empty solution to our
134         successors.
135         (process_constraint): Set directly_dereferenced.
136         (could_have_pointers): New function.
137         (get_constraint_for_component_ref): Don't process STRING_CST.
138         (nonlocal_lookup): New function.
139         (nonlocal_insert): Ditto.
140         (create_nonlocal_var): Ditto.
141         (get_nonlocal_id_for_type): Ditto.
142         (get_constraint_for): Allow results vector to be empty in the case
143         of string constants.
144         Handle results of calls properly.
145         (update_alias_info): Update alias info stats on number and type of
146         calls.
147         (find_func_aliases): Use could_have_pointers.
148         (make_constraint_from_escaped): Renamed from
149         make_constraint_to_anything, and changed to make constraints from
150         escape variable.
151         (make_constraint_to_escaped): New function.
152         (find_global_initializers): Ditto.
153         (create_variable_info_for): Make constraint from escaped to any
154         global variable, and from any global variable to the set of
155         escaped vars.
156         (intra_create_variable_infos): Deal with escaped instead of
157         pointing to anything.
158         (set_uids_in_ptset): Do type pruning on directly dereferenced
159         variables.
160         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
161         (init_base_vars): Fix comment, and initialize escaped_vars.
162         (need_to_solve): Removed.
163         (find_escape_constraints): New function.
164         (expand_nonlocal_solutions): Ditto.
165         (compute_points_to_sets): Call find_escape_constraints and
166         expand_nonlocal_solutions.
167         (delete_points_to_sets): Don't fall off the end of the graph.
168         (init_alias_heapvars): Initialize nonlocal_for_type and
169         nonlocal_all.
170         (delete_alias_heapvars): Free nonlocal_for_type and null out
171         nonlocal_all. 
172
173 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
174
175         * fold-const.c (add_double): Rename to add_double_with_sign.
176         Add 'unsigned_p' parameter and take it into account for the overflow.
177         (mul_double): Rename to mul_double_with_sign. 
178         Add 'unsigned_p' parameter and take it into account for the overflow.
179         (fold_div_compare): Call add_double_with_sign instead of add_double
180         and mul_double_with_sign instead of mul_double, passing them the
181         unsignedness of the type.
182         * tree.h (add_double): Macroize.
183         (add_double_with_sign): New prototype.
184         (mul_double): Macroize.
185         (mul_double_with_sign): New prototype.
186
187 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
188
189         * config/score/crti.asm: New file.
190         * config/score/crtn.asm: New file.
191         * config/score/elf.h: New file.
192         * config/score/mac.md: New file.
193         * config/score/misc.md: New file.
194         * config/score/mul-div.S: New file.
195         * config/score/predicates.md: New file.
196         * config/score/score7.md: New file.
197         * config/score/score.c: New file.
198         * config/score/score-conv.h: New file.
199         * config/score/score.h: New file.
200         * config/score/score.md: New file.
201         * config/score/score-mdaux.c: New file.
202         * config/score/score-mdaux.h: New file.
203         * config/score/score-modes.def: New file.
204         * config/score/score.opt: New file.
205         * config/score/score-protos.h: New file.
206         * config/score/score-version.h: New file.
207         * config/score/t-score-elf: New file.
208         * config.gcc: Add score*-*-* configurations(Update before).
209         * doc/invoke.texi (Score Options): New section.
210         * doc/md.texi (Score family): New section to document constraints.
211
212 2006-10-19  Nick Clifton  <nickc@redhat.com>
213
214         * config/arm/arm.c: Fix spelling typo.
215
216 2006-10-18  Tom Tromey  <tromey@redhat.com>
217
218         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
219
220 2006-10-18  Jan Hubicka  <jh@suse.cz>
221
222         PR middle-end/29299
223         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
224         are used.
225
226 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
227
228         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
229         TSI_SAME_STMT, since that's the desired entity.
230
231 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
232
233         * config/s390/contraints.md: New file.
234         * config/s390/s390-protos.h (s390_mem_constraint, 
235         s390_O_constraint_str, s390_N_constraint_str, 
236         s390_float_const_zero_p): Function prototypes added.
237         * config/s390/s390.c (s390_extra_constraint_str, 
238         s390_const_double_ok_for_constraint_p, 
239         s390_const_ok_for_constraint_p): Functions removed.
240         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
241         s390_float_const_zero_p): New functions.
242         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
243         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR, 
244         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN): 
245         Macro definitions removed.
246         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
247         s390_extra_constraint_str): Functions removed.
248
249 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
250             Richard Sandiford  <richard@codesourcery.com>
251
252         PR target/29413
253         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
254         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
255
256 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
257
258         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
259         (DWARF2_FRAME_REG_OUT): Likewise.
260         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
261         (DWARF2_FRAME_REG_OUT): Likewise.
262
263 2006-10-17  Paul Brook  <paul@codesourcery.com>
264
265         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
266
267 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
268
269         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
270         Standardize on "GNU Fortran" as the official name of the Fortran
271         compiler.
272
273 2006-10-16  Mike Stump  <mrs@apple.com>
274
275         * doc/invoke.texi (Darwin Options): Document -mkernel.
276         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
277         -mkernel support.
278         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
279         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
280         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
281         (OS_MISSING_ALTIVEC): Add.
282         * config/i386/i386.c (override_options): Add
283         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
284         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
285         -mkernel, -static or -mdynamic-no-pic is given.
286         (C_COMMON_OVERRIDE_OPTIONS): Add.
287         * config/darwin.opt (fapple-kext): Add.
288         (mkernel): Add.
289         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
290         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
291         -mkernel support.
292         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
293         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
294         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
295         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
296         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
297         (flag_mkernel): Add.
298         (flag_apple_kext): Add.
299         (TARGET_KEXTABI): Add.
300         * config/darwin.c (darwin_handle_kext_attribute): Add.
301         (DARWIN_VTABLE_P): Add.
302         (darwin_binds_local_p): Add partial support for rebinding vtables
303         in kexts.
304         (darwin_kextabi_p): Add.
305         (darwin_override_options): Add.
306         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
307         (darwin_kextabi_p): Add.
308         (darwin_override_options): Add.
309         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
310         __DYNAMIC__ and __STATIC__ here.
311
312 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
313
314         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
315         Added mention of "make pdf" target, and Texinfo requirements for
316         same.
317
318 2006-10-16  DJ Delorie  <dj@redhat.com>
319
320         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
321         into the GOT in case we need a subreg of the address.
322
323 2006-10-16  Richard Guenther  <rguenther@suse.de>
324
325         PR target/25519
326         * doc/extend.texi (X86 Built-in Functions): Fix typos in
327         SSE builtin documentation.  Document SSE2 builtins.
328
329 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
330
331         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
332         symbol in the output file for non-shared links when -nostdlib or
333         -nodefaultlibs isn't specified.
334
335         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
336         posix thread support.
337
338 2006-10-15  Jan Hubicka  <jh@suse.cz>
339
340         PR middle-end/29241
341         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
342         declared always_inline even when not inlining.
343
344 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
345             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
346             Andrew Pinski  <pinskia@gmail.com>
347
348         PR middle-end/29111
349         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
350
351 2006-10-15  Jan Hubicka  <jh@suse.cz>
352             Richard Guenther  <rguenther@suse.de>
353
354         PR middle-end/29299
355         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
356         process_function_and_variable_attributes on all variables, including
357         those discovered during cgraph construction phase.
358
359 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
360
361         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
362
363 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
364
365         * config/i386/athlon.md (athlon_fist): Add fisttp.
366
367 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
368             Ian Lance Taylor  <ian@airs.com>
369
370         PR middle-end/29250
371         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
372         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
373         recursing.
374
375 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
376
377         * config/score/score.c, config/score/score.h: Fix comment
378         typos.
379
380 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
381
382         PR bootstrap/29402
383         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
384         shell pipeline.
385
386 2006-10-13  Eric Christopher  <echristo@apple.com>
387
388         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
389
390 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
391
392         Revert this change:
393         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
394         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
395         alignment supported by 32-bit ELF.
396
397 2006-10-13  Eric Christopher  <echristo@apple.com>
398
399         * config/darwin.c (darwin_emit_unwind_label): Strip
400         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
401
402 2006-10-13  Richard Guenther  <rguenther@suse.de>
403
404         PR tree-optimization/29446
405         * tree-vrp.c (fix_equivalence_set): Remove.
406         (extract_range_from_assert): Do not call fix_equivalence_set.
407         (debug_value_range): Print a newline.
408         (compare_name_with_value): For equivalence sets with
409         inconsistent value ranges conservatively bail out.
410         (compare_names): Likewise.
411
412 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
413
414         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
415         and MPFR for gfortran.
416
417 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
418
419         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
420         alignment supported by 32-bit ELF.
421
422 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
423
424         PR c/29092
425
426         * c-typeck.c (digest_init): Always allow initializing vectors
427         that have static storage duration with compound literals.
428         * tree.c (build_type_attribute_qual_variant): New, based on
429         build_type_attribute_variant.
430         (build_type_attribute_variant): Rewrite using the former.
431         (make_vector_type): Use build_type_attribute_qual_variant to build
432         type variants.  Use type_hash_canon on the others.
433
434 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
435             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
436
437         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
438
439 2006-10-12  Jan Hubicka  <jh@suse.cz>
440
441         PR c/28419
442         * c-decl.c (c_make_fname_decl): Do not segfault in case where
443         current_function_decl is set but current_function_scope is not.
444
445 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
446
447         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
448         emit_insn to emit eh_return_internal instruction.
449         (eh_return_internal): Explicitly set pc.
450
451 2006-10-11  Richard Guenther  <rguenther@suse.de>
452
453         PR tree-optimization/28230
454         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
455         to the correct place.
456
457 2006-10-11  Richard Guenther  <rguenther@suse.de>
458
459         PR inline-asm/29119
460         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
461         addressable.
462
463 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
464
465         * configure.ac: Added pdf to "Make-hooks"
466         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
467         targets and *.pdf file patterns in cleanup targets.
468         * configure: Regenerated.
469
470 2006-10-10  Anatoly Sokolov <aesok@post.ru>
471
472         * config/avr/predicates.md: New file.
473         * config/avr/avr.md: Include it.
474         (REG_SP): New constant.
475         (peepholes): Use predicates.
476         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
477         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
478         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
479
480 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
481
482         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
483         avoid alias set 0.
484
485 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
486
487         PR middle-end/29272
488         * builtins.c (var_decl_component_p): New function.
489         (fold_builtin_memset, fold_builtin_memory_op): Restrict
490         single entry optimization to variables and components thereof.
491
492 2006-10-10  Richard Guenther  <rguenther@suse.de>
493
494         PR rtl-optimization/29323
495         * except.c (set_nothrow_function_flags): For functions
496         that do not bind local bail out early.
497
498 2006-10-10  Ben Elliston  <bje@au.ibm.com>
499
500         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
501         -mdlmzb option.
502
503 2006-10-09  Richard Henderson  <rth@redhat.com>
504
505         Revert emutls patch.
506
507 2006-10-09  Richard Guenther  <rguenther@suse.de>
508
509         PR middle-end/29254
510         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
511         errors.
512
513 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
514
515         PR target/27880
516         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
517         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
518         * configure: Regenerate.
519         * config.in: Regenerate.
520
521 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
522
523         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
524
525 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
526
527         * config/mips/mips.c (mips_legitimize_tls_address): Implement
528         all TLS models in the same way as local exec if !TARGET_ABICALLS.
529         Remove stray newline.
530
531 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
532
533         * config/mips/mips.c (mips_classify_symbol): Do not return
534         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
535         (mips_in_small_data_p): Tweak comments.
536
537 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
538
539         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
540
541 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
542
543         * gimplify.c, sched-int.h: Fix comment typos.
544
545         * sched-int.h: Fix comment typos.
546
547 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
548
549         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
550         New macros.
551         * sched-ebb.c (begin_schedule_ready): Use them.
552         * haifa-sched.c (schedule_insn, move_insn, try_ready,
553         add_to_speculative_block, create_check_block_twin, speculate_insn,
554         fix_jump_move, move_block_after_check): Ditto.
555         * sched-rgn.c (new_ready): Ditto.
556
557 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
558
559         PR rtl-optimization/29128
560         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
561         * sched-ebb.c (advance_target_bb): Use it to fix condition to
562         allow interblock movement of speculation checks.
563
564 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
565
566         PR middle-end/29256
567         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
568         casted to integer type.
569         (get_address_cost): Decrease cost of [symbol + index] addressing modes
570         if they are significantly more expensive than [reg + index] ones.
571
572 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
573
574         PR tree-optimization/29330
575         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
576         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
577         on newly allocated ddrs.
578         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
579         to VEC (loop_p, heap) pointer.
580         (compute_data_dependences_for_loop): Adjust caller.
581         (free_dependence_relations): Free DDR_LOOP_NEST.
582
583         * tree-loop-linear.c (linear_transform_loops): Don't forget to
584         free DEPENDENCE_RELATIONS and DATAREFS.
585
586         PR target/28924
587         * builtins.c (expand_builtin_sync_operation,
588         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
589         Use convert_to_mode to handle promoted arguments.
590
591 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
592
593         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
594
595 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
596
597         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
598
599 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
600
601         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
602         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
603         Use <modeconstraint> instead of "r" as operand 1 constraint.
604
605 2006-10-06  Olivier Hainque  <hainque@adacore.com>
606
607         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
608         Don't recurse on the pointed-to type.
609         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
610         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
611         types with components of variable size.
612
613 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
614
615         config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
616
617 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
618
619         PR tree-optimization/29290
620         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
621         multiple exits.
622
623         PR target/29198
624         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
625         * config/i386/predicates.md (local_symbolic_operand): Likewise.
626
627         PR c/29091
628         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
629         the number of vector elements fill the rest with zeros.
630
631 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
632
633         * config/mips/mips.c (mips_pass_by_reference): Do not return false
634         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
635         instead.
636
637 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
638
639         * config/bfin/bfin.md (subsi3): Lose expander, change previously
640         unnamed pattern into subsi3.  Use correct constraints/predicates.
641         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
642         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
643
644 2006-10-05  Ira Rosen  <irar@il.ibm.com>
645
646         * doc/loop.texi: Add data references analysis description.
647
648 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
649
650         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
651
652 2006-10-04  Richard Henderson  <rth@redhat.com>
653             Jakub Jelinek  <jakub@redhat.com>
654
655         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
656         * builtin-types.def (BT_WORD): Make unsigned.
657         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
658         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
659         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
660         * c-decl.c (grokdeclarator): Don't error if !have_tls.
661         * c-parser.c (c_parser_omp_threadprivate): Likewise.
662         * cgraph.c (decide_is_variable_needed): Look at force_output.
663         Recurse for emulated tls.
664         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
665         checks redundant with decide_is_variable_needed.
666         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
667         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
668         emulated tls.
669         * expr.c (emutls_var_address): New.
670         (expand_expr_real_1): Expand emulated tls.
671         (expand_expr_addr_expr_1): Likewise.
672         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
673         * output.h (emutls_finish): Declare.
674         * toplev.c (compile_file): Call it.
675         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
676         address before wrapping in CONST.
677         * varasm.c (emutls_htab, emutls_object_type): New.
678         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
679         (get_emutls_object_name, get_emutls_object_type): New.
680         (get_emutls_init_templ_addr, emutls_decl): New.
681         (emutls_common_1, emutls_finish): New.
682         (assemble_variable): When emulating tls, swap decls; generate
683         constructor for the emutls objects.
684         (do_assemble_alias): When emulating tls, swap decl and target name.
685         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
686         for emulated tls.
687         * emutls.c: New file.
688         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
689         tls_object for real tls.
690
691 2006-10-04  Zack Weinberg  <zackw@panix.com>
692
693         Fix bug in constraint-check generator, reported by Rask Ingemann
694         Lambertsen:
695         * genpreds.c (add_constraint): Don't remove anything from the
696         expression here.
697         (write_tm_constrs_h): Detect whether "op" argument is used, and
698         mark it ARG_UNUSED if it isn't.
699         (write_insn_const_int_ok_for_constraint): Skip the part of the
700         expression that would test whether "op" (which is not available
701         here) is a CONST_INT.
702
703 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
704
705         PR c++/28448
706         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
707
708 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
709
710         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
711         current Leopard versions.
712         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
713
714 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
715
716         * doc/install.texi: Fix typos.
717
718 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
719
720         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
721         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
722         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
723
724 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
725
726         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
727         arg to be struct mach_header_64* instead.
728
729 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
730
731         PR c/29154
732         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
733         side effects after the outer expression's post side effects.
734
735 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
736
737         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
738         comments to reflect actual behavior and relationship between
739         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
740
741         * doc/c-tree.texi (Working with declarations): Fix documentation
742         of FIELD_DECL likewise.
743
744 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
745
746         PR c/20533
747         * doc/extend.texi: Add used variable attribute description.
748
749 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
750
751         PR c/24010
752         * c.opt (Woverride-init): New.
753         * c-opts.c (c_common_post_options): Default warn_override_init to
754         extra_warnings.
755         * c-typeck.c (add_pending_init, output_init_element): Warn for
756         overriding initializers without side effects.
757         * doc/invoke.texi (-Woverride-init): Document.
758         (-Wextra): Update.
759
760 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
761
762         PR rtl-optimization/28096
763         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
764         assignment has already been used as a destination earlier in the block.
765
766 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
767
768         * builtins.c (expand_builtin_setjmp): Delete.
769         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
770         <BUILT_IN_SETJMP_SETUP>: New case.
771         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
772         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
773         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
774         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
775         (BUILT_IN_SETJMP_RECEIVER): Likewise.
776         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
777         (lower_function_body): Initialize it to false.  If it is set to true
778         at the end of the processing, emit the setjmp dispatcher.
779         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
780         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
781         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
782         on the rhs of the assignment.
783         (lower_builtin_setjmp): New function.
784         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
785         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
786         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
787         to detect calls that can go to non-local labels.  Use specific
788         helper to create the abnormal edges associated with them.
789         <MODIFY_EXPR>: Likewise.
790         (make_abnormal_goto_edges): New function extracted from...
791         (make_goto_expr_edges): ...here.  Call it for computed gotos.
792         (simple_goto_p): Minor tweak.
793         (tree_can_make_abnormal_goto): New predicate.
794         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
795         (tree_purge_dead_abnormal_call_edges): New function.
796         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
797         (tree_purge_dead_abnormal_call_edges): Likewise.
798         (make_abnormal_goto_edges): Likewise.
799         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
800         Purge all dead abnormal edges if the call was in the last statement.
801         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
802         (execute_fixup_cfg): If there are non-local labels in the function,
803         scan the basic blocks and split them at calls that can go to non-local
804         labels or add missing abnormal call edges.  Write down the CFG in the
805         dump file.
806         (pass_fixup_cfg): Remove TODO_dump_func flag.
807         * unwind-sjlj.c: Poison setjmp.
808         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
809         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
810         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
811         (DONT_USE_BUILTIN_SETJMP): Document it.
812
813 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
814
815         PR target/28617
816         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
817         to 1 when __ppc64__ is defined.
818         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
819         darwin-64.c.
820         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
821
822 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
823
824         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
825         * config/ia64/unwind-hpux.c: Delete.
826
827 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
828
829         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
830         on the element before gimplifying it, instead of punting if it is of
831         variable size.
832
833 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
834
835         * doc/loop.texi: New file.
836         * doc/gccint.texi: Reference loop.texi.
837         * Makefile.in (loop.texi): Add.
838
839 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
840
841         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
842         __sysctl.
843         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
844         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
845
846 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
847
848         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
849
850 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
851
852         * doc/install.texi: Document required versions of GMP and MPFR.
853
854 2006-09-27  Paul Brook  <paul@codesourcery.com>
855
856         PR target/29230
857         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
858
859 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
860
861         * reload1.c (alter_reg): Require the alignment of the stack slot to
862         be at least reg_max_ref_width bytes.
863         (scan_paradoxical_subregs): Record the largest width in
864         reg_max_ref_width.
865
866 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
867
868         PR middle-end/25261
869         PR middle-end/28790
870         * tree-nested.c (struct nesting_info): Added static_chain_added.
871         (convert_call_expr): Set static_chain_added when adding static
872         chain.  Handle OMP_PARALLEL and OMP_SECTION.
873
874 2006-09-25  Matthias Klose  <doko@debian.org>
875
876         * doc/invoke.texi: Add missing full stop.
877
878 2006-09-25  Richard Henderson  <rth@redhat.com>
879
880         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
881         before cgraph_function_flags_ready.
882
883 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
884             Adam Nemet  <anemet@caviumnetworks.com>
885
886         * tree-ssa-loop-ivopts.c (aff_combination_convert,
887         determine_common_wider_type): New functions.
888         (get_computation_aff): Use them to simplify arithmetic between
889         UBASE and CBASE if they are shortened from the same type.
890
891 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
892
893         PR target/28911
894         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
895         -2147483647 - 1 instead of 0x80000000.
896
897 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
898
899         * flags.h (HONOR_NANS): Fix typo in comment.
900
901 2006-09-23  Uros Bizjak <uros@kss-loka.si>
902
903         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
904
905 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
906
907         PR c/28706
908         PR c/28712
909         * tree.c (merge_attributes, attribute_list_contained): If both
910         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
911         simple_cst_equal.
912         * c-typeck.c (comptypes_internal): Don't consider aggregates
913         in different TUs as compatible if there one set of attributes is
914         not a subset of the other type's attributes.
915         (composite_type): Try harder not to create a new aggregate type.
916
917 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
918
919         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
920         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
921         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
922         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
923         than replicating condition above.
924         * config.host (i[34567]86-*-*): Always use driver-i386.o.
925
926         * config/darwin.h (LINK_SYSROOT_SPEC): New.
927         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
928         the linker by default.
929
930 2006-09-22  Mike Stump  <mrs@apple.com>
931
932         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
933         code.
934
935 2006-09-22  Richard Guenther  <rguenther@suse.de>
936
937         PR middle-end/28964
938         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
939         sort of stack variables stable.
940
941 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
942
943         PR middle-end/28690
944         * explow.c (force_reg): Set REG_POINTER flag according to
945         MEM_POINTER flag.
946
947 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
948
949         PR tree-optimization/28888
950         * tree-if-conv.c (combine_blocks): Rewritten.
951         * tree-cfg.c (tree_verify_flow_info): Check that edges with
952         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
953
954 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
955
956         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
957         needed.
958
959 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
960
961         * varasm.c (copy_constant): Fix reversed gcc_assert check.
962
963 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
964
965         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
966
967 2006-09-21  Roger Sayle  <roger@eyesopen.com>
968
969         PR debug/29132
970         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
971         dw_fde_current_label, to be the start of the function, i.e. the same
972         value as dw_fde_begin.
973
974 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
975
976         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
977         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
978         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
979         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
980         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
981         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
982         (abs<mode>2, neg<mode>2): Likewise.
983         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
984         (*mips_abs_ps): New define_insn.
985
986 2006-09-20  Josh Conner  <jconner@apple.com>
987
988         PR middle-end/25505
989         * calls.c (expand_call): Allow reuse of structure return stack
990         temp.
991
992 2006-09-20  Paul Brook  <paul@codesourcery.com>
993
994         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
995         positive offsets.
996
997 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
998
999         * doc/extend.texi (Decimal Float): Update for latest draft TR,
1000         clean up terminology.
1001
1002 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
1003
1004         PR target/28574
1005         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
1006         with tablejumps in them.
1007
1008 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
1009
1010         PR middle-end/28046
1011         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
1012         wrap it into TARGET_EXPR.
1013
1014 2006-09-20  Eric Christopher  <echristo@apple.com>
1015
1016         * config/i386/i386.c (x86_fisttp): Remove.
1017         * config/i386/i386.h (x86_fisttp): Ditto.
1018         (TARGET_FISTTP): Ditto.
1019
1020 2006-09-19  Eric Christopher  <echristo@apple.com>
1021
1022         * doc/tm.texi (OBJC_JBLEN): Describe.
1023         * config/i386/darwin.h (OBJC_JBLEN): Define.
1024         * config/rs6000/darwin.h: Ditto.
1025
1026 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
1027
1028         PR rtl-optimization/21299
1029         * reload1.c (reload): Purge invalid ASMs in the final pass.
1030
1031 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
1032
1033         PR  28490
1034         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
1035         pointers as legitimate constants.
1036
1037 2006-09-19  Paul Brook  <paul@codesourcery.com>
1038
1039         PR target/28516
1040         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
1041
1042 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
1043
1044         PR tree-optimization/28887
1045         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
1046         component parts from the reference.
1047         (gather_memory_references_ref): Record the reference without the
1048         nonaddressable component parts.
1049
1050 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
1051
1052         PR c/25993
1053         * c-opts.c (c_common_handle_option): Ignore the -std options
1054         if the input language is assembly.
1055
1056 2006-09-17  Ira Rosen  <irar@il.ibm.com>
1057
1058         PR tree-opt/21591
1059         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
1060         tag first.
1061         (ptr_ptr_may_alias_p): Likewise.
1062         (record_record_differ_p): New function.
1063         (base_object_differ_p): Call record_record_differ_p.
1064
1065 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
1066
1067         PR tree-opt/29059
1068         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
1069         away for the expr argument.
1070
1071 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
1072
1073         PR tree-opt/27742
1074         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
1075         before using it for dumping after vectorizing loops.
1076
1077 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
1078             Jack Howarth  <howarth@bromo.med.uc.edu>
1079
1080         PR target/29030
1081         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
1082         skip on error_mark_node.
1083         (rs6000_darwin64_record_arg_recurse): Likewise.
1084
1085 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
1086
1087         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
1088         * doc/rtl.texi: Remove related documentation.
1089
1090 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1091
1092         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
1093         printf.
1094
1095 2006-09-15  Jim Wilson  <wilson@specifix.com>
1096
1097         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
1098         Handle symbol offsets same as they are handled in ia64_expand_move
1099         and move_operand.
1100
1101 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
1102
1103         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
1104         Add forgotten parameter to the fprintf call.
1105
1106 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
1107
1108         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
1109
1110 2006-09-15  Uros Bizjak <uros@kss-loka.si>
1111
1112         * doc/contrib.texi: Add my entry.
1113
1114 2006-09-15  Nick Clifton  <nickc@redhat.com>
1115
1116         * doc/md.texi (Processor pipeline description): Fix typo in
1117         example of how to use the absence_set directive and reword the
1118         description to make it slightly easier to read.
1119
1120 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1121
1122         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
1123         * loop-doloop.c (doloop_optimize): Use it to limit costs of
1124         expanding the number of iterations.
1125         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
1126
1127         * cfgrtl.c (emit_insn_at_entry): New function.
1128         * rtl.h (emit_insn_at_entry): Declare it.
1129         * integrate.c (emit_initial_value_sets): Use it.
1130
1131         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
1132
1133         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
1134         bad.
1135         (struct loop_work and related VEC declarations): Delete.
1136         (bfin_dump_loops): Print out new member bad.
1137         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
1138         (bfin_scan_loop): Don't recurse.
1139         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
1140         loops.  No longer need to update outer loops if the current one is
1141         found bad.  Move some validitiy checks to bfin_discover_loop.
1142         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
1143         but changed not to check for nesting.  Also changed to use the new bad
1144         flag.
1145         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
1146         time.  Use bitmap based test to discover loop nesting.
1147
1148 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
1149
1150         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
1151         one line.
1152
1153 2006-09-14  Richard Guenther  <rguenther@suse.de>
1154             Kazu Hirata  <kazu@codesourcery.com>
1155
1156         PR middle-end/28884.
1157         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
1158         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
1159         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
1160         with TARGET_FUNCTION_VALUE.
1161
1162 2006-09-14  Anatoly Sokolov <aesok@post.ru>
1163
1164         PR target/26504
1165         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
1166
1167 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
1168
1169         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
1170         of a RETURN_EXPR
1171
1172 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
1173
1174         PR debug/28980
1175         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
1176         FUNCTION_DECL.
1177
1178 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
1179
1180         * basic_block.h (bb_has_eh_pred): Fix comment.
1181
1182 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
1183
1184         * flow.c (calculate_global_regs_live): Invalidate eh registers
1185         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
1186         (propagate_block): Handle eh registers as if they were set at basic
1187         block start.
1188         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
1189         registers.
1190         * global.c (global_conflicts): Make eh registers to conflict with
1191         pseudos live at basic block begin.
1192         * basic_block.h (bb_has_eh_pred): New function.
1193
1194 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
1195
1196         PR rtl-optimization/28982
1197         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
1198         index of a PRE_MODIFY or POST_MODIFY address.
1199         * reload1.c (inc_for_reload): Use find_replacement on the original
1200         base and index registers.
1201
1202 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
1203
1204         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
1205         for -Os. Update __m128 alignment requirement.
1206
1207 2006-09-13  Jan Hubicka  <jh@suse.cz>
1208
1209         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
1210
1211 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1212
1213         PR rtl-optimization/28243
1214         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
1215         the insn to which the note was originally attached.
1216
1217 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
1218             Roger Sayle  <roger@eyesopen.com>
1219
1220         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
1221         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
1222         on platforms that don't use dwarf for debug info.
1223
1224 2006-09-12  Jason Merrill  <jason@redhat.com>
1225
1226         PR middle-end/28493
1227         * builtins.c (expand_builtin_setjmp_receiver): Clobber
1228         hard_frame_pointer_rtx after using it to update the frame pointer.
1229
1230 2006-09-12  Roger Sayle  <roger@eyesopen.com>
1231
1232         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
1233         (TARGET_ASM_CLOSE_PAREN): Likewise.
1234         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
1235         (TARGET_ASM_CLOSE_PAREN): Likewise.
1236
1237 2006-09-12  Roger Sayle  <roger@eyesopen.com>
1238
1239         PR target/22223
1240         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
1241         frame information for frames larger than 512 Kbytes on Tru64 when
1242         using the native assembler.
1243
1244 2006-09-12  Roger Sayle  <roger@eyesopen.com>
1245
1246         PR middle-end/4520
1247         PR bootstrap/28784
1248         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
1249         and symbols.  Instead use the implementation from cse.c's hash_rtx.
1250
1251 2006-09-12  Jan Hubicka  <jh@suse.cz>
1252
1253         PR rtl-optimization/28071
1254         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
1255         (vect_transform_loop): Likewise.
1256         * tree-vectorizer.c (new_loop_vec_info): Likewise.
1257         (new_loop_vec_info): Likewise.
1258         (destroy_loop_vec_info): Likewise.
1259         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
1260         (create_stmt_ann): Likewise.
1261         (create_tree_ann): Rename to ...
1262         (create_tree_common_ann): ... this one; allocate only the common part
1263         of annotations.
1264         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
1265         (get_value_handle): Likewise.
1266         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
1267         get_tree_common_ann.
1268         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
1269         (vinfo_for_stmt): Use stmt annotations.
1270         * tree-flow.h (tree_ann_common_t): New type.
1271         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
1272         (tree_ann, get_tree_ann, create_tree_ann): New.
1273         * tree-flow-inline.h (get_function_ann): Do more type checking.
1274         (stmt_ann): Likewise.
1275         (tree_ann): Rename to ...
1276         (tree_common_ann): ... this one; return ony common_ann
1277         (get_tree_ann): Rename to ...
1278         (tree_common_ann): This one; return only common_ann.
1279         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
1280         of set_stmt_info.
1281
1282 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
1283
1284         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
1285         with_cpu by default.
1286
1287         * dwarf2out.c (dwarf_file_data): New.
1288         (enum dw_val_class): Add dw_val_class_file.
1289         (struct dw_val_struct): Add val_file.
1290         (file_table): Change to a hash table.
1291         (file_table_emitted): Delete.
1292         (file_table_last_lookup_index): Delete.
1293         (emitcount): Delete.
1294         (last_emitted_file): New.
1295         (lookup_filename): Change prototype to return a struct dwarf_file_data.
1296         (init_file_table): Delete.
1297         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
1298         (AT_addr): Add comment.
1299         (add_AT_file): New.
1300         (AT_file): New.
1301         (get_AT_file): New.
1302         (print_die): Handle dw_val_class_file.
1303         (print_dwarf_line_table): Update for new file table structure.
1304         (attr_checksum): Do checksum a filename.
1305         (same_dw_val_p, same_attr_p): Do compare a filename.
1306         (size_of_die): Handle dw_val_class_file.
1307         (value_format): Likewise.
1308         (output_die): Likewise.  Also, call maybe_emit_file here.
1309         (struct file_info): Constify filenames.  Make file_idx a pointer
1310         to a struct dwarf_file_data.
1311         (struct dir_info): Constify directory names.  Remove 'used' field.
1312         (struct file_name_acquire_data): New.
1313         (file_name_acquire): New.
1314         (output_file_names): Modify to handle new file data structures.
1315         (add_src_coords_attributes): Use add_AT_file.
1316         (add_call_src_coords_attributes): Likewise.
1317         (dwarf2out_imported_module_or_decl): Likewise.
1318         (gen_subprogram_die): Modify for new file data structures.
1319         (gen_variable_die): Likewise.
1320         (file_table_eq): New.
1321         (file_table_hash): New.
1322         (file_table_last_lookup): New.
1323         (lookup_filename): Rewrite to handle new file data structures.
1324         (maybe_emit_file): Rewrite to handle new file data structures.
1325         (dwarf2out_source_line): Always call lookup_filename and
1326         maybe_emit_file.
1327         (dwarf2out_init): Create file_table here.
1328         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
1329         (file_table_relative_p): New.
1330         (dwarf2out_finish): Change detection of relative filenames
1331         to work with new file data structures.  Move output_line_info call
1332         after debug_info output.
1333
1334 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
1335
1336         PR target/13685
1337         PR target/27537
1338         PR target/28621
1339         * config/i386/i386.c (override_options): Always default to 16
1340         byte stack boundary.
1341
1342 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
1343
1344         PR target/28672
1345         * var-tracking.c (dump_dataflow_set): Start dumping at
1346         register zero.
1347         (clobber_variable_part): Kill only the variable part in
1348         registers holding it, leaving other variables alone.
1349
1350 2006-09-11  Josh Triplett  <josh@freedesktop.org>
1351
1352         * doc/extend.texi (Other Builtins): Actually use the macro
1353         argument in the documentation example for
1354         __builtin_types_compatible_p.
1355
1356 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1357
1358         PR rtl-optimization/28726
1359         * sched-deps.c (sched_analyze_reg): New function extracted from...
1360         (sched_analyze_1): ...here.  Call it to analyze references to
1361         registers.  Treat again writes to a stack register as writing to the
1362         register.
1363         (sched_analyze_2): ...and here.  Call it to analyze references to
1364         registers.  Treat again reads of a stack register as reading the
1365         register.
1366
1367 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
1368             David Edelsohn  <edelsohn@gnu.org>
1369
1370         PR target/27287
1371         * config/rs6000/spe.md (frob_df_di): Remove %H.
1372         (frob_di_df): Remove %H.  Change evmergelo to mr.
1373         (frob_di_df_2): Remove %H.  Change evldd to two loads.
1374
1375 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
1376
1377         * doc/cpp.texi: Fix names of charset options.
1378
1379 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
1380
1381         PR target/29009
1382         * config/i386/i386.c (override_options): Use 128-bit
1383         stack boundary always for 64bits.
1384
1385 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1386
1387         PR rtl-optimization/28636
1388         * combine.c (force_to_mode): Test for side-effects before
1389         substituting by zero.
1390         (simplify_shift_const): Likewise for zero or other constants.
1391
1392 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
1393
1394         PR middle-end/26983
1395         * builtins.c (expand_builtin_setjmp): Force next_lab to be
1396         preserved.
1397
1398 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
1399
1400         PR target/29006
1401         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
1402         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
1403         returned by mode_for_size, rather than the mode of src itself,
1404         to choose between 32-bit and 64-bit patterns.
1405         (mips_mem_fits_mode_p): New function.
1406         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
1407         that the size of the source matches the size of the destination.
1408         (mov_<store>l, mov_<store>r): Likewise.
1409
1410 2006-09-10  Eric Christopher  <echristo@apple.com>
1411
1412         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
1413         for literal16.
1414
1415 2006-09-09  Eric Christopher  <echristo@apple.com>
1416
1417         PR target/28995
1418         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
1419         for literal16.
1420
1421 2006-09-09  Roger Sayle  <roger@eyesopen.com>
1422             Nicolas Setton <setton@adacore.com>
1423
1424         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
1425
1426 2006-09-10  Andreas Schwab  <schwab@suse.de>
1427
1428         * config/m68k/m68k.md (bungt_rev): New pattern.
1429
1430 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
1431             Dale Johannesen  <dalej@apple.com>
1432
1433         PR target/26778
1434         * regclass.c (struct reg_pref): Update documentation.
1435         (regclass): Set prefclass to NO_REGS if memory is the best option.
1436         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1437
1438 2006-09-08  Eric Christopher  <echristo@apple.com>
1439
1440         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
1441         * config/t-slibgcc-darwin: Support x86_64 multilib.
1442         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
1443         Return 1 for x86_64-darwin.
1444         * config/i386/t-darwin: Add m64 multilib.
1445         (LIB2_SIDITI_CONV_FUNCS): Use.
1446         (LIB2FUNCS_EXTRA): Ditto.
1447         * config/i386/darwin.h: Support x86_64.
1448         * config/i386/i386.c (override_options): Turn on flag_pic
1449         for x86_64-darwin. Disable flag_omit_pointer.
1450         (get_pc_thunk_name): Assert !TARGET_64BIT.
1451         (legitimate_address_p): Disable machopic addressing for
1452         x86_64.
1453         (legitimize_pic_address): Ditto.
1454         (ix86_expand_move): Ditto.
1455         (ix86_expand_call): Ditto.
1456         (machopic_output_stub): Ditto.
1457         * config/darwin.c (machopic_select_section): Support literal16.
1458         (machopic_select_rtx_section): Ditto.
1459         * config/darwin-sections.def: Ditto.
1460         * config/darwin-64.c: New.
1461
1462 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
1463
1464         PR c/28504
1465         * c-tree.h (struct c_arg_info): Add pending_sizes.
1466         * c-parser.c (c_parser_parms_declarator,
1467         c_parser_parms_list_declarator): Initialize pending_sizes.
1468         * c-decl.c (get_parm_info): Initialize pending_sizes.
1469         (get_parm_info): Set pending_sizes.
1470         (grokdeclarator): Call put_pending_sizes for parameters for
1471         function definition only.
1472
1473 2006-09-07  Jason Merrill  <jason@redhat.com>
1474
1475         PR middle-end/27724
1476         * varasm.c (output_constant): Only strip actual no-op conversions.
1477
1478         PR target/13685
1479         * config/i386/i386.c (override_options): Use 128-bit
1480         stack boundary if -msse.
1481
1482 2006-09-07  Eric Christopher  <echristo@apple.com>
1483
1484         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
1485         comment.
1486         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
1487         Redefine.
1488
1489 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
1490
1491         * dwarf2out.c: Remove strange characters from comment above
1492         dwarf2out_frame_debug_expr.
1493
1494 2006-09-07  Eric Christopher  <echristo@apple.com>
1495
1496         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
1497         * config/darwin.h: ... to here.
1498
1499 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1500
1501         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
1502
1503         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
1504         (TARGET_PARTIAL_FLAG_REG_STALL): New.
1505
1506         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
1507         TARGET_PARTIAL_FLAG_REG_STALL.
1508         (*ashldi3_cconly_rex64): Likewise.
1509         (*ashlsi3_cmp): Likewise.
1510         (*ashlsi3_cconly): Likewise.
1511         (*ashlsi3_cmp_zext): Likewise.
1512         (*ashlhi3_cmp): Likewise.
1513         (*ashlhi3_cconly): Likewise.
1514         (*ashlqi3_cmp): Likewise.
1515         (*ashlqi3_cconly): Likewise.
1516         (*ashrdi3_cmp_rex64): Likewise.
1517         (*ashrdi3_cconly_rex64): Likewise.
1518         (*ashrsi3_cmp): Likewise.
1519         (*ashrsi3_cconly): Likewise.
1520         (*ashrsi3_cmp_zext): Likewise.
1521         (*ashrhi3_cmp): Likewise.
1522         (*ashrhi3_cconly): Likewise.
1523         (*ashrqi3_cmp): Likewise.
1524         (*ashrqi3_cconly): Likewise.
1525         (*lshrdi3_cmp_rex64): Likewise.
1526         (*lshrdi3_cconly_rex64): Likewise.
1527         (*lshrsi3_cmp): Likewise.
1528         (*lshrsi3_cconly): Likewise.
1529         (*lshrsi3_cmp_zext): Likewise.
1530         (*lshrhi3_cmp): Likewise.
1531         (*lshrhi3_cconly): Likewise.
1532         (*lshrqi2_cmp): Likewise.
1533         (*lshrqi2_cconly): Likewise.
1534
1535 2006-09-07 Uros Bizjak <uros@kss-loka.si>
1536
1537         PR target/28946
1538         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
1539         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
1540         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
1541         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
1542         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
1543         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
1544         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
1545         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
1546         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
1547         implement only CC setting effects of shift instructions.
1548
1549 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
1550
1551         * doc/contrib.texi: Add myself.
1552
1553 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
1554
1555         PR middle-end/28862
1556         * stor-layout.c (relayout_decl): Don't zero the alignment if it
1557         was set by the user.
1558
1559 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
1560
1561         PR target/27117
1562         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
1563         (divsi_inv_m1): Use them.
1564         (UNSPEC_DIV_INV_TABLE): New constant.
1565
1566 2006-09-06  James E Wilson  <wilson@specifix.com>
1567
1568         PR rtl-opt/27883
1569         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
1570         then call count_or_remove_death_notes.
1571
1572 2006-09-06  Jason Merrill  <jason@redhat.com>
1573
1574         PR c++/27371
1575         * tree-inline.c (copy_result_decl_to_var): New fn.
1576         (declare_return_variable): Use it.  Call declare_inline_vars here.
1577         (expand_call_inline): Not here.
1578
1579 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
1580
1581         * doc/contrib.texi: Update my entry.
1582
1583 2006-09-06  Nick Clifton  <nickc@redhat.com>
1584
1585         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
1586
1587 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
1588
1589         PR tree-opt/28937
1590         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
1591         (canonicalize_induction_variables): Likewise.
1592         (tree_unroll_loops_completely): Likewise.
1593         (tree_ssa_prefetch_arrays): Likewise.
1594         (remove_empty_loops): Likewise.
1595         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
1596         TODO_cleanup_cfg instead of directly calling
1597         cleanup_tree_cfg_loop.
1598         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
1599         Likewise.
1600         (tree_unroll_loops_completely): Likewise.
1601         (remove_empty_loops): Likewise.
1602         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
1603         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
1604         of tree_ssa_unswitch_loops.
1605         (tree_ssa_loop_ivcanon): Use the return value of
1606         canonicalize_induction_variables.
1607         (tree_ssa_empty_loop): Use the return value of
1608         remove_empty_loops.
1609         (tree_complete_unroll): Use the return value of
1610         tree_unroll_loops_completely.
1611         (tree_ssa_loop_prefetch): Use the return value of
1612         tree_ssa_prefetch_arrays.
1613         * passes.c (execute_todo): Before Cleanup CFG, set
1614         updating_used_alone and after cleanup CFG, call
1615         recalculate_used_alone.
1616
1617 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
1618
1619         PR tree-opt/28952
1620         * tree-vect-transform.c (vectorizable_condition): Move the check
1621         for the type after the check for simple condition.
1622
1623 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
1624             Kaz Kojima  <kkojima@gcc.gnu.org>
1625
1626         PR target/28764
1627         * mode-switching.c (optimize_mode_switching): Make the destination
1628         block of an abnormal edge have no anticipatable mode.  Don't
1629         insert mode switching code at the end of the source block of
1630         an abnormal edge.
1631
1632 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
1633
1634         PR rtl-optimization/26847
1635         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
1636         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
1637         (simplify_plus_minus): Count n_constants while filling ops.  Replace
1638         qsort with insertion sort.  Before going through the array to simplify
1639         pairs, sort it.  Delay early exit until after the first sort, exiting
1640         only if no swaps occurred.  Simplify pairs in reversed order, without
1641         special-casing the first iteration.  Pack ops after simplifying pairs.
1642
1643 2006-09-05  Anatoly Sokolov <aesok@post.ru>
1644
1645         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
1646         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1647         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1648         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
1649
1650 2006-09-05  Richard Guenther  <rguenther@suse.de>
1651
1652         PR tree-optimization/28900
1653         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
1654         compound conditional before creating COND_EXPR condition.
1655
1656 2006-09-05  Richard Guenther  <rguenther@suse.de>
1657
1658         PR tree-optimization/28905
1659         * tree-vrp.c (fix_equivalence_set): Manually implement
1660         !value_ranges_intersect_p to also handle symbolic ranges.
1661
1662 2006-09-05  Richard Guenther  <rguenther@suse.de>
1663
1664         PR middle-end/28935
1665         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
1666         of a COND_EXPR.
1667
1668 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1669
1670         PR rtl-optimization/27616
1671         * cse.c (table_size): New static variable.
1672         (new_basic_block): Initialize it to 0.
1673         (remove_from_table): Decrement it.
1674         (insert): Increment it.
1675         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
1676         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
1677         fold_rtx_mem_1 if under the cap.
1678         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
1679         the lookup of the equivalent expression and test for equality of the
1680         first operand of the equivalent expression before in turn looking up
1681         an equivalent constant for the second operand.
1682
1683 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
1684
1685         Revert this change:
1686         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
1687         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1688         pointer, instead of assuming it is possible to derive the
1689         correct args size from a call insn.
1690
1691 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
1692
1693         PR middle-end/27567
1694         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
1695         (fold_builtin_mempcpy): Rename to...
1696         (fold_builtin_memory_op): ... this.  Optimize one element copy
1697         into an assignment.
1698         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
1699         functions.
1700         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
1701         (expand_builtin_memcpy, expand_builtin_mempcpy,
1702         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
1703         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
1704         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
1705         BUILT_IN_MEM{CPY,PCPY,MOVE}.
1706
1707 2006-09-01  DJ Delorie  <dj@redhat.com>
1708
1709         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
1710         (stzx_16): Likewise.
1711         ("stzx_24_<mode>"): Likewise.
1712         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
1713         ("cmp<mode>_op"): New.
1714         (cmp<mode>): Change to expander; just save operands.
1715         (b<code>_op): New.
1716         (b<code>): Change to expander, emit compare here.
1717         (s<code>_op): Change to use split and expander.
1718         (s<code>_24_op): Likewise.
1719         (s<code>_<mode>): New.
1720         (s<code>_<mode>_24): New.
1721         (movqicc_<code>_<mode): New.
1722         (movhicc_<code>_<mode>): New.
1723         (s<code>): New.
1724         (s<code>_24): New.
1725         * config/m32c/m32c.c (compare_op0, compare_op1): New.
1726         (m32c_pend_compare): New.
1727         (m32c_unpend_compare): New.
1728         (m32c_expand_scc): New.
1729         (m32c_expand_movcc): Emit the compare also.
1730         * config/m32c/predicates.md (mra_nopp_operand): New.
1731
1732 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
1733         Richard Guenther  <rguenther@suse.de>
1734         Adam Nemet  <anemet@caviumnetworks.com>
1735
1736         PR middle-end/27226
1737         * builtins.c (get_pointer_alignment): Handle more forms
1738         of base addresses that can be used to derive more precise
1739         information about alignment.
1740
1741 2006-09-01  Jason Merrill  <jason@redhat.com>
1742
1743         PR c++/28899
1744         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
1745         want_value.
1746
1747         * gimplify.c (voidify_wrapper_expr): Handle null type.
1748
1749 2006-09-01  Josh Conner  <jconner@apple.com>
1750
1751         PR c++/25505
1752         * tree-nrv.c (dest_safe_for_nrv_p): New function.
1753         (execute_return_slot_opt): Use it.
1754
1755 2006-08-31  Josh Conner  <jconner@apple.com>
1756
1757         PR c++/25505
1758         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
1759         returning aggregates.
1760
1761 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
1762
1763         PR tree-optimization/28839
1764         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
1765         blocks in that phi arguments appear.
1766
1767 2006-08-31  Roger Sayle  <roger@eyesopen.com>
1768
1769         PR other/22313
1770         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
1771         NULL, otherwise use an advance_loc4 to adjust relative to the
1772         current label.
1773         (output_cfi) <DW_CFA_set_loc>: Update the current label.
1774         (dwarf2out_switch_text_section): Reset the current label to avoid
1775         using advance_loc4 over section boundaries.
1776
1777 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
1778
1779         PR target/24367
1780         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
1781         r12 + SYMBOLIC_CONST.
1782
1783 2006-08-30  Richard Guenther  <rguenther@suse.de>
1784
1785         * Makefile.in (see.o): Add $(EXPR_H) dependency.
1786
1787 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
1788
1789         PR rtl-optimization/27735
1790         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
1791         Add new argument to keep track of whether an irreducible region
1792         was affected.  All callers changed.
1793         (fix_irreducible_loops): Removed.
1794         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
1795         flags were invalidated.
1796
1797 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
1798
1799         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
1800         instead of SF operands.
1801         (*fop_df_comm_sse): Likewise.
1802         (*fop_df_comm_i387): Likewise.
1803         (*fop_df_1_mixed): Likewise.
1804         (*fop_df_1_sse): Likewise.
1805
1806 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
1807             J"orn Rennecke  <joern.rennecke@st.com>
1808
1809         PR tree-optimization/17506
1810         * tree-ssa.c (warn_uninit): If warning about a location outside of
1811         the current function, note where the variable was declared.
1812
1813 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
1814
1815         PR tree-optimization/28411
1816         * double-int.c (double_int_div): Use double_int_divmod.
1817         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
1818         double_int_mod, double_int_smod, double_int_umod): New functions.
1819         * double-int.h (double_int_divmod, double_int_sdivmod,
1820         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
1821         Declare.
1822         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
1823         in double_int.
1824         (get_computation_aff, get_computation_cost_at): Handle double_int
1825         return type of constant_multiple_of.
1826
1827 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
1828
1829         PR middle-end/26632
1830         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
1831         an implicit conversion.
1832
1833 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
1834
1835         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
1836
1837 2006-08-27  Roger Sayle  <roger@eyesopen.com>
1838
1839         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
1840         x87 instructions.
1841
1842 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
1843
1844         * config/i386/crtfastmath.c: Fix a comment typo.
1845
1846 2006-08-26  Roger Sayle  <roger@eyesopen.com>
1847
1848         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
1849         temporary visit flags on CASE_LABEL_EXPRs.
1850         * c-common.c (match_case_to_enum): Add function comment.  Avoid
1851         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
1852         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
1853         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
1854         a constant, only warn if that constant value isn't handled.
1855
1856 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
1857
1858         PR c++/24009
1859         * input.h (restore_input_file_stack): Declare.
1860         (INPUT_FILE_STACK_BITS): Define.
1861         * toplev.c (fs_p, input_file_stack_history,
1862         input_file_stack_restored, restore_input_file_stack): New.
1863         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
1864         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
1865         (pop_srcloc): Don't free old state of stack.
1866
1867 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
1868
1869         PR target/27544
1870         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
1871         (PowerPC Type Attributes): New.
1872
1873 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
1874
1875         * config/xtensa/xtensa.c (function_arg_boundary): New.
1876         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
1877         STACK_BOUNDARY.
1878         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
1879         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
1880
1881 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
1882
1883         PR middle-end/28683
1884         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
1885         3 following insns.
1886
1887 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1888
1889         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
1890         (verify_local_live_at_start): Likewise.
1891
1892 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
1893
1894         PR c/27893
1895         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
1896         omp_add_variable): Treat sizes as variable whenever not
1897         INTEGER_CST.
1898
1899 2006-08-26  Richard Guenther  <rguenther@suse.de>
1900
1901         PR middle-end/28814
1902         * fold-const.c (fold_binary): Fold temporary to correct
1903         type before constructing new comparison.
1904
1905 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
1906
1907         PR c/28418
1908         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
1909         variable again if DECL_SEEN_IN_BIND_EXPR_P.
1910
1911 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
1912
1913         PR c/28299
1914         * c-decl.c (start_function): Don't try to process prototype
1915         information from old declaration that isn't a function.
1916
1917 2006-08-25  Jan Hubicka  <jh@suse.cz>
1918
1919         PR target/28621
1920         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
1921
1922 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
1923
1924         PR target/27075
1925         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
1926         for 8 byte objects.
1927
1928 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
1929
1930         PR tree-optimization/16876
1931         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
1932         exit if PARM doesn't match VALUE.
1933
1934 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
1935
1936         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
1937         literal_prefix directive.
1938         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
1939         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1940         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1941
1942 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
1943
1944         PR target/28753
1945         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
1946         predicate to general_operand.  Add 0->y and I->r alternatives.
1947
1948 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
1949
1950         * doc/tm.texi: Fix a typo.
1951         * predict.c: Fix comment typos.
1952
1953 2006-08-25  Nick Clifton  <nickc@redhat.com>
1954
1955         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1956         assertions of "cpu" and "machine".
1957
1958 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
1959
1960         PR tree-opt/28807
1961         * tree-ssa-operands.c (access_can_touch_variable): Don't say
1962         the access through a base which has an alias set of 0 cannot
1963         touch the variable.
1964
1965 2006-08-24  Bill Wendling  <wendling@apple.com>
1966
1967         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
1968
1969 2006-08-24  Jan Hubicka  <jh@suse.cz>
1970
1971         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
1972
1973 2006-08-24  Jan Hubicka  <jh@suse.cz>
1974
1975         PR debug/26881
1976         * cgraph.c: Fix comments.
1977         (cgraph_varpool_mark_needed_node): Mark only variables not already
1978         output to file.
1979         * cgraphunit.c: Update comments; include gt-cgraphunit.h
1980         (cgraph_varpool_assembled_nodes_queue): New static variable.
1981         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
1982         (cgraph_varpool_output_debug_info): New function.
1983         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
1984         * Makefile.in: Add gt-cgraphunit.h
1985
1986 2006-08-24  Jan Hubicka  <jh@suse.cz>
1987
1988         * predict.c (probability_reliable_p): New predicate.
1989         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
1990         (predict_loops): Do not predict loop exit with less than 2%
1991         probability.
1992         * basic-block.h (edge_probability_reliable_p,
1993         br_prob_note_reliable_p): Declare.
1994         * ia64.h (ia64_print_operand): Do not disable on-chip branch
1995         prediction when static predictor is not reliable.
1996         * rs6000.c (output_cbranch): Likewise.
1997
1998 2006-08-23  Stuart Hastings  <stuart@apple.com>
1999
2000         PR 28825
2001         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
2002         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
2003
2004 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
2005
2006         PR debug/28692
2007         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
2008         complex values, nor for generic vector values.
2009
2010 2006-08-22  Richard Guenther  <rguenther@suse.de>
2011
2012         PR middle-end/28776
2013         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
2014         parameter.  Convert arguments to arithmetic expression to the
2015         chrecs type.
2016         (analyze_scalar_evolution_1): Adjust caller.
2017
2018 2006-08-22  Jan Hubicka  <jh@suse.cz>
2019
2020         Patch by Paolo Bonzini
2021         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
2022         my previous patch.
2023
2024 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
2025
2026         PR tree-optimization/28003
2027         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
2028         before grouping aliases.
2029
2030 2006-08-22  Roger Sayle  <roger@eyesopen.com>
2031
2032         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
2033         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
2034
2035 2006-08-21  Jason Merrill  <jason@redhat.com>
2036
2037         PR c++/27115
2038         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
2039         wrapper.  Loop to handle nested wrappers.
2040         (gimplify_bind_expr): Remove temp parameter.
2041         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
2042         and STATEMENT_LIST on the rhs.
2043         (gimplify_statement_list): Voidify the STATEMENT_LIST.
2044         (gimplify_expr): Pass pre_p to gimplify_statement_list.
2045         (gimplify_target_expr): Remove special BIND_EXPR handling.
2046
2047 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
2048
2049         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
2050         #if !__SHMEDIA__ .
2051
2052 2006-08-21  Olivier Hainque  <hainque@adacore.com>
2053
2054         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
2055         Arrange for the temporary captures of components overlapping the lhs
2056         to happen before the lhs is possibly cleared.
2057
2058 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
2059
2060         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
2061         necessary places to pass the correct "number of registers" values
2062         to _Unwind_VRS_Pop.
2063
2064 2006-08-20  Jan Hubicka  <jh@suse.cz>
2065
2066         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
2067         (create_name_tags): Instead of quadratic checking use hashtable.
2068         * bitmap.h: Include hashtab.h.
2069         (bitmap_hash): Declare.
2070         * bitmap.c (bitmap_hash): New function.
2071
2072 2006-08-20  Jan Hubicka  <jh@suse.cz>
2073
2074         PR rtl-optimization/28071
2075         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
2076         twice.
2077         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
2078         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
2079         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
2080         cgraph_decide_inlining_incrementally): Update use of
2081         cgraph_check_inline_limits.
2082         * cgraph.c (edge_hash, edge_eq): New function.
2083         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
2084         cgraph_edge_remove_caller, cgraph_node_remove_callees,
2085         cgraph_remove_node): Maintain call site hash.
2086         * cgraph.h (struct cgraph_node): Add call_site_hash.
2087         (cgraph_set_call_stmt): New function.
2088
2089 2006-08-20  Jan Hubicka  <jh@suse.cz>
2090
2091         PR rtl-optimization/28071
2092         * reload1.c (reg_has_output_reload): Turn into regset.
2093         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
2094         choose_reload_regs, emit_reload_insns): Update to new
2095         reg_has_output_reload.
2096
2097 2006-08-20  Jan Hubicka  <jh@suse.cz>
2098
2099         PR middle-end/28779
2100         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
2101         function body sizes.
2102         * cgraphunit.c (cgraph_analyze_function): Don't do so.
2103
2104 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2105
2106         PR target/28648 c:
2107         * tree.c (handle_dll_attribute): Return early if not a
2108         var or function decl.
2109
2110 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
2111
2112         PR target/27565
2113         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
2114         alignment of SPE vector types.
2115
2116 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
2117
2118         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
2119
2120 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
2121
2122         PR c/28744
2123         * cgraph.h (struct cgraph_node): Remove externally_visible
2124         bitfield.
2125         * cgraphunit.c (process_function_and_variable_attributes): Set
2126         local.externally_visible rather than externally_visible.
2127
2128         PR c/28744
2129         * c-common.c (handle_externally_visible_attribute): First look
2130         at TREE_CODE and only if it is function or var decl, check for
2131         non-public objects.  Don't warn for DECL_EXTERNAL.
2132         * cgraphunit.c (process_function_and_variable_attributes): Warn
2133         if externally_visible attribute is used on non-public object.
2134
2135 2006-08-17  Jan Hubicka  <jh@suse.cz>
2136
2137         PR tree-optimization/27865
2138         * reload1.c (forget_marked_reloads): New function.
2139         (forget_old_reloads_1): When data are passed, just mark the registers
2140         for later removal.
2141         (reload_as_needed): Use the new mechanizm.
2142
2143 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
2144
2145         PR target/28146
2146         * reload.h (reg_equiv_alt_mem_list): New declaration.
2147         * reload1.c (reg_equiv_alt_mem_list): New definition.
2148         (reload): Initialize it and release it.
2149         (delete_output_reload): Use it.
2150         * reload.c (push_reg_equiv_alt_mem): New function.
2151         (find_reloads_toplev): Call it.
2152         (find_reloads_address, find_reloads_address_1): Likewise.
2153         (find_reloads_subreg_address): Likewise.
2154
2155 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2156
2157         PR rtl-optimization/28489
2158         * sched-ebb.c (begin_schedule_ready): Create basic block
2159         at the right place.
2160         (advance_target_bb): Skip empty blocks.
2161         * haifa-sched.c (bb_note): Make global.
2162         * sched-int.h (bb_note): Add prototype.
2163
2164 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
2165
2166         PR tree-optimization/27865
2167         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
2168         for pointer types.
2169         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
2170         fold_used_pointer, pointer_used_p): New functions.
2171         (analyze_scalar_evolution_1): Use fold_used_pointer.
2172         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
2173         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
2174         for pointers.
2175
2176 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
2177
2178         PR c++/28573
2179         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
2180         or the INTEGER_CST.  Fail on a CALL_EXPR.
2181         (fold_offsetof): Pass new argument to fold_offsetof_1.
2182         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
2183         operand into an INDIRECT_REF.
2184         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
2185
2186 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
2187
2188         PR gcov/profile/26570
2189         * value-prof.c (static_values): Removed.
2190         (tree_find_values_to_profile): Do not set static_values.
2191         (find_values_to_profile): Do not free static_values.
2192         * profile.c (instrument_values): Do not free the values.
2193         (branch_prob): Free the values.
2194
2195 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
2196
2197         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
2198
2199 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
2200
2201         PR c/27697
2202         * c-typeck.c (build_component_ref): Combine qualifiers of
2203         structure or union and field.
2204
2205 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
2206
2207         PR rtl-optimization/28071
2208         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
2209         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
2210         * tree-into-ssa.c (struct dom_dfsnum): New.
2211         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
2212         functions.
2213         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
2214         compute_global_livein.
2215         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
2216         in phi nodes in the correct blocks.
2217
2218 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
2219
2220         PR tree-optimization/28364
2221         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
2222         correctly.
2223         (fold_affine_expr): New function.
2224         (may_eliminate_iv): Use fold_affine_expr.
2225
2226 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2227
2228         PR c/27489
2229         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
2230         Clean up.
2231
2232 2006-08-16  Mike Stump  <mrs@apple.com>
2233
2234         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
2235         * doc/cppopts.texi (-MD): Likewise.
2236
2237 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
2238
2239         PR c/28287
2240         * c-common.c (handle_weak_attribute): Ignore and warn if
2241         not a FUNCTION_ or VAR_DECL.
2242
2243 2006-07-15  Mike Stump  <mrs@apple.com>
2244
2245         PR c/28280
2246         * c-parser.c (c_parser_typeof_specifier): Don't use
2247         c_finish_expr_stmt, open code desired semantics instead.
2248
2249 2006-08-15  Nick Clifton  <nickc@redhat.com>
2250
2251         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
2252         fragment to tmake_file only if threads are enabled.
2253         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
2254         * config/i386/t-gthr-win32: New file. ... here.
2255
2256 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2257
2258         PR c/28649
2259         * c-parser.c (c_parser_compound_statement_nostart): Reset
2260         parser->error after each statement.
2261
2262 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
2263
2264         PR middle-end/28713
2265         * omp-low.c (lower_omp_parallel): Convert t to
2266         receiver_decl's type.
2267         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
2268         source before comparison.
2269
2270         PR middle-end/28724
2271         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
2272         to itype in assignment to oldival2.
2273
2274 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
2275
2276         PR c/27490
2277         PR c/27489
2278         * c-typeck.c (build_compound_expr): If the second expression
2279         is an error mark, then just return an error mark instead of
2280         creating a COMPOUND_EXPR.
2281
2282 2006-07-14  Mike Stump  <mrs@apple.com>
2283
2284         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
2285
2286 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
2287
2288         * c-decl.c, var-tracking.c: Fix comment typos.
2289
2290 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
2291
2292         PR rtl-optimization/28634
2293         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
2294         for floating-point modes unless flag_unsafe_math_optimizations.
2295
2296 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
2297             Andrew Pinski  <pinskia@physics.uc.edu>
2298
2299         PR c/27184
2300         * tree.c (build_array_type): Unify array types with
2301         unspecified index_type.
2302         * c-decl.c (grokdeclarator): Make sure we do not modify a
2303         unified incomplete array type.
2304         * c-typeck.c (store_init_value): Create distinct type before
2305         filling in the index type in an initializer from a compound
2306         literal.
2307
2308         * c-decl.c (grokdeclarator): Remove code where we copy the
2309         array type over.
2310
2311 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
2312
2313         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
2314         into account for TODO_dump_cgraph.
2315         (TODO_update_ssa_no_phi): Likewise.
2316         (TODO_update_ssa_full_phi): Likewise.
2317         (TODO_update_ssa_only_virtuals): Likewise.
2318         (TODO_remove_unused_locals): Likewise.
2319         (TODO_set_props): Likewise.
2320         (TODO_update_stmt_usage): Likewise.
2321
2322 2006-08-13  Dirk Mueller  <dmueller@suse.de>
2323
2324         * c-common.c (strict_aliasing_warning): Fix formatting.
2325
2326 2006-08-13  Matthias Klose  <doko@debian.org>
2327
2328         * doc/invoke.texi: Fix spelling errors.
2329
2330 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2331
2332         PR rtl-optimization/23454
2333         * reorg.c (relax_delay_slots): Update comment.
2334
2335 2006-08-11  Richard Guenther  <rguenther@suse.de>
2336
2337         PR middle-end/28651
2338         * simplify-rtx.c (simplify_const_relational_operation):
2339         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
2340         codes.
2341
2342 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
2343
2344         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
2345         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
2346
2347 2006-08-10  Paul Brook  <paul@codesourcery.com>
2348
2349         * final.c (final_scan_insn): Clear current_insn_predicate before
2350         outputting inline asm.
2351
2352 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
2353
2354         PR tree-optimization/26197
2355         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
2356         get_ref_base_and_extent and overlap_subvar to add only relevant
2357         subvars as may-aliases.
2358         (add_may_alias_for_new_tag): New function, factored out of
2359         new_type_alias.
2360         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
2361         with additional argument.
2362         * tree-flow.h (new_type_alias): Takes additional argument.
2363
2364 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
2365
2366         * gcov.c (no_data_file): New flag.
2367         (read_count_file): Set it if data file not present.  Assume counts
2368         zero if not found.
2369         (output_lines): Don't name the data file, if there wasn't one.
2370
2371 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
2372
2373         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
2374         (rs6000_generate_compare): Tweak comments.
2375         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
2376
2377 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
2378
2379         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
2380         (var_debug_decl): New function.
2381         (var_reg_set): Follow debug decl link.  Add location even if
2382         reg is already known to hold some other variable.
2383         (var_mem_set): Follow debug decl link.
2384         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
2385         decl link.  Delete other known locations of the variable part
2386         if requested.
2387         (var_reg_delete, var_mem_delete): Delete other known locations
2388         of the variable part if requested.
2389         (same_variable_part_p): New function.
2390         (add_stores): Select MO_COPY when appropriate.
2391         (vt_initialize): Handle it.
2392         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
2393         known locations for MO_SET and MO_CLOBBER.
2394         (find_variable_location_part): New function.
2395         (set_variable_part, delete_variable_part): Use it.
2396         (clobber_variable_part): New function.
2397         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
2398         decl link.
2399
2400 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
2401
2402         PR tree-optimization/26969
2403         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
2404         with an empty list of PHIs.
2405
2406 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
2407
2408         PR target/27827
2409
2410         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
2411         instructions.
2412
2413 2006-08-06  Andreas Schwab  <schwab@suse.de>
2414
2415         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
2416         string.  Whitespace and comment fixup.
2417
2418 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2419
2420         PR c/28502
2421         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
2422         argument.
2423
2424         PR c/27721
2425         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
2426
2427         PR c/28136
2428         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
2429
2430 2006-08-04  Jan Hubicka  <jh@suse.cz>
2431
2432         PR target/26655
2433         PR target/28270
2434         * reload.c (push_reload): Patch out the mismatching instruction;
2435         return early.
2436         (find_reload): Bail out if the instruction was patched out.
2437
2438 2006-08-04  Jan Hubicka  <jh@suse.cz>
2439
2440         PR tree-optimization/24888
2441         * tree-inline.c (expand_call_inline): Do not re-record variables.
2442         (declare_inline_vars): Add variable to unexpanded_var_list.
2443
2444 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2445             Roger Sayle  <roger@eyesopen.com>
2446
2447         PR rtl-optimization/26244
2448         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
2449         inner_const are negative or greater than or equal to the bitsize of
2450         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
2451         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
2452         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
2453         CONST0_RTX (mode) when the new shift count is greater than or equal to
2454         to the bitsize of the object being shifted and XEXP (y, 0) has no side
2455         effects.
2456
2457 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
2458
2459         * tree-cfg.c: Fix a comment typo.
2460
2461 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
2462
2463         PR c++/28148
2464         * varasm.c (output_constant): Give the front end another chance to
2465         expand constants, after stripping NOPs.
2466
2467 2006-08-03  Jan Hubicka  <jh@suse.cz>
2468
2469         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
2470         implementation.
2471
2472 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
2473
2474         PR tree-optimization/27770
2475         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
2476         declaration removed (moved to tree-flow.h).
2477         (vect_can_force_dr_alignment_p): Likewise.
2478         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
2479         (moved from tree-vectorizer.h).
2480         (vect_can_force_dr_alignment_p): Likewise.
2481         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
2482         from outside the vectorizer - in particular from cgraph stage.
2483         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
2484         the alignment of global arrays when -fsection-anchors is enabled.
2485         * cgraphunit.c (cgraph_increase_alignment): New function.
2486         (cgraph_optimize): Call cgraph_increase_alignment.
2487
2488 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
2489
2490         PR target/27566
2491         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2492         not reload a SPE symbol_ref into a lo_sum address.
2493
2494 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
2495
2496         PR debug/28063
2497         * dwarf2out.c (prune_unused_types_prune): Move call to
2498         prune_unused_types_update_strings to cover the parent DIE also.
2499
2500 2006-08-02  Jan Hubicka  <jh@suse.cz>
2501
2502         PR gcov/profile/28480
2503         * tree-cfg.c (change_bb_for_stmt): New function.
2504         (tree_merge_blocks, tree_split_blocks): Use it.
2505
2506 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2507
2508         PR c++/28250
2509         PR c++/28257
2510         PR c++/28259
2511         PR c++/28267
2512         * toplev.c (compile_file): Return early on errorcount or sorrycount.
2513         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
2514         (cgraph_optimize): Likewise.
2515
2516 2006-08-01  Stuart Hastings  <stuart@apple.com>
2517
2518         * rtl.h (UINTVAL) New.
2519         * config/rs6000/rs6000.c (SMALL_INT) Use it.
2520         * testsuite/gcc.dg/20060801-1.c: New.
2521
2522 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
2523
2524         PR debug/23336
2525         * c-typeck.c (build_external_type): Mark used enum types.
2526         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
2527         cfun also.
2528         (gen_subprogram_die): Whitespace fix.
2529
2530 2006-08-01  Jan Hubicka  <jh@suse.cz>
2531
2532         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
2533         bitmap when not needed.
2534         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
2535         bitmaps.
2536
2537 2006-08-01  Dirk Mueller  <dmueller@suse.de>
2538
2539         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
2540
2541 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2542
2543         * Makefile.in: Revert part of previous patch:
2544         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
2545         and REGS_H.
2546
2547 2006-07-30  Eric Christopher  <echristo@apple.com>
2548
2549         PR target/27543
2550         * doc/extend.texi (i386 Variable Attributes): Add anchor.
2551         (PowerPC Variable Attributes): New section.
2552
2553 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
2554
2555         PR target/28126 (partial fix)
2556         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
2557
2558 2006-07-28  Jan Hubicka  <jh@suse.cz>
2559
2560         PR rtl-optimization/28071
2561         * cfgrtl.c (rtl_delete_block): Free regsets.
2562         * flow.c (allocate_bb_life_data): Re-use regsets if available.
2563
2564 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2565
2566         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
2567         and variables used in dependencies.
2568
2569 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
2570
2571         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
2572         %fs for -mcmodel=kernel.
2573         (stack_tls_protect_test_di): Likewise.
2574
2575 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
2576
2577         * Makefile.in: Use mkinstalldirs.
2578
2579 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
2580
2581         PR driver/28437
2582         * opts-common.c (prune_options): Skip joined switches.
2583
2584 2006-07-27  Jan Hubicka  <jh@suse.cz>
2585
2586         PR rtl-optimization/28071
2587         * cselib.c (cselib_process_insn): Don't remove useless values too
2588         often for very large hashtables.
2589
2590 2006-07-27  Jan Hubicka  <jh@suse.cz>
2591
2592         PR rtl-optimization/28071
2593         * global.c (greg_obstack): New obstack.
2594         (allocate_bb_info): Use it.
2595         (free_bb_info): Likewise.
2596         (modify_reg_pav): Likewise.
2597
2598 2006-07-27  Roger Sayle  <roger@eyesopen.com>
2599
2600         * builtins.c (fold_fixed_mathfn): When long and long long are the
2601         same size, canonicalize llceil*, llfloor*, llround* and llrint*
2602         functions to their lceil*, lfloor*, lround* and lrint* forms.
2603
2604 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2605
2606         PR gcc/28508
2607         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
2608         branch.
2609         (rev_branch_insn): Likewise.
2610
2611 2006-07-27  Jan Hubicka  <jh@suse.cz>
2612
2613         PR rtl-optimization/28071
2614         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
2615         (reg_set_in_bb, max_reg_computed): New static variables.
2616         (regmove_optimize): Free the new array.
2617         (fixup_match_1): Update call of reg_is_remote_constant_p.
2618
2619 2006-07-26  Jan Hubicka  <jh@suse.cz>
2620
2621         PR tree-optimization/27882
2622         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
2623         and decl fields.
2624         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
2625         next pointer
2626         (cgraph_analyze_compilation_unit): Likewise.
2627         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2628         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
2629         (cgraph_early_inlinine): Make order garbage collected.
2630         * Makefile.in (gt-ipa-inline): New garbagecollected file.
2631
2632 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
2633
2634         * dbxout.c (output_types_sort): Add a comment.
2635         (output_used_types): Free the VEC.
2636
2637 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
2638
2639         * function.c (reorder_fix_fragments): Delete.
2640         (reorder_blocks): Don't call it.
2641         (reorder_blocks_1): Put all subblocks under the origin block.
2642
2643 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
2644
2645         PR rtl-optimization/27907
2646         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
2647         FLOAT_TRUNCATE.
2648
2649 2006-07-25  Roger Sayle  <roger@eyesopen.com>
2650
2651         PR middle-end/28473
2652         * convert.c (convert_to_integer): When transforming (T)foo(x) into
2653         bar(x) check that bar's result type can represent all the values of T.
2654
2655 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
2656
2657         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
2658
2659 2006-07-25  Nick Clifton  <nickc@redhat.com>
2660
2661         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
2662         size_lookup[] array.
2663         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
2664         (ggc_pch_count_object): Likewise.
2665         (ggc_pch_alloc_object): Likewise.
2666         (ggc_pch_write_object): Likewise.
2667         (init_ggc): Do not attempt to initialize entries in the
2668         size_lookup[] array for objects whose size is greater than than
2669         the length of the array.
2670
2671 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
2672
2673         * dbxout.c (output_used_types_helper): Push queued types
2674         on a VEC.
2675         (output_types_sort): New.
2676         (output_used_types): Collect used types on a VEC and sort them
2677         before emission.
2678
2679 2006-07-24  Richard Guenther  <rguenther@suse.de>
2680
2681         PR middle-end/28463
2682         * cgraph.c (cgraph_remove_node): Do not check if dumps
2683         are enabled.
2684         * cgraphunit.c (cgraph_optimize): Likewise.
2685
2686 2006-07-24  Jan Hubicka  <jh@suse.cz>
2687
2688         PR rtl-optimization/28071
2689         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
2690         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
2691         splitting before first stmt.
2692
2693 2006-07-24  Jan Hubicka  <jh@suse.cz>
2694
2695         PR rtl-optimization/28071
2696         * ipa-inline.c (update_caller_keys): Remove edges that
2697         are no longer inline candidates.
2698
2699 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
2700
2701         PR debug/27473
2702         * dbxout.c (output_used_types_helper, output_used_types): New.
2703         (dbxout_symbol): Call output_used_types.
2704
2705 2006-07-23  Jan Hubicka  <jh@suse.cz>
2706
2707         PR c/25795
2708         PR c++/27369
2709         * cgraph.c (cgraph_varpool_nodes): Export.
2710         (decide_is_variable_needed): Ignored "used" attribute in
2711         unit-at-a-time mode.
2712         * cgraph.h (cgraph_varpool_nodes): Declare.
2713         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
2714         unit-at-a-time mode.
2715
2716 2006-07-23  Roger Sayle  <roger@eyesopen.com>
2717
2718         PR target/28247
2719         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
2720         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
2721         the __gthrw form of thr_keycreate.
2722         (__gthread_key_delete): Silence the unused argument warning.
2723
2724 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
2725
2726         PR debug/25468
2727         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
2728         Cache the last found '\0' marker to avoid quadratic behavior.
2729
2730 2006-07-23  Jan Hubicka  <jh@suse.cz>
2731
2732         * i386.md (subsi_3_zext): Fix output template.
2733
2734 2006-07-21  Mike Stump  <mrs@apple.com>
2735
2736         * doc/invoke.texi (C++ Dialect Options): Note that
2737         -fvisibility-inlines-hidden doesn't affect explicitly
2738         instantiationed inline methods.
2739
2740 2006-07-20  Roger Sayle  <roger@eyesopen.com>
2741
2742         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
2743         if the target assembler is GNU binutils' gas.
2744         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
2745         whether to pass GNU gas or native as command line options.
2746
2747 2006-07-20  Jason Merrill  <jason@redhat.com>
2748
2749         * tree.c (remove_attribute): New fn.
2750         * tree.h: Declare it.
2751
2752 2006-07-20  Paul Brook  <paul@codesourcery.com>
2753
2754         PR 27363
2755         * cse.c (cse_insn): Add destination addresses to hash table. Check if
2756         they are invalidated by this instruction.
2757
2758 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
2759
2760         PR target/28427
2761         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
2762
2763 2006-07-20  Eric Christopher  <echristo@apple.com>
2764
2765         PR target/26877
2766         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
2767
2768 2006-07-19  Eric Christopher  <echristo@apple.com>
2769
2770         * config/t-slibgcc-darwin (stmp-lipo): Remove.
2771         Rewrite dependencies for libgcc_s.1.dylib.
2772
2773 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
2774
2775         * except.c (duplicate_eh_regions_1): Clear next_peer.
2776
2777 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
2778
2779         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
2780         -mlongcall does not guarantee all calls will be long.
2781         * doc/extend.texi (long_call/short_call): Document that longcall
2782         does not guarantee a long call will be used.
2783         (longcall/shortcall): Likewise.
2784
2785 2006-07-18  Roger Sayle  <roger@eyesopen.com>
2786
2787         PR middle-end/28283
2788         * expmed.c (expand_shift): Additionally check that the shift_cost
2789         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
2790         before implementing a LSHIFT_EXPR as a sequence of additions.
2791         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
2792         middle-end that DImode shifts need to be synthesized by expand.
2793
2794 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
2795
2796         PR 28410
2797         * tree-ssa-operands.c (access_can_touch_variable): Update
2798         comment.
2799         Return true if ALIAS is .GLOBAL_VAR.
2800
2801 2006-07-18  David Daney  <ddaney@avtrex.com>
2802
2803         * gcc.c (display_help): Fix typo in help text.
2804
2805 2006-07-18  Olivier Hainque  <hainque@adacore.com>
2806
2807         * tree.h (categorize_ctor_elements): Adjust prototype and add
2808         descriptive comment, both in accordance with the interface change
2809         described below.
2810         * varasm.c (constructor_static_from_elts_p): New function.
2811         Whether a constructor node is a valid static constant initializer
2812         if all its elements are.
2813         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
2814         * output.h: Declare it.
2815         * expr.c (categorize_ctor_elements_1): Return whether the constructor
2816         is a valid constant initializer instead of computing the number of
2817         non-constant elements.  Use constructor_static_from_elts_p for this
2818         purpose.  Replace the head comment with an indication that this is a
2819         helper for categorize_ctor_elements.
2820         (categorize_ctor_elements): Same interface change as for the _1
2821         helper.  Former head comment from this helper moved here, adjusted to
2822         account for the interface changes.
2823         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
2824         (all_zeros_p): Likewise.
2825         * gimplify.c (gimplify_init_constructor): Decide whether we can make
2826         static versions of the constructor from the categorize_ctor_elements
2827         return value instead of the formerly computed number of non-constant
2828         elements.
2829
2830 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
2831
2832         * configure: Regenerate.
2833         * Makefile.in (build_libsubdir): New configure substitution
2834         (build_libobjdir): New variable.
2835         (BUILD_LIBIBERTY): Use it.
2836
2837 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2838
2839         PR c/28286
2840         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
2841
2842 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
2843
2844         PR c/26993
2845         * c-common.c (handle_weakref_attribute): Ignore attribute in
2846         the same conditions the alias attribute is ignored.
2847
2848 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
2849
2850         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
2851         (dbxout_begin_prologue): Increment scope_labelno.
2852
2853 2006-07-17  Richard Henderson  <rth@redhat.com>
2854
2855         PR 27889
2856         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
2857         if needed.
2858
2859 2006-07-17  Roger Sayle  <roger@eyesopen.com>
2860             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2861
2862         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
2863         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
2864         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
2865         functions such as sbrk, write, etc..  Add function prototypes.
2866         Convert function declarations from K&R to ISO C.  Cast pointers
2867         to "long" and "unsigned long" instead of "int" and "unsigned int".
2868         Convert tokens following #endif into comments.
2869
2870 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
2871
2872         * invoke.texi: Remove mention of f77; Reformat table for
2873         inline parameter options correctly; mention that -malign-double
2874         is default on x86-64 targets.
2875
2876 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
2877
2878         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
2879         (convert_affine_scev, chrec_convert_aggressive): Use
2880         avoid_arithmetics_in_type_p.  Do not check for the subtypes
2881         separately.
2882
2883 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
2884
2885         PR middle-end/28403
2886         * optabs.c (expand_doubleword_shift): Wrap the call to
2887         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
2888
2889 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
2890
2891         PR middle-end/28402
2892         * optabs.c (expand_binop): Pass next_methods rather than methods
2893         to expand_doubleword_shift.
2894
2895 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
2896
2897         PR other/28251
2898         * tree.h (dump_addr): Declare.
2899         * print-tree.c (dump_addr): New function.
2900         (print_node_brief, print_node): Use it.
2901         * print-rtl.c (print_rtx): Likewise.
2902         * common.opt (-fdump-noaddr): New option.
2903         * doc/invoke.texi (-fdump-noaddr): Document.
2904         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
2905         (ve_info_hash): Likewise.
2906
2907 2006-07-13  Andrew Haley  <aph@redhat.com>
2908
2909         PR tree-optimization/19505
2910         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
2911         edge leaving this block, make sure that the destination of this
2912         block has only one predecessor.
2913
2914 2006-07-17  Richard Guenther  <rguenther@suse.de>
2915
2916         PR tree-optimization/28238
2917         * tree-inline.c (copy_bb): Check if we produced valid
2918         gimple copying and substituting a stmt.  If not, gimplify
2919         it.
2920
2921 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
2922
2923         * optabs.c (maybe_encapsulate_block): New function extracted from...
2924         (emit_libcall_block): ...here.  Invoke it on the block of insns to
2925         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
2926         (emit_no_conflict_block): Likewise.
2927
2928 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2929
2930         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
2931
2932 2006-07-15  Roger Sayle  <roger@eyesopen.com>
2933
2934         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
2935         a new NOP_EXPR case of the switch statement.
2936
2937 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2938
2939         PR middle-end/28160
2940         * stor-layout.c (place_field): Take the bit field with
2941         an excessive size into account in the ms-bitfiled case.
2942
2943         PR middle-end/28161
2944         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
2945         the previous bit field.
2946
2947 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
2948
2949         PR target/27287
2950         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2951
2952 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
2953
2954         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
2955         signal frames correctly even when the signal was installed with
2956         sa_restorer set.
2957
2958 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
2959
2960         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
2961         (dbxout_function_end): Use local label LFBB. Remove hook
2962         DBX_OUTPUT_NFUN.
2963         (dbxout_source_line): Use local label LFBB.
2964         (dbxout_block): Likewise.
2965         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
2966         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
2967         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
2968         and DBX_OUTPUT_NFUN.
2969
2970 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
2971
2972         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
2973
2974 2006-07-13  Jan Hubicka  <jh@suse.cz>
2975
2976         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
2977         align_variable.
2978         * output.h (align_variable): Declare.
2979         * varasm.c (align_variable): Export.
2980         * value-prof.c (tree_value_profile_transformations): Recompute iterator
2981         when basic block changed.
2982
2983 2006-07-13  Nick Clifton  <nickc@redhat.com>
2984
2985         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
2986         walking the LOG_LINKS chain.
2987
2988 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
2989
2990         * doc/invoke.texi (C++ Dialect Options): Explain difference
2991         between -fvisibility-inlines-hidden and setting hidden
2992         visibility explicitly.
2993
2994 2006-07-12  Eric Christopher  <echristo@apple.com>
2995
2996         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
2997         (stmp-lipo): Depend on libgcc.a.
2998
2999 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
3000
3001         * tree.c: Fix a comment typo.
3002
3003 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
3004
3005         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
3006         dest.
3007         (umulhisi3_r): Likewise.
3008
3009 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
3010
3011         PR libstdc++/27878
3012         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
3013         x < 19, vs wchar_t support.
3014
3015 2006-07-12  Nick Clifton  <nickc@redhat.com>
3016
3017         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
3018         instead of -isa=sh4.
3019
3020 2006-07-12  Mike Stump  <mrs@apple.com>
3021
3022         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
3023
3024 2006-07-10  Eric Christopher  <echristo@apple.com>
3025
3026         * config/t-slibgcc-darwin: Rewrite.
3027
3028 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3029
3030         PR bootstrap/20437
3031         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
3032         dependencies.
3033
3034 2006-07-08  Matthias Klose  <doko@debian.org>
3035
3036         * doc/sourcebuild.texi: Fix typo.
3037
3038 2006-07-07  Mike Stump  <mrs@apple.com>
3039
3040         * toplev.c (process_options): Don't give -ffunction-sections may
3041         affect debugging warning for Mach-O.
3042
3043 2006-07-07  James E Wilson  <wilson@specifix.com>
3044
3045         * config/mips/mips.md (cpu): Add sb1a.
3046         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
3047         addition to sb1.  Adjust comments to clarify SB-1A differences from
3048         SB-1.
3049         (ir_sb1a_load): New.  Modify bypasses to use it.
3050         (ir_sb1a_simple_alu): Likewise.
3051         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
3052         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
3053         (mips_issue_rate): Add PROCESSOR_SB1A.
3054         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
3055         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
3056         (TARGET_SB1): Add PROCESSOR_SB1A check.
3057         (TUNE_SB1): Likewise.
3058
3059         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
3060         * config/mips/mips.c (mips_store_data_bypass_p): New.
3061         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
3062         store_data_bypass_p.
3063
3064 2006-07-08  Paul Brook  <paul@codesourcery.com>
3065
3066         PR target/27991
3067         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
3068
3069 2006-07-07   Richard Guenther  <rguenther@suse.de>
3070
3071         PR middle-end/28268
3072         * tree.h (build_one_cst): Declare.
3073         * tree.c (build_one_cst): New function.
3074         * tree-ssa-math-opts.c (get_constant_one): Remove.
3075         (insert_reciprocals): Use build_one_cst.
3076         * fold-const.c (fold_plusminus_mult): Likewise.
3077
3078 2006-07-07  Roger Sayle  <roger@eyesopen.com>
3079
3080         * pointer-set.c (pointer_set_destroy): Correct whitespace.
3081         * cfgloopanal.c (dump_graph): Likewise.
3082         * dojump.c (discard_pending_stack_adjust): Likewise.
3083         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
3084         Likewise.
3085         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
3086         * function.c (finalize_block_changes): Likewise.
3087         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
3088         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
3089         * rtl.c (dump_rtx_statistics): Likewise.
3090         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
3091         Likewise.
3092         * varray.c (dump_varray_statistics): Likewise.
3093         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3094         decode_decimal64, encode_decimal128, decode_decimal128,
3095         decimal_real_to_decimal): Likewise.
3096
3097 2006-07-07  Richard Guenther  <rguenther@suse.de>
3098
3099         PR tree-optimization/28187
3100         * tree-vrp.c (vrp_operand_equal_p): New function.
3101         (vrp_bitmap_equal_p): Likewise.
3102         (update_value_range): Use them to compare old and new
3103         max and min values.
3104
3105 2006-07-06  Roger Sayle  <roger@eyesopen.com>
3106
3107         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
3108         a default case to switch statement to silence compiler warnings.
3109
3110 2006-07-06  Roger Sayle  <roger@eyesopen.com>
3111
3112         PR target/27968
3113         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
3114         the configured assembler supports the x87's ffreep mnemonic.
3115         * configure: Regenerate.
3116         * config.in: Regenerate.
3117
3118         * config/i386/i386.c (output_387_ffreep): New function.
3119         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
3120         (output_387_reg_move): Likewise.
3121
3122 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
3123
3124         Port to hosts whose 'sort' and 'tail' implementations
3125         treat operands with leading '+' as file names, as POSIX
3126         has required since 2001.  However, make sure the code still
3127         works on pre-POSIX hosts.
3128         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
3129         which says you should use "tail -c +N" rather than "tail +Nc".
3130         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
3131
3132 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
3133
3134         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
3135         argument name.
3136
3137 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
3138
3139         PR target/28150
3140         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
3141         PRE_{INC,DEC} of TFmode.
3142
3143 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
3144             Alan Modra  <amodra@bigpond.net.au>
3145
3146         PR target/28170
3147         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
3148         bounds. Simplify.
3149
3150 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3151
3152         PR target/28285
3153         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
3154         Remove duplicate gtu.
3155
3156 2006-07-05  Jason Merrill  <jason@redhat.com>
3157
3158         PR c++/13983
3159         PR c++/17519
3160         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
3161         * c-common.c (handle_packed_attribute): So don't copy it here.
3162         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
3163
3164 2006-07-05  Mike Stump  <mrs@apple.com>
3165
3166         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
3167
3168 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3169
3170         PR target/26146
3171         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
3172
3173 2006-07-05  Richard Guenther  <rguenther@suse.de>
3174
3175         PR target/28158
3176         * config/i386/i386.md (*negdf2_1): Restrict pattern to
3177         TARGET_SSE2 targets if using SSE math.
3178         (*absdf2_1): Likewise.
3179
3180 2006-07-05  Richard Guenther  <rguenther@suse.de>
3181
3182         PR tree-optimization/28162
3183         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
3184         make sure to convert the operands to the correct type.
3185
3186 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
3187
3188         PR tree-optimization/28218
3189
3190         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
3191         to calculate and free the dominator information.
3192
3193 2006-07-04  Peter O'Gorman  <peter@pogma.com>
3194
3195         * mklibgcc.in: chmod 644 before ranlib during install.
3196
3197 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
3198             J"orn Rennecke <joern.rennecke@st.com>
3199
3200         * configure.ac (.eh_frame data check): Use diff -b.
3201
3202 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3203
3204         PR bootstrap/18058
3205         * Makefile.in (BUILD_RTL): Add build/vec.o.
3206         (build/gencondmd.o): Filter out -fkeep-inline-functions.
3207         (build/genextract): Delete.
3208         (build/genautomata): Likewise.
3209
3210 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
3211
3212         PR target/28207
3213         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
3214         128-bit IBM long doubles for ABI_V4.
3215
3216 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
3217
3218         * tree.c (range_in_array_bounds_p): New predicate.
3219         * tree.h (range_in_array_bounds_p): Declare it.
3220         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
3221         return a less conservative answer.
3222         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
3223         and flag 'is_group'.
3224         (IS_ELEMENT_FOR_GROUP): New macro.
3225         (FOR_EACH_ACTUAL_CHILD): Likewise.
3226         (next_child_for_group): New helper function.
3227         (can_completely_scalarize_p): Take into account groups.
3228         (sra_hash_tree): Handle RANGE_EXPR.
3229         (sra_elt_eq): Likewise.
3230         (lookup_element): Be prepared for handling groups.
3231         (is_valid_const_index): Delete.
3232         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
3233         instead of is_valid_const_index.
3234         <ARRAY_RANGE_REF>: New case.
3235         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
3236         is_valid_const_index.
3237         <ARRAY_RANGE_REF>: Do not unconditionally punt.
3238         (scan_dump): Dump info for groups too.
3239         (decide_instantiation_1): Likewise.
3240         (decide_block_copy): Assert that the element is not a group.
3241         Propagate decision to groups.
3242         (generate_one_element_ref): Handle RANGE_EXPR.
3243         (mark_no_warning): Iterate over actual childs.
3244         (generate_copy_inout): Likewise.
3245         (generate_element_copy): Likewise.
3246         (generate_element_zero): Likewise.
3247         (generate_element_init_1): Likewise.
3248         (dump_sra_elt_name): Handle RANGE_EXPR.
3249
3250 2006-07-03  Roger Sayle  <roger@eyesopen.com>
3251
3252         PR tree-optimization/26251
3253         * tree-ssa-threadupdate.c (redirection_block_p): New function.
3254         (thread_block): When optimizing for size refuse to thread jumps
3255         that would require duplication of blocks other than redirection
3256         blocks.
3257
3258 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
3259
3260         * configure.ac: Fix thinko in previous check-in.
3261         * configure: Regenerate.
3262
3263 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
3264
3265         PR other/27063
3266         * configure.ac (for lang...): Simplify nesting of conditionals.
3267         Test subdir_requires for non-enabled languages.  Move processing
3268         of lang_opt_files and lang_tree_fiels below that test.
3269         * configure: Regenerate.
3270         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
3271
3272 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
3273
3274         * doc/gcov.texi (Invoking Gcov): Add a missing word.
3275
3276 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
3277
3278         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
3279         comment typos.
3280
3281 2006-06-29  Jason Merrill  <jason@redhat.com>
3282
3283         PR c++/26905
3284         PR c++/26612
3285         PR c++/27000
3286         PR c++/26984
3287         PR c++/19134
3288         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
3289         * c-common.c (c_determine_visibility): Handle it here.
3290         * c-decl.c (finish_decl): Call c_determine_visibility for
3291         functions, too.
3292         * flags.h (enum symbol_visibility): Sort from most to least visibility.
3293         * tree.h: Likewise.
3294         * varasm.c (default_assemble_visibility): Likewise.
3295         * c-common.c (handle_visibility_attribute): Complain about trying
3296         to give visibility to an already defined class, or trying to change
3297         declared visibility. Always attach the attribute.
3298
3299         PR c++/26905
3300         PR c++/21675
3301         PR c++/17470
3302         * attribs.c (decl_attributes): Ignore type-in-place attributes
3303         once the type has been defined.
3304
3305 2006-06-29  Roger Sayle  <roger@eyesopen.com>
3306
3307         PR middle-end/27428
3308         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
3309         to indicate the cpplib has issued an error message for us.
3310
3311 2006-06-29  Asher Langton  <langton2@llnl.gov>
3312
3313         PR target/25765
3314         * config/i386/i386.c (ix86_output_function_epilogue): Don't
3315         insert a label at the end of an function under Mach-O.
3316
3317 2006-06-29  Eric Christopher  <echristo@apple.com>
3318             Evan Cheng  <evan.cheng@apple.com>
3319
3320         * predicates.md (vector_all_ones_operand): New.
3321         (nonimmediate_or_sse_const_operand): Ditto.
3322         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
3323         * config/i386/i386.c (standard_sse_constant_opcode): Define.
3324         (standard_sse_mode_p): Ditto.
3325         (standard_sse_constant_p): Add case for -1 vector.
3326         (ix86_expand_vector_move): Try to use.
3327         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
3328         Call standard_sse_constant_opcode.
3329         (*movv4sf_internal): Ditto.
3330         (*movv2df_internal): Ditto.
3331
3332 2006-06-29  Roger Sayle  <roger@eyesopen.com>
3333
3334         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
3335         of XEXP to extract the operands of a MATCH_CODE rtx.
3336
3337 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
3338
3339         * tree.c (tree_size): Do not waste tail padding in
3340         struct tree_string and make the size be the same as
3341         build_string will generate.
3342
3343 2006-06-28  Jason Merrill  <jason@redhat.com>
3344
3345         PR c++/27768
3346         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
3347         may_aliases already in the tag's annotations to the bitmap.
3348
3349 2006-06-28  Roger Sayle  <roger@eyesopen.com>
3350
3351         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
3352
3353 2006-06-28  Roger Sayle  <roger@eyesopen.com>
3354
3355         * genpreds.c (generate_switch_p): New function.
3356         (add_mode_tests): Push the new mode test down inside an AND expr
3357         if this allows the switch-suitable MATCH_CODE to be near the root.
3358         (write_match_code_switch): New function to write a MATCH_CODE as
3359         a switch statement.
3360         (write_predicate_stmts): New function to write a predicate RTX
3361         expression as a sequence of statements.
3362         (write_one_predicate_function): Use write_predicate_stmts.
3363         (write_tm_constrs_h): Likewise.
3364
3365 2006-06-26  Fred Fish  <fnf@specifix.com>
3366
3367         * config/mips/t-sb1: New file.
3368         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
3369         tmake_file list.
3370
3371 2006-06-26  DJ Delorie  <dj@redhat.com>
3372
3373         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
3374
3375 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
3376             Jayant Sonar  <jayants@kpitcummins.com>
3377             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
3378
3379         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
3380         (subsi3, subsi3_1, subsi3_2): New.
3381         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
3382         * config/m32c/mov.md (SI mov peephole): New.
3383         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
3384         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
3385
3386 2006-06-26  Olivier Hainque  <hainque@adacore.com>
3387
3388         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
3389         a CALL_EXPR target function declaration.
3390
3391 2006-06-26  Richard Guenther  <rguenther@suse.de>
3392
3393         * tree.c (build_string): Do not waste tail padding in
3394         struct tree_string.
3395
3396 2006-06-26  Richard Guenther  <rguenther@suse.de>
3397
3398         * ggc-page.c (init_ggc): Add missing element to size_lookup
3399         table.
3400
3401         Revert
3402         2006-06-23  Richard Guenther  <rguenther@suse.de>
3403
3404         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
3405         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
3406         alignment requests instead.  Add verification code.
3407         Add struct tree_function_decl and struct tree_binfo size to
3408         extra_order_size_table.  Add missing element to size_lookup
3409         table.
3410
3411 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
3412
3413         PR middle-end/28151
3414         * fold-const.c (const_binop): Be prepared for self returning zero.
3415         Simplify code handling complex values.
3416
3417 2006-06-24  Olivier Hainque  <hainque@adacore.com>
3418
3419         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
3420         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
3421         aggregate types.
3422
3423 2006-06-24  Olivier Hainque  <hainque@adacore.com>
3424
3425         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
3426         ARRAY_REF, so have the callback called for the low bound expression.
3427
3428 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
3429
3430         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
3431         * c-typeck.c (c_common_type): Disallow operations on decimal float
3432         types and other float types.
3433         * convert.c (convert_to_real): Don't ignore conversions involving
3434         decimal float types.
3435
3436 2006-06-23  Olivier Hainque  <hainque@adacore.com>
3437
3438         * tree.c (max_int_size_in_bytes): New function, inspired from
3439         code in function.c:assign_temp.
3440         * tree.h (max_int_size_in_bytes): Declare.
3441         * function.c (assign_temp): Use it.
3442         * gimplify.c (create_tmp_var): Relax the assertions on the type
3443         properties, not mandating constant size any more.
3444         (force_constant_size): New static function.
3445         (gimple_add_tmp_var): Use it, forcing variable size to a
3446         constant upper bound if it is not constant on entry.
3447
3448 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
3449
3450         PR target/27789
3451         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
3452         for initialization and setting of one_only flag to ...
3453         (i386_pe_encode_section_info): ...here.
3454         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
3455         Recheck that the symbol has not been defined.
3456
3457 2006-06-23  Richard Guenther  <rguenther@suse.de>
3458
3459         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
3460         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
3461         alignment requests instead.  Add verification code.
3462         Add struct tree_function_decl and struct tree_binfo size to
3463         extra_order_size_table.  Add missing element to size_lookup
3464         table.
3465
3466 2006-06-22  Roger Sayle  <roger@eyesopen.com>
3467             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3468
3469         PR middle-end/28131
3470         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
3471         call to lang_hooks.types.type_for_mode returned NULL_TREE.
3472
3473 2006-06-23  Ben Elliston  <bje@au.ibm.com>
3474
3475         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
3476         negate dn -- manipulate it directly.
3477
3478 2006-06-22  Roger Sayle  <roger@eyesopen.com>
3479             Steven Bosscher  <stevenb.gcc@gmail.com>
3480
3481         PR target/27531
3482         * reload1.c (gen_reload): Call mark_jump_label on the new insns
3483         generated by gen_move_insn to add REG_LABEL notes if necessary.
3484
3485 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
3486
3487         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
3488         (leaf_entry): Remove use of MIN_ESA.
3489
3490 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
3491
3492         PR rtl-optimization/28121
3493         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
3494         the entry edge.
3495
3496 2006-06-21  DJ Delorie  <dj@redhat.com>
3497
3498         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
3499         (TN-16C-A156A/E).
3500         (mulhisi3_r): Likewise.
3501
3502 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
3503
3504         PR middle-end/28034
3505         * coverage.c (coverage_counter_alloc): Leave the index type
3506         unspecified.
3507         (coverage_counter_alloc): Use null arguments for operands 2 and 3
3508         of the ARRAY_REF.
3509
3510 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
3511
3512         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
3513         section from the "Options for Code Generation Conventions".
3514
3515 2006-06-21  Richard Henderson  <rth@redhat.com>
3516
3517         PR target/26347
3518         PR target/27082
3519         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
3520         symbols.
3521         (global_symbolic_operand): Allow weak symbols, even if local_p.
3522
3523 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
3524
3525         * t