OSDN Git Service

d522309a7202dff641e62ce4157b08349d57d950
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/35771
4         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
5         canonical type if needed.
6
7 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
8
9         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
10
11 2008-05-29  Richard Guenther  <rguenther@suse.de>
12
13         PR tree-optimization/36343
14         PR tree-optimization/36346
15         PR tree-optimization/36347
16         * tree-flow.h (clobber_what_p_points_to): Declare.
17         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
18         pointed-to variable is dereferenced is irrelevant to whether
19         the pointer can access the pointed-to variable.
20         (clobber_what_p_points_to): New function.
21         * tree-ssa-alias.c (set_initial_properties): Use it.
22         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
23         call clobber check for NMTs.
24
25 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
26         
27         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
28         for printing gcov_type.
29
30 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
31
32         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
33         and the eh region information.
34         * value-prof.c (gimple_move_stmt_histograms): New function.
35         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
36
37 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
38
39         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
40
41 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
42
43         * value-prof.c (tree_ic_transform): Print counts.
44         * tree-profile.c (tree_gen_ic_func_profiler):
45         Clear __gcov_indreict_call_callee variable
46         to avoid misattribution of the profile.
47
48 2008-05-28  Rafael Espindola  <espindola@google.com>
49
50         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
51         invalid sharing.
52
53 2008-05-28  Richard Guenther  <rguenther@suse.de>
54
55         PR tree-optimization/36339
56         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
57         and clobbering code out of the loop.
58
59 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
60
61         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
62         letters defined.
63
64         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
65         s390_contiguous_bitmask_p, s390_symref_operand_p,
66         s390_check_symref_alignment, s390_reload_larl_operand,
67         s390_reload_symref_address): New functions.
68         (s390_branch_condition_mnemonic): Support compare and branch
69         instructions.
70         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
71         and 'W' constraints.
72         (s390_secondary_reload): Add secondary reloads for unaligned
73         symbol refs or symbol refs to floating point or QI/TI mode
74         integer values.
75         (legitimate_address_p): Accept symbol references as addresses.
76         (s390_expand_insv): Use rotate and insert selected bits
77         instruction for insv when building for z10.
78         (print_operand_address): Handle symbol ref addresses.
79         (print_operand): Output modifier 'c' added for signed byte
80         values.
81         (s390_encode_section_info): Mark symbol refs with
82         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
83
84         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
85         (length attribute): RRF, RRR have 4 byte length.
86         (FPALL, INTALL): New mode iterators added.
87         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
88         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
89         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
90         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
91         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
92         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
93         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
94         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
95         instructions.
96         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
97         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
98         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
99         reload<INTALL:mode><P:mode>_toreg_z10,
100         reload<FPALL:mode><P:mode>_tomem_z10,
101         reload<FPALL:mode><P:mode>_toreg_z10,
102         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
103         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
104         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
105         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
106         definition.
107         (movmem, clrmem, cmpmem): New splitters added.
108
109         * config/s390/predicates.md (larl_operand): Use
110         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
111         SYMBOL_REF_ALIGN1_P.
112         (s390_signed_integer_comparison,
113         s390_unsigned_integer_comparison): New predicates.
114
115         * config/s390/s390-protos.h (s390_check_symref_alignment,
116         s390_contiguous_bitmask_p, s390_reload_larl_operand,
117         s390_reload_symref_address,
118         s390_compare_and_branch_condition_mask): Prototypes added.
119
120         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
121         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
122         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
123
124 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
125
126         * config/s390/s390.c (z10_cost): New cost function for z10.
127         (s390_handle_arch_option, override_options): Support
128         -march=z10 switch.
129         (s390_issue_rate): Adjust issue rate for z10.
130         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
131         (processor_flags): Add PF_Z10.
132         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
133         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
134         * gcc/config.gcc: Add z10.
135
136 2008-05-28  Richard Guenther  <rguenther@suse.de>
137
138         PR tree-optimization/36291
139         * tree-flow. h (struct gimple_df): Remove var_anns member.
140         * tree-flow-inline.h (gimple_var_anns): Remove.
141         (var_ann): Simplify.
142         * tree-dfa.c (create_var_ann): Simplify.
143         (remove_referenced_var): Clear alias info from var_anns of globals.
144         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
145         (delete_tree_ssa): Clear alias info from var_anns of globals.
146         Do not free var_anns.
147         (var_ann_eq): Remove.
148         (var_ann_hash): Likewise.
149
150 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
151
152         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
153         and loongson2f entries.
154         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
155         * config/mips/mips.h (processor_type): Add Loongson-2E
156         and Loongson-2F entries.
157         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
158         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
159         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
160         * doc/invoke.texi (MIPS Options): Document loongson2e
161         and loongson2f processor names.
162
163 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
164
165         PR target/35767
166         PR target/35771
167         * config/i386/i386.c (ix86_function_arg_boundary): Use
168         alignment of canonical type.
169         (ix86_expand_vector_move): Check unaligned memory access for
170         all SSE modes.
171
172 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
173
174         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
175         Moved to the front of file.
176
177 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
178             H.J. Lu  <hongjiu.lu@intel.com>
179
180         * dwarf2out.c (current_fde): New.
181         (add_cfi): Use it.
182         (lookup_cfa:): Likewise.
183         (dwarf2out_end_epilogue): Likewise.
184         (dwarf2out_note_section_used): Likewise.
185
186 2008-05-27  Michael Matz  <matz@suse.de>
187
188         PR c++/27975
189         * c.opt (Wenum-compare): New warning option.
190         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
191
192 2008-05-27  Michael Matz  <matz@suse.de>
193
194         PR middle-end/36326
195         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
196         non-BLKmode types.
197         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
198         into memory as tail calls.
199
200 2008-05-27  Richard Guenther  <rguenther@suse.de>
201
202         PR tree-optimization/36339
203         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
204         pointers cause all addressable variables to be call clobbered.
205
206 2008-05-27  Richard Guenther  <rguenther@suse.de>
207
208         PR tree-optimization/36245
209         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
210         bases.
211
212 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
213
214         * config/s390/s390.md: Replace all occurences of the 'm'
215         constraint with 'RT'.
216
217 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
218
219         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
220         definitions added.
221         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
222         "*movdi_64".
223         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
224         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
225         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
226
227 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
228
229         * reload.c: (find_reloads): Skip alternatives according to the
230         "enabled" attribute. Constify the constraint variable.
231         * recog.c (get_attr_enabled): Add default implementation.
232         (extract_insn): Set the alternative_enabled_p array
233         in the recog_data struct.
234         (preprocess_constraints, constrain_operands): Skip
235         alternatives according to the "enabled" attribute
236         * recog.h (struct recog_data): New field alternative_enabled_p.
237         (skip_alternative): New inline function.
238         * regclass.c: (record_operand_costs): Check the "enabled"
239         attribute.
240         (record_reg_classes): Skip alternative according to the
241         "enabled" attribute.
242
243         * doc/md.texi: Add documention for the "enabled" attribute.
244
245 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
246
247         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
248         * postreload.c (reload_cse_simplify_operands): Replace 'm'
249         constraint with TARGET_MEM_CONSTRAINT.
250         * recog.c (asm_operand_ok, preprocess_constraints,
251         constrain_operands): Likewise.
252         * regclass.c (record_reg_classes): Likewise.
253         * reload.c (find_reloads, alternative_allows_const_pool_ref):
254         Likewise.
255         * reload1.c (maybe_fix_stack_asms): Likewise.
256         * stmt.c (parse_output_constraint, parse_input_constraint):
257         Likewise.
258         * recog.h: Adjust comment.
259         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
260         * genoutput.c (note_constraint): Don't emit error for 'm'
261         constraint.
262         * doc/md.texi: Add a note to description of 'm' constraint.
263         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
264
265 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
266
267         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
268         that the bitfield is of integral type before testing its precision.
269
270 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
271             Sa Liu  <saliu@de.ibm.com> 
272
273         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
274         __modti3, __udivti3, __umodti3 and __udivmodti4.
275         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
276         that implement TImode mul and div functions.
277         * config/spu/multi3.c: New. Implement __multi3.
278         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
279         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
280         functions on SPU.
281
282 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
283
284         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
285         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
286         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
287         tls_sysv_suffix): New mode and mode attribute iterators.
288         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
289         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
290         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
291         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
292         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
293         iterators.
294
295 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
296
297         PR tree-optimization/36329
298         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
299         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
300         * cgraphbuild.c (initialize_inline_failed): Use the latter
301         macro in lieu of the former.
302         * ipa-inline.c (cgraph_mark_inline): Likewise.
303         (cgraph_decide_inlining_of_small_function): Likewise.
304         (cgraph_decide_inlining): Likewise.
305         (cgraph_decide_inlining_incrementally): Likewise.
306
307 2008-05-26  Tristan Gingold  <gingold@adacore.com>
308             Anatoly Sokolov  <aesok@post.ru>
309
310         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
311         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
312         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
313         optimization for 'avr6' architecture.
314
315 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
316
317         PR target/34932
318         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
319
320 2008-05-26  Richard Guenther  <rguenther@suse.de>
321
322         * tree-ssa-sccvn.c (expr_has_constants): Declare.
323         (visit_reference_op_load): Initialize VN_INFO->has_constants
324         properly.
325
326 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
327
328         PR middle-end/36253
329         * caller-save.c (insert_restore): Verify alignment of spill
330         space.
331         (insert_save): Likewise.
332
333         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
334
335         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
336         (STACK_SLOT_ALIGNMENT): Likewise.
337
338         * function.c (LOCAL_ALIGNMENT): Removed.
339         (get_stack_local_alignment): New.
340         (assign_stack_local): Use it.  Set alignment on stack slot.
341         (assign_stack_temp_for_type): Use get_stack_local_alignment.
342
343         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
344         (STACK_SLOT_ALIGNMENT): New.
345
346         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
347         stack slot in XFmode.
348
349         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
350
351 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
352
353         PR/36321
354         * config/i386/i386.md (allocate_stack_worker_64): Make sure
355         argument operand in rax isn't removed.
356
357 2008-05-26  Richard Guenther  <rguenther@suse.de>
358
359         PR middle-end/36300
360         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
361         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
362
363 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
364
365         PR bootstrap/36331
366         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
367
368 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
369
370         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
371         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
372
373 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
374
375          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
376         build a trampoline if we don't want one.
377         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
378         return zero for nested functions if we don't want a trampoline.
379
380 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
381
382         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
383
384 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
385
386         PR fortran/18428
387         * c.opt: Removed undocumented option '-lang-fortran'.
388         * c-common.h: Removed global variable 'lang_fortran'.
389         * c-opts.c (c_common_handle_option): Removed code to handle
390         option '-lang-fortran'. Updated includes.
391         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
392         definition of '__GFORTRAN__'.
393         (define__GNUC__): Reimplemented to use BASEVER and
394         cpp_define_formatted.
395         (builtin_define_with_value_n): Removed.
396         * c-incpath.h: Renamed to ...
397         * incpath.h: ... this.
398         * c-incpath.c: Renamed to ...
399         * incpath.c: ... this. Updated includes.
400         * fix-header.c: Updated includes.
401         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
402         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
403         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
404
405 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
406
407         * tree.h: Update the table of flags used on tree nodes.
408         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
409         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
410         (FORCED_LABEL): Add access check.
411         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
412         (ASM_INPUT_P): Likewise.
413         (ASM_VOLATILE_P): Likewise.
414         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
415         (OMP_SECTION_LAST): Access private_flag directly.
416         (OMP_RETURN_NOWAIT): Likewise.
417         (OMP_PARALLEL_COMBINED): Likewise.
418         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
419         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
420         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
421         deprecated_flag directly.
422
423 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
424
425         * final.c (frame_pointer_needed): Removed.
426         * flags.h (frame_pointer_needed): Likewise.
427
428         * function.h (rtl_data): Add frame_pointer_needed.
429         (frame_pointer_needed): New.
430
431 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
432
433         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
434
435 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
436
437         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
438         SRC is a REG.
439
440 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
441
442         * c-common.c (strip_array_types): Move function to..
443         * tree.c: ..here.
444         (get_inner_array_type): Delete.
445         * c-common.h (strip_array_types): Move declaration to..
446         * tree.h: ..here.
447         (get_inner_array_type): Delete.
448         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
449         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
450         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
451         * config/pa/pa.c (emit_move_sequence): Likewise.
452
453 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
454
455         * config/i386/i386.md (*sse_prologue_save_insn): Set length
456         attribute to 34.
457
458 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
459
460         * function.c: Include target hook for nonlocal_goto frame value.
461
462 2008-05-24  Richard Guenther  <rguenther@suse.de>
463
464         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
465         a scalar variable can be only accessed through a pointer
466         or a union.
467
468 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
469
470         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
471         * doc/extend.texi: Likewise.
472
473 2008-05-23  DJ Delorie  <dj@redhat.com>
474
475         * config/m32c/jump.md (untyped_call): Add.
476
477         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
478         for A24 to PSImode.
479         (m32c_address_cost): Detail costs for indirect offsets.
480
481 2008-05-23  Rafael Espindola  <espindola@google.com>
482
483         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
484         if a node is a SUBREG.
485         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
486         is a SUBREG.
487
488 2008-05-23  Paul Brook  <paul@codesourcery.com>
489             Carlos O'Donell  <carlos@codesourcery.com>
490
491         * doc/extend.texi: Clarify use of __attribute__((naked)).
492         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
493         * target.h (gcc_target): Add allocate_stack_slots_for_args.
494         * function.c (use_register_for_decl): Use
495         targetm.calls.allocate_stack_slots_for_args.
496         * target-def.h (TARGET_CALLS): Add 
497         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
498         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
499         New function.
500         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
501
502 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
503
504         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
505
506 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
507
508         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
509         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
510         is only rounded once.
511
512 2008-05-23  Richard Guenther  <rguenther@suse.de>
513
514         * tree-ssa-operands.c (mark_difference_for_renaming): Use
515         bitmap_xor.
516
517 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
518             Jakub Jelinek  <jakub@redhat.com>
519
520         PR target/36079
521         * configure.ac: Handle --enable-cld.
522         * configure: Regenerated.
523         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
524         * config/i386/i386.h (struct machine_function): Add needs_cld field.
525         (ix86_current_function_needs_cld): New define.
526         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
527         (cld): New isns pattern.
528         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
529         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
530         * config/i386/i386.opt (mcld): New option.
531         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
532         TARGET_CLD and ix86_current_function_needs_cld.
533         (override_options): Use -mcld by default for 32-bit code if
534         USE_IX86_CLD.
535
536         * doc/install.texi (Options specification): Document --enable-cld.
537         * doc/invoke.texi (Machine Dependent Options)
538         [i386 and x86-64 Options]: Add -mcld option.
539         (Intel 386 and AMD x86-64 Options): Document -mcld option.
540
541 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
542         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
543         (return_in_memory_64): Likewise.
544         (return_in_memory_ms_64): Likewise.
545
546 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
547
548         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
549         * builtins.c (fold_builtin_fpclassify): New.
550         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
551         * builtins.def (BUILT_IN_FPCLASSIFY): New.
552         * c-common.c (handle_type_generic_attribute): Adjust to accept
553         fixed arguments before an elipsis.
554         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
555         * doc/extend.texi: Document __builtin_fpclassify.
556
557 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
558
559         * omp-low.c (gate_expand_omp_ssa): Remove.
560         (pass_expand_omp_ssa): Remove.
561         (gate_expand_omp): Do not check for flag_openmp_ssa.
562         * common.opt (-fopenmp-ssa): Remove.
563         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
564
565 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
566
567         * config/sh/sh.opt (mfixed-range): New option.
568         * config/sh/sh-protos.h (sh_fix_range): Declare.
569         * config/sh/sh.c (sh_fix_range): New function.
570         * config/sh/sh.h (sh_fixed_range_str): Declare.
571         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
572         is not empty.
573         * doc/invoke.texi (SH Options): Document -mfixed-range.
574
575 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
576
577         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
578         it before the redeclaration.
579
580 2008-05-22  Anatoly Sokolov <aesok@post.ru>
581
582         * config/avr/avr.c (get_sequence_length): Add new function.
583         (expand_prologue, expand_epilogue): Remove duplicate code.
584
585 2008-05-22  Rafael Espindola  <espindola@google.com>
586
587         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
588         sharing.
589
590 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
591
592         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
593         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
594
595         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
596         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
597         (vect_update_misalignment_for_peel): Likewise.
598         (vector_alignment_reachable_p): Likewise.
599         * tree-vect-transform.c (vectorizable_load): Likewise.
600         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
601         (get_vectype_for_scalar_type): Pass mode of scalar_type
602         to UNITS_PER_SIMD_WORD.
603
604         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
605         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
606         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
607         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
608         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
609
610 2008-05-22  Ira Rosen  <irar@il.ibm.com>
611
612         PR tree-optimization/36293
613         * tree-vect-transform.c (vect_transform_strided_load): Don't check
614         if the first load must be skipped because of a gap.
615
616 2008-05-22  Richard Guenther  <rguenther@suse.de>
617
618         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
619         more cases of offset disambiguation that is possible if
620         strict-aliasing rules apply.
621         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
622         for basic offset and type-based disambiguation.
623
624 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
625
626         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
627         ix86_expand_vector_set on V16QImode for SSE4.1.
628
629 2008-05-21  Tom Tromey  <tromey@redhat.com>
630
631         * c.opt (Wimport): Mark as undocumented.
632         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
633         -Wno-import.
634         (Warning Options): Likewise.
635         * doc/cppopts.texi: Don't mention -Wimport.
636
637 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
638
639         PR tree-optimization/36287
640         PR tree-optimization/36286
641         * lambda-code.c (build_access_matrix): Do not use the loop->num
642         for computing the number of induction variables: use the loop depth
643         instead.
644
645 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
646
647         PR/36280
648         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
649         option -f(no-)leading-underscore.
650
651 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
652
653         * config/i386/i386.c (ix86_expand_vector_init_general): Use
654         GET_MODE_NUNITS (mode).
655
656 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
657
658         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
659         (-mmulhw): Add 464 to description.
660         (-mdlmzb): Likewise.
661         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
662         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
663         464fp entries.
664         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
665         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
666         * config/rs6000/rs6000.md: Update comments for 464.
667
668 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
669
670         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
671
672 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
673
674         * config/i386/sse.md (vec_extractv4sf): Removed.
675         (vec_extractv2df): Likewise.
676         (vec_extractv2di): Likewise.
677         (vec_extractv4si): Likewise.
678         (vec_extractv8hi): Likewise.
679         (vec_extractv16qi): Likewise.
680         (vec_extract<mode>): New.
681
682 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
683
684         * config/i386/sse.md (vec_setv4sf): Removed.
685         (vec_setv2df): Likewise.
686         (vec_setv2di): Likewise.
687         (vec_setv4si): Likewise.
688         (vec_setv8hi): Likewise.
689         (vec_setv16qi): Likewise.
690         (vec_set<mode>): New.
691
692 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
693
694         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
695         goto for vec_concat and vec_interleave.
696
697 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
698
699         * config/i386/sse.md (vec_initv4sf): Removed.
700         (vec_initv2df): Likewise.
701         (vec_initv2di): Likewise.
702         (vec_initv4si): Likewise.
703         (vec_initv8hi): Likewise.
704         (vec_initv16qi): Likewise.
705         (vec_init<mode>): New.
706
707 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
708
709         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
710
711 2008-05-21  Tom Tromey  <tromey@redhat.com>
712
713         * ggc-zone.c (lookup_page_table_if_allocated): New function.
714         (zone_find_object_offset): Likewise.
715         (gt_ggc_m_S): Likewise.
716         (highest_bit): Likewise.
717         * ggc-page.c (gt_ggc_m_S): New function.
718         * stringpool.c (string_stack): Remove.
719         (init_stringpool): Update.
720         (ggc_alloc_string): Use ggc_alloc.
721         (maybe_delete_ident): New function.
722         (ggc_purge_stringpool): Likewise.
723         (gt_ggc_m_S): Remove.
724         * ggc-common.c (ggc_protect_identifiers): New global.
725         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
726         ggc_protect_identifiers.
727         * ggc.h (ggc_protect_identifiers): Declare.
728         (gt_ggc_m_S): Update.
729         (ggc_purge_stringpool): Declare.
730         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
731         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
732         special case.
733         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
734
735 2008-05-21  David S. Miller  <davem@davemloft.net>
736
737         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
738         tmake_file.
739
740 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
741
742         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
743         once finished.
744
745 2008-05-20  David Daney  <ddaney@avtrex.com>
746
747         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
748         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
749         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
750         UNSPEC_UPDATE_GOT_VERSION): Renumber.
751         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
752         (atomic_hiqi_op): New define_code_iterator.
753         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
754         mips_expand_compare_and_swap_12.
755         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
756         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
757         (sync_<optab><mode>, sync_old_<optab><mode>,
758         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
759         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
760         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
761         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
762         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
763         (test_and_set_12): New insn.
764         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
765         sync_new_<optab><mode>, sync_old_nand<mode>,
766         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
767         clobber to operand 0 for SI and DI mode insns.
768         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
769         mips_gen_fn_4): New typedefs.
770         (mips_gen_fn_ptrs): Define new union type.
771         (mips_expand_compare_and_swap_12): Remove declaration.
772         (mips_expand_atomic_qihi): Declare function.
773         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
774         (mips_expand_atomic_qihi): ... this.  Use new generator function
775         parameter.
776         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
777         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
778         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
779         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
780         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
781         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
782         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
783         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
784         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
785         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
786         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
787         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
788
789 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
790
791         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
792         the missing break.
793
794 2008-05-20  Anatoly Sokolov <aesok@post.ru>
795
796         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
797         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
798         (avr_attribute_table): Add 'OS_main' function attribute.
799         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
800         functions with 'OS_main' attribute.
801
802 2008-05-20  Richard Guenther  <rguenther@suse.de>
803
804         PR tree-optimization/35204
805         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
806         helper, split out from ...
807         (DFS): ... here.  Make the DFS walk non-recursive.
808
809 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
810             Jan Sjodin  <jan.sjodin@amd.com>
811
812         PR tree-optimization/36181
813         * tree-parloops.c (loop_has_vector_phi_nodes): New.
814         (parallelize_loops): Don't parallelize when the loop has vector
815         phi nodes.
816
817 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
818             Sebastian Pop  <sebastian.pop@amd.com>
819
820         * tree-loop-linear.c (gather_interchange_stats): Look in the access
821         matrix, and never look at the tree representation of the memory
822         accesses.
823         (linear_transform_loops): Computes parameters and access matrices.
824         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
825         when fails.
826         (access_matrix_get_index_for_parameter): New.
827         * tree-data-ref.h (struct access_matrix): New.
828         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
829         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
830         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
831         am_vector_index_for_loop): New.
832         (struct data_reference): Add field access_matrix.
833         (DR_ACCESS_MATRIX): New.
834         (compute_data_dependences_for_loop): Update declaration.
835         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
836         * lambda.h (lambda_vector_vec_p): Declared.
837         * lambda-code.c: Depend on pointer-set.h.
838         (lambda_collect_parameters_from_af, lambda_collect_parameters,
839         av_for_af_base, av_for_af, build_access_matrix,
840         lambda_compute_access_matrices): New.
841         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
842
843 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
844
845         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
846         $SOURCEDIR/include.
847
848 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
849             Sebastian Pop  <sebastian.pop@amd.com>
850
851         PR tree-optimization/36206
852         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
853         FOLD_CONVERSIONS.
854         (instantiate_scev_1): Rename flags to fold_conversions.
855         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
856         outeside instantiation_loop.
857         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
858         (evolution_function_is_affine_or_constant_p): Removed.
859         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
860         instantiate_scev.
861         (analyze_siv_subscript): Pass in the loop nest number.
862         Call evolution_function_is_affine_in_loop instead of 
863         evolution_function_is_affine_p.
864         (analyze_overlapping_iterations): Pass in the loop nest number.
865
866 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
867             Sebastian Pop  <sebastian.pop@amd.com>
868
869         PR tree-optimization/36206
870         * tree-chrec.h (chrec_fold_op): New.
871         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
872         and other trees.
873
874 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
875
876         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
877         (DIRS_EQ): New.
878         (remove_duplicates): Do not set inode on non-inode systems.
879         Use DIRS_EQ.
880
881 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
882
883         * config.gcc (tm_file): Update comments about relative pathnames.
884
885 2008-05-20  Richard Guenther  <rguenther@suse.de>
886
887         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
888         * tree-ssa-sccvn.c (process_scc): Likewise.
889         * tree-ssa-sink.c (execute_sink_code): Likewise.
890         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
891         * tree-vrp.c (process_assert_insertions): Likewise.
892         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
893         (perform_tree_ssa_dce): Likewise.
894         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
895         (dump_dominator_optimization_stats): Likewise.
896         * tree-vectorizer.c (vectorize_loops): Likewise.
897
898 2008-05-20  Richard Guenther  <rguenther@suse.de>
899
900         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
901
902 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
903
904         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
905         (ix86_i386elf_return_in_memory): Likewise.
906         (ix86_i386interix_return_in_memory): Likewise.
907         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
908         (SUBTARGET_RETURN_IN_MEMORY): New.
909         * config/i386/i386elf.h: Likewise.
910         * config/i386/ptx4-i.h: Likewise.
911         * config/i386/sol2-10.h: Likewise.
912         * config/i386/sysv4.h: Likewise.
913         * config/i386/vx-common.h: Likewise.
914         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
915         * config/i386/i386.c (ix86_return_in_memory): Made static and
916         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
917         (ix86_i386elf_return_in_memory): Removed.
918         (ix86_i386interix_return_in_memory): Removed.
919         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
920         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
921
922 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
923
924         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
925
926 2008-05-19  Xinliang David Li  <davidxl@google.com>
927
928         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
929         * opts.c: Ditto.
930         * common.opt: Ditto.
931         * doc/invoke.texi: Ditto.
932
933 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
934
935         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
936         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
937
938 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
939
940         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
941         sizes of operand array from 8/4 to 4/2.
942         (ix86_expand_vector_init_general): Change size of operand array
943         from 32 to 16.  Remove op0, op1 and half_mode.
944
945 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
946
947         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
948         (ix86_expand_vector_init_interleave): Likewise.
949         (ix86_expand_vector_init_general): Use them.  Assert word_mode
950         == SImode when n_words == 4.
951
952 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
953
954         * config/i386/i386.c (ix86_secondary_reload): New static function.
955         (TARGET_SECONDARY_RELOAD): New define.
956         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
957         * config/i386/i386.md (reload_outqi): Remove.
958
959 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
960
961         PR middle-end/35509
962         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
963         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
964         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
965         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
966         (fold_builtin_1): Likewise.
967         * builtins.def (BUILT_IN_ISINF_SIGN): New.
968         c-common.c (check_builtin_function_arguments): Handle
969         BUILT_IN_ISINF_SIGN.
970         * doc/extend.texi: Document __builtin_isinf_sign.
971         * fold-const.c (operand_equal_p): Handle COND_EXPR.
972
973 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
974
975         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
976         EH cleanup at the end of the pass, search for those that have been
977         turned into forwarder blocks and do the cleanup on their successor.
978
979 2008-05-18  Richard Guenther  <rguenther@suse.de>
980
981         * tree-cfg.c (verify_gimple_expr): Allow conversions from
982         pointers to sizetype and vice versa.
983
984 2008-05-18 Xinliang David Li   <davidxl@google.com>
985
986         * gcc/tree-ssa-dce.c: Coding style fix.
987         (check_pow): Documentation comment. 
988         (check_log): Documenation comment. Coding style fix.
989         (is_unnecessary_except_errno_call): Ditto.
990         (gen_conditions_for_pow): Ditto.
991         (gen_conditions_for_log): Ditto.
992         (gen_shrink_wrap_conditions): Ditto.
993         (shrink_wrap_one_built_in_calls): Ditto.
994         * gcc/doc/invoke.texi: Better documentation string.
995         * ChangeLog: Fix wrong change log entries from 
996         May 17 checkin on function call DCE.
997
998 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
999
1000         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1001
1002 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1003
1004         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1005         * df-problems.c (simulation routines): Fixed block comment to
1006         properly say how to add forwards scanning functions.
1007         
1008 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1009
1010         * tree-inline.c (setup_one_parameter): Remove dead code.
1011
1012 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1013
1014         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1015         a BIT_AND_EXPR only for an INTEGER_TYPE.
1016
1017 2008-05-17 Xinliang David Li   <davidxl@google.com>
1018
1019         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1020         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1021         functions to check for eliminating math functions that are pure 
1022         except for setting errno.
1023         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1024         general condition expressions for shrink-wrapping pow/log calls.
1025         (gen_shrink_wrap_conditions): Ditto.
1026         (shrink_wrap_one_built_in_call): Ditto.
1027         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1028         (mark_operand_necessary): If debugging, output if OP is necessary.
1029         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1030         unnecessary.
1031         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1032         opt level >= 2.
1033         * gcc/common.opt: New user flag -ftree-builtin-dce.
1034         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1035
1036 2008-05-16  David S. Miller  <davem@davemloft.net>
1037
1038         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1039         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1040
1041 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1042
1043         PR target/36246
1044         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1045
1046 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1047
1048         * ifcvt.c (dead_or_predicable): Rename
1049         df_simulate_one_insn_backwards to df_simulate_one_insn.
1050         * recog.c (peephole2_optimize): Ditto.
1051         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1052         Ditto.
1053         * df.h: Rename df_simulate_one_insn_backwards to
1054         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1055         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1056         scanning of defs and uses.
1057         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1058         (df_simulate_one_insn_forwards): Removed.
1059
1060 2008-05-16  Doug Kwan  <dougkwan@google.com>
1061
1062         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1063         QNaN & SNaN.
1064         (real_from_string): Handle NaNs and Inf as approriate.
1065
1066 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1067
1068         * doc/gty.texi (Source Files Containing Type Information): Note
1069         that headers should appear first in the gtfiles list.
1070
1071 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1072
1073         * tree.def (COND_EXEC): Properly documented this code.
1074
1075 2008-05-16  Diego Novillo  <dnovillo@google.com>
1076
1077         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1078         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1079         the new field.
1080
1081 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1082
1083         * tree-ssa-dse (max_stmt_uid): Removed.
1084         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1085         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1086         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1087         * function.h (cfun.last_stmt_uid): New field.
1088         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1089         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1090         New functions.
1091         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1092         (create_stmt_ann): Initialize the ann->uid field.
1093         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1094         with new calls.
1095         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1096
1097 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1098
1099         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1100         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1101         (init_empty_tree_cfg): Call it.
1102
1103 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1104
1105         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1106         Update all users.
1107
1108 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1109
1110         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1111         * tree-dump.c (dump_options): New verbose option.
1112         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1113         Add verbose dump.
1114         * tree-pass.h (TDF_VERBOSE): New dump flag.
1115         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1116         (tree-flow.h): Added include.
1117         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1118
1119 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1120
1121         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1122
1123         From Jie Zhang  <jie.zhang@analog.com>
1124         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1125         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1126         mcpu=bf561-none and mcpu=bf561-0.2.
1127         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1128         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1129         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1130         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1131         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1132         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1133         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1134         option.
1135         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1136         (cputype_selected): Remove.
1137         (bfin_handle_option): Don't use cputype_selected.
1138         (override_options): When no mcpu option, enable all workarounds.
1139         Don't use bfin_workarounds.
1140         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1141         processor type.
1142         (DEFAULT_CPU_TYPE): Don't define.
1143
1144 2008-05-16  Richard Guenther  <rguenther@suse.de>
1145
1146         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1147         on deletion of the last stmt.
1148
1149 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1150
1151         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1152         V8HImode for SSE2 and V16QImode for SSE4.1.
1153
1154 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1155
1156         * cgraph.h (compute_inline_parameters): Made public.
1157         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1158         variable_generate_summary, function_write_summary,
1159         variable_write_summary, variable_read_summary.  Added generate_summary,
1160         write_summary, read_summary.
1161         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1162         pass_ipa_inline.function_generate_summary, to
1163         compute_inline_parameters. 
1164         * ipa-inline.c (compute_inline_parameters): Made public and added
1165         node parameter.
1166         (compute_inline_parameters_for_current): New function.
1167         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1168         (inline_generate_summary): Removed parameter and made to loop over
1169         all cgraph nodes.
1170         (pass_ipa_inline): Updated for new IPA_PASS structure.
1171         * passes.c (execute_ipa_summary_passes): Now is called once per
1172         pass rather than once per node*pass.
1173         
1174 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1175
1176         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1177         avr_have_mul_p, avr_asm_only_p): Remove variables.
1178         (avr_override_options): Remove initialization of removed variables.
1179         (avr_file_start):  Convert removed variables to fields of 
1180         'struct base_arch_s *avr_current_arch'. 
1181         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1182         (AVR_HAVE_MUL): (Ditto.).
1183         (AVR_HAVE_MOVW): (Ditto.).
1184         (AVR_HAVE_LPMX): (Ditto.). 
1185         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1186         avr_asm_only_p): Remove declaration.
1187
1188 2008-05-15  Diego Novillo  <dnovillo@google.com>
1189
1190         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1191         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1192
1193 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1194
1195         PR middle-end/36194
1196         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1197         Don't call record_truncated_value from here.
1198         (record_truncated_value): Turn it into a for_each_rtx callback.
1199         (record_truncated_values): New function.
1200         (combine_instructions): Call note_uses with record_truncated_values.
1201         Change name of check_conversion to check_promoted_subreg. 
1202
1203 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1204
1205         * doc/sourcebuild.texi: Document support for torture tests.
1206
1207 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1208
1209         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1210         to alternative 4 of operand 2.
1211
1212 2008-05-15  Richard Guenther  <rguenther@suse.de>
1213
1214         * tree-pass.h (current_pass): Declare.
1215         (get_pass_for_id): Likewise.
1216         * passes.c (passes_by_id, passes_by_id_size): New globals.
1217         (set_pass_for_id): New function.
1218         (get_pass_for_id): Likewise.
1219         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1220         (execute_function_todo): Flush per function statistics.
1221         * toplev.c (compile_file): Init statistics.
1222         (general_init): Do early statistics initialization.
1223         (finalize): Finish statistics.
1224         * statistics.h (statistics_early_init): Declare.
1225         (statistics_init): Likewise.
1226         (statistics_fini): Likewise.
1227         (statistics_fini_pass): Likewise.
1228         (statistics_counter_event): Likewise.
1229         (statistics_histogram_event): Likewise.
1230         * statistics.c: New file.
1231         * Makefile.in (OBJS-common): Add statistics.o.
1232         (statistics.o): Add dependencies.
1233         * doc/invoke.texi (-fdump-statistics): Document.
1234
1235         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1236         (insert): Likewise.
1237         (execute_pre): Use statistics_counter_event.
1238         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1239         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1240
1241 2008-05-15  Diego Novillo  <dnovillo@google.com>
1242
1243         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1244
1245         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1246         * tree-ssa-alias.c (new_type_alias): Remove references to
1247         sub-variables from comment.
1248         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1249
1250 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1251
1252         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1253         attribute to 1 only for insertps alternative.
1254
1255 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1256
1257         * config/bfin/bfin.md (loadbytes): New pattern.
1258         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1259         (bfin_init_builtins): Initialize it.
1260         (bdesc_1arg): Add it.
1261
1262 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1263
1264         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1265         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1266         * testsuite/lib/target-supports.exp: Add
1267         check_effective_target_fortran_integer_16.
1268
1269 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1270
1271         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1272         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1273         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1274         (TARGET_RETURN_IN_MEMORY): Define.
1275
1276 2008-05-15  Richard Guenther  <rguenther@suse.de>
1277
1278         PR middle-end/36244
1279         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1280         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1281         represent unmodifiable vars.
1282
1283 2008-05-15  Richard Guenther  <rguenther@suse.de>
1284
1285         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1286         INDIRECT_REF and TARGET_MEM_REF.
1287         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1288         TARGET_MEM_REF.
1289
1290 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1291             H.J. Lu  <hongjiu.lu@intel.com>
1292
1293         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1294         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1295         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1296         insn alternatives.  Add missing alternatives.
1297         (*vec_concatv2di_rex64_sse4_1): Likewise.
1298         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1299         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1300         Require TARGET_SSE.
1301
1302 2008-05-15  Richard Guenther  <rguenther@suse.de>
1303
1304         PR tree-optimization/36009
1305         PR tree-optimization/36204
1306         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1307         (determine_invariantness_stmt): Record the loop a store is
1308         always executed in.
1309         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1310         dependency.
1311
1312 2008-05-15  Richard Guenther  <rguenther@suse.de>
1313
1314         PR tree-optimization/34330
1315         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1316         through the pointer will alias the SMT.
1317
1318 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1319
1320         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1321
1322 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1323
1324         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1325
1326 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1327             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1328
1329         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1330         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1331         (vashl_optab): New optab for vector/vector shifts.
1332         (vashr_optab): Ditto.
1333         (vlshr_optab): Ditto.
1334         (vrotl_optab): Ditto.
1335         (vrotr_optab): Ditto.
1336         (optab_subtype): New enum for optab_for_tree_code call.
1337         (optab_for_tree_code): Add enum optab_subtype argument.
1338
1339         * optabs.c (optab_for_tree_code): Take an additional argument to
1340         distinguish between a vector shift by a scalar and vector shift by
1341         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1342         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1343         vector shift by a vector.
1344         (expand_widen_pattern_expr): Pass additional argument to
1345         optab_for_tree_code.
1346
1347         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1348         vrotl_optab, vrotr_optab.
1349
1350         * expr.c (expand_expr_real_1): Update calls to
1351         optab_for_tree_code to distinguish between vector shifted by a
1352         scalar and vector shifted by a vector.
1353         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1354         (supportable_narrowing_operation): Ditto.
1355         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1356         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1357         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1358         (vect_create_epilog_for_reduction): Ditto.
1359         (vectorizable_reduction): Ditto.
1360         (vectorizable_operation): Ditto.
1361         (vect_strided_store_supported): Ditto.
1362         (vect_strided_load_supported): Ditto.
1363         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1364         * expmed.c (expand_shift): Ditto.
1365
1366         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1367         scalar type.
1368         (ashr@var{m}3): Ditto.
1369         (vashl@var{m}3): Document new vector/vector shift standard name.
1370         (vashr@var{m}3): Ditto.
1371         (vlshr@var{m}3): Ditto.
1372         (vrotl@var{m}3): Ditto.
1373         (vrotr@var{m}3): Ditto.
1374
1375         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1376         (PPERM_INVERT): Ditto.
1377         (PPERM_REVERSE): Ditto.
1378         (PPERM_REV_INV): Ditto.
1379         (PPERM_ZERO): Ditto.
1380         (PPERM_ONES): Ditto.
1381         (PPERM_SIGN): Ditto.
1382         (PPERM_INV_SIGN): Ditto.
1383         (PPERM_SRC1): Ditto.
1384         (PPERM_SRC2): Ditto.
1385
1386         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1387         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1388         allows a memory operand to be the value being added, and split it
1389         to improve vectorization.
1390         (sse5_pmacsdqh_mem): Ditto.
1391         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1392         (sse5_mulv2div2di3_high): Ditto.
1393         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1394         (vec_pack_trunc_v4si): Ditto.
1395         (vec_pack_trunc_v2di): Ditto.
1396         (sse5_pcmov_<mode>): Remove code that tried to use use
1397         andps/andnps instead of pcmov.
1398         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1399         pmacsdqh instructions.
1400         (vec_widen_smult_lo_v4si): Ditto.
1401
1402         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1403         (PPERM_INVERT): Ditto.
1404         (PPERM_REVERSE): Ditto.
1405         (PPERM_REV_INV): Ditto.
1406         (PPERM_ZERO): Ditto.
1407         (PPERM_ONES): Ditto.
1408         (PPERM_SIGN): Ditto.
1409         (PPERM_INV_SIGN): Ditto.
1410         (PPERM_SRC1): Ditto.
1411         (PPERM_SRC2): Ditto.
1412         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1413         true/false tests.
1414         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1415         comparisons.
1416         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1417         says ignore whether the last reference is a memory operand.
1418
1419 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1420             Paolo Bonzini <bonzini at gnu dot org>
1421
1422         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1423         shift patterns.
1424
1425         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1426         (vlshr<mode>3): Rename from vlshr<mode>3.
1427         (vashr<mode>3): Rename from vashr<mode>3.
1428         (mulv4sf3): Change the names of vector shift patterns.
1429         (mulv4si3): Ditto.
1430         (negv4sf2): Ditt.
1431
1432         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1433         shift insns.
1434
1435         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1436         (SI_SHLHI): Ditto.
1437         (SI_SHL): Ditto.
1438         (SI_SHLI): Ditto.
1439         (SI_ROTH): Ditto.
1440         (SI_ROTHI): Ditto.
1441         (SI_ROT): Ditto.
1442         (SI_ROTI): Ditto.
1443         (SPU_RL_0): Ditto.
1444         (SPU_RL_1): Ditto.
1445         (SPU_RL_2): Ditto.
1446         (SPU_RL_3): Ditto.
1447         (SPU_RL_4): Ditto.
1448         (SPU_RL_5): Ditto.
1449         (SPU_RL_6): Ditto.
1450         (SPU_RL_7): Ditto.
1451         (SPU_SL_0): Ditto.
1452         (SPU_SL_1): Ditto.
1453         (SPU_SL_2): Ditto.
1454         (SPU_SL_3): Ditto.
1455         (SPU_SL_4): Ditto.
1456         (SPU_SL_5): Ditto.
1457         (SPU_SL_6): Ditto.
1458         (SPU_SL_7): Ditto.
1459
1460         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1461         (floatunssidf2_internal): Change vector/vector shift names.
1462         (floatunsdidf2_internal): Ditto.
1463         (mulv8hi3): Ditto.
1464         (ashrdi3): Ditto.
1465         (ashrti3): Ditto.
1466         (cgt_df): Ditto.
1467         (cgt_v2df): Ditto.
1468         (dftsv): Ditto.
1469         (vashl<mode>3): Rename from ashl<mode>3.
1470         (vashr<mode>3): Rename from ashr<mode>3.
1471         (vlshr<mode>3): Rename from lshr<mode>3.
1472         (vrotl<mode>3): Rename from rotl<mode>3.
1473
1474 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1475
1476         PR target/36224
1477         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1478         multiply gives the wrong value when doing widening multiplies.
1479         (vec_widen_smult_lo_v4si): Ditto.
1480
1481 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1482
1483         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1484         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1485         emit_library_call_value. 
1486         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1487         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1488         * calls.c (initialize_argument_information, precompute_arguments, 
1489         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1490         (precompute_arguments): Removed flags parameter.
1491         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1492         
1493 2008-05-14  Richard Guenther  <rguenther@suse.de>
1494
1495         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1496         Make sure to register the store if the use is a PHI_NODE.
1497
1498 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1499
1500         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1501         memory if the component is to be referenced in BLKmode according
1502         to get_inner_reference.
1503
1504 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1505
1506         * calls.c (emit_library_call_value_1): Restore code clearing
1507         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1508
1509 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1510             Nicolas Roche  <roche@adacore.com>
1511
1512         * configure.ac: Add support for a "gcc_subdir" variable in
1513         config-lang.in, to denote a subdirectory where the language/GCC
1514         integration files are to be found.
1515         * configure: Regenerate.
1516
1517 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1518
1519         PR tree-optimization/36098
1520         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1521         value for the first load in the group in case of a gap.
1522         (vect_build_slp_tree): Check that there are no gaps in loads.
1523
1524 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1525
1526         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1527         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1528         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1529         emit_insn and remove unneeded code to construct extra args.
1530         (emit_no_conflict_block): Removed.
1531         * optabls.h: (emit_no_conflict_block): Removed.
1532         * cse.c (cse_extended_basic_block): Remove search for
1533         REG_NO_CONFLICT note.
1534         * global.c: Removed incorrect comment added in revision 117.
1535         * expr.c (convert_move): Change call to emit_no_conflict_block to
1536         emit_insn.
1537         * recog.c: Change comments so that they do not mention
1538         REG_NO_CONFLICT.
1539         * local_alloc.c (combine_regs): Removed last parameter.
1540         (no_conflict_p): Removed.
1541         (block_alloc): Removed note, no_conflict_combined_regno and set
1542         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1543         (combine_regs): Removed already_dead and code to look for
1544         REG_NO_CONFLICT notes.
1545         * lower_subreg (remove_retval_note): Removed code to look for
1546         REG_NO_CONFLICT block.
1547         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1548         (resolve_clobber): Remove code to process libcalls that have
1549         REG_NO_CONFLICT notes.
1550         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1551         case.
1552         * combine.c (can_combine_p, distribute_notes):  Removed
1553         REG_NO_CONFLICT case.
1554         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1555         to emit_insns.
1556         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1557         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1558         Ditto.
1559         * reg-notes.def (NO_CONFLICT): Removed.
1560
1561 2008-05-14  David S. Miller  <davem@davemloft.net>
1562
1563         * config/sparc/sparc.c (sparc_profile_hook): If
1564         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1565         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1566         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1567
1568 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1569
1570         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1571
1572 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1573
1574         PR target/36222
1575         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1576         and op1 expansion before vector concat to have less live pseudos.
1577
1578 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1579
1580         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1581         ix86_expand_vector_set if supported.
1582
1583 2008-05-13  Diego Novillo  <dnovillo@google.com>
1584             Kenneth Zadeck  <zadeck@naturalbridge.com>
1585
1586         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1587
1588         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1589         phinodes_print_statistics, init_ssanames, fini_ssanames,
1590         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1591         release_ssa_name, release_defs, replace_ssa_name_symbol,
1592         ssanames_print_statistics): Move ...
1593         * tree-flow.h: ... here.
1594         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1595         Use FN instead of cfun.
1596         (make_ssa_name_fn): Rename from make_ssa_name.
1597         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1598         * tree-flow-inline.h (make_ssa_name): Move from
1599         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1600         * omp-low.c (expand_omp_parallel):
1601         * tree-flow-inline.h (redirect_edge_var_map_result):
1602         * tree-ssa.c (init_tree_ssa): Add argument FN.
1603         Use it instead of cfun.  Update all users.
1604
1605 2008-05-13  Tom Tromey  <tromey@redhat.com>
1606
1607         PR preprocessor/22168:
1608         * doc/cpp.texi (Top): Update menu.
1609         (Alternatives to Wrapper #ifndef): New node.
1610         (Other Directives): Document deprecation.
1611         (Obsolete Features): Remove menu.
1612         (Assertions): Merge node into Obsolete Features.
1613         (Obsolete once-only headers): Move earlier; rename to Alternatives
1614         to Wrapper #ifndef.
1615         * doc/cppopts.texi: Update.
1616         * c.opt (Wdeprecated): Enable for C and ObjC.
1617         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1618         (C++ Dialect Options): Move -Wno-deprecated from here to...
1619         (Warning Options): ... here.
1620
1621 2008-05-13  Richard Guenther  <rguenther@suse.de>
1622
1623         PR middle-end/36227
1624         * fold-const.c (fold_sign_changed_comparison): Do not allow
1625         changes in pointer-ness.
1626
1627 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1628
1629         PR target/24713
1630         * config/sh/sh.c (sh_expand_prologue): Don't clear
1631         RTX_FRAME_RELATED_P for push insns.
1632
1633 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1634
1635         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1636
1637 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1638
1639         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1640         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1641         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1642
1643 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1644
1645         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1646         (*vec_concatv4sf_sse): This.
1647         (*sse2_concatv2si): Renamed to ...
1648         (*vec_concatv2si_sse2): This.
1649         (*sse1_concatv2si): Renamed to ...
1650         (*vec_concatv2si_sse): This.
1651         (*vec_concatv2di_rex): Renamed to ...
1652         (*vec_concatv2di_rex64): This.
1653         (*vec_concatv2si_sse4_1): New.
1654         (*vec_concatv2di_rex64_sse4_1): Likewise.
1655
1656 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1657
1658         PR rtl-optimization/36111
1659         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1660         that was created for swappable operands.
1661
1662 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1663
1664         PR ada/36001
1665         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1666         * configure.ac: Add call to ACX_PROG_GNAT.
1667
1668 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1669
1670         * optc-gen.awk: Fix comment typo.
1671
1672 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1673
1674         * pretty-print.c (pp_integer_with_precision): Use
1675         HOST_LONG_LONG_FORMAT.
1676
1677 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1678
1679         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1680                 
1681 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1682
1683         * config/i386/i386.c (bdesc_ptest): Removed.
1684         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1685         (bdesc_args): Add __builtin_ia32_ptestz128,
1686         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1687         (ix86_init_mmx_sse_builtins): Updated.
1688         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1689         (ix86_expand_builtin): Updated.
1690
1691 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1692
1693         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1694         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1695
1696 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1697
1698         * value-prof.c (interesting_stringop_to_profile): Do not
1699         return early for BUILT_IN_MEMPCPY.
1700
1701 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         * calls.c (expand_call): Don't use callgraph to increase
1704         preferred_stack_boundary.
1705
1706         * cgraph.h (cgraph_rtl_info): Use unsigned on
1707         preferred_incoming_stack_boundary.
1708
1709         * final.c (rest_of_clean_state): Use unsigned on
1710         preferred_stack_boundary.
1711
1712 2008-05-09  Tom Tromey  <tromey@redhat.com>
1713
1714         PR preprocessor/22231:
1715         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1716         proceeding.
1717
1718 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1719
1720         PR tree-optimization/36129
1721         * tree-ssa-ccp.c: Include value-prof.h.
1722         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1723         built-in function was folded to a constant.
1724         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1725
1726 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1727             Sebastian Pop  <sebastian.pop@amd.com>
1728
1729         * tree-scalar-evolution.c: Document instantiate_scev.
1730         (instantiate_parameters_1): Renamed instantiate_scev_1.
1731         Don't use the same loop for instantiation_loop and evolution_loop.
1732         (instantiate_scev): New.
1733         (instantiate_parameters): Moved...
1734         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1735         same loop twice.  Maintains the semantics for this function.
1736         * tree-scalar-evolution.h (instantiate_scev): Declare.
1737         (instantiate_parameters): ...here.  Now static inline.
1738         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1739         instead of resolve_mixers.
1740
1741 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1742
1743         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1744
1745 2008-05-09  Tomas Bily  <tbily@suse.cz>
1746
1747         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1748         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1749         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1750         * c-common.c (c_common_truthvalue_conversion): Likewise.
1751         * tree-object-size.c (compute_object_offset): Likewise.
1752         * tree-inline.c (estimate_num_insns_1): Likewise.
1753         * varasm.c (const_hash_1, compare_constant, copy_constant)
1754         (compute_reloc_for_constant, output_addressed_constants)
1755         (initializer_constant_valid_p): Likewise.
1756         * c-omp.c (check_omp_for_incr_expr): Likewise.
1757         * gimplify.c (gimplify_expr): Likewise.
1758         * c-typeck.c (c_finish_return): Likewise.
1759         * tree-vectorizer.c (supportable_widening_operation)
1760         (supportable_narrowing_operation): Likewise.
1761         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1762         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1763         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1764         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1765         (descr_info_loc): Likewise.
1766         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1767         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1768         (fold_unary): Likewise.
1769         * builtins.c (get_pointer_alignment): Likewise.
1770         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1771         (instantiate_parameters_1): Likewise.
1772         * tree.c (expr_align, stabilize_reference): Likewise.
1773         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1774         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1775         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1776         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1777         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1778         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1779         Likewise.
1780         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1781         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1782         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1783         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1784         (forward_propagate_comparison)
1785         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1786         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1787         * emit-rtl.c (component_ref_for_mem_expr)
1788         (set_mem_attributes_minus_bitpos): Likewise.
1789         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1790         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1791         Likewise.
1792         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1793         (build_function_call, pointer_diff, build_compound_expr)
1794         (c_finish_return): Likewise.
1795         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1796         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1797         Likewise.
1798         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1799         * expr.c (is_aligning_offset): Likewise.
1800         * tree-ssa-alias.c (is_escape_site): Likewise.
1801         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1802         (check_all_va_list_escapes): Likewise.
1803         * tree-ssa-loop-ivopts.c (determine_base_object)
1804         (determine_common_wider_type): Likewise.
1805         * dojump.c (do_jump): Likewise.
1806         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1807         * tree-gimple.c (is_gimple_cast): Likewise.
1808         * fold-const.c (decode_field_reference, )
1809         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1810         (fold_binary): Likewise.
1811         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1812         (already_warned_in_frontend_p): Likewise.
1813         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1814         * tree.c (really_constant_p, get_unwidened): Likewise.
1815         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1816         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1817         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1818         Likewise.
1819         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1820         CONVERT_EXPR_P.
1821         (CONVERT_EXPR_P): Define.
1822         (CASE_CONVERT): Define.
1823         
1824 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1825
1826         PR middle-end/36117
1827         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1828         (delete_unmarked_insns): When deleting a call, call
1829         delete_unreachable_blocks.
1830         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1831         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1832
1833 2008-05-08  Richard Guenther  <rguenther@suse.de>
1834
1835         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1836         (-ftree-salias): Likewise.
1837         (salias-max-implicit-fields): Remove param documentation.
1838         (salias-max-array-elements): Likewise.
1839         * tree-pass.h (pass_create_structure_vars): Remove.
1840         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1841         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1842         * tree-ssa-alias.c (create_structure_vars): Remove.
1843         (gate_structure_vars): Likewise.
1844         (pass_create_structure_vars): Likewise.
1845         (gate_build_alias): Likewise.
1846         (pass_build_alias): Adjust to run always and dump the function.
1847         * common.opt (ftree-salias): Hide.
1848         * passes.c (init_optimization_passes): Remove
1849         pass_create_structure_vars, adjust comment.
1850         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1851         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1852         * opts.c (decode_options): Do not set flag_tree_salias.
1853         (common_handle_option): Add OPT_ftree_salias to the backward
1854         compatibility section.
1855
1856 2008-05-08  Richard Guenther  <rguenther@suse.de>
1857
1858         * tree-flow-inline.h (var_can_have_subvars): Move ...
1859         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1860         * tree-flow.h (var_can_have_subvars): Remove.
1861         (push_fields_onto_fieldstack): Remove.
1862         (sort_fieldstack): Likewise.
1863         (struct fieldoff): Move ...
1864         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1865         alias_set and base_for_components fields.
1866         (sort_fieldstack): Make static.
1867         (push_fields_onto_fieldstack): Likewise.  Remove code that
1868         handles anything but RECORD_TYPEs.  Remove alias_set and
1869         base_for_components handling.
1870         (create_variable_info_for): Adjust.
1871
1872 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1873
1874         * common.opt (Wframe-larger-than=): Shorten the help message
1875         to one line.
1876         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1877
1878 2008-05-08  Rafael Espindola  <espindola@google.com>
1879
1880         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1881         trap.
1882         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1883         trap and that both operands are gimple values.
1884         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1885         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1886         is a fp operation.
1887
1888 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1889
1890         * read-rtl.c (join_c_conditions): Return the first string if the
1891         two strings are equal.
1892
1893 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1894
1895         * gensupport.h (pred_data): Add a "num_codes" field.
1896         (add_predicate_code): Declare.
1897         * gensupport.c (add_predicate_code): New function.
1898         (std_pred_table): Add an "allows_const_p" field.
1899         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1900         Remove the (incomplete) list of such codes from the codes field.
1901         (init_predicate_table): Use add_predicate_code.  Add all
1902         RTX_CONST_OBJs if allows_const_p is true.
1903         * genrecog.c (process_define_predicate): Use add_predicate_code.
1904
1905 2008-05-08  David Daney  <ddaney@avtrex.com>
1906             Richard Sandiford  <rsandifo@nildram.co.uk>
1907         
1908         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1909         special case of constant zero operands.
1910         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1911         old and new values.  Special case constant zero values.
1912         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1913         fails.
1914         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1915         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1916
1917 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1918
1919         PR target/36090
1920         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1921         similar RTX_CONST_OBJ before CONST_INT.
1922
1923 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1924
1925         * stmt.c (expand_stack_restore): Change sa mode if needed.
1926
1927 2008-05-08  Richard Guenther  <rguenther@suse.de>
1928
1929         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1930         return type to bool.
1931         (ix86_sol10_return_in_memory): Likewise.
1932         (ix86_i386elf_return_in_memory): Likewise.
1933         (ix86_i386interix_return_in_memory): Likewise.
1934         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1935         (ix86_sol10_return_in_memory): Likewise.
1936         (ix86_i386elf_return_in_memory): Likewise.
1937         (ix86_i386interix_return_in_memory): Likewise.
1938
1939 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1940
1941         PR bootstrap/36180
1942         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1943         fndecl argument.
1944         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1945         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1946         declared in front.
1947
1948 2008-05-08  Richard Guenther  <rguenther@suse.de>
1949
1950         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1951         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1952         (DR_SUBVARS): Remove.
1953         * tree-dfa.c (dump_subvars_for): Remove.
1954         (debug_subvars_for): Likewise.
1955         (dump_variable): Do not dump subvars.
1956         (remove_referenced_var): Do not remove subvars.
1957         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1958         (lookup_subvars_for_var): Remove.
1959         (get_subvars_for_var): Likewise.
1960         (get_subvars_at): Likewise.
1961         (get_first_overlapping_subvar): Likewise.
1962         (overlap_subvar): Likewise.
1963         * tree-flow.h (subvar_t): Remove.
1964         (struct var_ann_d): Remove subvars field.
1965         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1966         argument.  Remove special handling of SFTs.
1967         (compute_tag_properties): Likewise.
1968         (set_initial_properties): Likewise.
1969         (compute_call_clobbered): Likewise.
1970         (count_mem_refs): Likewise.
1971         (compute_memory_partitions): Likewise.
1972         (compute_flow_insensitive_aliasing): Likewise.
1973         (setup_pointers_and_addressables): Likewise.
1974         (new_type_alias): Likewise.
1975         (struct used_part): Remove.
1976         (used_portions): Likewise.
1977         (struct used_part_map): Likewise.
1978         (used_part_map_eq): Likewise.
1979         (used_part_map_hash): Likewise.
1980         (free_used_part_map): Likewise.
1981         (up_lookup): Likewise.
1982         (up_insert): Likewise.
1983         (get_or_create_used_part_for): Likewise.
1984         (create_sft): Likewise.
1985         (create_overlap_variables_for): Likewise.
1986         (find_used_portions): Likewise.
1987         (create_structure_vars): Likewise.
1988         * tree.def (STRUCT_FIELD_TAG): Remove.
1989         * tree.h (MTAG_P): Adjust.
1990         (struct tree_memory_tag): Remove base_for_components and
1991         unpartitionable flags.
1992         (struct tree_struct_field_tag): Remove.
1993         (SFT_PARENT_VAR): Likewise.
1994         (SFT_OFFSET): Likewise.
1995         (SFT_SIZE): Likewise.
1996         (SFT_NONADDRESSABLE_P): Likewise.
1997         (SFT_ALIAS_SET): Likewise.
1998         (SFT_UNPARTITIONABLE_P): Likewise.
1999         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2000         (union tree_node): Remove sft field.
2001         * alias.c (get_alias_set): Remove special handling of SFTs.
2002         * print-tree.c (print_node): Remove handling of SFTs.
2003         * tree-dump.c (dequeue_and_dump): Likewise.
2004         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2005         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2006         * tree-predcom.c (set_alias_info): Do not set subvars.
2007         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2008         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2009         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2010         (add_vars_for_offset): Remove.
2011         (add_virtual_operand): Remove special handling of SFTs.
2012         (add_call_clobber_ops): Likewise.
2013         (add_call_read_ops): Likewise.
2014         (get_asm_expr_operands): Likewise.
2015         (get_modify_stmt_operands): Likewise.
2016         (get_expr_operands): Likewise.
2017         (add_to_addressable_set): Likewise.
2018         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2019         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2020         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2021         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2022         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2023         (tree_node_structure): Likewise.
2024         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2025         handling of SFTs.
2026         (find_what_p_points_to): Likewise.
2027
2028 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2029
2030         * config/spu/spu.md: Fixed subti3 pattern.
2031
2032 2008-05-08  Richard Guenther  <rguenther@suse.de>
2033
2034         PR middle-end/36154
2035         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2036         sure to create a representative for trailing arrays for PTA.
2037
2038 2008-05-08  Richard Guenther  <rguenther@suse.de>
2039
2040         PR middle-end/36172
2041         * fold-const.c (operand_equal_p): Two objects which types
2042         differ in pointerness are not equal.
2043
2044 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2045
2046         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2047         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2048         (emit_library_call_value_1): Add new variable fndecl initialized by
2049         NULL_TREE. It should be the decl type of orgfun, but this information
2050         seems not to be available here, so it uses the default calling abi.
2051         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2052         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2053         by TARGET_RETURN_IN_MEMORY.
2054         * config/i386/i386-interix.h: Likewise.
2055         * config/i386/i386.h: Likewise.
2056         * config/i386/i386elf.h: Likewise.
2057         * config/i386/ptx4-i.h: Likewise.
2058         * config/i386/sol2-10.h: Likewise.
2059         * config/i386/sysv4.h: Likewise.
2060         * config/i386/vx-common.h: Likewise.
2061         * config/cris/cris.h: Removed #if 0 clause.
2062         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2063         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2064         argument.
2065         (ix86_sol10_return_in_memory): Likewise.
2066         (ix86_i386elf_return_in_memory): New.
2067         (ix86_i386interix_return_in_memory): New.
2068         * config/mt/mt-protos.h (mt_return_in_memory): New.
2069         * config/mt/mt.c: Likewise.
2070         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2071         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2072         * config/bfin/bfin.h: Likewise.
2073         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2074         argument.
2075         * config/bfin/bfin.c: Likewise.
2076         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2077         * config/alpha/unicosmk.h: Likewise.
2078         * config/i386/cygming.h: Likewise.
2079         * config/iq2000/iq2000.h: Likewise.
2080         * config/mips/mips.h: Likewise.
2081         * config/mn10300/mn10300.h: Likewise.
2082         * config/rs6000/rs6000.h: Likewise.
2083         * config/score/score.h: Likewise.
2084         * config/spu/spu.h: Likewise.
2085         * config/v850/v850.h: Likewise.
2086         * defaults.h: Likewise.
2087         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2088         * expr.c (emit_block_move): Adjust use of
2089         OUTGOING_REG_PARM_STACK_SPACE.
2090         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2091         OUTGOING_REG_PARM_STACK_SPACE.
2092         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2093
2094 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2095
2096         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2097         on OMP_RETURN for OMP_FOR.
2098
2099         PR debug/35896
2100         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2101         (fortran_common): New function.
2102         (gen_variable_die): Call fortran_common instead of common_check,
2103         adjust for it returning tree instead of rtx.  Formatting.
2104
2105 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2106
2107         PR rtl/7335
2108         PR rtl/33826
2109         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2110         * c-decl.c (merge_decls): Ditto.
2111         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2112         to RTL_CONST_OR_PURE_CALL_P.
2113         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2114         Initialized DECL_LOOPING_CONST_PURE.
2115         (process_call_operands): Set tree_side_effects properly.
2116         * tree.h (TREE_READONLY_DECL_P): Removed.
2117         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2118         (DECL_LOOPING_OR_CONST_P): New macro.
2119         (struct tree_function_decl): Added looping_const_or_pure_p.
2120         (ECF_*) Renumbered.
2121         (ECF_LOOPING_OR_CONST_P): New macro.
2122         * rtlanal.c (pure_const_p): Removed.
2123         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2124         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2125         to RTL_CONST_CALL_P.
2126         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2127         (check_decl, check_tree, check_call, scan_function): Initialize
2128         looping.
2129         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2130         (static_execute): Set looping true for recursive functions.
2131         Undo setting state to IPA_NEITHER for recursive functions.
2132         * cse.c (cse_insn): 
2133         * ifcvt.c (noce_can_store_speculate_p): Changed
2134         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2135         RTL_CONST_OR_PURE_CALL_P.
2136         * dse.c (scan_insn): Ditto.
2137         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2138         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2139         RTL_CONST_OR_PURE_CALL_P.
2140         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2141         pure_call_p to RTL_CONST_CALL_P.
2142         * gimplify.c (gimplify_call_expr): Clear side effects for
2143         non-looping pure and constant calls.
2144         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2145         (flags_from_decl_or_type): Set ecf flags from decl flags.
2146         (initialize_argument_information): Turn off
2147         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2148         Change const to pure if callee_copies is true rather than just
2149         turning off const.
2150         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2151         way of marking pure calls.
2152         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2153         Remove hack that was supposed to fix pr7335 and remove old
2154         way of marking pure calls.
2155         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2156         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2157         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2158         RTL_CONST_OR_PURE_CALL_P.
2159         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2160         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2161         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2162         * sched-deps.c (schedule_analyze): Ditto.
2163         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2164         return_val field of calls to represent pure and const function info.
2165         (CONST_OR_PURE_CALL_P): Deleted macro.
2166         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2167         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2168         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2169         TREE_READONLY.
2170         * tree-optimize.c (execute_fixup_cfg): Added test for
2171         ECF_LOOPING_CONST_OR_PURE.
2172         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2173         DECL_PURE_P.
2174         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2175         effects for looping pure or const calls.
2176         (verify_gimple_expr): Added verification code. 
2177         * config/alpha/alpha.c (alpha_legitimize_address,
2178         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2179         RTL_CONST_CALL_P.
2180         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2181         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2182         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2183         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2184         RTL_CONST_OR_PURE_CALL_P.
2185         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2186         and const calls to be deleted.
2187
2188 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2189
2190         PR target/35714
2191         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2192         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2193         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2194         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2195         to handle nonimmediate operands.
2196         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2197         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2198         to handle nonimmediate operands.
2199         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2200         (mmx_pmulhrwv4hi3): New expander.  Use
2201         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2202         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2203         (sse2_umulv1siv1di3): New expander.  Use
2204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2205         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2206         (mmx_eq<mode>3): New expander.  Use
2207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2208         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2209         (mmx_uavgv8qi3): New expander.  Use
2210         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2211         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2212         (mmx_uavgv4hi3): New expander.  Use
2213         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2214
2215         * config/i386/sse.md
2216         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2217         to handle nonimmediate operands.
2218         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2219         to handle nonimmediate operands.
2220         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2221         to handle nonimmediate operands.
2222         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2223         to handle nonimmediate operands.
2224         (sse2_unpckhpd_exp): New expander.  Use
2225         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2226         (sse2_unpcklpd_exp): New expander.  Use
2227         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2228         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2229         to handle nonimmediate operands.
2230         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2231         to handle nonimmediate operands.
2232         (*sse2_<plusminus_insn><mode>3): Rename from
2233         sse2_<plusminus_insn><mode>3 insn pattern.
2234         (sse2_<plusminus_insn><mode>3): New expander.  Use
2235         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2236         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2237         (sse2_umulv2siv2di3): New expander.  Use
2238         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2239         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2240         (sse4_1_mulv2siv2di3): New expander.  Use
2241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2242         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2243         (sse2_pmaddwd): New expander.  Use
2244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2245         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2246         (sse2_eq<mode>3): New expander.  Use
2247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2248         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2249         (sse4_1_eqv2di3): New expander.  Use
2250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2251         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2252         (sse2_uavgv16qi3): New expander.  Use
2253         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2254         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2255         (sse2_uavgv16qi3): New expander.  Use
2256         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2257         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2258         (sse2_uavgv8hi3): New expander.  Use
2259         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2260         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2261         (ssse3_pmulhrswv8hi3): New expander.  Use
2262         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2263         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2264         (ssse3_pmulhrswv4hi3): New expander.  Use
2265         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2266
2267         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2268         (<sse>_vmmul<mode>3): Ditto.
2269         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2270         (divv2df3): Ditto.
2271         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2272         (ssse3_pmaddubsw): Ditto.
2273
2274         * config/i386/i386.c (struct_builtin_description)
2275         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2276         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2277         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2278         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2279         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2280         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2281         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2282         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2283         (ix86_fixup_binary_operands): Assert that src1
2284         and src2 must have the same mode when swapped.
2285         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2286         and ix86_binary_operator_ok.  Do not force operands in registers
2287         when optimizing.
2288
2289 2008-05-07  Jan Hubicka  <jh@suse.cz>
2290
2291         * cgraph.c (dump_cgraph_node): Update.
2292         * cgraph.h (cgraph_local_info): Break out inline summary.
2293         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2294         hook.
2295         * ipa-inline (inline_summary): New accestor function.
2296         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2297         cgraph_decide_inlining, compute_inline_parameters): Update.
2298         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2299
2300 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2301
2302         Cleanup ColdFire scheduling support and add V4 pipeline model.
2303
2304         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2305         (define_attr cpu): Add cfv4 value.
2306         (define_attr type, define_attr type1): Merge into a single 'type'
2307         attribute.  Update all uses.
2308         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2309         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2310         Update all uses.
2311         (define_attr opx_mem, define_attr opy_mem): Remove.
2312         (define_attr op_mem): Clean up, update comment.
2313         (define_attr size): Use specific values instead of general int.
2314         (define_attr guess, define_attr split): Remove.  Update all uses.
2315         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2316         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2317         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2318         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2319         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2320         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2321         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2322         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2323         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2324         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2325         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2326         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2327         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2328         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2329         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2330         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2331         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2332         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2333         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2334         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2335         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2336         Update or set attributes.
2337         (stack_tie): New fake instruction.
2338
2339         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2340         (m68k_sched_attr_size): Update declaration.
2341         (m68k_sched_attr_type2): Remove.
2342         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2343         Declare new bypass predicates.
2344
2345         * config/m68k/m68k.c (m68k_sched_issue_rate,
2346         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2347         implementations.
2348         (TARGET_SCHED_ISSUE_RATE,
2349         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2350         (override_options): Handle scheduling for ColdFire V4 core.
2351         (m68k_expand_prologue): Emit stack_tie.
2352         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2353         'OP_TYPE_FPN'.  Update all uses.
2354         (sched_guess_p): Remove.
2355         (sched_address_type): Handle symbolic addresses.
2356         (sched_get_operand): New static function.
2357         (sched_operand_type): Merge into sched_attr_op_type.
2358         (sched_attr_op_type): Handle FP registers, handle quick constants,
2359         update.
2360         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2361         (m68k_sched_attr_size): Update.  Move logic to ...
2362         (sched_get_attr_size_int): New static function.
2363         (sched_get_opxy_mem_type): New static function.
2364         (m68k_sched_attr_op_mem): Update.
2365         (m68k_sched_attr_type2): Remove.
2366         (sched_cfv4_bypass_data): New static variable.
2367         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2368         (m68k_sched_issue_rate): Implement scheduler hook.
2369         (struct _sched_ib: enabled_p): New field.
2370         (m68k_sched_variable_issue): Update.  Handle V4.
2371         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2372         sched_dump_class_func_t, sched_dump_split_class,
2373         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2374         sched_dump_dfa_class, m68k_sched_dump): Remove.
2375         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2376         hook.
2377         (m68k_sched_init_global): Remove statisctics dumping, introduce
2378         sanity check that all instructions have pipeline reservations.  Handle
2379         ColdFire V4 core.
2380         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2381         Handle ColdFire V4 core.
2382         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2383         New static functions.
2384         (m68k_sched_address_bypass_p): New bypass predicate.
2385         (sched_get_indexed_address_scale): New static function.
2386         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2387
2388         * cf.md: Update comments.
2389         (define_attr type2): Remove.  Use 'type' attribute instead.
2390         Update all uses.
2391         (cf_ib): Rename to cfv123_ib.  Update all uses.
2392         (cf_oep): Rename to cfv123_oep.  Update all uses.
2393         (cf_chr): Rename to cfv123_chr.  Update all uses.
2394         (cf_mem): Rename to cfv123_mem.  Update all uses.
2395         (cf_mac): Move to more appropriate place.
2396         (cfv123_guess): New automaton and cpu_unit.
2397         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2398         Update uses of 'size' attribute.  Handle before reload scheduling.
2399         (cfv123_guess): New dummy reservation for unhandled instructions.
2400         (cfv4_*): Pipeline description of ColdFire V4 core.
2401         (ignore): New reservation to handle 'ignore' type.
2402
2403 2008-05-07  Ian Lance Taylor  <iant@google.com>
2404
2405         PR middle-end/36013
2406         * gimplify.c (find_single_pointer_decl_1): Don't look through
2407         indirections.
2408         (find_single_pointer_decl): Adjust comments.
2409
2410 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2411
2412         PR middle-end/36137
2413         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2414         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2415
2416         PR middle-end/36106
2417         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2418         integral type rather than floating point, then VIEW_CONVERT_EXPR
2419         to the floating point type.
2420
2421 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2422
2423         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2424         TFmode op0 to register.
2425
2426 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2427
2428         * c-decl.c (grokdeclarator): Comment typo.
2429
2430 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2431
2432         * tree-flow.h: Remove prototype for computed_goto_p.
2433         * tree-cfg.c (computed_goto_p): Make static.
2434
2435 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2436
2437         PR target/35657
2438         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2439         (contains_aligned_value_p): This.  Handle _Decimal128.
2440         (ix86_function_arg_boundary): Only align _Decimal128 to its
2441         natural boundary and handle it properly.
2442
2443 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2444
2445         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2446         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2447         (ipcp_method_set_orig_node): Removed.
2448         (ipcp_cval_get_cvalue_type): Removed.
2449         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2450         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2451         (ipcp_cval_set_cvalue_type): Removed.
2452         (ipcp_cval_get_cvalue): Removed.
2453         (ipcp_cval_set_cvalue): Removed.
2454         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2455         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2456         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2457         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2458         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2459         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2460         (ipcp_get_ith_lattice): Changed parameters.
2461         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2462         (ipcp_lattice_from_jfunc): Changed parameters.
2463         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2464         (ipcp_method_cval_print): Added temporary variable info.
2465         (ipcp_redirect): Removed already unused local variable caller.
2466         (ipcp_redirect): New temporary variable orig_callee_info
2467         (ipcp_redirect): Removed newly unused local variable callee.
2468         (ipcp_redirect): Removed (a bit confusing) local variable type.
2469         (ipcp_insert_stage): Added local variable info.
2470         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2471         renamed too
2472         (ipcp_formal_create): Removed.
2473         (ipcp_method_cval_set): Removed.
2474         (ipcp_propagate_stage): Renamed lattice variables.
2475         (ipcp_method_cval_set_cvalue_type): Removed.
2476         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2477         (ipcp_print_all_lattices): Changed printed strings to refer to 
2478         lattices rather than cvals.
2479         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2480         (ipcp_propagate_const): Changed formal parameters.
2481         (build_const_val): Changed formal parameters.
2482         (ipcp_insert_stage): Removed useless variable cvalue
2483         (build_const_val): Changed formal parameters.
2484         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2485         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2486         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2487         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2488         (ipcp_print_func_profile_counts): Changed string from "method" to 
2489         "function"
2490         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2491         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2492         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2493         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2494         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2495         (ipcp_lat_is_const): Changed parameters and made inline.
2496         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2497         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2498         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2499         the predicate condition directly
2500         (ipcp_propagate_stage): Added local variable args. Removed local
2501         variable callee.  (Both are mere code simplifications.)
2502         (ipcp_method_dont_insert_const): Renamed to
2503         ipcp_node_not_modifiable_p.
2504         (ipcp_node_not_modifiable_p): Made inline.
2505         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2506         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2507         (ipcp_print_all_lattices): Removed variable cvalue
2508         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2509         Updated comments.
2510
2511 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2512
2513         * tree-sra.c (try_instantiate_multiple_fields): Early return
2514         if field has POINTER_TYPE.
2515
2516 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2517
2518         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2519         by using 'q' specifier for instruction.
2520         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2521
2522 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2523
2524         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2525         Change mode of zero_extract from QImode to HImode.
2526         (sign bit tests peepholes): (Ditto.).
2527
2528 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2529
2530         * config/i386/mmx.md: Remove double backslashes from asm templates.
2531         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2532         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2533         to handle nonimmediate operands.
2534         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2535         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2536         to handle nonimmediate operands.
2537         (*mmx_<code>v2sf3_finite): New insn pattern.
2538         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2539         (mmx_<code>v2sf3): New expander.  Use
2540         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2541         (mmx_<plusminus_insn><mode>3): New expander.  Use
2542         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2543         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2544         (mmx_add<mode>3): Removed.
2545         (mmx_ssadd<mode>3): Ditto.
2546         (mmx_usadd<mode>3): Ditto.
2547         (mmx_sub<mode>3): Ditto.
2548         (mmx_sssub<mode>3): Ditto.
2549         (mmx_ussub<mode>3): Ditto.
2550         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2551         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2552         to handle nonimmediate operands.
2553         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2554         insn pattern.
2555         (mmx_smulv4hi3_highpart): New expander.  Use
2556         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2557         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2558         insn pattern.
2559         (mmx_umulv4hi3_highpart): New expander.  Use
2560         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2561         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2562         (mmx_<code>v4hi3): New expander.  Use
2563         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2564         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2565         (mmx_<code>v8qi3): New expander.  Use
2566         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2567         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2568         (mmx_<code><mode>3): New expander.  Use
2569         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2570
2571 2008-05-05  Jan Hubicka  <jh@suse.cz>
2572
2573         PR tree-optimization/36118
2574         * passes.c (pass_init_dump_file): Fix dump header.
2575
2576 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2577
2578         PR middle-end/36141
2579         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2580         VCE for function decls.
2581
2582 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2583
2584         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2585
2586 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2587
2588         * config/i386/i386.md (sat_plusminus): New.
2589         (plusminus_insn): Likewise.
2590         (plusminus_mnemonic): Likewise.
2591         (addsub): Removed.
2592         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2593         (*<addsub><mode>3_cc_overflow): Renamed to ...
2594         (*<plusminus_insn><mode>3_cc_overflow): This.
2595         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2596         (*<plusminus_insn>si3_zext_cc_overflow): This.
2597
2598         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2599         (<plusminus_insn><mode>3): This.
2600         (*<addsub><mode>3): Renamed to ...
2601         (*<plusminus_insn><mode>3): This.
2602         (<sse>_vm<addsub><mode>3): Renamed to ...
2603         (<sse>_vm<plusminus_insn><mode>3): This.
2604         (sse3_h<addsub>v4sf3): Renamed to ...
2605         (sse3_h<plusminus_insn>v4sf3): This.
2606         (sse3_h<addsub>v2df3): Renamed to ...
2607         (sse3_h<plusminus_insn>v2df3): This.
2608         (<plusminus_insn><mode>3): New.
2609         (*<plusminus_insn><mode>3): Likewise.
2610         (sse2_<plusminus_insn><mode>3): Likewise.
2611         (add<mode>): Removed.
2612         (*add<mode>3): Likewise.
2613         (sse2_ssadd<mode>3): Likewise.
2614         (sse2_usadd<mode>3): Likewise.
2615         (sub<mode>3): Likewise.
2616         (*sub<mode>3): Likewise.
2617         (sse2_sssub<mode>3): Likewise.
2618         (sse2_ussub<mode>3): Likewise.
2619
2620 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2621
2622         * gthr-single.h: Add in required interface elements as per gthr.h.
2623         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2624         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2625         Generalize UNUSED macro. 
2626         (__gthread_once): Add.
2627         (__gthread_key_create): Add.
2628         (__gthread_key_delete): Add.
2629         (__gthread_getspecific): Add.
2630         (__gthread_setspecific): Add.
2631         
2632 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2633
2634         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2635         the same size types for the indirect reference on the rhs, then
2636         create a VCE.
2637
2638 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2639
2640         * config/i386/i386.md
2641         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2642         one insn template instead of template series.
2643         (*xordi_1_rex64): Ditto.
2644         (*xordi_2_rex64): Ditto.
2645
2646 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2647
2648         PR tree-optimization/36119
2649         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2650         in case of SLP.
2651
2652 2008-06-04  Jan Hubicka  <jh@suse.cz>
2653
2654         tree-optimization/36100
2655         * tree-pass.h (pass_O0_always_inline): Declare.
2656         * ipa-inline.c (inline_transform): Remove dead code.
2657         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2658         pass_O0_always_inline): New.
2659         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2660
2661 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2662
2663         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2664         mnemonic in this_param move for TARGET_64BIT.
2665
2666 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2667
2668         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2669         (*strmovsi_rex_1): Ditto.
2670         (*strsetsi_1): Ditto.
2671         (*strsetsi_rex_1): Ditto.
2672
2673         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2674         adddicc expanders using SWI mode iterator.
2675
2676 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2677
2678         PR target/36121
2679         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2680         argument handling.
2681
2682 2008-05-04  David S. Miller  <davem@davemloft.net>
2683
2684         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2685         (sparc*-*-linux*): Use linux.h in tm_file.
2686         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2687         compiler defaulting to 32-bit.
2688         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2689         no longer needed.
2690         * config/sparc/linux.h: Remove definitions now obtained
2691         properly from linux.h
2692         * config/sparc/linux64.h: Likewise.
2693         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2694         don't want this setting for 32-bit builds in a biarch compiler.
2695         * doc/install.texi: Add sparc-linux to list of targets
2696         supporting --enable-targets=all.
2697
2698 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2699
2700         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2701
2702 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2703
2704         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2705         after V4SI_FTYPE_V8HI.
2706         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2707         case V4SI_FTYPE_V2DF.
2708
2709 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2710
2711         * doc/invoke.texi (max-flow-memory-locations): Removed.
2712         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2713         
2714 2008-05-03  Richard Guenther  <rguenther@suse.de>
2715
2716         PR middle-end/34973
2717         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2718
2719 2008-05-02  David S. Miller  <davem@davemloft.net>
2720
2721         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2722
2723 2008-05-02  Simon Baldwin <simonb@google.com>
2724
2725         PR bootstrap/36108
2726         * c-common.h (warn_array_subscript_range): Removed.
2727         * c-common.c (warn_array_subscript_range): Ditto.
2728         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2729         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2730
2731 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2732
2733         * config/i386/i386.c (ix86_special_builtin_type): New.
2734         (bdesc_special_args): Likewise.
2735         (ix86_expand_special_args_builtin): Likewise.
2736         (ix86_init_mmx_sse_builtins): Updated.
2737         (ix86_expand_builtin): Updated.
2738         (ix86_expand_store_builtin): Removed.
2739         (ix86_expand_unop_builtin): Likewise.
2740
2741         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2742         * config/i386/mmintrin.h (__v2sf): Here.
2743
2744         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2745         const __v2sf.
2746         (_mm_loadl_pi): Likewise.
2747         (_mm_storeh_pi): Replace __v2si with __v2sf.
2748         (_mm_storel_pi): Likewise.
2749
2750         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2751         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2752         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2753         __builtin_ia32_loadlpd.
2754
2755 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2756
2757         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2758         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2759         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2760         (ix86_init_mmx_sse_builtins): Updated.
2761         (ix86_expand_args_builtin): Likewise.
2762         (ix86_expand_builtin): Likewise.
2763         (ix86_expand_unop1_builtin): Renamed to ...
2764         (ix86_expand_unop_vec_merge_builtin): This.
2765
2766 2008-05-01  Jan Hubicka  <jh@suse.cz>
2767
2768         PR bootstrap/36100
2769         * ipa-inline.c (inline_generate_summary): Make static.
2770         (inline_transform): Do not call inlining at -O0; make static.
2771         * passes.c (execute_todo): Add sanity check.
2772         (execute_one_ipa_transform_pass): Execute proper flags.
2773
2774 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2775
2776         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2777         (DECL_NONADDRESSABLE_P): Likewise.
2778         * alias.c (record_component_aliases): Fix comment.
2779
2780 2008-05-01  Simon Baldwin <simonb@google.com>
2781
2782         * c-common.h (warn_array_subscript_range): New function.
2783         * c-common.c (warn_array_subscript_range): Ditto.
2784         * tree-vrp.c (check_array_ref): Corrected code to agree with
2785         comment, ignoring only arrays of size 0 or size 1.
2786         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2787
2788 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2789
2790         * config/i386/i386.c (ix86_builtin_type): Replace
2791         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2792         (bdesc_args): Updated.
2793         (ix86_init_mmx_sse_builtins): Likewise.
2794         (ix86_expand_args_builtin): Likewise.
2795
2796         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2797         with __v1di.
2798
2799         * doc/extend.texi: Correct __builtin_ia32_palignr.
2800
2801 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2802
2803         PR target/36095
2804         * config/i386/i386.c (bdesc_crc32): Removed.
2805         (ix86_expand_crc32): Likewise.
2806         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2807         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2808         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2809         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2810         UINT_FTYPE_UINT_UCHAR.
2811         (bdesc_args): Updated. Add crc32 builtins.
2812         (ix86_init_mmx_sse_builtins): Updated.
2813         (ix86_expand_args_builtin): Updated to support subreg.
2814
2815         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2816
2817 2008-05-01  Jan Hubicka  <jh@suse.cz>
2818
2819         * tree-pass.h (opt_pass): Add IPA_PASS.
2820         (varpool_node, cgraph_node): Forward declare.
2821         (ipa_opt_pass): Define.
2822         (pass_ipa_inline): Turn into ipa_opt_pass.
2823         (pass_apply_inline): Remove.
2824         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2825         (apply_inline): Turn into ....
2826         (inline_transform): ... this one.
2827         (inline_generate_summary): New function.
2828         (pass_apply_inline): Remove.
2829         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2830         vector.
2831         (struct function): Add ipa_transforms_to_apply.
2832         * passes.c (register_one_dump_file): Work on IPA_PASS.
2833         (init_optimization_passes): Remove pass_inline_parameters and
2834         pass_apply_inline.
2835         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2836         (execute_one_pass) ... here; apply transforms when possible.
2837         (add_ipa_transform_pass, execute_ipa_summary_asses,
2838         execute_one_ipa_transform_pass): New.
2839         (execute_ipa_pass_list): Update for IPA_PASS type.
2840
2841 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2842
2843         * config/i386/i386.c (ix86_builtin_type): Add
2844         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2845         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2846         (bdesc_args): Add SSE4a builtins.
2847         (ix86_init_mmx_sse_builtins): Updated.
2848         (ix86_expand_args_builtin): Likewise.
2849         (ix86_expand_builtin): Likewise.
2850
2851 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2852
2853         * config/i386/i386.c (ix86_builtin_type): Add
2854         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2855         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2856         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2857         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2858         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2859         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2860         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2861         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2862         and DI_FTYPE_DI_DI_INT.
2863         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2864         (ix86_init_mmx_sse_builtins): Updated.
2865         (ix86_expand_args_builtin): Likewise.
2866         (ix86_expand_builtin): Likewise.
2867         (ix86_expand_binop_imm_builtin): Removed.
2868
2869         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2870
2871 2008-04-30  Richard Guenther  <rguenther@suse.de>
2872
2873         PR tree-optimization/32921
2874         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2875
2876 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2877
2878         * config/arm/arm.c (arm_unwind_emit): Use
2879         crtl->all_throwers_are_sibcalls instead of
2880         cfun->all_throwers_are_sibcalls.
2881         (arm_output_fn_unwind): Likewise.
2882         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2883         instead of cfun->uses_pic_offset_table.
2884         (frv_expand_prologue): Likewise.
2885         (frv_frame_pointer_required): Likewise.
2886         (frv_expand_fdpic_call): Likewise.
2887         (frv_emit_movsi): Likewise.
2888         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2889         cfun->returns_pcc_struct instead of
2890         current_function_returns_pcc_struct.
2891         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2892         instead of cfun->calls_eh_return.
2893         (m32c_pushm_popm): Likewise.
2894         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2895         "extern" declaration.
2896
2897 2008-04-30  Richard Guenther  <rguenther@suse.de>
2898
2899         PR tree-optimization/21636
2900         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2901         constant address.
2902         (evaluate_stmt): Print the likely value.
2903         (ccp_visit_stmt): Avoid excessive vertical spacing.
2904
2905 2008-04-30  Rafael Espindola  <espindola@google.com>
2906
2907         * builtins.c (fold_call_expr): Return realret.
2908         * tree-ssa-threadedge.c
2909         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2910         __builtin_object_size.
2911
2912 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2913
2914         * gcc.c (wrapper_string): New variable.
2915         (insert_wrapper): New function.
2916         (execute): New option -wrapper.
2917         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2918
2919 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2920
2921         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2922         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2923         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2924         from...
2925         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2926         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2927         config/rs6000/e500crtres64gprctr.asm,
2928         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2929         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2930         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2931         config/rs6000/e500crtsav64gprctr.asm,
2932         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2933         config/rs6000/e500crtsavg64gprctr.asm: New files.
2934         * config/rs6000/t-ppccomm: Add build rules for new files.
2935         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2936         * config/rs6000/t-netbsd: Add build rules for new files.
2937         (LIB2FUNCS_STATIC_EXTRA): New variable.
2938         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2939         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2940         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2941
2942 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2943
2944         * config/i386/i386.c (ix86_builtin_type): Add
2945         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2946         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2947         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2948         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2949         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2950         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2951         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2952         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2953         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2954         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2955         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2956         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2957         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2958         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2959         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2960         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2961         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2962         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2963         V1DI_FTYPE_V2SI_V2SI.
2964         (bdesc_2arg): Moved to ...
2965         (bdesc_args): Here.
2966         (ix86_init_mmx_sse_builtins): Updated.
2967         (ix86_expand_args_builtin): Updated.  Take a pointer
2968         to const struct builtin_description.  Handle comparison
2969         builtin functions.
2970         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2971         (ix86_expand_builtin): Updated.
2972
2973         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2974         (ssse3_pmaddubsw128): This.
2975         (ssse3_pmaddubswv4hi3): Renamed to ...
2976         (ssse3_pmaddubsw): This.
2977
2978         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2979         (__builtin_ia32_packssdw128): Likewise.
2980         (__builtin_ia32_packuswb128): Likewise.
2981         (__builtin_ia32_pmaddubsw): Likewise.
2982         (__builtin_ia32_pmaddubsw128): Likewise.
2983
2984 2008-04-30  Richard Guenther  <rguenther@suse.de>
2985
2986         PR tree-optimization/14847
2987         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2988         (recognize_bits_test): Use it.
2989         (recognize_single_bit_test): Likewise.
2990
2991 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2992
2993         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2994         instead of setting number of formal parameters to zero.
2995         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2996         either.
2997         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2998         which are called with variable number of arguments.
2999         (ipcp_insert_stage): Explicitely skipping all nodes which are
3000         called with variable number of arguments.
3001         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3002         number of parameters.
3003
3004         * ipa-prop.h (struct ipa_node_params): Added flag
3005         called_with_var_arguments
3006         (ipa_set_param_count): Added.  Changed sole setter to use it.
3007         (ipa_get_param_count): Added.  All readers of param_count
3008         converted to use it instead.
3009         (ipa_set_called_with_variable_arg): Added.
3010         (ipa_is_called_with_var_arguments): Added.
3011         (ipa_get_ith_param): Added.  All readers of param_decls converted
3012         to use it instead.
3013         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3014         changed to use it. 
3015         (ipa_get_cs_argument_count): Added, all readers of argument_count
3016         changed to cal it.
3017         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3018         to use it.
3019         
3020         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3021         (struct ipcp_lattice): Renamed cval_type to type
3022         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3023
3024         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3025         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3026         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3027         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3028         (build_const_val): Changed the type of parameter cvalue to tree
3029         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3030         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3031         
3032         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3033         constant 
3034
3035         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3036         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3037         (ipa_add_method): Renamed to ipa_push_func_to_list
3038         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3039         (ipa_callsite_param_count): Removed.
3040         (ipa_callsite_param_count_set): Removed.
3041         (ipa_callsite_param): Removed.
3042         (ipa_callsite_callee): Removed.
3043         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3044         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3045         (ipa_method_formal_count): Removed.
3046         (ipa_method_formal_count_set): Removed.
3047         (ipa_method_get_tree): Removed.
3048         (ipa_method_tree_map_create): Removed.
3049         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3050         (ipa_create_param_decls_array): Creates the array itself
3051         (ipa_create_param_decls_array): Temporary variable info instead of 
3052         a few dereferences.
3053         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3054         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3055         (get_type): Removed.
3056         (ipa_jf_get_info_type): Removed.
3057         (ipa_node_create): Renamed to ipa_create_node_params
3058         (ipa_free): Renamed to ipa_free_all_node_params
3059         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3060         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3061         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3062         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3063         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3064         ipa_free_all_edge_args
3065         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3066         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3067         (ipa_create_methodlist_node): Removed.
3068         (ipa_methodlist_method): Removed.
3069         (ipa_methodlist_method_set): Removed.
3070         (ipa_methodlist_next_method): Removed.
3071         (ipa_methodlist_next_method_set): Removed.
3072         (ipa_method_is_modified): Removed.
3073         (ipa_method_modify_create): Removed.
3074         (ipa_method_modify_init): Temporary variable info instead of a few 
3075         dereferences.
3076         (ipa_detect_param_modifications): Temporary variable info instead of 
3077         a few dereferences.
3078         (ipa_compute_jump_functions): Temporary variable info instead of 
3079         a few dereferences.
3080         (ipa_method_modify_set): Removed.
3081         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3082         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3083         than craph_node as the first parameter.
3084         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3085         (ipa_method_modify_init): Removed.
3086         (ipa_compute_jump_functions): Added a temp variable instead of 
3087         repeatadly dereferencing the cgraph_edge.aux pointer
3088         (ipa_callsite_param_set_type): Removed.
3089         (ipa_compute_jump_functions): i renamed to index and moved to 
3090         an inner block
3091         (ipa_callsite_param_set_info_type_formal): Removed.
3092         (ipa_callsite_param_set_info_type): Removed.
3093         (ipa_callsite_param_map_create): Removed.
3094         (ipa_callsite_tree): Removed.
3095         (ipa_callsite_caller): Removed.
3096         (ipa_pop_func_from_list): return_method removed to return_func
3097
3098         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3099         prefixed all values with IPA_. Changed all users.
3100         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3101         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3102         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3103         (union parameter_info): Renamed to jump_func_value.
3104         (union jump_func_value): Renamed value to constant
3105         (struct ipa_jump_func): Renamed info_type to value
3106         (struct ipa_node): Renamed to ipa_node_params
3107         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3108         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3109         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3110         (struct ipa_edge): Renamed to ipa_edge_args
3111         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3112         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3113         (struct ipa_methodlist): Renamed to ipa_func_list
3114         (struct ipa_func_list): method_p renamed to node, next_method
3115         renamed to next
3116         (ipa_methodlist_p): Removed, switched all users to struct pointer
3117         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3118
3119 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3120
3121         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3122         (rs6000_emit_epilogue): Use backchain to restore only when we
3123         have a large frame.  Make use of frame pointer to restore if we
3124         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3125
3126 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3127
3128         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3129         Add mode to zero_extract.
3130         (sign bit tests peepholes): (Ditto.).
3131
3132 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3133
3134         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3135         Instructions in comments with SSE3.
3136         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3137         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3138         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3139         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3140         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3141         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3142         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3143         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3144         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3145         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3146         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3147         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3148         (bdesc_sse_args): Renamed to ...
3149         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3150         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3151         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3152         IX86_BUILTIN_FABSQ.
3153         (bdesc_1arg): Moved to ...
3154         (bdesc_args): Here.
3155         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3156         Instructions in comments with SSE3.
3157         (ix86_expand_sse_operands_builtin): Renamed to ...
3158         (ix86_expand_args_builtin): This.  Updated.
3159         (ix86_expand_unop1_builtin): Update comments.
3160         (ix86_expand_builtin): Updated.
3161
3162 2008-04-29  Richard Guenther  <rguenther@suse.de>
3163
3164         PR tree-optimization/36078
3165         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3166         Update virtual SSA form after cleaning up the CFG.
3167
3168 2008-04-29  Richard Guenther  <rguenther@suse.de>
3169
3170         PR middle-end/15255
3171         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3172
3173 2008-04-29  Richard Guenther  <rguenther@suse.de>
3174
3175         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3176         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3177         (compute_flow_insensitive_aliasing): Do not treat
3178         PTR_IS_REF_ALL pointers special.
3179         (get_smt_for): Likewise.
3180         (may_alias_p): Re-structure.
3181         (is_escape_site): A ref-all pointer conversion is not an escape site.
3182         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3183         PTR_IS_REF_ALL pointers special.
3184         * tree-ssa-structalias.h (struct alias_info): Remove
3185         ref_all_symbol_mem_tag field.
3186         (PTR_IS_REF_ALL): Remove.
3187
3188 2008-04-29  Richard Guenther  <rguenther@suse.de>
3189
3190         PR middle-end/36077
3191         * fold-const.c (extract_muldiv_1): In combining division constants
3192         make sure to never overflow.
3193
3194 2008-04-29  Nick Clifton  <nickc@redhat.com>
3195
3196         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3197
3198 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3199
3200         PR bootstrap/35169
3201         * optc-gen.awk: Work around HP-UX/IA awk bug.
3202
3203 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3204
3205         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3206         2008-04-25 commit.
3207
3208 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3209
3210         PR target/36073
3211         * config/i386/i386.md
3212         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3213         Change operand 1 predicate to nonimmediate_operand.
3214
3215 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR debug/36060
3218         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3219         die_sub field.
3220         * gengtype.c (walk_type, write_func_for_structure): Handle
3221         chain_circular.
3222         * doc/gty.texi: Document chain_circular.
3223
3224 2008-04-28  Richard Guenther  <rguenther@suse.de>
3225
3226         PR tree-optimization/36066
3227         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3228         SCEV and loop.
3229
3230 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3231
3232         PR target/36064
3233         * config/i386/i386.md
3234         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3235         Use match_scratch instead of match_operand for operands 3 and 4.
3236
3237 2008-04-27  Richard Guenther  <rguenther@suse.de>
3238
3239         PR tree-optimization/18754
3240         PR tree-optimization/34223
3241         * tree-pass.h (pass_complete_unrolli): Declare.
3242         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3243         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3244         Rewrite loop into loop closed SSA form if it is not already.
3245         (tree_unroll_loops_completely): Re-structure to iterate over
3246         innermost loops with intermediate CFG cleanups.
3247         Unroll outermost loops only if requested or the code does not grow
3248         doing so.
3249         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3250         loops are available.
3251         (tree_vectorize): Instead do so here.
3252         (tree_complete_unroll): Also unroll outermost loops.
3253         (tree_complete_unroll_inner): New function.
3254         (gate_tree_complete_unroll_inner): Likewise.
3255         (pass_complete_unrolli): New pass.
3256         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3257         uses outside of the loop.
3258         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3259         form if it is available.  
3260         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3261         * passes.c (init_optimization_passes): Schedule complete inner
3262         loop unrolling pass before the first CCP pass after final inlining.
3263
3264 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3265
3266         * targhooks.h (default_emutls_var_fields,
3267         default_emutls_var_init): Declare.
3268         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3269         * target.h (struct gcc_target): Add struct emutls member.
3270         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3271         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3272         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3273         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3274         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3275         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3276         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3277         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3278         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3279         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3280         emit debug information.
3281         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3282         * varasm.c: Include targhooks.h.
3283         (emutls_object_section, emutls_tmpl_section): New.
3284         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3285         (EMUTLS_SEPARATOR): New.
3286         (prefix_name): New.
3287         (get_emutls_object_name): New.
3288         (default_emutls_var_fields): New, broken out of ...
3289         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3290         (get_emutls_init_templ_addr): Adjust to use target hooks.
3291         (emutls_decl): Adjust to use target hooks.
3292         (emutls_finish): Likewise.
3293         (default_emutls_var_init): New, broken out of ...
3294         (assemble_variable): ... here.  Adjust to use target hooks.
3295         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3296         SECCAT_EMUTLS_TMPL.
3297         * c-common.c (handle_section_attribute): Prevent overriding
3298         sections for emulated tls with special sections.
3299         * config/i386/i386.c (x86_64_elf_select_section): Add
3300         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3301         (x86_64_elf_unique_section): Likewise.
3302         * config/vxworks.c: Include tree.h.
3303         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3304         (vxworks_override_options): Set TLS scheme.
3305         * doc/tm.texi (Emulated TLS): New node.
3306
3307 2008-04-26  Simon Baldwin <simonb@google.com>
3308
3309         PR c/35652
3310         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3311         with propagated string constants.
3312
3313 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3314
3315         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3316         constraint for operand 2 when operand 0 is memory operand.
3317         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3318         operand 0 is memory operand.
3319         (fix_trunc<mode>_i387_with_temp): Ditto.
3320         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3321         operand 2 when operand 1 is memory operand.
3322         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3323         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3324         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3325         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3326         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3327         operands 2,3 and 4 when operand 1 is memory operand.
3328         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3329         is memory operand.
3330         (fistdi2_floor_with_temp): Ditto.
3331         (fist<mode>2_floor_with_temp): Ditto.
3332         (fistdi2_ceil_with_temp): Ditto.
3333         (fist<mode>2_ceil_with_temp): Ditto.
3334         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3335
3336 2008-04-26  David Daney  <ddaney@avtrex.com>
3337
3338         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3339         unspec_volitile.
3340         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3341         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3342         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3343         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3344         (compare_and_swap_12): New insn.
3345         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3346         * config/mips/mips.c (mips_force_binary): New function.
3347         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3348         (mips_expand_compare_and_swap_12): New function.
3349         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3350
3351 2008-04-25  Jan Hubicka  <jh@suse.cz>
3352
3353         PR testsuite/35843
3354         * cfgexpand.c (pass_expand): Turn into RTL pass.
3355         * passes.c (execute_one_pass): Do pass typechecking after execution.
3356         * tree-pass.h (pass_expand): Turn into RTL pass.
3357
3358         * function.h (struct rtl_data): Move here fields
3359         accesses_prior_frames, calls_eh_return, saves_all_registers,
3360         has_nonlocal_goto, has_asm_statement, is_thunk,
3361         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3362         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3363         arg_pointer_save_area_init from struct function; turn into bool.
3364         (struct function): Move
3365         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3366         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3367         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3368         tail_call_emit, arg_pointer_save_area_init
3369         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3370         (current_function_returns_struct, current_function_returns_pcc_struct,
3371         current_function_calls_setjmp, current_function_calls_alloca,
3372         current_function_accesses_prior_frames,
3373         current_function_calls_eh_return, current_function_is_thunk,
3374         current_function_stdarg, current_function_profile,
3375         current_function_limit_stack, current_function_uses_pic_offset_table,
3376         current_function_uses_const_pool, current_function_has_nonlocal_label,
3377         current_function_saves_all_registers,
3378         current_function_has_nonlocal_goto,
3379         current_function_has_asm_statement): Remove accesor macros.
3380         * ra-conflict.c (global_conflicts): Update.
3381         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3382         (suitable_for_tail_call_opt_p): Update.
3383         * builtins.c (expand_builtin_return_addr): Update.
3384         (expand_builtin_setjmp_setup): Update.
3385         (expand_builtin_nonlocal_goto): Update.
3386         * final.c (final_start_function): Update.
3387         (profile_function): Update.
3388         (leaf_function_p): Update.
3389         (only_leaf_regs_used): Update.
3390         * df-scan.c (df_get_exit_block_use_set): Update.
3391         * dojump.c (clear_pending_stack_adjust): Update.
3392         * tree-stdarg.c (gate_optimize_stdarg): Update.
3393         * gimple-low.c (lower_function_body): Update.
3394         * global.c (compute_regsets): Update.
3395         (global_alloc): Update.
3396         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3397         * expr.c (expand_assignment): Update.
3398         * dse.c (dse_step0): Update.
3399         (dse_step1): Update.
3400         * c-decl.c (store_parm_decls): Update.
3401         * local-alloc.c (combine_regs): Update.
3402         (find_free_reg): Update.
3403         * function.c (assign_parms_augmented_arg_list): Update.
3404         (assign_parm_find_data_types): Update.
3405         (assign_parms): Update.
3406         (allocate_struct_function): Update.
3407         (expand_function_start): Update.
3408         (expand_function_end): Update.
3409         (get_arg_pointer_save_area): Update.
3410         (thread_prologue_and_epilogue_insns): Update.
3411         (rest_of_match_asm_constraints): Update.
3412         * stor-layout.c (variable_size): Update.
3413         * gcse.c (gcse_main): Update.
3414         (bypass_jumps): Update.
3415         * gimplify.c (gimplify_function_tree): Update.
3416         * calls.c (emit_call_1): Update.
3417         (expand_call): Update.
3418         * bt-load.c (compute_defs_uses_and_gen): Update.
3419         * except.c (sjlj_assign_call_site_values): Update.
3420         (sjlj_emit_function_enter): Update.
3421         (can_throw_external): Update.
3422         (set_nothrow_function_flags): Update.
3423         (expand_builtin_unwind_init): Update.
3424         (expand_eh_return): Update.
3425         (convert_to_eh_region_ranges): Update.
3426         (output_function_exception_table): Update.
3427         * emit-rtl.c (gen_tmp_stack_mem): Update.
3428         * cfgexpand.c (expand_used_vars): Update.
3429         (tree_expand_cfg): Update.
3430         * cfgcleanup.c (rest_of_handle_jump): Update.
3431         * explow.c (allocate_dynamic_stack_space): Update.
3432         * varasm.c (assemble_start_function): Update.
3433         (force_const_mem): Update.
3434         (mark_constant_pool): Update.
3435         * tree-optimize.c (tree_rest_of_compilation): Update.
3436         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3437         * tree-cfg.c (notice_special_calls): Update.
3438         (is_ctrl_altering_stmt): Update.
3439         (tree_can_make_abnormal_goto): Update.
3440         (tree_purge_dead_abnormal_call_edges): Update.
3441         * config/alpha/predicates.md: Update.
3442         * config/alpha/alpha.c (alpha_sa_mask): Update.
3443         (alpha_sa_size): Update.
3444         (alpha_does_function_need_gp): Update.
3445         (alpha_expand_prologue): Update.
3446         (alpha_start_function): Update.
3447         (alpha_output_function_end_prologue): Update.
3448         (alpha_expand_epilogue): Update.
3449         * config/frv/frv.c (frv_stack_info): Update.
3450         (frv_expand_epilogue): Update.
3451         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3452         (s390_register_info): Update.
3453         (s390_frame_info): Update.
3454         (s390_init_frame_layout): Update.
3455         (s390_can_eliminate): Update.
3456         (save_gprs): Update.
3457         * config/spu/spu.c (spu_split_immediate): Update.
3458         (need_to_save_reg): Update.
3459         (spu_expand_prologue): Update.
3460         (spu_expand_epilogue): Update.
3461         * config/sparc/sparc.md: Update.
3462         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3463         (sparc_tls_got): Update.
3464         (legitimize_pic_address): Update.
3465         (sparc_emit_call_insn): Update.
3466         (sparc_expand_prologue): Update.
3467         (output_return): Update.
3468         (print_operand): Update.
3469         (sparc_function_ok_for_sibcall): Update.
3470         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3471         * config/m32r/m32r.md: Update.
3472         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3473         (m32r_compute_frame_size): Update.
3474         (m32r_expand_prologue): Update.
3475         (m32r_expand_epilogue): Update.
3476         (m32r_legitimize_pic_address): Update.
3477         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3478         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3479         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3480         (gen_push): Update.
3481         (ix86_save_reg): Update.
3482         (ix86_compute_frame_layout): Update.
3483         (ix86_expand_prologue): Update.
3484         (ix86_expand_epilogue): Update.
3485         * config/sh/sh.c (output_stack_adjust): Update.
3486         (calc_live_regs): Update.
3487         (sh5_schedule_saves): Update.
3488         (sh_expand_prologue): Update.
3489         (sh_expand_epilogue): Update.
3490         (sh_setup_incoming_varargs): Update.
3491         (sh_allocate_initial_value): Update.
3492         (sh_get_pr_initial_val): Update.
3493         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3494         * config/sh/sh.md (label:): Update.
3495         * config/avr/avr.c (out_movhi_mr_r): Update.
3496         * config/crx/crx.h (enum): Update.
3497         * config/xtensa/xtensa.h (along): Update.
3498         * config/stormy16/stormy16.c Update.
3499         (xstormy16_compute_stack_layout): Update.
3500         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3501         (fr30_expand_prologue): Update.
3502         * config/cris/cris.c (cris_conditional_register_usage): Update.
3503         (cris_reg_saved_in_regsave_area): Update.
3504         (cris_initial_frame_pointer_offset): Update.
3505         (cris_simple_epilogue): Update.
3506         (cris_expand_prologue): Update.
3507         (cris_expand_epilogue): Update.
3508         (cris_expand_pic_call_address): Update.
3509         (cris_asm_output_symbol_ref): Update.
3510         (cris_asm_output_label_ref): Update.
3511         * config/cris/cris.md Update.
3512         * config/iq2000/iq2000.c (compute_frame_size): Update.
3513         (iq2000_expand_epilogue): Update.
3514         * config/mt/mt.h (save_direction): Update.
3515         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3516         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3517         (ia64_secondary_reload_class): Update.
3518         * config/m68k/m68k.c (m68k_save_reg): Update.
3519         (m68k_expand_prologue): Update.
3520         (m68k_expand_epilogue): Update.
3521         (legitimize_pic_address): Update.
3522         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3523         (first_reg_to_save): Update.
3524         (first_altivec_reg_to_save): Update.
3525         (compute_vrsave_mask): Update.
3526         (compute_save_world_info): Update.
3527         (rs6000_stack_info): Update.
3528         (spe_func_has_64bit_regs_p): Update.
3529         (rs6000_ra_ever_killed): Update.
3530         (rs6000_emit_eh_reg_restore): Update.
3531         (rs6000_emit_allocate_stack): Update.
3532         (rs6000_emit_prologue): Update.
3533         (rs6000_emit_epilogue): Update.
3534         (rs6000_output_function_epilogue): Update.
3535         (output_profile_hook): Update.
3536         (rs6000_elf_declare_function_name): Update.
3537         * config/rs6000/rs6000.h (rs6000_args): Update.
3538         * config/rs6000/rs6000.md: Update.
3539         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3540         * config/arc/arc.c (arc_output_function_epilogue): Update.
3541         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3542         * config/darwin.c (machopic_function_base_name): Update.
3543         * config/score/score3.c (score3_compute_frame_size): Update.
3544         (rpush): Update.
3545         (rpop): Update.
3546         (score3_epilogue): Update.
3547         * config/score/score7.c (score7_compute_frame_size): Update.
3548         (score7_prologue): Update.
3549         (score7_epilogue): Update.
3550         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3551         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3552         * config/arm/arm.c (use_return_insn): Update.
3553         (require_pic_register): Update.
3554         (arm_load_pic_register): Update.
3555         (arm_compute_save_reg0_reg12_mask): Update.
3556         (arm_compute_save_reg_mask): Update.
3557         (thumb1_compute_save_reg_mask): Update.
3558         (output_return_instruction): Update.
3559         (arm_output_function_prologue): Update.
3560         (arm_output_epilogue): Update.
3561         (arm_get_frame_offsets): Update.
3562         (arm_expand_prologue): Update.
3563         (thumb_pushpop): Update.
3564         (thumb_exit): Update.
3565         (thumb1_expand_prologue): Update.
3566         (thumb1_expand_epilogue): Update.
3567         (arm_unwind_emit): Update.
3568         (arm_output_fn_unwind): Update.
3569         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3570         * config/arm/arm.md: Update.
3571         * config/pa/pa.md: Update.
3572         * config/pa/pa.c (legitimize_pic_address): Update.
3573         (compute_frame_size): Update.
3574         (hppa_expand_prologue): Update.
3575         (hppa_expand_epilogue): Update.
3576         (borx_reg_operand): Update.
3577         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3578         (HARD_REGNO_RENAME_OK): Update.
3579         * config/mips/mips.c (mips_global_pointer): Update.
3580         (mips_save_reg_p): Update.
3581         (mips_compute_frame_info): Update.
3582         (mips_frame_pointer_required): Update.
3583         (mips_expand_prologue): Update.
3584         (mips_expand_epilogue): Update.
3585         (mips_can_use_return_insn): Update.
3586         (mips_reorg_process_insns): Update.
3587         * config/v850/v850.c (compute_register_save_size): Update.
3588         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3589         * config/mmix/mmix.c (along): Update.
3590         (mmix_expand_epilogue): Update.
3591         * config/bfin/bfin.c (legitimize_pic_address): Update.
3592         (must_save_p): Update.
3593         (stack_frame_needed_p): Update.
3594         (add_to_reg): Update.
3595         (bfin_expand_prologue): Update.
3596         * stmt.c (expand_asm_operands): Update.
3597         * reload1.c (reload): Update.
3598         (init_elim_table): Update.
3599
3600 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3601         
3602         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3603         
3604 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3605
3606         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3607         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3608         (mov<mode>): Removed.
3609         (*movv4sf_internal): Likewise.
3610         (*movv2df_internal): Likewise.
3611
3612 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3613
3614         * config.gcc (crx-*-elf): Remove deprecation.
3615
3616 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3617
3618         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3619         __gcc_deregister_frame with atexit.
3620         (deregister_frame_dtor): Remove.
3621
3622 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3623             Nathan Sidwell  <nathan@codesourcery.com>
3624
3625         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3626         (misel): Likewise.
3627         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3628         (rs6000_isel): Likewise.
3629         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3630         (rs6000_isel): New variable.
3631         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3632
3633 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3634
3635         PR c++/35758
3636         * c-common.c (handle_vector_size_attribute): Call
3637         lang_hooks.types.reconstruct_complex_type instead of
3638         reconstruct_complex_type.
3639         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3640         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3641         * langhooks.h (struct lang_hooks_for_types): Add
3642         reconstruct_complex_type hook.
3643         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3644         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3645
3646 2008-04-24  Richard Guenther  <rguenther@suse.de>
3647
3648         * c-common.h (check_builtin_function_arguments): Declare.
3649         * c-common.c (validate_nargs): New function.
3650         (check_builtin_function_arguments): Likewise.
3651         * c-typeck.c (build_function_call): Call
3652         check_builtin_function_arguments.
3653         * builtins.c (fold_builtin_classify): Remove error reporting code.
3654         (fold_builtin_unordered_cmp): Likewise.
3655         (fold_builtin_1): Likewise.
3656         (fold_builtin_n): Likewise.
3657
3658 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3659
3660         PR tree-optimization/36008
3661         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3662         the original op1, rather than delta by step.
3663
3664 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3665             Sebastian Pop  <sebastian.pop@amd.com>
3666
3667         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3668         eliminate_local_variables_stmt, eliminate_local_variables,
3669         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3670         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3671         of code delimited by two edges in the CFG.
3672         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3673         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3674         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3675         the case of parallelisation of reductions.
3676         (expr_invariant_in_region_p): New.
3677
3678         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3679         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3680
3681 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3682             Richard Guenther  <rguenther@suse.de>
3683
3684         PR tree-optimization/36034
3685         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3686         incapable of dealing with loads with gaps.
3687
3688 2008-04-24  Rafael Espindola  <espindola@google.com>
3689
3690         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3691         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3692         vrp_evaluate_conditional.
3693         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3694         (vrp_evaluate_conditional): Split the cond argument.
3695         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3696         (simplify_stmt_for_jump_threading): Update call to
3697         vrp_evaluate_conditional.
3698
3699 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3700
3701         PR tree-optimization/35982
3702         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3703         interleaved data-refs are of the same type.
3704
3705 2008-04-24  Danny Smith  <dannysmith@users.net>
3706
3707         * c-format.c (check_format_info_main): Use strncmp rather than a
3708         magic prefix to handle multichar length specs.
3709         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3710         Don't prefix "I64" and "I32" with '\0'.
3711
3712 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3713
3714         PR target/36015
3715         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3716         in registers for -m32 only if stdarg_p (fntype).
3717
3718 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3719
3720         PR rtl-optimization/36006
3721         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3722         temp to op0 in order to avoid invalid rtx sharing.
3723
3724 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3725
3726         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3727         check TREE_INVARIANT.
3728         * tree-gimple.c (is_gimple_address): New.
3729         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3730         * tree-gimple.h (is_gimple_address): New.
3731         * tree.h (decl_address_invariant_p): New.
3732         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3733         (build_string): Likewise.
3734         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3735         (tree_invariant_p_1): Likewise.
3736         (save_expr): Use it.
3737         (tree_invariant_p): New.
3738         (skip_simple_arithmetic): Use it.
3739         (stabilize_reference_1): Use it.
3740         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3741         simplify.
3742         (build1_stat): Drop code to compute TREE_INVARIANT.
3743         (build2_stat): Drop code to compute TREE_INVARIANT.
3744         (build3_stat): Drop code to compute TREE_INVARIANT.
3745         (build4_stat): Drop code to compute TREE_INVARIANT.
3746         (build5_stat): Drop code to compute TREE_INVARIANT.
3747         (build7_stat): Drop code to compute TREE_INVARIANT.
3748         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3749         * tree.h (struct tree_base): Remove invariant_flag.
3750         (TREE_INVARIANT): Remove.
3751         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3752         (fold_builtin_expect): Check TREE_CONSTANT.
3753         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3754         * c-tree.h (c_expr_to_decl): Drop third parameter.
3755         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3756         (build_c_cast): Don't set TREE_INVARIANT.
3757         (pop_init_level): Don't set TREE_INVARIANT.
3758         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3759         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3760         TREE_CONSTANT.
3761         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3762         (gimplify_addr_expr): Adjust comment.
3763         * tree-mudflap.c (mf_build_string):
3764         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3765         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3766         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3767         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3768         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3769         * langhooks.h (struct lang_hooks): Drop third parameter from
3770         expr_to_decl.
3771
3772 2008-04-23  Richard Guenther  <rguenther@suse.de>
3773
3774         PR tree-optimization/27799
3775         PR tree-optimization/32921
3776         PR tree-optimization/32624
3777         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3778         SMTs aliases and the tag itself into the solution.
3779         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3780         merge the points-to solution back into the SMT aliases.
3781         (may_alias_p): Use alias_set_subset_of instead of
3782         aliases_conflict_p.  A pointer which points to
3783         memory with alias set zero may access any variable.
3784
3785 2008-04-23  Richard Guenther  <rguenther@suse.de>
3786
3787         * alias.c (alias_set_subset_of): Correctly handle asking
3788         if zero is a subset of an alias set with zero child.
3789         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3790         (compute_flow_insensitive_aliasing): Correctly walk all
3791         pointers.  Do not unnecessarily union sets.
3792
3793 2008-04-23  Richard Guenther  <rguenther@suse.de>
3794
3795         PR middle-end/36021
3796         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3797
3798 2008-04-22  Tomas Bily  <tbily@suse.cz>
3799
3800         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3801         unreachable case.
3802         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3803         NON_LVALUE_EXPR.
3804         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3805         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3806         * tree-inline.c (estimate_num_insns_1): Likewise.
3807         * varasm.c (const_hash_1, compare_constant, copy_constant)
3808         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3809         * emit-rtl.c (component_ref_for_mem_expr)
3810         (set_mem_attributes_minus_bitpos): Likewise.
3811         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3812         (is_aligning_offset): Likewise.
3813         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3814         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3815         * dojump.c (do_jump): Likewise.
3816         * builtins.c (get_pointer_alignment, get_memory_rtx)
3817         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3818         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3819
3820 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3821
3822         PR rtl-optimization/36017
3823         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3824         expanding the library call.
3825
3826 2008-04-22  Ian Lance Taylor  <iant@google.com>
3827
3828         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3829         than size_in_bytes.
3830
3831 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3832
3833         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3834         of LR/CTR moves for Power6.
3835
3836 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3837
3838         PR middle-end/36003
3839         * passes.c (init_optimization_passes): Remove
3840         pass_fast_rtl_byte_dce.
3841         
3842 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3843
3844         PR target/29096
3845         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3846         builtin functions to generate faster code.
3847         (_mm_cvtpu16_ps): Ditto.
3848         (_mm_cvtpi32x2_ps): Ditto.
3849
3850 2008-04-22  Nick Clifton  <nickc@redhat.com>
3851
3852         * common.opt (ftree-loop-distribution): Add Optimization
3853         attribute.
3854
3855         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3856         (frv_expand_builtin_va_start): Likewise.
3857
3858         * config/arm/arm.c (thumb_find_work_register): Fix location of
3859         argument register count.
3860
3861 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3862
3863         Support scheduling for ColdFire V1 and V3 microarchitecture.
3864         Improve scheduling of multiplication instructions.
3865
3866         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3867         (mac): New instruction attribute.
3868         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3869         (m68k_sched_mac): New variable.
3870         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3871         Handle cfv1 and cfv3.
3872         (max_insn_size): New static variable.
3873         (struct _sched_ib): New type.
3874         (sched_ib): New static variable.
3875         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3876         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3877         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3878         Update.
3879         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3880         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3881         new variables.  Update.
3882         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3883         Add modeling of cfv3 instruction buffer.  Update.
3884         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3885         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3886         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3887         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3888         a particular reservation applies to.
3889         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3890         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3891         to mul_l and mul_w.
3892         (cf_ib_*): Simplify description of instruction buffer.
3893         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3894         (cf_mem): Split into cf_mem1 and cf_mem2.
3895         (cf_v2_move_??): Rename to cfv12_alu_??.
3896         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3897         (cf_v2_mul_??): Remove reservations.
3898         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3899         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3900         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3901         appropriate place.
3902         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3903         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3904         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3905         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3906         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3907         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3908         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3909         expansions of the above reservations for instructions of sizes
3910         1, 2 and 3 words.
3911
3912 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3913
3914         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3915
3916 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3917
3918         * coverage.c: Include tree-pass.h.
3919         (coverage_counter_alloc): Print da_file_name to the dump file.
3920
3921 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3922
3923         * sbitmap.c (sbitmap_range_empty_p): New function.
3924         * sbitmap.h (sbitmap_range_empty_p): New function.
3925         * bitmap.h: Now includes obstack.h.
3926
3927 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3928             Kenneth Zadeck  <zadeck@naturalbridge.com>
3929
3930         * dbgcnt.def (ra_byte_scan): Added.
3931         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3932         when the last hit happens for a counter.  
3933         * timevar.def (TV_DF_BYTE_LR): New variable.
3934         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3935         * passes.c (pass_fast_rtl_byte_dce): New pass.
3936         * fwprop.c (update_df): Added mode to call df_ref_create.
3937         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3938         DF_REF_EXTRACT_OFFSET.
3939         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3940         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3941         (df_mm): New enum.
3942         (df_ref_extract): Added mode field.
3943         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3944         DF_REF_EXTRACT_OFFSET.
3945         (DF_REF_EXTRACT_MODE): New macro.
3946         (df_byte_lr_bb_info): New structure.
3947         (df_print_byte_regset, df_compute_accessed_bytes, 
3948         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3949         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3950         df_byte_lr_simulate_uses,
3951         df_byte_lr_simulate_artificial_refs_at_top,
3952         df_byte_lr_simulate_artificial_refs_at_end,
3953         df_compute_accessed_bytes): New function.
3954         (df_ref_create): Add parameter.
3955         (df_byte_lr_get_bb_info): New inline function.
3956         * df-scan.c (df_ref_record, df_uses_record,
3957         df_ref_create_structure): Added mode parameter.
3958         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3959         df_defs_record, df_uses_record, df_get_conditional_uses,
3960         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3961         df_entry_block_defs_collect, df_exit_block_uses_collect):
3962         Added mode parameter to calls to df_ref_record, df_uses_record,
3963         df_ref_create_structure.
3964         (df_ref_equal_p, df_ref_compare): Added test for modes.
3965         (df_ref_create_structure): Added code to set mode.  Renamed
3966         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3967         DF_REF_EXTRACT_OFFSET.
3968         * df-core.c (df_print_byte_regset): New function.
3969         * df-byte-scan.c: New file.
3970         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3971         calls to BITMAP_FREE.  
3972         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3973         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3974         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3975         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3976         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3977         df_byte_lr_local_compute, df_byte_lr_init,
3978         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3979         df_byte_lr_transfer_function, df_byte_lr_free, 
3980         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3981         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3982         df_byte_lr_simulate_uses,
3983         df_byte_lr_simulate_artificial_refs_at_top,
3984         df_byte_lr_simulate_artificial_refs_at_end): New function.
3985         * dce.c (byte_dce_process_block): New function.
3986         (dce_process_block): au is now passed in rather than computed
3987         locally.  Changed loops that look at artificial defs to not look
3988         for conditional or partial ones, because there never are any.  
3989         (fast_dce): Now is able to drive byte_dce_process_block or 
3990         dce_process_block depending on the kind of dce being done.
3991         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3992         (rest_of_handle_fast_byte_dce): New function.
3993         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3994         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3995
3996 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3997
3998         PR fortran/35019
3999         * gcc.h: Added fortran options that take arguments to
4000         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4001         macros.
4002
4003 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4004
4005         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4006         scalarization if on the LHS and not a full access.
4007
4008 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4009
4010         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4011
4012 2008-04-18  Rafael Espindola  <espindola@google.com>
4013
4014         * tree-vrp.c (find_case_label_index): Fix the binary search.
4015         (find_case_label_range): New.
4016         (vrp_visit_switch_stmt): Use find_case_label_range.
4017         (simplify_switch_using_ranges): Use find_case_label_range.
4018
4019 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4020
4021         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4022         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4023
4024 2008-04-18  Tom Tromey  <tromey@redhat.com>
4025
4026         PR libcpp/15500:
4027         * doc/cpp.texi (Implementation-defined behavior): Mention
4028         -finput-charset.
4029
4030 2008-04-18  Ian Lance Taylor  <iant@google.com>
4031
4032         * fold-const.c (pointer_may_wrap_p): New static function.
4033         (fold_comparison): Add another test for pointer overflow.  Use
4034         pointer_may_wrap_p to disable some false positives.
4035
4036 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4037           
4038         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4039         (fname_as_string): Match updated cpp_interpret_string prototype.
4040         (fix_string_type): Support char16_t* and char32_t*.
4041         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4042         derivative) nodes.  Register as builtin if C++0x.
4043         (c_parse_error): Support CPP_CHAR{16,32}.
4044         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4045         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4046         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4047         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4048         CTI_CHAR32_ARRAY_TYPE>: New elements.
4049         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4050         char32_type_node, signed_char32_type_node, char16_array_type_node,
4051         char32_array_type_node): New defines.
4052         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4053         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4054         (lex_string): Support CPP_STRING{16,32}, match updated
4055         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4056         (lex_charconst): Support CPP_CHAR{16,32}.
4057         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4058         and CPP_STRING{16,32}.
4059
4060 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4061
4062         PR bootstrap/35457
4063         * aclocal.m4: Regenerate.
4064         * configure: Regenerate.
4065
4066 2008-04-18  Jan Hubicka  <jh@suse.cz>
4067
4068         * except.c (dw2_size_of_call_site_table,
4069         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4070
4071         * cgraphbuild.c (build_cgraph_edges): Update.
4072         * tree-pass.h: Update comment.
4073         * final.c (leaf_function_p): Update.
4074         (leaf_renumber_regs): Update.
4075         (rest_of_clean_state): Update.
4076         * omp-low.c (expand_omp_parallel): Update.
4077         * ipa-reference.c (analyze_function): Update.
4078         * reorg.c (find_end_label): Update.
4079         (optimize_skip): Update.
4080         (fill_simple_delay_slots): Update.
4081         (fill_simple_delay_slots): Update.
4082         (make_return_insns): Update.
4083         (dbr_schedule): Update.
4084         * gimple-low.c (record_vars_into): Update.
4085         * cfgbuild.c (make_edges): Update.
4086         * function.c (assign_stack_local): Update.
4087         (assign_parm_adjust_stack_rtl): Update.
4088         (locate_and_pad_parm): Update.
4089         (allocate_struct_function): Do not initialize stack_alignment_needed
4090         and preferred_stack_boundary here.
4091         (stack_protect_prologue): Update.
4092         (stack_protect_epilogue): Update.
4093         (expand_function_start): Initialize stack_alignment_needed,
4094         preferred_stack_boundary and max_jumptable_ents.
4095         (expand_function_end): Update.
4096         (free_after_compilation): Do not NULLify epilogue_delay_list.
4097         * function.h (struct rtl_data): Add stack_protect_guard,
4098         stack_alignment_needed,
4099         preferred_stack_boundary, epilogue_delay_list.
4100         (struct function): Remove value_histograms, stack_alignment_needed,
4101         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4102         last_label_uid,
4103         unexpanded_var_list, stack_protect_guard.
4104         (current_function_epilogue_delay_list): Remove.
4105         * ipa-type-escape.c (analyze_function): Update.
4106         * gimplify.c (pop_gimplify_context): Update comment.
4107         * calls.c (expand_call): Update.
4108         (emit_library_call_value_1): Update.
4109         * except.c (set_nothrow_function_flags): Update.
4110         * cfgexpand.c (get_decl_align_unit): Update.
4111         (create_stack_guard): Update.
4112         (estimated_stack_frame_size): Update.
4113         (expand_used_vars): Update.
4114         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4115         * explow.c (allocate_dynamic_stack_space): Update.
4116         * tree-ssa-live.c (remove_unused_locals): Update.
4117         * varasm.c (mark_constant_pool): Update.
4118         * tree-inline.c (remap_decls): Update.
4119         (initialize_cfun): Update.
4120         (declare_return_variable): Update.
4121         (inline_forbidden_p): Update.
4122         (expand_call_inline): Update.
4123         (declare_inline_vars): Update.
4124         (tree_function_versioning): Update.
4125         * tree-flow.h (value_histograms): New.
4126         (VALUE_HISTOGRAMS): New macro.
4127         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4128         last_label_uid.
4129         * tree-cfg.c (set_bb_for_stmt): Update.
4130         (replace_by_duplicate_decl): Update.
4131         (move_block_to_fn): Update.
4132         (new_label_mapper): Update.
4133         (dump_function_to_file): Update.
4134         * ipa-struct-reorg.c (build_data_structure): Update.
4135         * cfgrtl.c (print_rtl_with_bb): Update.
4136         * reload1.c (reload): Update.
4137         (reload): Update.
4138         * config/i386/i386.c (setup_incoming_varargs_64,
4139         ix86_compute_frame_layout): Update.
4140         * config/arc/arc.c (arc_output_function_epilogue): Update.
4141
4142 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4143
4144         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4145         for FreeBSD as well.
4146         * gthr-posix95.h: Likewise.
4147
4148 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4149
4150         PR rtl-optimization/35838
4151         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4152         out the byte offset of the first subreg.
4153
4154 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4155
4156         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4157         to split_ti instead of three separate calls with single member arrays.
4158         (subti3 splitter): Ditto.
4159         (adddi3 splitter): Ditto with split_di.
4160         (subdi3 splitter): Ditto.
4161         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4162         two separate calls with single member arrays.  Swap match_dup
4163         operands 1 and 2 to better fit into the array.
4164         (negdi2 splitter): Ditto with split_di.
4165         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4166         two separate calls with single member arrays.  Swap match_dup operands
4167         6 and 7 to better fit into the array.
4168
4169 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4170
4171         * config/i386/i386.c (sse_builtin_type): New.
4172         (bdesc_sse_args): Likewise.
4173         (bdesc_sse_3arg): Removed.
4174         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4175         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4176         IX86_BUILTIN_ROUNDPS.
4177         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4178         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4179         IX86_BUILTIN_ROUNDPS.
4180         (ix86_expand_sse_4_operands_builtin): Removed.
4181         (ix86_expand_sse_operands_builtin): New.
4182         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4183         and CODE_FOR_sse4_1_roundps.
4184         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4185         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4186
4187 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4188
4189         PR target/35907
4190         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4191         regs before frame pop when needed.  If use_backchain_to_restore_sp
4192         then load backchain into a temp reg to restore vr and vrsave.  Add
4193         code to restore vr after frame pop if possible.
4194
4195 2008-04-17  Richard Guenther  <rguenther@suse.de>
4196
4197         * tree-vn.c (expressions_equal_p): Do not check type
4198         equality or compatibility before calling operand_equal_p.
4199         * fold-const.c (operand_equal_p): Check equivalence of
4200         integer constants before bailing out due to signedness or
4201         precision differences.
4202         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4203         spurious differences in type qualification.  Ignore types
4204         for COMPONENT_REFs at all.
4205
4206 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4207
4208         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4209         msw_skip comparison.
4210         
4211 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4212
4213         PR c/35739
4214         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4215         reg type.
4216
4217         PR tree-optimization/35899
4218         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4219         rather than TREE_OPERAND.
4220
4221 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4222
4223         PR target/35944
4224         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4225         temporary registers.  Change operand predicate to general_operand.
4226         (remainderxf3): Ditto.
4227
4228 2008-04-16  Richard Guenther  <rguenther@suse.de>
4229
4230         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4231         * tree-affine.c (aff_combination_expand): Look through some
4232         conversions.
4233
4234 2008-04-15  Doug Kwan  <dougkwan@google.com>
4235
4236         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4237         for hex printing.
4238         * tree-pretty-print.c (dump_generic_node): Ditto.
4239         * final.c (output_addr_const): Ditto.
4240         * dwarf2out.c (output_cfi): Ditto.
4241         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4242         * print-rtl.c (print_rtx): Ditto.
4243         * print-tree.c (print_node_brief, print_node): Ditto.
4244         * c-common.c (match_case_to_enum_1): Ditto.
4245         * sched-vis.c (print_value): Ditto.
4246         * config/i386/i386.c (print_operand): Cast to long unsigned int
4247         for hex printing.
4248
4249 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4250         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4251         MS Windows VirtualProtect function.
4252
4253 2008-04-15  Jan Hubicka  <jh@suse.cz>
4254
4255         * gengtype.c (write_root): Param_is argument is OK.
4256         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4257         * function.h: Include varray.h
4258         (rtl_eh): New stucture based on except.c one.
4259         (call_site_record): New forward declaration and vector type.
4260         * calls.c (emit_call_1): Do not call
4261         note_current_region_may_contain_throw.
4262         * except.c (eh_status): Remove cur_region, try_region since they are
4263         unused.
4264         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4265         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4266         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4267         Remove call_site_data_used, call_site_data_size.
4268         Turn call_site_record into vector in function.h.
4269         (note_current_region_may_contain_throw): Remove.
4270         (get_exception_pointer, get_exception_filter): Do not take struct
4271         function argument; update.
4272         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4273         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4274         build_post_landing_pads, dw2_build_landing_pads,
4275         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4276         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4277         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4278         sjlj_build_landing_pads, finish_eh_generation,
4279         remove_exception_handler_label, remove_eh_handler,
4280         maybe_remove_eh_handler, add_reachable_handler,
4281         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4282         add_action_record, collect_one_action_chain, add_call_site,
4283         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4284         sjlj_output_call_site_table, output_function_exception_table,
4285         * except.h (note_current_region_may_contain_throw): Remove
4286         (get_exception_pointer, get_exception_filter): Do not take struct
4287         function argument.
4288         * Makefile.in (GTFILES): Put varargs before struct function.
4289
4290 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4291
4292         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4293         punt for STRING_CST.
4294         (get_constraint_for): Deal with STRING_CST here instead.
4295
4296 2008-04-15  Richard Guenther  <rguenther@suse.de>
4297
4298         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4299         statements in a basic-block with a backward walk.  Do not
4300         substitute into dead statements but instead remove those.
4301
4302 2008-04-15  Richard Guenther  <rguenther@suse.de>
4303
4304         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4305         to zero, thus disable creation of SFTs.
4306
4307 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4308
4309         * tree-predcom.c (suitable_reference_p): Return false if the
4310         reference can throw.
4311
4312 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4313
4314         PR c/35751
4315         * c-decl.c (finish_decl): If extern or static var has variable
4316         size, set TREE_TYPE (decl) to error_mark_node.
4317
4318 2008-04-15  Rafael Espindola  <espindola@google.com>
4319
4320         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4321         variable arg1.
4322
4323 2008-04-15  Richard Guenther  <rguenther@suse.de>
4324
4325         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4326         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4327         (visit_reference_op_load): Do walk vuse-vdef chains on
4328         vn_reference_lookup.
4329         (visit_reference_op_store): But do not here.
4330         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4331         vn_reference_lookup.
4332         (vn_lookup_with_vuses): But do so here.
4333
4334 2008-04-14  Ian Lance Taylor  <iant@google.com>
4335
4336         * fold-const.c (fold_overflow_warning): Remove assertion.
4337
4338 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4339
4340         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4341         temp1 local variables.
4342
4343 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4344
4345         PR target/35661
4346         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4347         ".text.unlikely" section as executable.
4348
4349 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4350
4351         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4352         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4353         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4354         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4355         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4356         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4357         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4358
4359 2008-04-14  Ian Lance Taylor  <iant@google.com>
4360
4361         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4362         * fold-const.c (fold_comparison): If appropriate, test
4363         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4364         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4365         reassociating a pointer type.
4366         * doc/invoke.texi (Optimize Options): Document that
4367         -fstrict-overflow applies to pointer wraparound.
4368
4369 2008-04-13  Jan Hubicka  <jh@suse.cz>
4370
4371         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4372
4373 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4374
4375         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4376         we are going to "save the world".
4377
4378 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4379
4380         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4381         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4382         operand 0 constraint, not "=".
4383
4384 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4385
4386         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4387
4388 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4389
4390         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4391         of size of positions_needed * CHAR_BIT.
4392
4393 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4394
4395         PR middle-end/35897
4396         * dse.c (store_info): Change positions_needed to unsigned
4397         HOST_WIDE_INT.
4398         (lowpart_bitmask): New.
4399         (record_store): Cast to unsigned HOST_WIDE_INT for
4400         positions_needed.  Assert width <= size of positions_needed *
4401         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4402         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4403         lowpart_bitmask to set mask.
4404
4405 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4406
4407         * config/bfin/constraints.md: New file.
4408         * config/bfin/bfin.md: Include it.
4409         (adddi3): Use satisfies_constraint functions instead of the old macros.
4410         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4411         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4412         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4413         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4414         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4415         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4416         EXTRA_CONSTRAINT): Delete.
4417         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4418         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4419         of the old macros.
4420         * config/bfin/bfin.c: Include "tm-constrs.h".
4421         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4422         Use satisfies_constraint functions instead of the old macros.
4423         * doc/md.texi (Blackfin Constraints): Update file name reference.
4424
4425 2008-04-11  Richard Guenther  <rguenther@suse.de>
4426
4427         PR tree-optimization/35869
4428         * tree-vrp.c (execute_vrp): Move switch statement update after
4429         jump threading.  Schedule another cfg cleanup run.
4430
4431 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4432
4433         PR c/35744
4434         * attribs.c (decl_attributes): Return early on errorneous node.
4435
4436 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4437
4438         * tree.h (struct tree_base): Added a new flag default_def_flag.
4439         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4440
4441 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4442
4443         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4444
4445 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4446
4447         PR target/35768
4448         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4449         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4450         (icacheflush): Likewise.
4451         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4452         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4453
4454 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4455
4456         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4457
4458 2008-04-10  Rafael Espindola  <espindola@google.com>
4459
4460         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4461         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4462         (extract_range_from_expr): The same.
4463
4464 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4465
4466         * config/mips/mips.md (GPR2): New mode iterator.
4467         (seq): Add comment.
4468         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4469         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4470         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4471         Rewrite these to take two modes, the mode of comparison and the
4472         mode of the destination.
4473         * config/mips/mips.c (mips_expand_scc): Instead of having
4474         paradoxical subreg as destination, expand "narrowing" scc if mode
4475         of comparison is SI and target is requested in DI mode.
4476         (mips_emit_int_order_test): Update comment.  Make mode of
4477         comparison match CMP0 rather than TARGET.  When creating inverse
4478         target use mode of TARGET.
4479
4480 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4481
4482         * gcov-dump.c (tag_summary): Only print summaries for the first
4483         GCOV_COUNTERS_SUMMABLE counters.
4484
4485 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4486
4487         * config/i386/i386.md (absneg): New code iterator.
4488         (absnegprefix): New code attribute.
4489         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4490         patterns using absneg code iterator.
4491         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4492         using absneg code iterator.
4493         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4494         *neg<mode>2 patterns using absneg code iterator.
4495         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4496         *negextendsfdf2 patterns using absneg code iterator.
4497         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4498         *negextendsfxf2 patterns using absneg code iterator.
4499         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4500         *negextendsfdf2 patterns using absneg code iterator.
4501         * config/i386/sse.md (<code><mode>2): Macroize expander from
4502         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4503
4504 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4505
4506         * config/s390/s390.h: Remove the remains of the recent search
4507         & replace action of current_function_outgoing_args_size.
4508
4509 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4510
4511         PR tree-optimization/35821
4512         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4513         NEW_STMT_LIST is not NULL.
4514
4515 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4516
4517         PR libstdc++/35597
4518         * toplev.c (process_options): Remove -ffunction-sections debugging
4519         warning.
4520
4521 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4522
4523         PR middle-end/PR28690
4524         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4525         than gen_rtx_fmt_ee to perform more canonicalizations.
4526
4527 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4528
4529         PR driver/35665
4530         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4531
4532 2008-04-09  Richard Guenther  <rguenther@suse.de>
4533
4534         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4535         (dump_function_to_file): Dump function arguments with types.
4536
4537 2008-04-08  Richard Guenther  <rguenther@suse.de>
4538
4539         * fold-const.c (fold_widened_comparison): Do not allow
4540         sign-changes that change the result.
4541
4542 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4543
4544         PR target/35839
4545         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4546         kinds of indirect references.
4547
4548 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4549
4550         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4551         GNU Fortran language string.
4552
4553 2008-04-08  Rafael Espindola  <espindola@google.com>
4554
4555         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4556         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4557         * tree.h (tree_call_nonnegative_warnv_p): New.
4558
4559 2008-04-08  Jan Hubicka  <jh@suse.cz>
4560
4561         * function.c (free_after_compilation): Clear out regno_reg_rtx
4562         pointer.
4563
4564 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4565
4566         Revert
4567         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4568
4569         PR middle-end/PR28690
4570         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4571         same precedence as REG_POINTER and MEM_POINTER operands.
4572
4573 2008-04-08  Richard Guenther  <rguenther@suse.de>
4574
4575         PR middle-end/35834
4576         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4577         for adding index to base.
4578
4579 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4580
4581         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4582         (MINGW_ENABLE_EXECUTE_STACK): New.
4583         (IN_LIBGCC2): For libgcc include windows.h file for
4584         function declarations.
4585
4586 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4587
4588         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4589         and tem2 if tem1 is not a REG or MULT.
4590
4591 2008-04-08  Jan Hubicka  <jh@suse.cz>
4592
4593         * function.h (incomming_args): Break out of struct function.
4594         (function_subsections): Break out of struct function.
4595         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4596         return_rtx and hard_reg_initial_vals from struct function.
4597         Kill inl_max_label_num.
4598         (current_function_pops_args, current_function_args_info,
4599         current_function_args_size, current_function_args_size,
4600         current_function_pretend_args_size,
4601         current_function_outgoing_args_size,
4602         current_function_internal_arg_pointer, current_function_return_rtx):
4603         Kill compatibility accestor macros.
4604         * builtins.c (expand_builtin_apply_args_1): Update.
4605         (expand_builtin_next_arg): Update.
4606         * df-scan.c (df_get_call_refs): Update.
4607         * dbxout.c (dbxout_function_end): Update.
4608         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4609         (output_line_info): Update.
4610         (secname_for_decl): Update.
4611         (dwarf2out_var_location): Update.
4612         * function.c (free_after_compilation): Update.
4613         (assign_parm_find_stack_rtl): Update.
4614         (assign_parms): Update.
4615         (expand_dummy_function_end): Update.
4616         (expand_function_end): Update.
4617         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4618         (expand_call): Update.
4619         (emit_library_call_value_1): Update.
4620         (store_one_arg): Update.
4621         * varasm.c (initialize_cold_section_name): Update.
4622         (unlikely_text_section): Update.
4623         (unlikely_text_section_p): Update.
4624         (assemble_start_function): Update.
4625         (assemble_end_function): Update.
4626         (default_section_type_flags): Update.
4627         (switch_to_section): Update.
4628         * integrate.c (set_decl_abstract_flags): Update.
4629         (get_hard_reg_initial_val): Update.
4630         (has_hard_reg_initial_val): Update.
4631         (allocate_initial_values): Update.
4632         * resource.c (init_resource_info): Update.
4633         * config/alpha/alpha.c (NUM_ARGS): Update.
4634         (direct_return): Update.
4635         (alpha_va_start): Update.
4636         (alpha_sa_size): Update.
4637         (alpha_initial_elimination_offset): Update.
4638         (alpha_expand_prologue): Update.
4639         (alpha_start_function): Update.
4640         (alpha_expand_epilogue): Update.
4641         (unicosmk_initial_elimination_offset):
4642         * config/alpha/alpha.md (call expander): Update.
4643         * config/s390/s390.c (s390_register_info): Update.
4644         (s390_register_info): Update.
4645         (s390_frame_info): Update.
4646         (s390_initial_elimination_offset): Update.
4647         (s390_build_builtin_va_list): Update.
4648         (s390_va_start): Update.
4649         * config/spu/spu.c (direct_return): Update.
4650         (spu_expand_prologue): Update.
4651         (spu_initial_elimination_offset): Update.
4652         (spu_build_builtin_va_list): Update.
4653         (spu_va_start): Update.
4654         * config/sparc/sparc.c (sparc_init_modes): Update.
4655         (sparc_compute_frame_size): Update.
4656         (function_value): Update.
4657         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4658         * config/i386/i386.md (return expander): Update.
4659         * config/i386/i386.c (ix86_va_start): Update.
4660         (ix86_can_use_return_insn_p): Update.
4661         (ix86_compute_frame_layout): Update.
4662         (ix86_expand_epilogue): Update.
4663         * config/sh/sh.c (output_stack_adjust): Update.
4664         (calc_live_regs): Update.
4665         (sh_expand_prologue): Update.
4666         (sh_builtin_saveregs): Update.
4667         (sh_va_start): Update.
4668         (initial_elimination_offset): Update.
4669         (sh_allocate_initial_value): Update.
4670         (sh_function_ok_for_sibcall): Update.
4671         (sh_get_pr_initial_val): Update.
4672         * config/sh/sh.md (return expander): Update.
4673         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4674         * config/crx/crx.c (crx_compute_frame): UPdate.
4675         (crx_initial_elimination_offset): UPdate.
4676         * config/xtensa/xtensa.c (compute_frame_size): Update
4677         (xtensa_builtin_saveregs): Update.
4678         (xtensa_va_start): Update.
4679         (order_regs_for_local_alloc): Update.
4680         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4681         (xstormy16_expand_builtin_va_start): Update.
4682         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4683         * config/m68hc11/m68hc11.md (return expanders): Update.
4684         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4685         (expand_epilogue): Update.
4686         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4687         (cris_simple_epilogue): Update.
4688         (cris_expand_prologue): Update.
4689         (cris_expand_epilogue): Update.
4690         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4691         (compute_frame_size): Update.
4692         * config/mt/mt.c (mt_compute_frame_size): Update.
4693         * config/mn10300/mn10300.c (expand_prologue): Update.
4694         (expand_epilogue): Update.
4695         (initial_offset): Update.
4696         (mn10300_builtin_saveregs):
4697         * config/mn10300/mn10300.md (return expander): Update.
4698         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4699         (ia64_initial_elimination_offset): Update.
4700         (ia64_initial_elimination_offset): Update.
4701         (ia64_expand_prologue): Update.
4702         * config/m68k/m68k.md (return expander): Update.
4703         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4704         (rs6000_stack_info): Update.
4705         * config/mcore/mcore.c (layout_mcore_frame): Update.
4706         (mcore_expand_prolog): Update.
4707         * config/arc/arc.c (arc_compute_frame_size): Update.
4708         * config/score/score3.c (score3_compute_frame_size): Update.
4709         * config/score/score7.c (score7_compute_frame_size): Update.
4710         * config/arm/arm.c (use_return_insn): Update.
4711         (thumb_find_work_register): Update.
4712         (arm_compute_save_reg_mask): Update.
4713         (arm_output_function_prologue): Update.
4714         (arm_output_epilogue): Update.
4715         (arm_size_return_regs): Update.
4716         (arm_get_frame_offsets): Update.
4717         (arm_expand_prologue): Update.
4718         (thumb_exit): Update.
4719         (thumb_unexpanded_epilogue): Update.
4720         (thumb1_output_function_prologue): Update.
4721         * config/pa/pa.md (return expander): Update.
4722         * config/pa/pa.c (compute_frame_size): Update.
4723         (hppa_builtin_saveregs): Update.
4724         * config/mips/mips.c (mips_va_start): Update.
4725         (mips16_build_function_stub): Update.
4726         (mips_compute_frame_info): Update.
4727         (mips_restore_gp): Update.
4728         (mips_output_function_prologue): Update.
4729         (mips_expand_prologue): Update.
4730         * config/v850/v850.c (compute_frame_size): Update.
4731         (expand_prologue): * config/mmix/mmix.c (along): update.
4732         (mmix_initial_elimination_offset): update.
4733         (mmix_reorg): update.
4734         (mmix_use_simple_return): update.
4735         (mmix_expand_prologue): update.
4736         (mmix_expand_epilogue): Update.
4737         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4738         (emit_link_insn): Update.
4739
4740 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4741
4742         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4743         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4744         instructions.
4745         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4746         atmega103 device.
4747
4748 2008-04-07  Jan Hubicka  <jh@suse.cz>
4749
4750         * function.h (rtl): Rename to x_rtl.
4751         (crtl): New define.
4752         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4753         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4754         used_temp_slots avail_temp_slots, temp_slot_level,
4755         nonlocal_goto_handler_labels): Update accesstors.
4756         (rtl): New global variable.
4757         (struct function): Move some fileds to rtl_data.
4758         (get_arg_pointer_save_area): Update prototype.
4759         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4760         get_arg_pointer_save_area.
4761         * expr.c (init_expr): Update
4762         * function.c (get_frame_size): Update
4763         (assign_stack_local): Update
4764         (expand_function_end): Update.
4765         (get_art_pointer_save_area): Update
4766         * function.h 
4767         * emit-rtl.c (rtl): Declare.
4768         (regno_reg_rtx): Declare.
4769         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4770         Update.
4771         (gen_reg_rtx): Update.
4772         * varasm.c (n_deferred_constatns): Update accestor.
4773         (init_varasm_status): Do not allocate varasm_status.
4774         (force_const_mem, get_pool_size, output_constant_pool): Update.
4775         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4776         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4777         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4778         * sparc/sparc.h (INIT_EXPANDERS): Update.
4779         * ia64/ia64.h (INIT_EXPANDERS): Update.
4780
4781 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4782
4783         * reload.c (push_secondary_reload): Add missing break to for loop.
4784
4785 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4786
4787         PR middle-end/PR28690
4788         * rtlanal.c: Update copyright years.
4789         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4790         as REG_POINTER and MEM_POINTER operands.
4791         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4792         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4793         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4794         * gcse.c: Update copyright years.
4795         (pre_delete): Call gen_reg_rtx_and_attrs.
4796         (hoist_code): Likewise.
4797         (build_store_vectors): Likewise.
4798         (delete_store): Likewise.
4799         * loop-invariant.c (move_invariant_reg): Likewise.
4800         Update copyright years.
4801
4802 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4803
4804         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4805         control string instead of quoted.
4806
4807 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4808
4809         * doc/rtl.texi: Rewrite of subreg section.
4810
4811 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4812
4813         PR/35842
4814         * config/i386/i386.c (legitimize_pic_address): Add treating
4815         of dllimport SYM_REF's.
4816         (legitimize_dllimport_symbol): Add prototype.
4817
4818 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4819
4820         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4821         reference in constructor with non self-referential type.
4822
4823 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4824
4825         Removal of Return with Depressed Stack Pointer support
4826         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4827         (ECF_SP_DEPRESSED): Likewise.
4828         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4829         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4830         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4831         (expand_call): Do not test ECF_SP_DEPRESSED.
4832         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4833         * function.c (keep_stack_depressed): Delete.
4834         (handle_epilogue_set): Likewise.
4835         (update_epilogue_consts): Likewise.
4836         (emit_equiv_load): Likewise.
4837         (thread_prologue_and_epilogue_insns): Remove support for Return with
4838         Depressed Stack Pointer.
4839         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4840
4841 2008-04-06  Richard Guenther  <rguenther@suse.de>
4842
4843         PR tree-optimization/35400
4844         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4845         information from SSA_NAMEs.
4846
4847 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4848
4849         * config/avr/avr.h (avr_mega_p): Remove declaration.
4850         (AVR_MEGA): Remove macro.
4851         * config/avr/avr.c (avr_mega_p): Remove variable.
4852         (avr_override_options): Remove inicializion of avr_mega_p.
4853         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4854         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4855         (avr_jump_mode): (Ditto.).
4856         (avr_output_progmem_section_asm_op): (Ditto.).
4857         (avr_asm_init_sections): (Ditto.).
4858         (avr_asm_init_sections): (Ditto.).
4859         (avr_rtx_costs): (Ditto.).
4860         * config/avr/avr.md: (Ditto.).
4861         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4862         '__AVR_MEGA__'.
4863
4864 2008-04-06  Richard Guenther  <rguenther@suse.de>
4865
4866         PR tree-optimization/35842
4867         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4868         is_gimple_invariant_address.
4869
4870 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4871
4872         * gcc.c (default_compilers): Sync Fortran extensions list with
4873         that in fortran/lang-specs.h.
4874         * doc/invoke.texi: Likewise.
4875         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4876         * dwarf2out.c (gen_compile_unit_die): Likewise.
4877
4878 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4879
4880         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4881
4882 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4883
4884         PR target/12329
4885         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4886         attribute is used for nested functions.
4887
4888 2008-04-05  Jan Hubicka  <jh@suse.cz>
4889
4890         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4891
4892         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4893         letter argument.
4894         (dump_files): Update.
4895         (enable_rtl_dump_file): Do not accept letter argument.
4896         * tree-pass.h (dump_file_info): Remove letter argument.
4897         * toplev.c (decode_d_option): Update -da handling.
4898         * toplev.h (enable_rtl_dump_file): Update prototype.
4899         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4900         it out based on pass type.
4901         (register_dump_files_1): Likewise.
4902         (init_optimization_passes): Update register_one_dump_file calls.
4903         (execute_one_pass): Sanity check that IPA passes are called at IPA
4904         level and RTL passes at RTL level.
4905         (execute_pass_list): IPA pass can not be after or subpass of
4906         GIMPLE/RTL pass.
4907         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4908         disallov RTL subpasses of IPA subpasses.
4909
4910 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4911
4912         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4913         builtins that return exactly once and do not throw. Cache call to
4914         call_expr_flags.
4915
4916 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4917
4918         PR rtl-optimization/34916
4919         PR middle-end/35519
4920         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4921         between instruction pairs.
4922
4923 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4924
4925         * doc/invoke.texi: Document -mbitops for SH.
4926         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4927         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4928         * config/sh/sh.c (print_operand): Add %t operand code.
4929         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4930         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4931         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4932         (extendqihi2): Likewise.
4933         (movqi_i): Likewise.
4934         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4935         (extv): Use bld instruction for SH2A if possible.
4936         (extzv): Likewise.
4937         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4938         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4939         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4940         (bset.b, bclr.b): Define peepholes.
4941         * config/sh/sh.opt (mbitops): New option.
4942
4943 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4944
4945         PR target/35620
4946         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4947         and view convert expression.
4948
4949 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4950
4951         PR target/35364
4952         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4953
4954 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4955
4956         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4957
4958         * config/i386/cpuid.h (bit_AES): New.
4959         (bit_PCLMUL): Likewise.
4960
4961         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4962         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4963         SSE2 if AES or PCLMUL is enabled.
4964         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4965         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4966         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4967         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4968         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4969         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4970         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4971         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4972         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4973         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4974         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4975         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4976         __builtin_ia32_aeskeygenassist128 and
4977         __builtin_ia32_pclmulqdq128.
4978         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4979         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4980         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4981
4982         * config/i386/i386.h (TARGET_AES): New.
4983         (TARGET_PCLMUL): Likewise.
4984         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4985
4986         * config/i386/i386.md (UNSPEC_AESENC): New.
4987         (UNSPEC_AESENCLAST): Likewise.
4988         (UNSPEC_AESDEC): Likewise.
4989         (UNSPEC_AESDECLAST): Likewise.
4990         (UNSPEC_AESIMC): Likewise.
4991         (UNSPEC_AESKEYGENASSIST): Likewise.
4992         (UNSPEC_PCLMUL): Likewise.
4993
4994         * config/i386/i386.opt (maes): New.
4995         (mpclmul): Likewise.
4996
4997         * config/i386/sse.md (aesenc): New pattern.
4998         (aesenclast): Likewise.
4999         (aesdec): Likewise.
5000         (aesdeclast): Likewise.
5001         (aesimc): Likewise.
5002         (aeskeygenassist): Likewise.
5003         (pclmulqdq): Likewise.
5004
5005         * config/i386/wmmintrin.h: New.
5006
5007         * doc/extend.texi: Document AES and PCLMUL built-in function.
5008
5009         * doc/invoke.texi: Document -maes and -mpclmul.
5010
5011 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5012
5013         * function.c (free_after_parsing): Replace with
5014         cxx_push_function_context from C++ front-end.
5015         (allocate_struct_function): Don't call langhook.
5016         * langhooks.h (struct lang_hooks_for_functions): Delete.
5017         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5018         member "function".
5019         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5020         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5021         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5022         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5023         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5024         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5025         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5026
5027         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5028         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5029         
5030 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5031
5032         PR c/35440
5033         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5034         for all types.
5035
5036 2008-04-04  Richard Guenther  <rguenther@suse.de>
5037
5038         PR middle-end/35823
5039         * fold-const.c (optimize_minmax_comparison): Use the correct
5040         type for the constant in the simplified comparison.
5041
5042 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5043
5044         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5045         Pass L2 size as "--param l2-cache-size" to the compiler.
5046         (decode_l2_cache): New function to decode L2 cache parameters using
5047         0x8000006 extended cpuid function.
5048         (detect_caches_amd): Determine parameters of L2 cache using
5049         decode_l2_caches function.
5050         (decode_caches_intel): Decode L2 cache parameters.
5051         (detect_caches_intel): Determine L2 cache parameters using
5052         decode_caches_intel and decode_l2_caches functions.
5053
5054 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5055
5056         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5057         secondary input reload for subword loads from the constant pool.
5058
5059 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5060
5061         PR target/35713
5062         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5063           constants of the appropriate size for runtime calculations.
5064
5065         PR c/35712
5066         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5067           decimal-float literal constant zero.
5068
5069 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5070
5071         PR c/35738
5072         * c-parser.c (c_parser_omp_atomic): Call
5073         default_function_array_conversion on the RHS.
5074
5075         PR middle-end/35818
5076         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5077         call is_variable_sized if decl has incomplete type.
5078
5079 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5080
5081         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5082
5083 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5084
5085         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5086         iterators.
5087         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5088         (sgt<u>): Merge sgt and sgtu into new expander.
5089         (sgt, sgtu): Remove expanders.
5090         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5091         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5092         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5093         *sgtu_<mode>_mips16 into new pattern.
5094         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5095         (sge<u>): Merge sge and sgeu into new expander.
5096         (sge, sgeu): Remove expanders.
5097         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5098         new pattern.
5099         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5100         (slt<u>): Merge slt and sltu into new expander.
5101         (slt, sltu): Remove expanders.
5102         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5103         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5104         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5105         *sltu_<mode>_mips16 into new pattern.
5106         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5107         (sle<u>): Merge sle and sleu into new expander.
5108         (sle, sleu): Remove expanders.
5109         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5110         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5111         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5112         *sleu_<mode>_mips16 into new pattern.
5113         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5114
5115 2008-04-03  Jan Hubicka  <jh@suse.cz>
5116
5117         PR tree-optimization/35795
5118         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5119         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5120         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5121         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5122         * score/score3.c (score3_output_mi_thunk): Likewise.
5123         * score/score7.c (score7_output_mi_thunk): Likewise.
5124         * mips/mips.c (mips_output_mi_thunk): Likewise.
5125
5126 2008-04-03  Richard Guenther  <rguenther@suse.de>
5127
5128         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5129         conversions.  Simplify code.
5130
5131 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5132
5133         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5134
5135 2008-04-03  Tom Tromey  <tromey@redhat.com>
5136             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5137
5138         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5139         * config/bfin/t-bfin-linux (generated_files): Add
5140         linux-sysroot-suffix.h.
5141         * doc/install.texi (Prerequisites): Require make 3.80.
5142         * doc/sourcebuild.texi (Front End Directory): Document new
5143         variable.
5144         * Makefile.in (generated_files): New variable.
5145         (ALL_HOST_OBJS): New variable.
5146         ($(ALL_HOST_OBJS)): New target.
5147
5148 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5149
5150         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5151         (remap_block): Call id->transform_lang_insert_block instead
5152         of langhook.
5153         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5154         Set id.transform_lang_insert_block to NULL.
5155         (clone_body): Move to cp/optimize.c
5156         * tree-inline.h (struct copy_body_data): Change
5157         transform_lang_insert_block to function pointer.
5158         (copy_generic_body, copy_decl_no_change): Export.
5159         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5160         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5161         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5162
5163         * c-tree.h (insert_block): Kill.
5164         * c-decl.c (insert_block): Kill.
5165
5166 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5167
5168         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5169         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5170         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5171         argument.
5172         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5173         argument, call {push,pop}_function_context from here.
5174         * c-parser.c: Use c_{push,pop}_function_context.
5175
5176         * function.c (push_function_context_to): Move meat ...
5177         (push_function_context): ... here.  Simplify.
5178         * function.c (pop_function_context_from): Move meat ...
5179         (pop_function_context): ... here.  Simplify.
5180         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5181         leave_nested).
5182         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5183         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5184         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5185         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5186
5187 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5188
5189         * expmed.c (extract_force_align_mem_bit_field): Remove.
5190
5191 2008-04-03  Richard Guenther  <rguenther@suse.de>
5192
5193         PR middle-end/35800
5194         * expr.h (try_casesi): Adjust prototype.
5195         * expr.c (try_casesi): Take fallback label as extra parameter.
5196         Use that for gen_casesi if default_label is NULL.
5197         * stmt.c (expand_case): Pass fallback label to try_casesi,
5198         make sure to fill gaps with a fallback label if default_label
5199         is not present.
5200
5201 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5202
5203         PR target/35801
5204         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5205
5206 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5207
5208         * expmed.c (extract_split_bit_field): Remove if (0) code.
5209         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5210         (do_ds_constraint): Likewise.
5211
5212 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5213
5214         * doc/cppopts.texi (-dU): Document.
5215         * c-common.h (flag_dump_macros): Update comment.
5216         * c-opts.c (handle_OPT_d): Handle -dU.
5217         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5218         dump_queued_macros, cb_used_define, cb_used_undef): New.
5219         (init_pp_output): Handle -dU.
5220         (cb_line_change): Call dump_queued_macros.
5221         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5222
5223 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5224
5225         * config/avr/predicates.md (io_address_operand): New predicate. 
5226         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5227         * config/avr/avr.c (avr_io_address_p): Remove function.
5228         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5229         'avr_io_address_p' function.
5230         (out_movhi_r_mr): (Ditto.).
5231         (out_movqi_mr_r): (Ditto.).
5232         (out_movhi_mr_r): (Ditto.).
5233         (avr_address_cost): (Ditto.).
5234
5235 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5236
5237         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5238         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5239         in 32bit mode when XMM registers are available to avoid store
5240         forwarding stalls.
5241         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5242         corresponding post-reload splitters.
5243
5244 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5245
5246         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5247         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5248         __builtin_ia32_roundss.
5249         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5250         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5251         __builtin_ia32_roundss.
5252         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5253         IX86_BUILTIN_SHUFPD here.
5254
5255 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5256
5257         * config/i386/i386.md (plogic): New.
5258         (plogicprefix): Likewise.
5259
5260         * config/i386/mmx.md (mmx_<code><mode>3): New.
5261         (mmx_and<mode>3): Removed.
5262         (mmx_ior<mode>3): Likewise.
5263         (mmx_xor<mode>3): Likewise.
5264
5265         * config/i386/sse.md (<code><mode>3): New.
5266         (*<code><mode>3): Likewise.
5267         (*<code><mode>3): Likewise.
5268         (<code><mode>3): Likewise.
5269         (*sse_<code><mode>3): Likewise.
5270         (*sse2_<code><mode>3): Likewise.
5271         (<code>tf3): Likewise.
5272         (*<code>tf3): Likewise.
5273         (and<mode>3): Likewise.
5274         (*and<mode>3): Likewise.
5275         (ior<mode>3): Removed.
5276         (*ior<mode>3): Likewise.
5277         (xor<mode>3): Likewise.
5278         (*xor<mode>3): Likewise.
5279         (*and<mode>3): Likewise.
5280         (*ior<mode>3): Likewise.
5281         (*xor<mode>3): Likewise.
5282         (and<mode>3): Likewise.
5283         (*sse_and<mode>3): Likewise.
5284         (*sse2_and<mode>3): Likewise.
5285         (andtf3): Likewise.
5286         (*andtf3): Likewise.
5287         (ior<mode>3): Likewise.
5288         (*sse_ior<mode>3): Likewise.
5289         (*sse2_ior<mode>3): Likewise.
5290         (iortf3): Likewise.
5291         (*iortf3): Likewise.
5292         (xor<mode>3): Likewise.
5293         (*sse_xor<mode>3): Likewise.
5294         (*sse2_xor<mode>3): Likewise.
5295         (xortf3): Likewise.
5296         (*xortf3): Likewise.
5297
5298 2008-04-02  Richard Guenther  <rguenther@suse.de>
5299
5300         PR tree-optimization/14495
5301         PR tree-optimization/34793
5302         * tree-vrp.c (struct switch_update): New structure.
5303         (to_remove_edges, to_update_switch_stmts): New VECs.
5304         (simplify_switch_using_ranges): New function.  Remove not taken
5305         case labels and edges.
5306         (simplify_stmt_using_ranges): Call it.
5307         (identify_jump_threads): Mark edges we have queued for removal
5308         so we don't thread them.
5309         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5310         case label vector.
5311         * tree-cfg.c (group_case_labels): Deal with missing default label.
5312         (tree_verify_flow_info): Allow missing default label.
5313         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5314         (emit_case_nodes): Likewise.
5315         (expand_case): Do not rely on the default label to be present.
5316         * expr.c (try_casesi): Deal with NULL default_label.
5317         (do_tablejump): Likewise.
5318
5319 2008-04-02  Richard Guenther  <rguenther@suse.de>
5320
5321         PR tree-optimization/14495
5322         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5323         SWITCH_EXPR here ...
5324         (vrp_visit_switch_stmt): ... but here (new function).
5325         (find_case_label_index): New helper function.
5326         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5327
5328 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5329
5330         * fwprop.c: Fix ISO-C99ism.
5331
5332 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5333
5334         PR bootstrap/35752
5335         * Makefile.in (objdir): Set it here.
5336         * configure.ac: Not here.  Find dynamic linker characteristics.
5337         * exec-tool.in: Use them.
5338         * aclocal.m4: Regenerate.
5339         * configure: Regenerate.
5340
5341 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5342
5343         * expr.c (expand_var): Delete it.
5344         * expr.h (expand_var): Delete prototype.
5345         * function.c (expand_function_start): Use expand_decl instead.
5346         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5347         langhook.
5348
5349 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5350
5351         PR rtl-optimization/35542
5352         * fwprop.c (forward_propagate_and_simplify): Replace
5353         loc_reg_mentioned_in_p with reg_mentioned_p.
5354
5355 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5356
5357         PR rtl-optimization/35281
5358         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5359         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5360         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5361         (varying_mem_p): Move above propagate_rtx.
5362         (all_uses_available_at): Do not check MEMs.
5363
5364 2008-04-02  Rafael Espindola  <espindola@google.com>
5365
5366         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5367         (register_edge_assert_for_2): Split the cond argument.
5368         (register_edge_assert_for_1): Adjust for the change in
5369         register_edge_assert_for_2.
5370         (register_edge_assert_for): Split the cond argument.
5371         (find_switch_asserts): Adjust for the change in
5372         register_edge_assert_for.
5373
5374 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5375
5376         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5377         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5378         offsets for 64-bit mingw.
5379         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5380         abi for x86_64-pc-mingw.
5381
5382 2008-04-02  Richard Guenther  <rguenther@suse.de>
5383
5384         * tree-vrp.c (extract_range_from_assert): Make sure to not
5385         produce range min/max with TREE_OVERFOW set.
5386         If merging a anti-range and a range keep the anti-range if
5387         the range covers all values of the type.
5388         (register_edge_assert_for_2): Only allow sign-changing
5389         conversions in detecting canonical range checks.  Also
5390         register an assert for the unsigned name if useful.
5391
5392         PR tree-optimization/35787
5393         * tree-vrp.c (vrp_val_max): New function.
5394         (vrp_val_min): Likewise.
5395         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5396         (vrp_val_is_min): Likewise.
5397         (supports_overflow_infinity): Use vrp_val_{min,max}.
5398         (negative_overflow_infinity): Likewise.
5399         (positive_overflow_infinity): Likewise.
5400         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5401         (is_positive_overflow_infinity): Likewise.
5402         (is_overflow_infinity): Likewise.
5403         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5404         vrp_val_is_{min,max}.
5405         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5406         to ranges if possible.  Avoid empty ranges.
5407
5408 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5409
5410         PR middle-end/35705
5411         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5412         the expression is a function address.
5413
5414 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5415
5416         PR fortran/35154, fortran/23057
5417         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5418         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5419         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5420         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5421         in common.
5422         (dbxout_syms): Check for COMMON-based symbol and wrap in
5423         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5424         in bracket for efficiency.
5425
5426         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5427         using DW_TAG_common_block + member offset.
5428         (add_pubname_string): New function.
5429         (dw_expand_expr): New function to find block name and offset for
5430         COMMON var.
5431         (common_check): New function to check whether symbol in Fortran COMMON.
5432         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5433
5434 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5435
5436         PR c/35436
5437         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5438
5439 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5440
5441         * config/v850/v850.md (casesi): Remove if (0) code.
5442         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5443         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5444
5445 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5446
5447         * config/i386/i386.md (rex64suffix): New mode attribute.
5448         (floathi<mode>2): Disable expander for SSE math.
5449         (*floathi<mode>2_1): New insn insn_and_split pattern.
5450         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5451         corresponding post-reload splitters.
5452         (*floathi<mode>2_i387): New macroized insn pattern.
5453         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5454         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5455         insn_and_split pattern.
5456         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5457         New macroized instruction patterns and corresponding post-reload
5458         splitters.
5459         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5460         and corresponding post-reload splitters.
5461         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5462         New macroized instruction patterns.
5463         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5464         macroized instruction patterns and corresponding post-reload splitters.
5465         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5466         corresponding post-reload splitters.
5467         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5468         New macroized instruction patterns.
5469         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5470         corresponding post-reload splitters.
5471         (*floatsi<mode>2_i387): New macroized instruction patterns.
5472
5473 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5474
5475         * config/i386/i386.md (smaxmin): New.
5476         (umaxmin): Likewise.
5477         (maxminiprefix): Likewise.
5478         (maxminfprefix): Likewise.
5479         (<code><mode>3): Likewise.
5480         (smin<mode>3): Removed.
5481         (smax<mode>3): Likewise.
5482
5483         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5484         (mmx_<code>v4hi3): Likewise.
5485         (mmx_<code>v8qi3): Likewise.
5486         (mmx_smaxv2sf3): Removed.
5487         (mmx_sminv2sf3): Likewise.
5488         (mmx_umaxv8qi3): Likewise.
5489         (mmx_smaxv4hi3): Likewise.
5490         (mmx_uminv8qi3): Likewise.
5491         (mmx_sminv4hi3): Likewise.
5492
5493         * config/i386/sse.md (<addsub><mode>3): New.
5494         (*<addsub><mode>3): Likewise.
5495         (<sse>_vm<addsub><mode>3): Likewise.
5496         (<maxmin><mode>3): Likewise.
5497         (*<maxmin><mode>3_finite): Likewise.
5498         (*<maxmin><mode>3): Likewise.
5499         (<sse>_vm<maxmin><mode>3): Likewise.
5500         (sse3_h<addsub>v4sf3): Likewise.
5501         (sse3_h<addsub>v2df3): Likewise.
5502         (<maxmin>v16qi3): Likewise.
5503         (*<maxmin>v16qi3): Likewise.
5504         (<maxmin>v8hi3): Likewise.
5505         (*<maxmin>v8hi3): Likewise.
5506         (*sse4_1_<maxmin><mode>3): Likewise.
5507         (*sse4_1_<maxmin><mode>3): Likewise.
5508         (add<mode>3): Removed.
5509         (*add<mode>3): Likewise.
5510         (<sse>_vmadd<mode>3): Likewise.
5511         (sub<mode>3): Likewise.
5512         (*sub<mode>3): Likewise.
5513         (<sse>_vmsub<mode>3): Likewise.
5514         (smin<mode>3): Likewise.
5515         (*smin<mode>3_finite): Likewise.
5516         (*smin<mode>3): Likewise.
5517         (<sse>_vmsmin<mode>3): Likewise.
5518         (smax<mode>3): Likewise.
5519         (*smax<mode>3_finite): Likewise.
5520         (*smax<mode>3): Likewise.
5521         (<sse>_vmsmax<mode>3): Likewise.
5522         (sse3_haddv4sf3): Likewise.
5523         (sse3_haddv2df3): Likewise.
5524         (sse3_hsubv4sf3): Likewise.
5525         (sse3_hsubv2df3): Likewise.
5526         (umaxv16qi3): Likewise.
5527         (*umaxv16qi3): Likewise.
5528         (smaxv8hi3): Likewise.
5529         (*smaxv8hi3): Likewise.
5530         (*sse4_1_smax<mode>3): Likewise.
5531         (*sse4_1_umax<mode>3): Likewise.
5532         (uminv16qi3): Likewise.
5533         (*uminv16qi3): Likewise.
5534         (sminv8hi3): Likewise.
5535         (*sminv8hi3): Likewise.
5536         (*sse4_1_smin<mode>3): Likewise.
5537         (*sse4_1_umin<mode>3): Likewise.
5538
5539 2008-04-01  Rafael Espindola  <espindola@google.com>
5540
5541         * tree-cfg.c (verify_expr): remove in_phi.
5542         (verify_stmt): Don't call walk_tree with verify_expr. Use
5543         is_gimple_min_invariant instead of is_gimple_val.
5544
5545 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5546
5547         * doc/include/gpl_v3.texi: Update for manpage generation.
5548         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5549         gpl.texi.
5550         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5551         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5552         gpl_v3.texi instead of gpl.texi.
5553         (gpl.pod): New.
5554
5555 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5556
5557         PR pch/13675
5558         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5559
5560 2008-04-01  Rafael Espindola  <espindola@google.com>
5561
5562         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5563         (extract_code_and_val_from_cond): Use
5564         extract_code_and_val_from_cond_with_ops.
5565
5566 2008-04-01  Jan Hubicka  <jh@suse.cz>
5567
5568         * function.c (free_after_compilation): Free epilogue_delay_list.
5569         (prepare_function_start): Assert that previous compilation was freed.
5570
5571 2008-04-01  Jan Hubicka  <jh@suse.cz>
5572             Jim Wilson  <wilson@tuliptree.org>
5573             Andreas Tobler <andreast@gcc.gnu.org>
5574
5575         PR middle-end/35781
5576         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5577         rtl.emit instead cfun->emit.
5578         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5579         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5580
5581 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5582
5583         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5584
5585 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5586
5587         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5588         New options
5589         (fprofile-use): Add var flag_profile_use
5590         * coverage.c (coverage_begin_output): Do not open a gcno file for
5591         output only if -ftest-coverage is set.
5592         Do not add getpwd() to gcda file path.
5593         (build_gcov_info): Check the new flag
5594         flag_profile_datafile_relative_path.
5595         (coverage_init): Use profile_data_prefix.
5596         Read profile counter only if flag_profile_use is set.
5597         * opts.c (common_handle_option): New option fprofile-use=,
5598         fprofile-dir=, fprofile-generate=.
5599         * toplev.c (profile_data_prefix): New variable definition.
5600         * toplev.h (profile_data_prefix): New declaration.
5601         * doc/invoke.tex (Option Summary, Optimization Options):
5602         Add new options.
5603
5604 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5605
5606         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5607         use tmp consistently.
5608
5609         PR target/35695
5610         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5611         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5612         UNSPEC_FR_RECIP_APPROX_RES.
5613         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5614
5615 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5616
5617         PR c/35750
5618         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5619
5620 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5621
5622         PR middle-end/30186
5623         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5624         element of the vector via a pointer.
5625
5626 2008-03-31  Ian Lance Taylor  <iant@google.com>
5627
5628         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5629
5630 2008-03-31  Jan Hubicka  <jh@suse.cz>
5631
5632         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5633         get_arg_pointer_save_area.
5634         * expr.c (init_expr): Just clear out rtl.expr.
5635         * function.c (free_after_compilation): Clear out whole RTL structure.
5636         (get_func_frame_size): Merge into ...
5637         (get_frame_size): ... this one.
5638         (assign_stack_local_1): Merge into ...
5639         (assign_stack_local): ... this one.
5640         (expand_function_end): Update call of get_arg_pointer_save_area.
5641         (get_art_pointer_save_area): Remove cfun argument.
5642         * function.h (emit_status): regno_pointer_align does not need length
5643         attribute. Move x_regno_reg_rtx to ...
5644         (regno_reg_rtx): ... new global array.
5645         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5646         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5647         apply_args_value, forced_labels, stack_pointer_delta):
5648         Update accestors.
5649         (struct varasm_status): Move here from varasm.c
5650         (struct rtl_data): New. Move here some fields from struct function.
5651         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5652         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5653         used_temp_slots avail_temp_slots, temp_slot_level,
5654         nonlocal_goto_handler_labels): Update accesstors.
5655         (rtl): New global variable.
5656         (struct function): Move some fileds to rtl_data.
5657         (get_arg_pointer_save_area): Update prototype.
5658         * emit-rtl.c (rtl): Declare.
5659         (regno_reg_rtx): Declare.
5660         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5661         Update.
5662         (gen_reg_rtx): Update.
5663         (init_virtual_regs): Do not tate emit_status argument.
5664         (init_emit): Do not allocate emit.
5665         * varasm.c (varasm_statuc): Move to function.h.
5666         (n_deferred_constatns): Update accestor.
5667         (init_varasm_status): Do not allocate varasm_status.
5668         (force_const_mem, get_pool_size, output_constant_pool): Update.
5669         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5670         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5671
5672 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5673
5674         PR rtl-optimization/35729
5675         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5676         references.
5677
5678 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5679
5680         PR target/32000
5681         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5682         load/store if memory is unaligned.
5683         (*movti_rex64): Likewise.
5684
5685         * config/i386/predicates.md (misaligned_operand): New.
5686
5687 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5688
5689         PR tree-opt/35431
5690         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5691         complex types.
5692
5693 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5694
5695         * config/ia64/constraints.md: Add 'j' constraint.
5696         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5697         (movdi_internal): Likewise.
5698
5699 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5700
5701         PR c/35748
5702         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5703
5704 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5705
5706         PR target/35757
5707         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5708         proper error message for the third argument on blendpd and
5709         blendps.
5710
5711         * config/i386/sse.md (blendbits): New.
5712         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5713
5714 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5715
5716         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5717
5718 2008-03-30  Richard Guenther  <rguenther@suse.de>
5719
5720         PR middle-end/31023
5721         * fold-const.c (fold_sign_changed_comparison): Do leave
5722         conversions to base-types alone.
5723
5724 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5725
5726         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5727         the link register if one altivec register is be saved.
5728
5729 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5730
5731         * final.c (final_scan_insn): Remove if (0) code.
5732
5733 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5734
5735         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5736
5737 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5738
5739         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5740         of V4SFmode to ix86_binary_operator_ok.
5741
5742 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5743
5744         * config/i386/i386.c (override_options): Initialize
5745         ix86_veclib_handler to ix86_veclibabi_svml when
5746         -mveclibabi=svml is used.
5747         (ix86_veclibabi_svml): New function for SVML ABI style
5748         vectorization support.
5749         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5750
5751 2008-03-28  Rafael Espindola  <espindola@google.com>
5752
5753         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5754         (tree_binary_nonnegative_warnv_p): Make it public.
5755         (tree_single_nonnegative_warnv_p): Make it public.
5756         (tree_invalid_nonnegative_warnv_p): Make it public.
5757         (tree_unary_nonzero_warnv_p): Make it public.
5758         (tree_binary_nonzero_warnv_p): Make it public
5759         (tree_single_nonzero_warnv_p): Make it public.
5760         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5761         (extract_range_from_binary_expr): Split the expr argument.
5762         (extract_range_from_unary_expr): Split the expr argument.
5763         (extract_range_from_comparison): Split the expr argument.
5764         (extract_range_from_expr): Use the new aux functions.
5765         (vrp_evaluate_conditional_warnv): Use
5766         vrp_evaluate_conditional_warnv_with_ops.
5767         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5768         (tree_binary_nonzero_warnv_p): Declare.
5769         (tree_single_nonzero_warnv_p): Declare.
5770         (tree_expr_nonzero_warnv_p): Declare.
5771         (tree_unary_nonnegative_warnv_p): Declare.
5772         (tree_binary_nonnegative_warnv_p): Declare.
5773         (tree_single_nonnegative_warnv_p): Declare.
5774         (tree_invalid_nonnegative_warnv_p): Declare.
5775
5776 2008-03-28  Richard Guenther  <rguenther@suse.de>
5777
5778         PR tree-optimization/30317
5779         PR tree-optimization/30911
5780         PR tree-optimization/34793
5781         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5782         (struct assert_locus_d): New member EXPR.
5783         (register_new_assert_for): Add EXPR parameter to support
5784         ASSERT_EXPR <name, expr OP limit>.
5785         (register_edge_assert_for_1): Adjust callers.
5786         (find_assert_locations): Likewise.
5787         (process_assert_insertions_for): Build condition from expression.
5788         (extract_range_from_assert): Handle ASSERT_EXPRs
5789         of the form ASSERT_EXPR <name, expr OP limit>.
5790         (register_edge_assert_for_2): New helper registering
5791         asserts for comparisons.  Recognize range tests of the form
5792         (unsigned)i - CST1 OP CST2.
5793         (register_edge_assert_for_1): Use it.
5794         (register_edge_assert_for): Likewise.
5795         (needs_overflow_infinity): Integer sub-types
5796         do not need overflow infinities.
5797         (vrp_val_is_max): The extreme values of integer sub-types
5798         are those of the base type.
5799         (vrp_val_is_min): Likewise.
5800         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5801         expressions.
5802
5803 2008-03-28  Nick Clifton  <nickc@redhat.com>
5804
5805         PR target/31110
5806         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5807         Return GENERAL_REGS for stack adjustment reloads.
5808
5809 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5810
5811         PR target/31334
5812         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5813         const_vector when all the vectors are constant.
5814
5815 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5816
5817         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5818         comparisons.
5819         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5820         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5821         (scc_sf): New.
5822         (s<code>_sf): Use new scc_sf attribute for opcode names.
5823
5824 2008-03-27  Tom Tromey  <tromey@redhat.com>
5825
5826         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5827         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5828         config/spu/t-spu-elf, config/i386/t-interix,
5829         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5830         config/i386/x-darwin, config/i386/x-mingw32,
5831         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5832         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5833         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5834         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5835         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5836         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5837         config/score/t-score-elf, config/arm/t-strongarm-pe,
5838         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5839         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5840         Revert automatic dependency patch.
5841
5842 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5843
5844         PR target/35657
5845         * config/i386/i386.c (ix86_function_arg_boundary): Align
5846         decimal floating point to its natural boundary.
5847
5848 2008-03-27  Richard Guenther  <rguenther@suse.de>
5849
5850         PR middle-end/35716
5851         * fold-const.c (fold_comparison): Restrict distinct decl
5852         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5853         solely rely on operand_equal_p.
5854
5855 2008-03-27  Richard Guenther  <rguenther@suse.de>
5856
5857         PR c/32511
5858         * c-common.c (handle_weak_attribute): Reject combination of
5859         weak and inline.
5860
5861 2008-03-27  Richard Guenther  <rguenther@suse.de>
5862
5863         PR tree-optimization/32810
5864         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5865         conversions from DECL_INITIAL.
5866         (fold_const_aggregate_ref): Likewise from constructor elements.
5867
5868 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5869
5870         * tree-affine.h (aff_combination_expand): Declare.
5871         (get_inner_reference_aff): Likewise.
5872         * tree-affine.c (aff_combination_expand): Split out from
5873         tree_to_aff_combination_expand.
5874         (get_inner_reference_aff): New function.
5875         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5876         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5877         (struct lim_aux_data): sm_done field removed.
5878         (mem_ref_loc_p, mem_ref_locs_p): New types.
5879         (struct mem_ref): Added id, stored, accesses_in_loop,
5880         indep_loop, dep_loop, indep_ref, dep_ref fields.
5881         Removed is_stored, locs and next fields.
5882         (memory_accesses): New variable.
5883         (movement_possibility): Do not allow moving statements
5884         that store to memory.
5885         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5886         New functions.
5887         (determine_max_movement): For statements with memory references,
5888         find the outermost loop in that the reference is independent.
5889         (move_computations_stmt): Mark the virtual operands for renaming.
5890         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5891         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5892         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5893         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5894         create_vop_ref_mapping, analyze_memory_references,
5895         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5896         get_all_locs_in_loop, ref_always_accessed_p,
5897         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5898         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5899         store_motion_loop, store_motion): New functions.
5900         (struct vop_to_refs_elt): New type.
5901         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5902         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5903         (schedule_sm): Replaced by...
5904         (execute_sm): ... this.
5905         (determine_lsm_ref, hoist_memory_references,
5906         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5907         find_more_ref_vops, free_mem_ref, free_mem_refs,
5908         determine_lsm_loop, determine_lsm): Removed.
5909         (tree_ssa_lim_finalize): Free data structures used by store motion.
5910         (tree_ssa_lim): Call analyze_memory_references.  Use
5911         store_motion instead of determine_lsm.
5912
5913 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5914
5915         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5916         rename tmake_file to m68hc11/t-m68hc11.
5917         (mcore): Set inhibit_libc to true.
5918         * config.host (alpha*-dec-*vms*): Set extra_programs.
5919         (interix3*): Don't use host_xmake_file.
5920         * configure.ac: Let config.gcc override inhibit_libc.
5921         * configure: Regenerate.
5922
5923         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5924         * config/t-openbsd-thread: Remove commented out lines.
5925         
5926         * config/x-interix: Remove.
5927
5928         * config/m68hc11/t-m68hc11-gas: Rename to...
5929         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5930
5931         * config/mcore/t-mcore: Remove T_CFLAGS.
5932         * config/mcore/t-mcore-pe: Likewise.
5933
5934 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5935
5936         * configure.ac: Replace custom __GNU_SOURCE test with
5937         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5938         * aclocal.m4: Regenerate.
5939         * configure: Regenerate.
5940         * config.in: Regenerate.
5941
5942 2008-03-27  Richard Guenther  <rguenther@suse.de>
5943
5944         * fold-const.c (target.h): Include.
5945         (fold_comparison): Fold comparison of addresses of decls
5946         that bind locally or of constants.  Consolidate address folding code.
5947         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5948         results from fold_binary_to_constant.
5949         (compare_values_warnv): Likewise.
5950
5951 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5952
5953         PR middle-end/35429
5954         * fold-const.c (fold_truthop): Check for integeral types when folding
5955         a == 0 && b == 0 and a != 0 || b != 0 .
5956
5957 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5958
5959         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5960
5961 2008-03-26  Andreas Schwab  <schwab@suse.de>
5962
5963         * doc/invoke.texi: Fix use of @item vs. @itemx.
5964
5965 2008-03-26  Tom Tromey  <tromey@redhat.com>
5966
5967         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5968         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5969         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5970         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5971         build/genconstants.o, build/genemit.o, build/genextract.o,
5972         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5973         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5974         options.h.
5975
5976 2008-03-26  Richard Guenther  <rguenther@suse.de>
5977
5978         Revert
5979         2008-03-26  Richard Guenther  <rguenther@suse.de>
5980
5981         * fold-const.c (target.h): Include.
5982         (fold_comparison): Fold comparison of addresses of two decls
5983         that bind locally.  Consolidate address folding code.
5984
5985 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5986
5987         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5988         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5989         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5990         dconstsqrt2, dconstthird, dconste and/or dconst10.
5991         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5992         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5993         dconstsqrt2, dconste): Delete.
5994         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5995         Constify variable.
5996         * real.c (get_real_const): New.
5997         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5998         dconstsqrt2, dconste): Delete.
5999         (real_value_const, get_real_const): New.
6000
6001 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6002
6003         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6004
6005         * config/i386/i386.c (ix86_function_arg_boundary): Check
6006         BIGGEST_ALIGNMENT instead of 128.
6007         (setup_incoming_varargs_64): Likewise.
6008
6009 2008-03-26  Tom Tromey  <tromey@redhat.com>
6010
6011         * Makefile.in (DEPFILES): Add missing '/'.
6012
6013 2008-03-26  Richard Guenther  <rguenther@suse.de>
6014
6015         * fold-const.c (target.h): Include.
6016         (fold_comparison): Fold comparison of addresses of two decls
6017         that bind locally.  Consolidate address folding code.
6018
6019 2008-03-26  Nick Clifton  <nickc@redhat.com>
6020
6021         PR target/31232
6022         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6023         not allow INT+INT as a legitimate addressing mode.
6024
6025 2008-03-26  Richard Guenther  <rguenther@suse.de>
6026
6027         * tree-flow.h (widen_bitfield): Remove declaration.
6028         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6029         (widen_bitfield): Remove function.
6030         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6031         code.
6032
6033 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6034
6035         PR target/31558
6036         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6037         error_mark_node's.
6038
6039 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6040
6041         PR rtl-optimization/35232
6042         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6043         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6044         reg_reloaded_call_part_clobbered here.
6045         (reload_regs_reach_end_p): New function.
6046         (reload_reg_rtx_for_input): New variable.
6047         (reload_reg_rtx_for_output): Likewise.
6048         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6049         when reassigning a pseudo register.  Load reloadreg from 
6050         reload_reg_rtx_for_input, moving the mode and register
6051         calculation to...
6052         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6053         instead of the original when deciding whether an input reload
6054         would be a no-op or whether an output reload can be deleted.
6055         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6056         when setting up new_spill_reg_store.  Load it from
6057         reload_reg_rtx_for_output, moving the mode and register
6058         calculation to...
6059         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6060         instead of the original when deciding whether an output reload
6061         would be a no-op.  Do the same when modifying insn notes.
6062         Use rtx_equal_p instead of == to compare the registers.
6063         (inherit_piecemeal_p): Take a mode and two register numbers
6064         as argument.
6065         (emit_reload_insns): Clear new_spill_reg_store for every hard
6066         register in the reload register.  Remove spill registers
6067         from reg_reloaded_valid before considering whether to record
6068         inheritance information for them.  Use reload_reg_rtx_for_output
6069         instead of reg_rtx when recording output reloads.  Use
6070         reload_reg_rtx_for_input instead of reg_rtx when recording
6071         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6072         at the same time as setting reg_reloaded_valid.
6073         (delete_output_reload): Add a new_reload_reg parameter and use it
6074         instead of rld[j].reg_rtx.
6075         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6076         calls accordingly.
6077
6078 2008-03-25  Tom Tromey  <tromey@redhat.com>
6079
6080         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6081         (build/genattr.o): Likewise.
6082         (build/genattrtab.o): Likewise.
6083         (build/gencodes.o): Likewise.
6084         (build/genconfig.o): Likewise.
6085         (build/genconstants.o): Likewise.
6086         (build/genemit.o): Likewise.
6087         (build/genextract.o): Likewise.
6088         (build/genflags.o): Likewise.
6089
6090 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6091         
6092         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6093         instead of size_int for integer types.
6094         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6095         to match type of MINUS_EXPR.
6096         
6097 2008-03-25  Tom Tromey  <tromey@redhat.com>
6098
6099         * configure: Rebuilt.
6100         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6101         Makefile.
6102
6103 2008-03-25  Tom Tromey  <tromey@redhat.com>
6104
6105         * config/x-solaris (host-solaris.o): Update.
6106         * config/x-linux (host-linux.o): Update.
6107         * config/x-hpux (host-hpux.o): Update.
6108         * config/x-darwin (host-darwin.o): Update.
6109         * config/v850/t-v850e (v850-c.o): Update.
6110         * config/v850/t-v850 (v850-c.o): Update.
6111         * config/t-vxworks (vxworks.o): Update.
6112         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6113         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6114         * config/spu/t-spu-elf (spu-c.o): Update.
6115         (spu.o): Remove.
6116         * config/sh/t-symbian (sh-c.o): Update.
6117         (symbian.o): Update.
6118         * config/sh/t-sh (sh-c.o): Update.
6119         * config/score/t-score-elf (score7.o, score3.o): Update.
6120         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6121         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6122         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6123         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6124         (rs6000.o): Remove.
6125         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6126         * config/m32c/t-m32c (m32c-pragma.o): Update.
6127         * config/ia64/t-ia64 (ia64-c.o): Update.
6128         * config/i386/x-mingw32 (host-mingw32.o): Update.
6129         * config/i386/x-i386 (driver-i386.o): Update.
6130         * config/i386/x-darwin (host-i386-darwin.o): Update.
6131         * config/i386/x-cygwin (host-cygwin.o): Update.
6132         * config/i386/t-nwld (nwld.o): Update.
6133         * config/i386/t-netware (netware.o): Update.
6134         * config/i386/t-interix (winnt.o): Update.
6135         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6136         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6137         msformat-c.o): Update.
6138         * config/bfin/t-bfin-linux (generated_files): Add
6139         linux-sysroot-suffix.h.
6140         * config/arm/t-wince-pe (pe.o): Update.
6141         * config/arm/t-strongarm-pe (pe.o): Update.
6142         * config/arm/t-pe (pe.o): Update.
6143         * config/arm/t-arm (arm-c.o): Update.
6144         * doc/install.texi (Prerequisites): Require make 3.80.
6145         * Makefile.in: Remove .o targets.
6146         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6147         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6148         (simple_generated_h, simple_generated_c): Move earlier.
6149         (generated_files): New variable.
6150         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6151         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6152         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6153         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6154         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6155         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6156         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6157         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6158         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6159         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6160         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6161         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6162         (.c.o): Remove.
6163         (COMPILE.base, COMPILE): New variables.
6164         (%.o): New pattern rule.
6165         (ALL_HOST_OBJS): New variable.
6166         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6167         (dummy-checksum.o, cc1-checksum.o): Remove.
6168         (DRIVER_SHLIB): New variable.
6169         (DRIVER_DEFINES): Use it.
6170         (gencondmd.c): Move out of build/.
6171         (s-conditions): Update.
6172         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6173         (ALL_BUILD_OBJS): Likewise.
6174         (build/%.o): Use BUILDCOMPILE.
6175         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6176         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6177         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6178         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6179         build/genconfig.o, build/genconstants.o, build/genemit.o,
6180         build/genextract.o, build/genflags.o, build/genmddeps.o,
6181         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6182         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6183         build/gen-protos.o, build/scan.o, build/fix-header.o,
6184         build/scan-decls.o): Simplify.
6185         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6186         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6187         prefix.o, toplev.o): Reduce to variable setting.
6188         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6189         ($(out_object_file), gcc-options.o): New targets.
6190         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6191         * configure: Rebuilt.
6192         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6193         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6194
6195 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6196
6197         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6198         complain when we hit an error, return ERROR_MARK_NODE.
6199
6200 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6201
6202         * config/sh/constraints.md (Pso, Psz): New constraints.
6203         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6204         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6205
6206 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6207
6208         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6209         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6210
6211 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6212
6213         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6214         (prefetch_sh2a): New.   
6215
6216 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6217             Naveen.H.S  <naveen.hs@kpitcummins.com>
6218
6219         * config/sh/constraints.md (I28): New constraint.
6220         * config/sh/sh.c (broken_move): Add support for movi20s.
6221         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6222
6223 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6224             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6225             Naveen.H.S  <naveen.hs@kpitcummins.com>
6226
6227         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6228         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6229         (print_operand): Handle resbank in %@ operand code.
6230         (sh_encode_section_info): New.
6231         (push_regs): Add conditions for resbank.
6232         (sh_expand_epilogue): Likewise.
6233         (sh_insert_attributes): Likewise.
6234         (sh_attribute_table): Likewise.
6235         (sh_handle_resbank_handler_attribute): New.
6236         (sh2a_handle_function_vector_handler_attribute): New.
6237         (sh2a_is_function_vector_call): New.
6238         (sh2a_get_function_vector_number): New.
6239         (sh2a_function_vector_p): New.
6240         (sh_cfun_resbank_handler_p): New.
6241         * config/sh/sh.md (calli): Emit jsr/n if possible.
6242         (calli_tbr_rel): New.
6243         (calli_pcrel): Emit jsr/n if possible.
6244         (return_i): Emit rts/n if possible.
6245         (call_valuei_tbr_rel): New.
6246         (call_valuei_pcrel): Add condition for SH2A target.
6247         (call_value): Likewise.
6248         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6249         (sh2a_get_function_vector_number): Likewise.
6250         (sh2a_is_function_vector_call): Likewise.
6251         * doc/extend.texi: Document TBR relative addressing of SH2A.
6252         (resbank): Add description for SH2A.
6253
6254 2008-03-24  Richard Guenther  <rguenther@suse.de>
6255
6256         PR c/22371
6257         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6258         pointer assignments change conversions according to middle-end rules.
6259         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6260         * configure.ac: Include type checking in yes.
6261         * configure: Regenerate.
6262
6263 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6264
6265         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6266         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6267         
6268 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6269
6270         * gthr-vxworks.h (UNUSED): Define.
6271
6272 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6273
6274         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6275
6276 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6277
6278         * doc/extend.texi (Function Attributes): Add missing comma in the
6279         example of the "alloc_size" attribute.
6280         
6281 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6282
6283         Revert:
6284         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6285
6286         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6287         32bit host.
6288
6289         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6290
6291         PR target/35496
6292         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6293         of the underlying type of a MS bitfield layout to the natural
6294         alignment of the type.
6295
6296         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6297
6298         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6299         to their natural alignment to avoid store forwarding stalls.
6300
6301 2008-03-22  Richard Guenther  <rguenther@suse.de>
6302
6303         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6304         For PHI nodes verify the address is invariant.
6305         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6306         (get_symbol_constant_value): Use is_gimple_min_invariant.
6307         (maybe_fold_stmt_indirect): Likewise.
6308
6309 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6310
6311         PR rtl-optimization/33927
6312         * Makefile.in (dse.o): Depend on $(TM_P_H).
6313         * expr.h (extract_low_bits): Declare.
6314         * expmed.c (extract_low_bits): New function.
6315         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6316         * dse.c: Include tm_p.h.
6317         (find_shift_sequence): Remove the read_reg argument and return the
6318         read value.  Emit the instructions instead of returning them.
6319         Iterate on new_mode rather than calculating it each time.
6320         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6321         source to NEW_MODE and extract_low_bits to convert the shifted
6322         value to READ_MODE.
6323         (replace_read): Allow the load and store to have different mode
6324         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6325         or extraction instructions before trying the replacement.  Update
6326         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6327
6328 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6329
6330         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6331         to their natural alignment to avoid store forwarding stalls.
6332
6333 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6334
6335         PR target/27946
6336         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6337         encouraging but not allowing gprs for input;
6338         change the input constraint to !f#r.
6339         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6340         gprs for output;
6341         change the output constraint to !f#r.
6342
6343 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6344
6345         PR target/13958
6346         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6347         corresponding post-reload splitters.
6348         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6349         when x87 FP math is selected.
6350         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6351         New function prototype.
6352         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6353         unreachable function to ease macroization of insn patterns.
6354
6355 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6356
6357         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6358         reference dumps if ddr is NULL or dependence is unknown.
6359
6360 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6361
6362         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6363         unsigned extension into account.
6364         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6365         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6366         Do computations on a scratch register.
6367
6368 2008-03-21  Richard Guenther  <rguenther@suse.de>
6369
6370         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6371         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6372         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6373         * tree-ssa-dom.c (record_equality): Likewise.
6374         * tree-inline.c (copy_body_r): Likewise.
6375         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6376         TREE_INVARIANT.
6377
6378 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6379
6380         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6381         as 'delete_unused' argument.
6382
6383 2008-03-20  Richard Guenther  <rguenther@suse.de>
6384
6385         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6386         special casing of constant qualifiers.
6387         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6388         care about them in general.
6389         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6390         regardless of their type.
6391         (fold_stmt_r): Forcefully fold *& if we end up with that.
6392
6393 2008-03-20  Paul Brook  <paul@codesourcery.com>
6394
6395         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6396         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6397         linker flags.
6398         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6399         definition.
6400         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6401         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6402
6403 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6404
6405         * common.opt (Wmudflap): New option.
6406         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6407         (mx_register_decls): Likewise.
6408         (mudflap_finish_file): Likewise.
6409         * doc/invoke.texi: Document -Wno-mudflap.
6410
6411 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6412
6413         * c-format.c (replace_format_name_to_system_name): New.
6414         (cmp_attribs): New.
6415         (convert_format_name_to_system_name): New.
6416         (decode_format_attr): Add use of convert_format_name_to_system_name.
6417         (format_types_orig): Add gnu_ prefix to names.
6418         (check_format_info_main): Special treating of \0 escaped names for
6419         supporting multi-character format specifiers as I32, I64.
6420         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6421         (gnu_target_overrides_format_attributes): New.
6422         * c-format.h: Add structure target_ovr_attr to hold
6423         system specific formatter names.
6424         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6425         msformat-c.o file to c_target_objs and cxx_target_objs.
6426         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6427         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6428         (TARGET_N_FORMAT_TYPES): New.
6429         * config/i386/msformat-c.c: New.
6430         * config/i386/t-cygming: Add build rule for msformat-c.o.
6431         * doc/extend.texi: Add new format names gnu_* and ms_* and
6432         further details.
6433         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6434
6435 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6436
6437         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6438         optimizations turned on under -O3.
6439         (ftree-vectorize): Add that the flag is turned on with -O3.
6440
6441 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6442
6443         * regmove.c (try_auto_increment): Fix spelling error in comment.
6444         * final.c (final_scan_insn): Likewise.
6445
6446 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6447
6448         PR target/14552
6449         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6450         allocator preferences for "y" and "r" class registers.
6451         ("*mov<mode>_internal"): Ditto.
6452         ("*movv2sf_internal_rex64"): Ditto.
6453         ("*movv2sf_internal"): Ditto.
6454
6455 2008-03-19  Michael Matz  <matz@suse.de>
6456
6457         PR middle-end/35616
6458         * calls.c (expand_call): Check overlap of arguments with call
6459         address for sibcalls.
6460
6461 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6462
6463         PR target/35496
6464         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6465         of the underlying type of a MS bitfield layout to the natural
6466         alignment of the type.
6467
6468 2008-03-19  Jan Hubicka  <jh@suse.cz>
6469
6470         PR other/35094
6471         * toplev.c (decode_d_option): Handle all CPP flags.
6472         * tree-vrp.c: Update tree_pass descriptors.
6473         * regrename.c: Update tree_pass descriptors.
6474         * fwprop.c: Update tree_pass descriptors.
6475         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6476         * tree-into-ssa.c: Update tree_pass descriptors.
6477         * tree-dump.c: Update tree_pass descriptors.
6478         * tree-complex.c: Update tree_pass descriptors.
6479         * tree-dump.h: Update tree_pass descriptors.
6480         * see.c: Update tree_pass descriptors.
6481         * cgraphbuild.c: Update tree_pass descriptors.
6482         * tracer.c: Update tree_pass descriptors.
6483         * tree-loop-distribution.c: Update tree_pass descriptors.
6484         * cgraph.c: Update tree_pass descriptors.
6485         * postreload-gcse.c: Update tree_pass descriptors.
6486         * postreload.c: Update tree_pass descriptors.
6487         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6488         * tree-tailcall.c: Update tree_pass descriptors.
6489         * tree-pass.h (tree_opt_pass): Rename to ...
6490         (opt_pass) ... this one; add "type" field and remove letter field.
6491         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6492         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6493         all_lowering_passes): Update declaration.
6494         * ipa-cp.c: Update tree_pass descriptors.
6495         * final.c: Update tree_pass descriptors.
6496         * omp-low.c: Update tree_pass descriptors.
6497         * tree-ssa-dse.c: Update tree_pass descriptors.
6498         * ipa-reference.c: Update tree_pass descriptors.
6499         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6500         * auto-inc-dec.c: Update tree_pass descriptors.
6501         * reorg.c: Update tree_pass descriptors.
6502         * cgraphunit.c: Update tree_pass descriptors.
6503         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6504         * tree-ssa-ccp.c: Update tree_pass descriptors.
6505         * df-core.c: Update tree_pass descriptors.
6506         * mode-switching.c: Update tree_pass descriptors.
6507         * tree-nomudflap.c: Update tree_pass descriptors.
6508         * modulo-sched.c: Update tree_pass descriptors.
6509         * ipa-pure-const.c: Update tree_pass descriptors.
6510         * cse.c: Update tree_pass descriptors.
6511         * web.c: Update tree_pass descriptors.
6512         * tree-stdarg.c: Update tree_pass descriptors.
6513         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6514         * tree-ssa-dom.c: Update tree_pass descriptors.
6515         * tree-nrv.c: Update tree_pass descriptors.
6516         * tree-ssa-alias.c: Update tree_pass descriptors.
6517         * loop-init.c: Update tree_pass descriptors.
6518         * gimple-low.c: Update tree_pass descriptors.
6519         * ipa-inline.c: Update tree_pass descriptors.
6520         * tree-ssa-sink.c: Update tree_pass descriptors.
6521         * global.c: Update tree_pass descriptors.
6522         * ifcvt.c: Update tree_pass descriptors.
6523         * jump.c: Update tree_pass descriptors.
6524         * predict.c: Update tree_pass descriptors.
6525         * tree-ssa-loop.c: Update tree_pass descriptors.
6526         * recog.c: Update tree_pass descriptors.
6527         * dse.c: Update tree_pass descriptors.
6528         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6529         * tree-eh.c: Update tree_pass descriptors.
6530         * regmove.c: Update tree_pass descriptors.
6531         * local-alloc.c
6532         * function.c: Update tree_pass descriptors.
6533         * tree-vectorizer.c: Update tree_pass descriptors.
6534         * gcse.c: Update tree_pass descriptors.
6535         * ipa-type-escape.c: Update tree_pass descriptors.
6536         * tree-if-conv.c: Update tree_pass descriptors.
6537         * init-regs.c: Update tree_pass descriptors.
6538         * ipa.c: Update tree_pass descriptors.
6539         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6540         * rtl-factoring.c: Update tree_pass descriptors.
6541         * lower-subreg.c: Update tree_pass descriptors.
6542         * bt-load.c: Update tree_pass descriptors.
6543         * tree-dfa.c: Update tree_pass descriptors.
6544         * except.c: Update tree_pass descriptors.
6545         * emit-rtl.c: Update tree_pass descriptors.
6546         * cfgexpand.c: Update tree_pass descriptors.
6547         * tree-cfgcleanup.c: Update tree_pass descriptors.
6548         * cfgcleanup.c: Update tree_pass descriptors.
6549         * tree-ssa-pre.c: Update tree_pass descriptors.
6550         * tree-sra.c: Update tree_pass descriptors.
6551         * tree-mudflap.c: Update tree_pass descriptors.
6552         * tree-ssa-copy.c: Update tree_pass descriptors.
6553         * cfglayout.c: Update tree_pass descriptors.
6554         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6555         * tree-ssa-dce.c: Update tree_pass descriptors.
6556         * tree-ssa.c: Update tree_pass descriptors.
6557         * regclass.c: Update tree_pass descriptors.
6558         * integrate.c: Update tree_pass descriptors.
6559         * tree-optimize.c: Update tree_pass descriptors.
6560         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6561         * tree-object-size.c: Update tree_pass descriptors.
6562         * combine.c: Update tree_pass descriptors.
6563         * tree-outof-ssa.c: Update tree_pass descriptors.
6564         * bb-reorder.c: Update tree_pass descriptors.
6565         * stack-ptr-mod.c: Update tree_pass descriptors.
6566         * var-tracking.c: Update tree_pass descriptors.
6567         * tree-profile.c: Update tree_pass descriptors.
6568         * tree-vect-generic.c: Update tree_pass descriptors.
6569         * reg-stack.c: Update tree_pass descriptors.
6570         * sched-rgn.c: Update tree_pass descriptors.
6571         * tree-ssa-structalias.c: Update tree_pass descriptors.
6572         * tree-cfg.c: Update tree_pass descriptors.
6573         * passes.c (current_pass): Update declaration.
6574         (finish_optimization_passes): Update.
6575         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6576         (register_one_dump_file, register_dump_files_1, next_pass_1):
6577         Update arguments.
6578         (init_optimization_passes): Update handling of new types.
6579         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6580         * ipa-struct-reorg.c: Update tree_pass descriptors.
6581         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6582         * combine-stack-adj.c: Update tree_pass descriptors.
6583         * cfgrtl.c: Update tree_pass descriptors.
6584         * dce.c: Update tree_pass descriptors.
6585         * tree-ssanames.c: Update tree_pass descriptors.
6586
6587 2008-03-19  Richard Guenther  <rguenther@suse.de>
6588
6589         PR middle-end/35609
6590         * tree-ssa.c (walk_data): New structure.
6591         (warn_uninitialized_var): If not always_executed warn with "maybe"
6592         instead of "is".
6593         (execute_early_warn_uninitialized): Compute post-dominators.
6594         Initialize always_executed before processing each basic block.
6595
6596 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6597
6598         PR target/35504
6599         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6600         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6601
6602 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6603
6604         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6605
6606 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6607
6608         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6609         is true.
6610         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6611         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6612         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6613         target after ignore has been set, and move there also the commputation
6614         of subtarget and original_target.
6615         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6616         (LANG_HOOKS_INITIALIZER): Remove it.
6617         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6618
6619 2008-03-18  Richard Guenther  <rguenther@suse.de>
6620
6621         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6622         found an expression with constants, note that in the VN for the lhs.
6623         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6624         fold them to constants if possible.  Run cleanup_cfg if done so.
6625         (execute_pre): Return todo.
6626         (do_pre): Likewise.
6627         (execute_fre): Likewise.
6628         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6629         of constants.
6630         (get_prop_source_stmt): Look through pointer conversions.
6631
6632 2008-03-18  Jan Hubicka  <jh@suse.cz>
6633
6634         * tree-pretty-print.c: Include predict.h.
6635         (dump_generic_node): Dump predictor.
6636         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6637         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6638         * gimple-low.c (lower_stmt): Likewise.
6639         * expr.c (expand_expr_real): Likewise.
6640         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6641         them.
6642         (build_predict_expr, build_predict_expr): New.
6643         * predict.h (predictor_name, build_predict_expr): Update.
6644         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6645         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6646         * predict.def (PRED_CONTINUE): Update hitrate.
6647         * tree.def (PREDICT_EXPR): Define.
6648         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6649         do not handle BIND_EXPR.
6650         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6651         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6652         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6653         operands.
6654
6655 2008-03-18  Michael Matz  <matz@suse.de>
6656
6657         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6658
6659 2008-03-18  Richard Guenther  <rguenther@suse.de>
6660
6661         * tree-gimple.h (is_gimple_invariant_address): Declare.
6662         (is_gimple_constant): Likewise.
6663         * tree-gimple.c (is_gimple_constant): New function.
6664         (is_gimple_invariant_address): Likewise.
6665         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6666         and is_gimple_invariant_address.
6667         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6668         previous change.
6669         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6670         an addressable base.
6671
6672 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6673
6674         PR middle-end/35611
6675         * gimplify.c (gimplify_expr): Gimplify second operand of
6676         OMP_ATOMIC_LOAD.
6677
6678 2008-03-17  Richard Guenther  <rguenther@suse.de>
6679
6680         PR tree-optimization/19637
6681         * fold-const.c (fold_unary): Remove restrictions of removing
6682         intermediate pointer-conversions (P2)(P1)P0.
6683         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6684         conversion to void pointer.
6685         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6686
6687 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6688
6689         PR debug/31510
6690         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6691         emulated thread local variables.
6692
6693 2008-03-16  Richard Guenther  <rguenther@suse.de>
6694
6695         PR middle-end/35607
6696         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6697         expand TREE_INVARIANT operations that are not gimple invariant.
6698
6699 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6700
6701         * doc/extend.texi (Alignment): Say that the ABI controls
6702         the __alignof__ for non-strict-alignment targets rather
6703         than being a recommendation.
6704
6705 2008-03-15  Paul Brook  <paul@codesourcery.com>
6706
6707         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6708         annotations.
6709         (arm_output_fn_unwind): Mark functions that can not be unwound.
6710
6711 2008-03-15  Paul Brook  <paul@codesourcery.com>
6712
6713         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6714         extension instructions.
6715
6716 2008-03-15  Richard Guenther  <rguenther@suse.de>
6717
6718         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6719         and fold constant aggregate refs.
6720         (fold_const_aggregate_ref): Handle string constants
6721         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6722         (evaluate_stmt): Simplify now that ccp_fold folds constant
6723         aggregate refs.
6724
6725 2008-03-15  Paul Brook  <paul@codesourcery.com>
6726
6727         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6728         (extzv): Use gen_extzv_t2.
6729         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6730
6731 2008-03-15  Richard Guenther  <rguenther@suse.de>
6732
6733         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6734         (fold_const_aggregate_ref): Likewise.
6735         (get_value): Return NULL if we don't have any values.
6736         (ccp_finalize): Set const_val to NULL after freeing it.
6737         * tree-flow.h (get_symbol_constant_value): Declare.
6738         (fold_const_aggregate_ref): Likewise.
6739         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6740
6741 2008-03-15  Richard Guenther  <rguenther@suse.de>
6742
6743         PR middle-end/35593
6744         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6745         to not produce negative array indices if not allowed.  Add
6746         parameter to indicate that.
6747         (maybe_fold_offset_to_component_ref): Allow negative array
6748         indices only for the first member of a structure.
6749         (maybe_fold_offset_to_reference): Allow negative array indices.
6750         (maybe_fold_stmt_addition): Likewise.
6751
6752 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6753             Anatoly Sokolov <aesok@post.ru>
6754
6755         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6756         (avr_arch): Add ARCH_AVR6.
6757         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6758         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6759         instead of fixed value 2.
6760         (print_operand_address): Use gs() asm specifier instead of pm().
6761         (avr_assemble_integer): (Ditto.).
6762         (avr_output_addr_vec_elt): (Ditto.).
6763         (print_operand): Handle "!" code.
6764         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6765         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6766         (AVR_HAVE_EIJMP_EICALL): Define.
6767         (AVR_3_BYTE_PC): Redefine.
6768         (AVR_2_BYTE_PC): (Ditto.).
6769         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6770         (LINK_SPEC): Add atmega2560 and atmega2561.
6771         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6772         (crtm2561.o).
6773         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6774         for 3 byte PC devices.
6775         (call_value_insn): (Ditto.).
6776         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6777         (indirect_jump): Use only for for 2 byte PC devices.
6778         (*tablejump): (Ditto.).
6779         (*indirect_jump_avr6): Add insn.
6780         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6781         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6782         instead of ijmp for 3 byte PC devices.
6783         (__tablejump2__): (Ditto.).
6784         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6785         (MULITLIB_DIRNAMES): (Ditto.). 
6786         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6787
6788 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6789
6790         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6791         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6792         ("mmx_psadbw"): Use V1DI mode for operand 0.
6793         * config/i386/i386-modes.def (V1SI): New vector mode.
6794         * config/i386/i386.c (struct builtin_description)
6795         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6796         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6797         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6798         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6799         v1di_ftype_v8qi_v8qi type.
6800         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6801
6802         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6803         __builtin_ia32_pmuludq]: Fix the mode of return value.
6804
6805 2008-03-15  Richard Guenther  <rguenther@suse.de>
6806
6807         PR middle-end/35595
6808         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6809         being a PHI_NODE.
6810
6811 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6812         
6813         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6814         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6815         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6816         unless TARGET_SERIALIZE_VOLATILE is enabled.
6817         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6818         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6819         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6820
6821 2008-03-14  Richard Guenther  <rguenther@suse.de>
6822
6823         PR tree-optimization/34172
6824         * tree-flow.h (refs_may_alias_p): Declare.
6825         (get_single_def_stmt): Likewise.
6826         (get_single_def_stmt_from_phi): Likewise.
6827         (get_single_def_stmt_with_phi): Likewise.
6828         * tree-dfa.c (refs_may_alias_p): New function.
6829         (get_single_def_stmt): Likewise.
6830         (get_single_def_stmt_from_phi): Likewise.
6831         (get_single_def_stmt_with_phi): Likewise.
6832         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6833         (vn_reference_lookup_1): New helper function.
6834         (vn_reference_lookup): Walk the virtual use-def chain to
6835         continue searching for a match if the def does not alias the
6836         reference we are looking for.
6837
6838 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6839
6840         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6841         archive and Perzl.  Update The Written Word listing.
6842
6843 2008-03-14  Richard Guenther  <rguenther@suse.de>
6844
6845         PR tree-optimization/34043
6846         PR tree-optimization/33989
6847         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6848         when doing FRE.
6849         (bitmap_find_leader): Use extra argument to verify dominance
6850         relationship inside a basic-block.
6851         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6852         (find_leader_in_sets): Adjust.
6853         (create_component_ref_by_pieces): Take extra argument for
6854         dominance check, handle lookup failures.
6855         (find_or_generate_expression): Likewise.
6856         (create_expression_by_pieces): Likewise.
6857         (insert_into_preds_of_block): Adjust.
6858         (create_value_expr_from): If asked for, verify all operands
6859         are in the blocks AVAIL_OUT set.
6860         (make_values_for_stmt): Check for SSA_NAMEs that are life
6861         over an abnormal edge.
6862         (compute_avail): Remove such check.
6863         (do_SCCVN_insertion): New function.
6864         (eliminate): If we do not find a leader suitable for replacement
6865         insert a replacement expression from SCCVN if available.
6866         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6867         (struct vn_ssa_aux): Add needs_insertion flag.
6868         * tree-ssa-sccvn.c (may_insert): New global flag.
6869         (copy_reference_ops_from_ref): Value-number union member access
6870         based on its size, not type and member if insertion is allowed.
6871         (visit_reference_op_load): For a weak match from union type
6872         punning lookup a view-converted value and insert a SSA_NAME
6873         for that value if that is not found.
6874         (visit_use): Make dumps shorter.  Do not disallow value numbering
6875         SSA_NAMEs that are life over an abnormal edge to constants.
6876         (free_scc_vn): Release inserted SSA_NAMEs.
6877         (run_scc_vn): New flag to specify whether insertion is allowed.
6878         Process SSA_NAMEs in forward order.
6879         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6880         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6881         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6882         pointer type to/from integral types that do not change the
6883         precision to regular conversions.
6884
6885 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6886
6887         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6888         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6889         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6890         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6891         input arguments and the mode of return value.  Built-in functions
6892         that operate on whole 64-bit MMX register now use V1DI mode.
6893
6894 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6895             Olga Golovanevsky  <olga@il.ibm.com>
6896
6897         PR tree-optimization/35041
6898         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6899         to locate the right position in a statement.
6900
6901 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6902
6903         PR target/34000
6904         PR target/35553
6905         * config/i386/xmmintrin.h:  Change all static inline functions to
6906         extern inline and add __gnu_inline__ attribute.
6907         * config/i386/bmintrin.h: Ditto.
6908         * config/i386/smmintrin.h: Ditto.
6909         * config/i386/tmmintrin.h: Ditto.
6910         * config/i386/mmintrin-common.h: Ditto.
6911         * config/i386/ammintrin.h: Ditto.
6912         * config/i386/emmintrin.h: Ditto.
6913         * config/i386/pmmintrin.h: Ditto.
6914         * config/i386/mmintrin.h: Ditto.
6915         * config/i386/mm3dnow.h: Ditto.
6916
6917 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6918
6919         PR middle-end/35185
6920         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6921         (lower_omp_2): New function.
6922         (lower_omp_1, lower_omp): Rewritten.
6923
6924 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6925
6926         PR 35054
6927         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6928         with the phrase "Microsoft Windows compilers".
6929         (Push/Pop Macro Pragmas): New subsection. Document
6930         #pragma push_macro and pragma pop_macro.
6931
6932 2008-03-12  Paul Brook  <paul@codesourcery.com>
6933
6934         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6935
6936 2008-03-12  Paul Brook  <paul@codesourcery.com>
6937
6938         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6939         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6940         (thumb2_addsi_shortim): Rename ...
6941         (thumb2_addsi_short): ... to this.  Allow register operands.
6942         (thumb2_subsi_short): New pattern.
6943         (thumb2_one_cmplsi2_short,
6944         thumb2_negsi2_short): New patterns and peepholes.
6945
6946 2008-03-12  Paul Brook  <paul@codesourcery.com>
6947
6948         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6949
6950 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6951
6952         * config/i386/i386.md (int_cond): New code iterator.
6953         (fp_cond): Ditto.
6954         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6955         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6956         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6957         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6958         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6959         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6960         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6961         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6962
6963 2008-03-12  Paul Brook  <paul@codesourcery.com>
6964
6965         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6966         instead of {arm,thumb}_compute_save_reg_mask.
6967         (output_return_instruction): Ditto.
6968         (thumb_unexpanded_epilogue): Ditto.
6969         (thumb1_expand_prologue): Ditto.
6970         (thumb1_output_function_prologue): Ditto.
6971         (arm_set_return_address): Ditto.
6972         (thumb_set_return_address): Ditto.
6973         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6974         regs to achieve stack alignment.
6975         (thumb1_compute_save_reg_mask): Fix compiler warning.
6976         (arm_output_epilogue): Use offsets->saved_regs_mask.
6977         Adjust stack pointer by poping call clobered registers.
6978         (arm_expand_prologue): Use offsets->saved_regs_mask.
6979         Adjust stack pointer by pushing extra registers.
6980         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6981
6982 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6983
6984         PR tree-opt/35422
6985         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6986         conversion to the operands of a multiplication.
6987
6988 2008-03-12  Richard Guenther  <rguenther@suse.de>
6989
6990         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6991         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6992         * timevar.def (TV_TREE_PHIPROP): Add.
6993         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6994         pass description.  Use TV_TREE_PHIPROP.
6995         * tree-ssa-forwprop.c: Remove phiprop code.
6996
6997 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6998
6999         PR middle-end/35549
7000         * omp-low.c (maybe_lookup_decl): Constify first argument.
7001         (use_pointer_for_field): Change last argument from bool to
7002         omp_context *.  Disallow shared copy-in/out in nested
7003         parallel if decl is shared in outer parallel too.
7004         (build_outer_var_ref, scan_sharing_clauses,
7005         lower_rec_input_clauses, lower_copyprivate_clauses,
7006         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7007
7008 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7009             Ira Rosen  <irar@il.ibm.com>
7010
7011         * tree-vectorizer.c (free_stmt_vec_info): New function.
7012         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7013         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7014         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7015         * tree-vect-transform.c (vectorizable_conversion): Free
7016         vec_oprnds0 if it was allocated.
7017         (vect_permute_store_chain): Remove unused VECs.
7018         (vectorizable_store): Free VECs that are allocated in the..
7019         function.
7020         (vect_transform_strided_load, vectorizable_load): Likewise.
7021         (vect_remove_stores): Simplify the code.
7022         (vect_transform_loop): Move code to vect_remove_stores().
7023         Call vect_remove_stores() and free_stmt_vec_info().
7024
7025 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7026
7027         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7028         TARGET_HPUX.  Revise comment.
7029         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7030         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7031         Use sr4 variant of `be' instruction when not generating PIC code.
7032         (attr_length_call): Adjust for above change.
7033
7034 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7035
7036         * ipa-reference.c (static_execute): Remove module_statics_const and
7037         associated setting code.
7038
7039 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7040
7041         PR target/35540
7042         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7043         predicate for operand 1.
7044         (paritysi2_cmp): Use register_operand predicate for operand 2.
7045         Use earlyclobber modifier for operand 1.  Remove support for
7046         memory operands.
7047         (paritydi2_cmp): Use register_operand predicate for operand 3.
7048         Use earlyclobber modifier for operand 1.  Remove support for
7049         memory operands.
7050
7051 2008-03-11  Paul Brook  <paul@codesourcery.com>
7052             Vladimir Prus  <vladimir@codesourcery.com>
7053
7054         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7055         (arm_compute_save_reg0_reg12_mask): Always
7056         check if register 11 must be saved.  Always safe hard frame pointer
7057         when frame_pointer_needeed.
7058         (arm_compute_save_reg_mask): Save IP and PC
7059         only with apcs frames.
7060         (arm_output_epilogue): Adjust Thumb2 codepath to
7061         be also invoked and work for ARM non-apcs frames.
7062         (arm_expand_prologue): Don't bother saving IP
7063         for non-apcs frame, since it's not clobbered by
7064         prologue code.  Implement non-apcs frame
7065         layout.
7066
7067 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7068
7069         PR rtl-optimization/35281
7070         * expr.c (convert_move): Use a new pseudo for the intermediate
7071         from_mode->word_mode result.
7072
7073 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7074
7075         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7076         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7077         * toplev.c (compile_file): Don't call it.
7078
7079 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7080
7081         PR middle-end/35526
7082         * expr.c (store_expr): Call emit_block_move if the mode
7083         of "temp" RTX is BLKmode.
7084
7085 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7086             Richard Guenther  <rguenther@suse.de>
7087
7088         PR tree-optimization/31358
7089         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7090         the step with a NULL_TREE.
7091         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7092         to sizetype if type is a pointer type.
7093         (add_candidate_1): Don't convert the base and step to
7094         the generic type if the orginal type is a pointer type.
7095         (add_iv_value_candidates): Use sizetype for the step
7096         if type is a pointer type.
7097         (cand_value_at): Likewise.
7098         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7099         for pointer types.
7100         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7101         Don't convert the tem affine to the type.
7102         (add_elt_to_tree): Use sizetype for the step if a pointer.
7103         Use POINTER_PLUS_EXPR for pointers.
7104         (aff_combination_to_tree): Use sizetype for the step if a
7105         pointer.
7106
7107 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7108
7109         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7110         Remove commutativity hint.
7111
7112 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7113
7114         PR c/35438
7115         PR c/35439
7116         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7117         errorneous type.  Check that v is a VAR_DECL.
7118
7119         PR middle-end/35099
7120         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7121
7122 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7123
7124         PR tree-optimization/35494
7125         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7126         may be overriden at link and run time.
7127
7128 2008-03-10  Richard Guenther  <rguenther@suse.de>
7129
7130         PR tree-optimization/34677
7131         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7132         (poolify_tree): Likewise.
7133         (modify_expr_template): Likewise.
7134         (poolify_modify_stmt): Likewise.
7135         (insert_fake_stores): Handle all component-ref style stores
7136         in addition to INDIRECT_REF.  Also handle complex types.
7137         Do not poolify the inserted load.
7138         (realify_fake_stores): Do not rebuild the tree but only
7139         make it a SSA_NAME copy.
7140         (init_pre): Remove initialzation of modify_expr_template.
7141         Do not allocate modify_expr_node_pool.
7142         (fini_pre): Do not free modify_expr_node_pool.
7143
7144 2008-03-10  Paul Brook  <paul@codesourcery.com>
7145
7146         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7147         to avoid conflicts.
7148
7149 2008-03-10  Paul Brook  <paul@codesourcery.com>
7150             Mark Shinwell  <shinwell@codesourcery.com>
7151
7152         * config/arm/cortex-r4.md: New.
7153         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7154         insn attributes.
7155         * config/arm/arm.md: Include cortex-r4.md.
7156         (insn): Add smmls, sdiv and udiv values.
7157         (generic_sched): Don't use generic scheduling for Cortex-R4.
7158         (arm_issue_rate): New function.
7159         (TARGET_SCHED_ISSUE_RATE): Define.
7160
7161 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7162
7163         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7164
7165 2008-03-10  Richard Guenther  <rguenther@suse.de>
7166
7167         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7168         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7169
7170 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7171
7172         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7173         Set default to true.
7174
7175 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7176
7177         * c.opt (Wsynth): Deprecate.
7178         * doc/invoke.texi (Option Summary, Warning Options): Document
7179         -Wno-format-contains-nul.
7180
7181 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7182
7183         PR target/35496
7184         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7185         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7186
7187 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7188
7189         * config/rs6000/rs6000.c (builtin_description): Rename vector
7190         left shift operations.
7191         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7192         (altivec_vsl<VI_char>): Rename to ...
7193         (ashl<mode>3): ... new name.
7194         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7195         gen_ashlv4si3.
7196         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7197
7198 2008-03-08  Richard Guenther  <rguenther@suse.de>
7199
7200         * coverage.h (tree_coverage_counter_addr): Declare.
7201         * coverage.c (tree_coverage_counter_addr): New function.
7202         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7203         before using again.
7204         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7205         (tree_gen_one_value_profiler): Likewise.
7206         (tree_gen_ic_profiler): Likewise.
7207         (tree_gen_average_profiler): Likewise.
7208         (tree_gen_ior_profiler): Likewise.
7209
7210 2008-03-08  Richard Guenther  <rguenther@suse.de>
7211
7212         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7213         (vn_binary_op_insert): Likewise.
7214         (vn_unary_op_lookup): Likewise.
7215         (vn_unary_op_insert): Likewise.
7216         (vn_nary_op_lookup): Declare.
7217         (vn_nary_op_insert): Likewise.
7218         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7219         and binary hashes, use a single obstack for unary_op_pool
7220         and binary_op_pool.
7221         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7222         a single struct vn_nary_op_s.  Store tree code length and
7223         a variable number of operands.
7224         (struct vn_reference_op_struct): Remove unused op2.
7225         (vn_reference_op_eq): Do not compare op2.
7226         (vn_reference_op_compute_hash): Do not compute hash of op2.
7227         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7228         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7229         with vn_nary_op_compute_hash.
7230         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7231         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7232         vn_nary_op_lookup.
7233         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7234         vn_nary_op_insert.
7235         (visit_unary_op): Call nary functions.
7236         (visit_binary_op): Likewise.
7237         (process_scc): Adjust for struct vn_tables_s changes.
7238         (allocate_vn_table): Likewise.
7239         (free_vn_table): Likewise.
7240         * tree-vn.c (vn_add): Call nary functions.
7241         (vn_lookup): Likewise.
7242
7243 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7244
7245         PR target/35498
7246         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7247         wdst back after sync_compare_and_swapqhi_internal.
7248
7249 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7250
7251         PR target/22152
7252         * config/i386/i386-modes.def (V1DI): New vector mode.
7253         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7254         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7255         (MMXMODE248): Ditto.
7256         (MMXMODE): Add V1DI mode.
7257         (mmxvecsize): Change DI mode to V1DI mode.
7258         ("mov<mode>): Use MMXMODEI8 mode iterator.
7259         ("*mov<mode>_internal_rex64"): Ditto.
7260         ("*mov<mode>_internal"): Ditto.
7261         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7262         ("mmx_sub<mode>3"): Ditto.
7263         ("mmx_adddi3"): Remove insn pattern.
7264         ("mmx_subdi3"): Ditto.
7265         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7266         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7267         ("mmx_ashl<mode>3"): Ditto.
7268         ("mmx_lshrdi3"): Remove insn pattern.
7269         ("mmx_ashldi3"): Ditto.
7270         * config/i386/i386.c (classify_argument): Handle V1DImode.
7271         (function_arg_advance_32): Ditto.
7272         (function_arg_32): Ditto.
7273         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7274         mmx_addv1di3 insn pattern.
7275         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7276         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7277         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7278         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7279         Remove definitions of built-in functions.
7280         (V1DI_type_node): New node.
7281         (v1di_ftype_v1di_int): Ditto.
7282         (v1di_ftype_v1di_v1di): Ditto.
7283         (v2si_ftype_v2si_si): Ditto.
7284         (v4hi_ftype_v4hi_di): Remove node.
7285         (v2si_ftype_v2si_di): Ditto.
7286         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7287         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7288         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7289         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7290         Add new builtins using def_builtin_const.
7291         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7292         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7293         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7294         * config/i386/mmintrin.h (__v1di): New typedef.
7295         (_mm_add_si64): Cast arguments to __v1di type.
7296         (_mm_sub_si64): Ditto.
7297         (_mm_sll_pi16): Cast __count to __v4hi type.
7298         (_mm_sll_pi32): Cast __count to __v2si type.
7299         (_mm_sll_si64): Cast arguments to __v1di type.
7300         (_mm_srl_pi16): Cast __count to __v4hi type.
7301         (_mm_srl_pi32): Cast __count to __v2si type.
7302         (_mm_srl_si64): Cast arguments to __v1di type.
7303         (_mm_sra_pi16): Cast __count to __v4hi type.
7304         (_mm_sra_pi32): Cast __count to __v2si type.
7305         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7306         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7307         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7308         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7309         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7310         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7311         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7312         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7313         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7314         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7315         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7316         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7317
7318 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7319
7320         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7321
7322 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7323
7324         PR target/35373
7325         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7326         reg+const addressing for Altivec modes.  Don't generate reg+reg
7327         addressing for TFmode or TDmode quantities.
7328
7329 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7330
7331         * c-common.c (vector_types_convertible_p): Call langhook
7332         instead of comptypes.
7333
7334 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7335
7336         PR tree-opt/35402
7337         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7338         integral and scalar float variables which have a
7339         NULL DECL_INITIAL.
7340
7341 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7342
7343         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7344         dwarf_register_span hook when emitting unwind information for
7345         register-to-memory saves.
7346         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7347         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7348
7349 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7350
7351         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7352         for the same VAR_DECL.
7353
7354 2008-03-06  Tom Tromey  <tromey@redhat.com>
7355
7356         * treelang: Delete.
7357         * doc/standards.texi (Standards): Don't mention treelang.
7358         * doc/invoke.texi (Overall Options): Don't mention treelang.
7359         * doc/install.texi (Prerequisites): Don't mention bison or
7360         treelang.
7361         (Configuration): Don't mention treelang.
7362         (Building): Likewise.
7363         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7364
7365 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7366
7367         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7368         word-extractions out of a multi-word object.
7369
7370 2008-03-06  Richard Guenther  <rguenther@suse.de>
7371
7372         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7373         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7374         result type and precision.
7375         * expr.c (get_inner_reference): Set unsignedp based on the result
7376         type of BIT_FIELD_REF.
7377         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7378         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7379         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7380         for BIT_FIELD_REF.
7381         (sra_build_assignment): Likewise.
7382         (sra_build_elt_assignment): Likewise.
7383         (sra_explode_bitfield_assignment): Likewise.
7384         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7385         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7386         set BIT_FIELD_REF_UNSIGNED.
7387         (vectorizable_load): Likewise.
7388
7389 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7390
7391         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7392         at bb start.
7393
7394 2008-03-06  Richard Guenther  <rguenther@suse.de>
7395
7396         * alias.c (struct alias_set_entry): Move has_zero_child field
7397         to pack with alias_set.
7398
7399 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7400
7401         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7402         32bit host.
7403
7404 2008-03-05  Ian Lance Taylor  <iant@google.com>
7405
7406         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7407
7408 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7409
7410         * fwprop.c (update_df): Support width and offset parameters of
7411         df_ref_create.
7412         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7413         global_conflicts): Change DF_REF_EXTRACT to either
7414         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7415         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7416         * df-scan.c (df_ref_record, df_defs_record,
7417         df_ref_create_structure, df_def_record_1, df_uses_record,
7418         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7419         df_bb_refs_collect, df_entry_block_defs_collect,
7420         df_exit_block_uses_collect): Support new width and offset fields.
7421         (ref_extract_pool): New storage pool.
7422         (df_free_ref): New function.
7423         (df_reg_chain_unlink, df_free_collection_rec,
7424         df_sort_and_compress_refs): Call df_free_ref.
7425         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7426         of df_ref_extract.
7427         (df_ref_create_structure): Allocate df_ref_extract if offset and
7428         width fields are used.
7429         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7430         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7431         and SIGN_EXTRACT.
7432         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7433         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7434         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7435         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7436         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7437         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7438         (df_ref_extract): New structure.
7439         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7440         (df_ref_create): Add width and offset parameters.
7441         
7442 2008-03-05  Richard Guenther  <rguenther@suse.de>
7443
7444         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7445         Use ranges_overlap_p.
7446         (offset_overlaps_with_access): Rename
7447         to ranges_overlap_p and move ...
7448         * tree-flow-inline.h (ranges_overlap_p): ... here.
7449
7450         * tree.h (get_inner_reference, handled_component_p): Update
7451         comments.
7452
7453         * tree.h (record_component_aliases, get_alias_set,
7454         alias_sets_conflict_p, alias_sets_must_conflict_p,
7455         objects_must_conflict_p): Move declarations ...
7456         * alias.h (record_component_aliases, get_alias_set,
7457         alias_sets_conflict_p, alias_sets_must_conflict_p,
7458         objects_must_conflict_p): ... here.
7459         Include coretypes.h.
7460         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7461
7462 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7463
7464         * cfg.c: Include tree-flow.h.
7465         (remove_edge_raw): Call redirect_edge_var_map_clear.
7466         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7467         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7468         (redirect_edge_var_map_result): New.
7469         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7470         PENDING_STMT use with redirect_edge_var_map_*.
7471         * tree-ssa.c (edge_var_maps): New definition.
7472         (redirect_edge_var_map_add): New.
7473         (redirect_edge_var_map_clear): New.
7474         (redirect_edge_var_map_dup): New.
7475         (redirect_edge_var_map_vector): New.
7476         (redirect_edge_var_map_destroy): New.
7477         (ssa_redirect_edge): Replace PENDING_STMT use with
7478         redirect_edge_var_map_*.
7479         (flush_pending_stmts): Same.
7480         (delete_tree_ssa): Destroy edge var map.
7481         * tree-flow.h (struct _edge_var_map): New.
7482         Define edge_var_map vector type.
7483         Declare redirect_edge_var_map_* prototypes.
7484         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7485         * tree-cfg.c (reinstall_phi_args): Replace
7486         PENDING_STMT use with redirect_edge_var_map_*.
7487
7488 2008-03-05  Richard Guenther  <rguenther@suse.de>
7489
7490         PR tree-optimization/35472
7491         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7492         whose single use_stmt has a overlapping set of loaded and
7493         stored symbols as that use_stmt might be a noop assignment then.
7494
7495 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7496
7497         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7498
7499 2008-03-05  Richard Guenther  <rguenther@suse.de>
7500
7501         PR c++/35336
7502         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7503         should be constants.
7504         * tree-cfg.c (verify_expr): Verify it.
7505         * fold-const.c (fold_truthop): Remove code generating
7506         BIT_FIELD_REFs of structure bases.
7507         (fold_binary): Likewise.
7508         (fold_ternary): Position and size of BIT_FIELD_REFs are
7509         always host integers.
7510         (make_bit_field_ref): Remove.
7511         (optimize_bit_field_compare): Remove.
7512         (all_ones_mask_p): Remove.
7513
7514 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7515
7516         PR gcc/33009
7517         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7518         (split_block_and_df_analyze): New. Split basic block and rebuild
7519         dataflow.
7520         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7521         SPLIT_BLOCK.
7522         (split_pattern_seq): Likewise.
7523         (erase_matching_seqs): Likewise.
7524         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7525
7526 2008-03-04  Geoff Keating  <geoffk@apple.com>
7527
7528         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7529         declaration and code.
7530         (tree_invalid_nonnegative_warnv_p): Likewise.
7531
7532 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7533
7534         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7535         examples.  Truncate option-names then causing overfull hbox.
7536
7537 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7538
7539         PR target/35222
7540         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7541         on hpux10.
7542         * configure: Rebuilt.
7543
7544 2008-03-04  Rafael Espindola  <espindola@google.com>
7545
7546         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7547         (tree_unary_nonnegative_warnv_p): New.
7548         (tree_binary_nonnegative_warnv_p): New.
7549         (tree_single_nonnegative_warnv_p): New.
7550         (tree_invalid_nonnegative_warnv_p): New.
7551         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7552
7553 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7554
7555         PR 28322
7556         * opts.c (handle_option): Postpone 'unknown option' errors only for
7557         warning options.
7558
7559 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7560
7561         PR target/35453
7562         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7563         (_SIDD_XXX): This.
7564
7565 2008-03-04  Rafael Espindola  <espindola@google.com>
7566
7567         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7568         (tree_binary_nonzero_warnv_p): New.
7569         (tree_single_nonzero_warnv_p): New.
7570         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7571
7572 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7573
7574         PR middle-end/35456
7575         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7576         transformations for modes that have signed zeros.
7577         * ifcvt.c (noce_try_abs): Ditto.
7578
7579 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7580
7581         * config/i386/i386.c (override_options): Force
7582         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7583
7584 2008-03-04  Jan Hubicka  <jh@suse.cz>
7585
7586         PR c++/35262
7587         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7588         in last commit.
7589
7590 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7591
7592         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7593         label to probe the stack.
7594
7595 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7596
7597         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7598         (__gthr_win32_mutex_destroy): Declare.
7599         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7600         __gthr_win32_mutex_destroy.
7601         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7602
7603 2008-03-03  Jan Hubicka  <jh@suse.cz>
7604
7605         PR c++/35262
7606         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7607         aggressive on inlining cold calls.
7608
7609 2008-03-03  Richard Guenther  <rguenther@suse.de>
7610
7611         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7612         struct copies into the expression table.
7613         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7614         (try_to_simplify): Likewise.
7615         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7616         integral and pointer arguments which do not change the
7617         precision to NOP_EXPRs.
7618         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7619         VIEW_CONVERT_EXPR case.
7620
7621 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7622
7623         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7624         defined in a loop at depth 0 is invariant.
7625         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7626         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7627         be called at loop depth 0.
7628
7629 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7630
7631         PR driver/35420
7632         * gcc.c (process_command): Update copyright notice dates.
7633         * gcov.c (print_version): Likewise.
7634         * gcov-dump.c (print_version): Likewise.
7635         * mips-tfile.c (main): Likewise.
7636         * mips-tdump.c (main): Likewise.
7637
7638 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7639
7640         PR 24924
7641         * c-common.c (flag_permissive): Delete.
7642         (constant_expression_warnings): Check flags first.
7643         (constant_expression_error): New.
7644         * c-common.h (flag_permissive): Delete.
7645         (constant_expression_error): Declare.
7646         * flags.h (flag_permissive): Declare. Update description.
7647         * diagnostic.c (pedwarn): Update.
7648         (permerror): New.
7649         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7650         (permissive_error_kind): New.
7651         * toplev.c (flag_permissive): Define. Update description.
7652         * toplev.h (permissive_error_kind): Declare.
7653         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7654         (pedwarn_c90): Use pedantic_warning_kind.
7655         * c-opts.c (c_common_post_options): flag_permissive does not affect
7656         flag_pedantic_errors.
7657
7658 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7659
7660         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7661         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7662         __absvsi2, __absvDI2): Use unsigned arithmetic.
7663
7664 2008-03-02  Andi Kleen  <ak@suse.de>
7665             Richard Guenther  <rguenther@suse.de>
7666
7667         * struct-equiv.c: Remove file.
7668         * cfg_cleanup.c (condjump_equiv_p): Remove.
7669         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7670         (struct-equiv.o): Remove rule.
7671         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7672         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7673         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7674
7675 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7676
7677         * ifcvt.c (noce_process_if_block): Try to handle only the then
7678         block if the else block exists but isn't suitable.
7679
7680 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7681
7682         PR gcc/35063
7683         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7684         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7685         regression from previous patch.
7686
7687 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7688
7689         PR gcc/35063
7690         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7691         implemented.
7692         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7693         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7694         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7695         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7696         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7697         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7698         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7699         (__gthread_mutex_destroy_function): Rename to
7700         __gthread_mutex_destroy.
7701         * gthr-dce.h (__gthread_mutex_destroy): Call
7702         pthread_mutex_destroy.
7703         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7704         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7705         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7706
7707 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7708
7709         * df-scan.c (df_ref_chain_change_bb): Simplify.
7710         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7711         set_block_for_insn if there's any change.
7712         * df.h ((df_insn_change_bb): Fix prototype.
7713         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7714         df_insn_change_bb, don't call set_block_for_insn.
7715         * emit-rtl.c (reorder_insns): Likewise.
7716         * haifa-sched.c (move_insn): Likewise.
7717
7718 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7719
7720         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7721
7722 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7723
7724         * tree-flow-inline.h (next_readonly_imm_use): Return
7725         NULL_USE_OPERAND_P after the end.
7726
7727 2008-03-01  Richard Guenther  <rguenther@suse.de>
7728
7729         PR tree-optimization/35411
7730         * tree-sra.c (sra_build_assignment): Split conversion to
7731         final type to a separate statement if we are not assigning
7732         to a register.
7733
7734 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7735
7736         * fold-const.c (fold_convertible_p): Correct the logic to follow
7737         that in fold_convert().
7738
7739 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7740
7741         PR c++/35315
7742         * tree-inline.c (build_duplicate_type): When we make a
7743         duplicate type, make it unique in the canonical types system.
7744
7745 2008-02-29  Tom Tromey  <tromey@redhat.com>
7746
7747         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7748         input_file_stack_history, input_file_stack_restored): Remove.
7749         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7750         * input.h (struct file_stack): Remove.
7751         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7752         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7753         Likewise.
7754         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7755         type.
7756         (diagnostic_last_module_changed): Add 'map' argument.
7757         (diagnostic_set_last_function): Likewise.
7758         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7759         line map, not input_file_stack.
7760         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7761
7762 2008-02-29  Paul Brook  <paul@codesourcery.com>
7763
7764         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7765
7766 2008-02-29  Paul Brook  <paul@codesourcery.com>
7767
7768         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7769
7770 2008-02-29  Richard Guenther  <rguenther@suse.de>
7771
7772         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7773         vn_lookup_or_add.
7774         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7775         value for comparing for a store match.
7776         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7777         (try_to_simplify): Do not do a full-blown reference lookup.
7778
7779 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7780
7781         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7782         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7783
7784         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7785
7786 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7787
7788         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7789         strides against cache sizes.
7790
7791 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7792
7793         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7794         constant to fpul.
7795
7796 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7797
7798         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7799         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7800         is smaller than the original promoted value.
7801         (simplify_subreg): If OP is a SUBREG, try to preserve its
7802         SUBREG_PROMOTED_VAR_P information.
7803
7804 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7805
7806         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7807         (VN_INFO_GET): Allocate new objects on the obstack.
7808         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7809         for rpo_numbers_temp, for consistency.
7810         (free_scc_vn): Free the obstack.
7811
7812 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7813
7814         * doc/invoke.texi: Document -ftree-loop-distribution.
7815         * tree-loop-distribution.c: New.
7816         * tree-pass.h (pass_loop_distribution): New.
7817         * graphds.h (struct graph): Add htab_t indices.
7818         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7819         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7820         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7821         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7822         * tree-data-ref.c (debug_data_dependence_relations): New.
7823         (dump_data_dependence_relation): Also print data references.
7824         (free_data_ref): Extern.
7825         (same_access_functions): Moved...
7826         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7827         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7828         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7829         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7830         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7831         (stmts_from_loop): Skip LABEL_EXPR.
7832         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7833         New.
7834         (build_rdg): Initialize rdg->indices htab.
7835         (free_rdg, stores_from_loop, ref_base_address,
7836         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7837         have_similar_memory_accesses_1, ref_base_address_1,
7838         remove_similar_memory_refs): New.
7839         * tree-data-ref.h: Depend on tree-chrec.h.
7840         (debug_data_dependence_relations, free_data_ref): Declared.
7841         (same_access_functions): ... here.
7842         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7843         New.
7844         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7845         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7846         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7847         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7848         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7849         rdg_vertex_for_stmt): Declared.
7850         (struct rdg_edge): Add level.
7851         (RDGE_LEVEL): New.
7852         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7853         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7854         Declared.
7855         (rdg_has_similar_memory_accesses): New.
7856         * tree-vect-analyze.c: Remove unused static decls.
7857         * lambda.h (dependence_level): New.
7858         * common.opt (ftree-loop-distribution): New.
7859         * tree-flow.h (mark_virtual_ops_in_bb, 
7860         slpeel_tree_duplicate_loop_to_edge_cfg,
7861         rename_variables_in_loop): Declared.
7862         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7863         (OBJS-common): Add tree-loop-distribution.o.
7864         (tree-loop-distribution.o): New rule.
7865         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7866         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7867         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7868
7869 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7870
7871         PR target/33963
7872         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7873         other than structures and unions.
7874
7875 2008-02-28  Richard Guenther  <rguenther@suse.de>
7876
7877         Revert:
7878         2008-02-26  Richard Guenther  <rguenther@suse.de>
7879
7880         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7881         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7882         (lookup_decl_from_uid): Declare.
7883         (remove_decl_from_map): Likewise.
7884         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7885         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7886         (decl_for_uid_map): New global hashtable mapping DECL_UID
7887         to the decl tree.
7888         (init_ttree): Allocate it.
7889         (insert_decl_to_uid_decl_map): New helper function.
7890         (make_node_stat): Insert new decls into the map.
7891         (copy_node_stat): Likewise.
7892         (lookup_decl_from_uid): New function.
7893         (remove_decl_from_map): Likewise.
7894         (print_decl_for_uid_map_statistics): New helper.
7895         (dump_tree_statistics): Call it.
7896
7897         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7898         (referenced_var_iterator): Adjust.
7899         (FOR_EACH_REFERENCED_VAR): Adjust.
7900         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7901         (num_referenced_vars): Adjust.
7902         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7903         (first_referenced_var): Remove.
7904         (end_referenced_vars_p): Likewise.
7905         (next_referenced_var): Likewise.
7906         (referenced_var_iterator_set): New helper function.
7907         * tree-dfa.c (referenced_var_lookup): Adjust.
7908         (referenced_var_check_and_insert): Likewise.
7909         (remove_referenced_var): Likewise.
7910         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7911         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7912         (verify_call_clobbering): Likewise.
7913         (verify_memory_partitions): Likewise.
7914         (init_tree_ssa): Allocate bitmap instead of hashtable for
7915         referenced_vars.
7916         (delete_tree_ssa): Adjust.
7917         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7918         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7919         (compute_tag_properties): Likewise.
7920         (set_initial_properties): Likewise.
7921         (find_partition_for): Likewise.
7922         (update_reference_counts): Likewise.
7923         (dump_may_aliases_for): Likewise.
7924         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7925         (add_call_clobber_ops): Likewise.
7926         (add_call_read_ops): Likewise.
7927         (get_asm_expr_operands): Likewise.
7928         * tree-into-ssa.c (dump_decl_set): Likewise.
7929         (update_ssa): Likewise.
7930         * tree-sra.c (scan_function): Likewise.
7931         (decide_instantiations): Likewise.
7932         (scalarize_parms): Likewise.
7933         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7934         (dsa_named_for): Likewise.
7935         * tree-ssa-structalias.c (update_alias_info): Likewise.
7936         (merge_smts_into): Likewise.
7937
7938 2008-02-27  David Daney  <ddaney@avtrex.com>
7939
7940         PR target/34409
7941         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7942         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7943         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7944         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7945         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7946
7947 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7948
7949         PR target/25477
7950         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7951         (BUILT_IN_NEXTTOWARD): Remove.
7952         (BUILT_IN_NEXTTOWARDF): Ditto.
7953         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7954         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7955
7956 2008-02-27  Tom Tromey  <tromey@redhat.com>
7957
7958         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7959         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7960
7961 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7962
7963         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7964         update the respective field on newdecl.
7965
7966 2008-02-27  Revital Eres  <eres@il.ibm.com>
7967
7968         PR rtl-optimization/34999
7969         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7970         crossing edges that ends with a call insn.
7971         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7972         call insn and clear the EDGE_CROSSING flag of the crossing edge
7973         when fixing fallthru edges.
7974
7975 2008-02-27  Richard Guenther  <rguenther@suse.de>
7976
7977         PR middle-end/35390
7978         * fold-const.c (fold_unary): Return the correct argument,
7979         converted to the result type.
7980
7981 2008-02-27  Richard Guenther  <rguenther@suse.de>
7982
7983         PR middle-end/34971
7984         * expr.c (expand_expr_real_1): Assert on rotates that operate
7985         on partial modes.
7986         * fold-const.c (fold_binary): Use the types precision, not the
7987         bitsize of the mode if folding rotate expressions.  Build rotates
7988         only for full modes.
7989
7990 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7991
7992         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7993         and CPP_PRAGMA_EOL.
7994         * c-pragma.c (pragma_ns_name): New typedef.
7995         (registered_pp_pragmas): New variable.
7996         (c_pp_lookup_pragma): New function.
7997         (c_register_pragma_1): If flag_preprocess_only, do nothing
7998         for non-expanded pragmas, for expanded ones push pragma's
7999         namespace and name into registered_pp_pragmas vector.
8000         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8001         flag_preprocess_only, don't register GCC pch_preprocess
8002         pragma if flag_preprocess_only.
8003         * c-opts.c (c_common_init): Call init_pragma even if
8004         flag_preprocess_only.
8005         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8006         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8007         cpp_register_pragma if flag_preprocess_only.
8008
8009 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8010
8011         PR c/28800
8012         * c-parser.c (c_parser_translation_unit): Warn for empty
8013         translation unit, not empty source file.
8014
8015 2008-02-26  Paul Brook  <paul@codesourcery.com>
8016
8017         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8018         operand for Thumb-2.
8019         * config/arm/arm.h (reg_class): Add CORE_REGS.
8020         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8021         (BASE_REG_CLASS): Use CORE_REGS.
8022         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8023         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8024         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8025         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8026         ARM_REGNO_OK_FOR_INDEX_P.
8027         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8028         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8029         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8030         (ldm/stm peepholes): Ditto.
8031         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8032         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8033         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8034         * config/arm/constraints.md: Enable "k" constraint on ARM.
8035
8036 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8037
8038         * config/rs6000/rs6000.c: Annotate cache line size field in all
8039         instances of struct processor_costs.
8040
8041 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8042
8043         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8044         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8045         jump_bypass): New counters.
8046         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8047         * dce.c (gate_ud_dce): Same.
8048         (gate_fast_dce): Same.
8049         * dse.c (gate_dse1): New function.
8050         (gate_dse2): New function.
8051         (gate_dse): Merge results of new gate functions.
8052         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8053         (gate_handle_jump_bypass): Add dbg_cnt.
8054         (gate_handle_gcse): Add dbg_cnt.
8055         * ifcvt.c (gate_handle_if_conversion): Same.
8056         (gate_handle_if_after_combine): Same.
8057         (gate_handle_if_after_reload): Same.
8058         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8059
8060 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8061
8062         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8063         line sizes.
8064         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8065
8066 2008-02-26  Jason Merrill  <jason@redhat.com>
8067
8068         PR c++/35315
8069         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8070         alone if it's the naming decl for the type's main variant.
8071
8072 2008-02-26  Tom Tromey  <tromey@redhat.com>
8073
8074         * system.h (USE_MAPPED_LOCATION): Poison.
8075         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8076         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8077         (make_goto_expr_edges): Likewise.
8078         (remove_bb): Likewise.
8079         (execute_warn_function_return): Likewise.
8080         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8081         location_t.
8082         * c-common.c (fname_decl): Remove old location code.
8083         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8084         location code.
8085         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8086         variant.
8087         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8088         (gen_rtx_ASM_INPUT): Likewise.
8089         (gen_rtx_ASM_INPUT_loc): Likewise.
8090         (get_rtx_asm_OPERANDS): Remove.
8091         * cfglayout.c (insn_locators_alloc): Remove old location code.
8092         (set_curr_insn_source_location): Likewise.
8093         (curr_insn_locator): Likewise.
8094         * print-tree.c (print_node): Remove old location code.
8095         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8096         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8097         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8098         location_from_locus.
8099         (construct_exit_block): Remove old location code.
8100         * emit-rtl.c (force_next_line_note): Remove old location code.
8101         * profile.c (branch_prob): Remove old location code.
8102         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8103         LOC_LINE): Remove old-location variants.
8104         * langhooks.c (lhd_print_error_function): Remove old location
8105         code.
8106         * configure, config.in: Rebuilt.
8107         * configure.ac (--enable-mapped-location): Remove.
8108         * c-decl.c (c_init_decl_processing): Remove old location code.
8109         (finish_function): Likewise.
8110         * recog.c (decode_asm_operands): Remove old location code.
8111         * c-pch.c (c_common_read_pch): Remove old location code.
8112         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8113         variants.
8114         * gimple-low.c (lower_function_body): Remove old location code.
8115         * toplev.c (unknown_location): Remove.
8116         (push_srcloc): Remove old-location variant.
8117         (process_options): Remove old location code.
8118         (lang_dependent_init): Likewise.
8119         * input.h (UNKNOWN_LOCATION): Move definition.
8120         (location_t): Undeprecate.
8121         (source_locus): Remove.
8122         (location_from_locus): Remove.
8123         (struct location_s): Remove.
8124         Remove all old-location code.
8125         (input_line, input_filename): Remove.
8126         * final.c (final_scan_insn): Remove old location code.
8127         * diagnostic.c (diagnostic_build_prefix): Remove
8128         USE_MAPPED_LOCATION test.
8129         * tree.h (gimple_stmt) <locus>: Now a location_t.
8130         (tree_exp) <locus>: Likewise.
8131         (DECL_IS_BUILTIN): Remove old-location variant.
8132         (annotate_with_file_line, annotate_with_locus): Likewise.
8133         (expr_locus, set_expr_locus): Update.
8134         * tree.c (build1_stat): Remove old location code.
8135         (last_annotated_node): Remove.
8136         (annotate_with_file_line): Remove old-location variant.
8137         (annotate_with_locus): Likewise.
8138         (expr_location): Remove old location code.
8139         (set_expr_location): Likewise.
8140         (expr_has_location): Likewise.
8141         (expr_locus): Likewise.
8142         (set_expr_locus): Likewise.
8143         (expr_filename): Don't use location_from_locus.
8144         (expr_lineno): Likewise.
8145         * rtl-error.c (location_for_asm): Remove old location code.
8146         * c-lex.c (cb_line_change): Remove old location code.
8147         (fe_file_change): Likewise.
8148         (cb_def_pragma): Likewise.
8149         (c_lex_with_flags): Likewise.
8150         * gengtype.c (do_typedef): Don't special-case location types.
8151         (define_location_structures): Remove.
8152         (main): Don't call define_location_structures.
8153         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8154         code.
8155
8156 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8157
8158         PR 26264
8159         * builtins.def (BUILT_IN_STDARG_START): Remove.
8160         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8161         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8162         * tree-inline.c (inline_forbidden_p_1): Likewise.
8163         
8164 2008-02-26  Richard Guenther  <rguenther@suse.de>
8165
8166         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8167         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8168         (lookup_decl_from_uid): Declare.
8169         (remove_decl_from_map): Likewise.
8170         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8171         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8172         (decl_for_uid_map): New global hashtable mapping DECL_UID
8173         to the decl tree.
8174         (init_ttree): Allocate it.
8175         (insert_decl_to_uid_decl_map): New helper function.
8176         (make_node_stat): Insert new decls into the map.
8177         (copy_node_stat): Likewise.
8178         (lookup_decl_from_uid): New function.
8179         (remove_decl_from_map): Likewise.
8180         (print_decl_for_uid_map_statistics): New helper.
8181         (dump_tree_statistics): Call it.
8182
8183         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8184         (referenced_var_iterator): Adjust.
8185         (FOR_EACH_REFERENCED_VAR): Adjust.
8186         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8187         (num_referenced_vars): Adjust.
8188         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8189         (first_referenced_var): Remove.
8190         (end_referenced_vars_p): Likewise.
8191         (next_referenced_var): Likewise.
8192         (referenced_var_iterator_set): New helper function.
8193         * tree-dfa.c (referenced_var_lookup): Adjust.
8194         (referenced_var_check_and_insert): Likewise.
8195         (remove_referenced_var): Likewise.
8196         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8197         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8198         (verify_call_clobbering): Likewise.
8199         (verify_memory_partitions): Likewise.
8200         (init_tree_ssa): Allocate bitmap instead of hashtable for
8201         referenced_vars.
8202         (delete_tree_ssa): Adjust.
8203         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8204         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8205         (compute_tag_properties): Likewise.
8206         (set_initial_properties): Likewise.
8207         (find_partition_for): Likewise.
8208         (update_reference_counts): Likewise.
8209         (dump_may_aliases_for): Likewise.
8210         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8211         (add_call_clobber_ops): Likewise.
8212         (add_call_read_ops): Likewise.
8213         (get_asm_expr_operands): Likewise.
8214         * tree-into-ssa.c (dump_decl_set): Likewise.
8215         (update_ssa): Likewise.
8216         * tree-sra.c (scan_function): Likewise.
8217         (decide_instantiations): Likewise.
8218         (scalarize_parms): Likewise.
8219         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8220         (dsa_named_for): Likewise.
8221         * tree-ssa-structalias.c (update_alias_info): Likewise.
8222         (merge_smts_into): Likewise.
8223
8224 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8225
8226         PR 34351
8227         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8228         * c-opts.c (c_common_handle_option): Wall enables
8229         Wvolatile-register-var.
8230         * common.opt: Move Wvolatile-register-var to...
8231         * c.opt: ...here.
8232         
8233 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8234
8235         * common.opt (Wlarger-than=): New.
8236         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8237         -Wlarger-than=.
8238         * opts.c (common_handle_option): Handle -Wlarger-than=.
8239         * optc-gen.awk: Likewise.
8240         * opth-gen.awk: Likewise.
8241         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8242         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8243         
8244 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8245
8246         * c-common.c (match_case_to_enum_1): Add appropriate
8247         OPT_W* parameter to warning.
8248         (c_do_switch_warnings): Likewise.
8249         * c-typeck.c (warning_init): Add one more parameter following
8250         'warning' function.
8251         (push_init_level): Update call to warning_init.
8252         (pop_init_level): Likewise.
8253         (add_pending_init): Likewise.
8254         (output_init_element: Likewise.
8255
8256 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8257
8258         PR 28322
8259         * toplev.c (toplev_main): If there are warnings or error, print
8260         errors for ignored options.
8261         * opts.c (ignored_options): New static variable.
8262         (postpone_unknown_option_error): New.
8263         (print_ignored_options): New.
8264         (handle_option): Postpone errors for unknown -Wno-* options.
8265         * opts.h (print_ignored_options): Declare.
8266         
8267 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8268
8269         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8270         to "ghost".
8271
8272 2008-02-25  Richard Guenther  <rguenther@suse.de>
8273
8274         Revert:
8275         2008-02-25  Richard Guenther  <rguenther@suse.de>
8276
8277         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8278         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8279         (lookup_decl_from_uid): Declare.
8280         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8281         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8282         (decl_for_uid_map): New global hashtable mapping DECL_UID
8283         to the decl tree.
8284         (init_ttree): Allocate it.
8285         (insert_decl_to_uid_decl_map): New helper function.
8286         (make_node_stat): Insert new decls into the map.
8287         (copy_node_stat): Likewise.
8288         (lookup_decl_from_uid): New function.
8289         (print_decl_for_uid_map_statistics): New helper.
8290         (dump_tree_statistics): Call it.
8291
8292         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8293         (referenced_var_iterator): Adjust.
8294         (FOR_EACH_REFERENCED_VAR): Adjust.
8295         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8296         (num_referenced_vars): Adjust.
8297         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8298         (first_referenced_var): Remove.
8299         (end_referenced_vars_p): Likewise.
8300         (next_referenced_var): Likewise.
8301         (referenced_var_iterator_set): New helper function.
8302         * tree-dfa.c (referenced_var_lookup): Adjust.
8303         (referenced_var_check_and_insert): Likewise.
8304         (remove_referenced_var): Likewise.
8305         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8306         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8307         (verify_call_clobbering): Likewise.
8308         (verify_memory_partitions): Likewise.
8309         (init_tree_ssa): Allocate bitmap instead of hashtable for
8310         referenced_vars.
8311         (delete_tree_ssa): Adjust.
8312         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8313         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8314         (compute_tag_properties): Likewise.
8315         (set_initial_properties): Likewise.
8316         (find_partition_for): Likewise.
8317         (update_reference_counts): Likewise.
8318         (dump_may_aliases_for): Likewise.
8319         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8320         (add_call_clobber_ops): Likewise.
8321         (add_call_read_ops): Likewise.
8322         (get_asm_expr_operands): Likewise.
8323         * tree-into-ssa.c (dump_decl_set): Likewise.
8324         (update_ssa): Likewise.
8325         * tree-sra.c (scan_function): Likewise.
8326         (decide_instantiations): Likewise.
8327         (scalarize_parms): Likewise.
8328         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8329         (dsa_named_for): Likewise.
8330         * tree-ssa-structalias.c (update_alias_info): Likewise.
8331         (merge_smts_into): Likewise.
8332
8333 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8334
8335         PR fortran/29549
8336         * doc/invoke.texi (-fcx-limited-range): Document new option.
8337         * toplev.c (process_options): Handle -fcx-fortran-rules.
8338         * common.opt: Add documentation for -fcx-fortran-rules.
8339
8340 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8341
8342         PR c/35162
8343         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8344         actual behaviour and C99.
8345         
8346 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8347
8348         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8349         (ASM_CPU_POWER6_SPEC): Likewise.
8350         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8351         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8352         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8353
8354 2008-02-25  Richard Guenther  <rguenther@suse.de>
8355
8356         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8357         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8358         (lookup_decl_from_uid): Declare.
8359         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8360         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8361         (decl_for_uid_map): New global hashtable mapping DECL_UID
8362         to the decl tree.
8363         (init_ttree): Allocate it.
8364         (insert_decl_to_uid_decl_map): New helper function.
8365         (make_node_stat): Insert new decls into the map.
8366         (copy_node_stat): Likewise.
8367         (lookup_decl_from_uid): New function.
8368         (print_decl_for_uid_map_statistics): New helper.
8369         (dump_tree_statistics): Call it.
8370
8371         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8372         (referenced_var_iterator): Adjust.
8373         (FOR_EACH_REFERENCED_VAR): Adjust.
8374         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8375         (num_referenced_vars): Adjust.
8376         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8377         (first_referenced_var): Remove.
8378         (end_referenced_vars_p): Likewise.
8379         (next_referenced_var): Likewise.
8380         (referenced_var_iterator_set): New helper function.
8381         * tree-dfa.c (referenced_var_lookup): Adjust.
8382         (referenced_var_check_and_insert): Likewise.
8383         (remove_referenced_var): Likewise.
8384         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8385         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8386         (verify_call_clobbering): Likewise.
8387         (verify_memory_partitions): Likewise.
8388         (init_tree_ssa): Allocate bitmap instead of hashtable for
8389         referenced_vars.
8390         (delete_tree_ssa): Adjust.
8391         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8392         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8393         (compute_tag_properties): Likewise.
8394         (set_initial_properties): Likewise.
8395         (find_partition_for): Likewise.
8396         (update_reference_counts): Likewise.
8397         (dump_may_aliases_for): Likewise.
8398         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8399         (add_call_clobber_ops): Likewise.
8400         (add_call_read_ops): Likewise.
8401         (get_asm_expr_operands): Likewise.
8402         * tree-into-ssa.c (dump_decl_set): Likewise.
8403         (update_ssa): Likewise.
8404         * tree-sra.c (scan_function): Likewise.
8405         (decide_instantiations): Likewise.
8406         (scalarize_parms): Likewise.
8407         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8408         (dsa_named_for): Likewise.
8409         * tree-ssa-structalias.c (update_alias_info): Likewise.
8410         (merge_smts_into): Likewise.
8411
8412 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8413
8414         PR target/35258
8415         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8416         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8417         * alias.h (nonoverlapping_memrefs_p): Likewise.
8418
8419 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8420
8421         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8422         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8423         __emultls_get_address, __emultls_register_common,
8424         __floatundi?f, and _Unwind_GetIPInfo.
8425         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8426         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8427         (gen_regparm_prefix): Likewise.
8428         (i386_nlm_encode_section_info): Sync with
8429         config/i386/winnt.c:i386_pe_encode_section_info().
8430         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8431         i386_nlm_mangle_decl_assembler_name): New.
8432         (netware_override_options): New.
8433         * config/i386/netware.h (netware_override_options): Declare.
8434         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8435         (i386_nlm_mangle_decl_assembler_name): Declare.
8436         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8437
8438 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8439
8440         PR other/32948
8441         * c-decl.c (grokdeclarator): Remove unused local variables
8442         `typedef_type' and `type_as_written'.
8443         * bb-reorder.c
8444         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8445         unused local variable `has_hot_blocks'.
8446         (fix_crossing_conditional_branches): Remove unused local variable
8447         `prev_bb'.
8448         
8449 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8450
8451         PR middle-end/19984
8452         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8453         using DEF_C99_BUILTIN.
8454         (BUILT_IN_NANF): Ditto.
8455         (BUILT_IN_NANL): Ditto.
8456
8457 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8458             Revital Eres  <eres@il.ibm.com>
8459
8460         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8461         regarding the order of two dependent insns in the same row.
8462
8463 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8464
8465         * stor-layout.c (layout_decl): Do not bump the alignment of a
8466         bit-field to more than byte alignment if it is packed.
8467
8468 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8469
8470         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8471         e300c2 and e300c3.
8472
8473 2008-02-24  Diego Novillo  <dnovillo@google.com>
8474
8475         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8476
8477         PR 33738
8478         * tree-vrp.c (vrp_evaluate_conditional): With
8479         -Wtype-limits, emit a warning when comparing against a
8480         constant outside the natural range of OP0's type.
8481         * c.opt (Wtype-limits): Move ...
8482         * common.opt (Wtype-limits): ... here.
8483
8484 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8485
8486         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8487         * config/rs6000/e300c2c3.md: New file.
8488         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8489         e300c2 and e300c3.
8490         (rs6000_override_options): Add e300c2 and e300c3 cases to
8491         processor_target_table. Do not allow usage of Altivec or Spe
8492         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8493         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8494         * config/rs6000/rs6000.h (processor_type): Add
8495         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8496         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8497         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8498         and ppce300c3. Include e300c2c3.md.
8499
8500 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8501
8502         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8503         instead of TARGET_STRICT_ALIGN.
8504
8505 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8506
8507         * explow.c (memory_address): Assert that the generated address is
8508         valid.
8509
8510 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8511
8512         PR target/25477
8513         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8514         * config/darwin-ppc-ldouble-patch.def: New file.
8515         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8516         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8517         SUBTARGET_INIT_BUILTINS if defined.
8518         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8519         New functions.
8520
8521 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8522
8523         PR rtl-opt/33512
8524         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8525         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8526
8527 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8528
8529         PR pch/35027
8530         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8531         file" warning condtional on -Winvalid-PCH.
8532
8533 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8534
8535         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8536
8537 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8538
8539         PR target/22076
8540         PR target/34256 
8541         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8542         prevent reload from using MMX registers.
8543         (*mov<mode>_internal): Ditto.
8544         (*movv2sf_internal_rex64): Ditto.
8545         (*movv2sf_internal): Ditto.
8546
8547 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8548
8549         PR documentation/31569
8550         * doc/install.texi2html: Use makeinfo --no-number-sections.
8551
8552 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8553
8554         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8555         ensure that we can address an entire entity > 8 bytes.  Don't
8556         generate reg+reg addressing for such data.
8557
8558 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8559
8560         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8561         strings when optimizing for size, unless the target cares about
8562         alignment.
8563
8564 2008-02-22  Tom Tromey  <tromey@redhat.com>
8565
8566         * regclass.c (current_pass): Remove declaration.
8567
8568 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8569
8570         * config/avr/libgcc.S (__RAMPZ__): Define.
8571         (__do_copy_data): Add for devices with 128KB code memory.
8572
8573 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8574
8575         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8576         Use spe_abi.
8577         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8578
8579 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8580
8581         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8582         GENNONACR_REGS.
8583
8584 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8585
8586         PR c/19999
8587         * c-typeck.c (build_binary_op): Warn about floating point
8588         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8589
8590 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8591
8592         PR target/34526
8593         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8594         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8595         add vrsave.
8596         (rs6000_override_options): Set altivec_abi as default, not override,
8597         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8598         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8599         is used; use new member spe_abi.
8600         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8601         spe_abi and altivec_abi.
8602
8603 2008-02-22  Tomas Bily  <tbily@suse.cz>
8604
8605         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8606
8607 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8608
8609         PR bootstrap/35273
8610         * config.build (build_file_translate): Set to `CMD //c' only if
8611         it works.
8612         * Makefile.in (build_file_translate): Improve comment.
8613
8614 2008-02-21  Jan Hubicka  <jh@suse.cz>
8615
8616         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8617         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8618         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8619
8620 2008-02-21  Michael Matz  <matz@suse.de>
8621
8622         PR target/35264
8623         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8624
8625 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8626
8627         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8628         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8629         as insn constraint.
8630         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8631         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8632         SSE_VEC_FLOAT_MODE_P as insn constraint.
8633         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8634         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8635         sse4a_movntdf using MODEF mode iterator.
8636         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8637         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8638         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8639         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8640         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8641         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8642         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8643
8644 2008-02-21  Richard Guenther  <rguenther@suse.de>
8645
8646         * tree.def (PAREN_EXPR): New tree code.
8647         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8648         and PAREN_EXPR.
8649         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8650         * expr.c (expand_expr_real_1): Likewise.
8651         * tree-inline.c (estimate_num_insns_1): Likewise.
8652         * tree-complex.c (expand_complex_move): Likewise.
8653         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8654         as plain x.
8655
8656 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8657
8658         PR target/35225
8659         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8660
8661 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8662
8663         PR target/35190
8664         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8665
8666         * config/sh/sh.c (find_barrier): Don't go past
8667         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8668
8669 2008-02-20  DJ Delorie  <dj@redhat.com>
8670
8671         * config/h8300/h8300.md (insv): Force source operand to be a register.
8672
8673         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8674         as a jump, not as a plain insn.
8675         
8676 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8677
8678         * doc/invoke.texi (Warning Options): Add new option
8679         -Wframe-larger-than=.
8680         (-Wframe-larger-than): Document.
8681
8682         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8683         Add declarations for new option variables.
8684
8685         * final.c (final_start_function): Check the frame size
8686         before emission and issue a Wframe-larger-than warning.
8687
8688         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8689         Add definitions for new option variables.
8690         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8691
8692         * common.opt (Wframe-larger-than=): New option.
8693
8694 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8695
8696         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8697         (<sse>_div<mode>3): Ditto.
8698         (<sse>_vmdiv<mode>3): Ditto.
8699         (<sse>_vmsqrt<mode>2): Ditto.
8700         (*smax<mode>3): Ditto.
8701         (sse5_frcz<mode>2): Ditto.
8702         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8703         as insn constraint.
8704
8705 2008-02-20  Richard Guenther  <rguenther@suse.de>
8706
8707         PR middle-end/35265
8708         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8709         be happy with INTEGRAL_TYPE_P.
8710
8711 2008-02-20  Richard Guenther  <rguenther@suse.de>
8712
8713         * fold-const.c (split_tree): Associate floatig-point expressions
8714         if flag_associative_math is set.
8715
8716 2008-02-20  Richard Guenther  <rguenther@suse.de>
8717
8718         * tree.h (fold_real_zero_addition_p): Declare.
8719         * fold-const.c (fold_real_zero_addition_p): Export.
8720         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8721         floating-point operations with zero and one.
8722
8723 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8724
8725         * doc/install.texi: Correct references to CFLAGS, replacing them
8726         with BOOT_CFLAGS.  Document flags used during bootstrap for
8727         target libraries.
8728                                 
8729 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8730
8731         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8732         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8733         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8734         insn constraint.
8735         (smin<mode>3): Ditto from similar patterns.
8736         (smax<mode>3): Ditto.
8737         (*ieee_smin<mode>3): Ditto.
8738         (*ieee_smax<mode>3): Ditto.
8739         * config/i386/sse.md (sse): New mode attribute.
8740         (mov<mode>): Macroize expander from movv4sf and movv2df using
8741         SSEMODEF2P mode iterator.
8742         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8743         SSE_VEC_FLOAT_MODE_P as insn constraint.
8744         (storent<mode>): Ditto.
8745         (storent<mode>): Macroize expander from storentsf and storentdf using
8746         MODEF mode iterator.
8747         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8748         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8749         (abs<mode>2): Ditto from similar patterns.
8750         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8751         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8752         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8753         (<sse>_vmsqrt<mode>2): Ditto.
8754         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8755         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8756         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8757         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8758         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8759         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8760         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8761         insn constraint.
8762         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8763         iterator and SSE_FLOAT_MODE_P as insn constraint.
8764         (<sse>_ucomi): Ditto from similar patterns.
8765         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8766         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8767         SSE_VEC_FLOAT_MODE_P as insn constraint.
8768         (vcond<mode>): Ditto from similar patterns.
8769         (and<mode>3, *and<mode>3): Ditto.
8770         (<sse>_nand<mode>3): Ditto.
8771         (ior<mode>3, *ior<mode>3): Ditto.
8772         (xor<mode>3, *xor<mode>3): Ditto.
8773         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8774         iterator and SSE_FLOAT_MODE_P as insn constraint.
8775         (*nand<mode>3): Ditto from similar patterns.
8776         (*ior<mode>3): Ditto.
8777         (*xor<mode>3): Ditto.
8778
8779 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8780
8781         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8782         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8783         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8784
8785 2008-02-19  Jan Hubicka  <jh@suse.cz>
8786
8787         * predict.c (tree_bb_level_predictions): Remove variable next
8788         mistakely introduced by previous commit.
8789
8790 2008-02-19  Jan Hubicka  <jh@suse.cz>
8791
8792         * predict.c (predict_paths_leading_to): Rewrite.
8793         (predict_paths_for_bb): New.
8794         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8795
8796 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8797
8798         PR bootstrap/35218
8799         * Makefile.in (build_file_translate): New.
8800         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8801         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8802         * configure.ac (build_file_translate): Substitute it.
8803         * configure: Regenerate.
8804
8805 2008-02-19  Jan Hubicka  <jh@suse.cz>
8806
8807         PR rtl-optimization/34408
8808         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8809         invalid sharing.
8810
8811 2008-02-19  Jan Hubicka  <jh@suse.cz>
8812
8813         PR middle-end/28779
8814         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8815         call_expr.
8816
8817 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8818
8819         PR Ada/35186
8820         * config/i386/i386-modes.def: Revert the last DI alignment
8821         change until Ada people can look into it.
8822
8823 2008-02-19  Nick Clifton  <nickc@redhat.com>
8824
8825         * opts.c (print_specific_help): Fix typo in --help text.
8826
8827 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8828
8829         PR target/35239
8830         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8831         32-bit inline asm without asm alternatives for host GCC < 3.0.
8832
8833 2008-02-19  Richard Guenther  <rguenther@suse.de>
8834
8835         PR tree-optimization/34989
8836         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8837         Allow propagation to INDIRECT_REF if we can simplify only.
8838
8839 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8840
8841         * c-common.c (warn_for_collisions_1): Use appropriate option when
8842         warning.
8843
8844 2008-02-19  Nick Clifton  <nickc@redhat.com>
8845
8846         PR other/31349
8847         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8848         (handle_options): Fix indentation.
8849         (print_filtered_help): If no language-specific options were
8850         displayed tell the user how to list all the options supported by
8851         the language's front-end.
8852         (print_specific_help): Fix indentation and remove duplicate line.
8853         (common_handle_option): Handle the -v option.
8854         For --help enable the display of undocumented options if the -v
8855         switch has been included on the command line.
8856         For --help= check for overlaps in the arguments between the option
8857         classes and the language names and issue a warning when they
8858         cannot be disambiguated.
8859         * c.opt (v): Pass on to the common option handler.
8860
8861 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8862
8863         * modulo-sched.c (sms_schedule): Change dump message when
8864         create_ddg function fails.
8865         (try_scheduling_node_in_cycle): Rename row to cycle.
8866         (print_partial_schedule): Rename CYCLE to ROW.
8867
8868 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8869             Zdenek Dvorak  <ook@ucw.cz>
8870
8871         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8872
8873 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8874
8875         PR target/33555
8876         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8877         (*x86_movdicc_0_m1_se): Ditto.
8878
8879 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8880
8881         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8882         (CMPtype): Define as __gcc_CMPtype.
8883         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8884         (CMPtype): Define as __gcc_CMPtype.
8885
8886 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8887
8888         Support valgrind 3.3 for --enable-checking=valgrind.
8889         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8890         here.
8891         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8892         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8893         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8894         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8895         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8896         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8897         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8898         respectively.
8899         * ggc-zone.c: Similar.
8900         * ggc-page.c: Similar.
8901
8902 2008-02-19  Paul Brook  <paul@codesourcery.com>
8903
8904         PR target/35071
8905         * config/arm/ieee754-df.S: Fix do_it typo.
8906         * config/arm/ieee754-sf.S: Fix do_it typo.
8907
8908 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8909
8910         PR target/35189
8911         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8912         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8913         (OPTION_MASK_ISA_SSE_SET): Likewise.
8914         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8915         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8916         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8917         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8918         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8919         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8920         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8921         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8922         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8923         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8924         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8925         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8926         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8927         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8928         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8929         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8930         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8931         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8932         (OPTION_MASK_ISA_SSE4): Removed.
8933         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8934         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8935         (override_options): Don't turn on implied SSE/MMX bits in
8936         ix86_isa_flags.
8937
8938 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8939
8940         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8941         32bit host.
8942
8943 2008-02-18  Joey Ye  <joey.ye@intel.com>
8944
8945         PR middle-end/34921
8946         * tree-nested.c (insert_field_into_struct): Set type alignment
8947         to field alignment if the former is less than the latter.
8948
8949 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8950
8951         * BASE-VER: Set to 4.4.0.
8952
8953 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8954
8955         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8956         * doc/cfg.texi: Likewise.
8957         * doc/extend.texi: Likewise.
8958         * doc/gty.texi: Likewise.
8959         * doc/invoke.texi: Likewise.
8960         * doc/loop.texi: Likewise.
8961         * doc/md.texi: Likewise.
8962         * doc/passes.texi: Likewise.
8963         * doc/rtl.texi: Likewise.
8964         * doc/sourcebuild.texi: Likewise.
8965         * doc/tm.texi: Likewise.
8966         * doc/tree-ssa.texi: Likewise.
8967
8968 2008-02-17  Richard Guenther  <rguenther@suse.de>
8969
8970         PR middle-end/35227
8971         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8972         without default definition.
8973
8974 2008-02-17  Richard Guenther  <rguenther@suse.de>
8975
8976         PR tree-optimization/35231
8977         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8978         if A | B != 1.
8979
8980 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8981
8982         Revert:
8983         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8984         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8985         libgcc_cmp_return mode.
8986
8987 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8988
8989         PR c/28368
8990         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8991
8992 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8993
8994         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8995         multilibs.
8996
8997 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8998
8999         * doc/c-tree.texi: Use `@.' where appropriate.
9000         * doc/extend.texi: Likewise.
9001         * doc/install.texi: Likewise.
9002         * doc/invoke.texi: Likewise.
9003         * doc/loop.texi: Likewise.
9004         * doc/makefile.texi: Likewise.
9005         * doc/md.texi: Likewise.
9006         * doc/passes.texi: Likewise.
9007         * doc/standards.texi: Likewise.
9008         * doc/tm.texi: Likewise.
9009
9010 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9011
9012         PR middle-end/35196
9013         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9014         in entry_bb.
9015         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9016         rather than in entry_bb.
9017
9018 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9019
9020         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9021         libgcc_cmp_return mode.
9022
9023 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9024
9025         PR middle-end/35130
9026         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9027         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9028
9029 2008-02-15  Richard Guenther  <rguenther@suse.de>
9030             Zdenek Dvorak  <ook@ucw.cz>
9031
9032         PR tree-optimization/35164
9033         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9034         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9035         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9036         Only propagate addresses which do not have abnormal SSA_NAMEs
9037         in their operands.
9038
9039 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9040
9041         PR target/35088
9042         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9043
9044 2008-02-15  Jan Hubicka  <jh@suse.cz>
9045
9046         PR middle-end/35149
9047         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9048
9049 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9050
9051         PR middle-end/34621
9052         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9053         when calculating alignment_pad.
9054
9055 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9056
9057         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9058         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9059         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9060         and STACK_BOUNDARY define.
9061
9062 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9063
9064         PR preprocessor/35061
9065         * c-pragma.c (handle_pragma_pop_macro): Check that
9066         pushed_macro_table has been allocated.
9067
9068 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9069
9070         PR middle-end/35136
9071         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9072         (force_gimple_operand): Likewise.
9073         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9074         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9075         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9076         (find_interesting_uses_address): Check addressability and alignment
9077         of the base expression only after substituting bases of IVs into it.
9078
9079 2008-02-14  Michael Matz  <matz@suse.de>
9080
9081         PR target/34930
9082         * function.c (instantiate_virtual_regs_in_insn): Reload address
9083         before falling back to reloading the whole operand.
9084
9085 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9086
9087         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9088         before the first section switch note.
9089
9090 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9091
9092         * doc/bugreport.texi: Update copyright years.
9093         * doc/c-tree.texi: Likewise.
9094         * doc/cfg.texi: Likewise.
9095         * doc/cpp.texi: Likewise.
9096         * doc/cppinternals.texi: Likewise.
9097         * doc/fragments.texi: Likewise.
9098         * doc/frontends.texi: Likewise.
9099         * doc/gcc.texi: Likewise.
9100         * doc/gty.texi: Likewise.
9101         * doc/hostconfig.texi: Likewise.
9102         * doc/implement-c.texi: Likewise.
9103         * doc/libgcc.texi: Likewise.
9104         * doc/loop.texi: Likewise.
9105         * doc/makefile.texi: Likewise.
9106         * doc/options.texi: Likewise.
9107         * doc/passes.texi: Likewise.
9108         * doc/rtl.texi: Likewise.
9109         * doc/sourcebuild.texi: Likewise.
9110         * doc/standards.texi: Likewise.
9111         * doc/tree-ssa.texi: Likewise.
9112         * doc/trouble.texi: Likewise.
9113
9114         * doc/extend.texi: Use @: or add comma where appropriate.
9115         * doc/invoke.texi: Likewise.
9116         * doc/tm.texi: Likewise.
9117
9118 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9119
9120         PR target/34393
9121         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9122         to a reg.
9123
9124 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9125
9126         * doc/md.texi (clz, ctz): Add reference.
9127         * doc/rtl.texi (clz, ctz): Likewise.
9128
9129 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9130
9131         PR other/35148
9132         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9133         srcdir.
9134
9135 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9136
9137         * config/s390/s390.c (struct constant_pool): New field
9138         emit_pool_after added.
9139         (s390_mainpool_start): Set the emit_pool_after flag according
9140         to the section switch notes.
9141         (s390_mainpool_finish): Consider emit_pool_after when emitting
9142         the literal pool at the end of the function.
9143         (s390_chunkify_start): Force literal pool splits at section
9144         switch notes.
9145
9146 2008-02-13  Michael Matz  <matz@suse.de>
9147
9148         PR debug/35065
9149         * var-tracking.c (clobber_variable_part): Correctly traverse the
9150         list.
9151
9152 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9153
9154         PR 29673
9155         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9156         Add -fdump-ipa-inline.
9157         * tree-dump.c (dump_files): Remove tree-inlined dump.
9158         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9159         
9160 2008-02-12  Richard Guenther  <rguenther@suse.de>
9161
9162         PR tree-optimization/35171
9163         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9164         default defs.
9165
9166 2008-02-12  Richard Guenther  <rguenther@suse.de>
9167
9168         PR middle-end/35163
9169         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9170         value-preserving mode.  Disallow final truncation.
9171
9172 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9173
9174         PR middle-end/35136
9175         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9176         code from here to...
9177         (force_gimple_operand): ...here.
9178
9179 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9180
9181         PR c++/35144
9182         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9183         non-compatible pointers.
9184         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9185         different FIELD_DECLs, try harder by comparing field offsets, sizes
9186         and types.
9187
9188         PR inline-asm/35160
9189         * function.c (match_asm_constraints_1): Don't replace the same input
9190         multiple times.
9191
9192 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9193
9194         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9195         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9196         (expand_epilogue): Restore RAMPZ register.
9197         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9198
9199 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9200
9201         * config/i386/cygwin.asm: (__alloca): Correct calling
9202         convention and alignment.
9203         (__chkstk): Force 8 byte stack alignment.
9204
9205 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9206             Richard Guenther  <rguenther@suse.de>
9207
9208         PR tree-optimization/33992
9209         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9210         the zero we compare against.
9211
9212 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9213
9214         PR libfortran/35063
9215         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9216         to CloseHandle after unlocking to prevent accumulation of handle
9217         count.
9218
9219 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9220
9221         PR middle_end/34150
9222         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9223         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9224         and update LABEL_NUSES during and after reload.
9225
9226 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9227
9228         PR middle-end/34627
9229         * combine.c (simplify_if_then_else): Make sure the comparison is
9230         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9231
9232 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9233
9234         PR bootstrap/35051
9235         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9236         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9237         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9238         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9239         * tree.h (get_type_static_bounds): Likewise.
9240
9241 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9242
9243         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9244         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9245         Make -Wfoo language annotations match what the compiler outputs.
9246
9247 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9248
9249         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9250         intrinsics spu_convts, spu_convtu, spu_convtf.
9251
9252 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9253
9254         * doc/extend.texi (Function Attributes) <noinline>: Mention
9255         asm ("") as method to keep calls.
9256
9257 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9258
9259         PR other/32754
9260         * doc/options.texi (Options): Replace references to opts.sh with
9261         optc-gen.awk.
9262         * opts-common.c: Likewise.
9263         * optc-gen.awk: Likewise.
9264         
9265 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9266
9267         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9268
9269 2008-02-07  Richard Henderson  <rth@redhat.com>
9270
9271         PR rtl-opt/33410
9272         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9273         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9274         funny mode.
9275
9276 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9277
9278         PR tree-optimization/35085
9279         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9280         for operand entry oe2 in addition to operand entry oe3 in order to
9281         expose more opportunities for vectorizer sum reduction.
9282
9283 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9284
9285         PR other/35107
9286         * Makefile.in (LIBS): Remove $(GMPLIBS).
9287         (cc1-dummy, cc1): Add $(GMPLIBS).
9288
9289 2008-02-06  Jan Hubicka  <jh@suse.cz>
9290
9291         PR target/23322
9292         * i386.md (moddf_integer): Do not produce partial memory stalls for
9293         targets where it hurts.
9294
9295 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9296
9297         PR target/35083
9298         * optabs.c (expand_float): Do not check for decimal modes when
9299         expanding unsigned integer through signed conversion.
9300
9301 2008-02-06  Nick Clifton  <nickc@redhat.com>
9302
9303         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9304         inside the clobber with a match_operand and duplicated operand
9305         number in the constraint.
9306         (ineqbranchsi): Delete redundant comment.
9307
9308 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9309
9310         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9311         builtin_define ("__USE_INIT_FINI__").
9312         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9313         -msx multilibs.
9314         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9315
9316 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9317
9318         PR documentation/30330
9319         * doc/invoke.texi (C++ Dialect Options)
9320         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9321         For each warning option -Wfoo that allows -Wno-foo, ensure both
9322         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9323         entry of -Wswitch-default, index -Wnormalized= including the
9324         `=', and -Wlarger-than-@var{len} including @var{len}.
9325
9326 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9327
9328         * config/i386/i386.md (floatunssisf2): Use
9329         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9330         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9331         Macroize expander using MODEF mode iterator.
9332
9333 2008-02-05  Diego Novillo  <dnovillo@google.com>
9334
9335         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9336
9337         PR 33738
9338         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9339
9340 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9341
9342         PR other/35070
9343         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9344
9345 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9346
9347         PR target/35084
9348         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9349         to indicate if a message should be generated.
9350         (init_cumulative_args): Updated.
9351         (function_value_32): Likewise.
9352
9353 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9354
9355         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9356
9357 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9358
9359         PR target/35083
9360         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9361         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9362
9363 2008-02-04  Diego Novillo  <dnovillo@google.com>
9364
9365         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9366
9367         PR 33738
9368         * tree-vrp.c (vrp_evaluate_conditional): With
9369         -Wtype-limits, emit a warning when comparing against a
9370         constant outside the natural range of OP0's type.
9371
9372 2008-02-04  Richard Guenther  <rguenther@suse.de>
9373
9374         PR middle-end/33631
9375         * expr.c (count_type_elements): Give for unions instead of
9376         guessing.
9377
9378 2008-02-04  Richard Guenther  <rguenther@suse.de>
9379
9380         PR middle-end/35043
9381         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9382         to TYPE_DOMAINs base type instead of using bitsizetype here.
9383
9384 2008-02-03  Jason Merrill  <jason@redhat.com>
9385
9386         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9387
9388 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9389
9390         PR other/29972
9391         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9392         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9393         (RS/6000 and PowerPC Options): Fix typos and markup.
9394         * doc/passes.texi (Tree-SSA passes): Likewise.
9395
9396 2008-02-02  Michael Matz  <matz@suse.de>
9397
9398         PR target/35045
9399         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9400         from record_last_reg_set_info.
9401         (record_last_reg_set_info): Take an RTX argument, iterate over all
9402         constituent hardregs.
9403         (record_last_set_info, record_opr_changes): Change calls to
9404         new signature or to record_last_reg_set_info_regno.
9405
9406 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9407
9408         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9409
9410 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9411
9412         PR rtl-optimization/34773
9413         * reg-notes.def (EQUAL): Mention significance of combination of
9414         REG_EQUAL and REG_RETVAL.
9415         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9416         insn that has a REG_RETVAL.
9417
9418 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9419
9420         PR bootstrap/33781
9421         * configure.ac (--enable-fixed-point): Disable unless explicitly
9422         requested on IRIX.
9423         * configure: Regenerate.
9424
9425 2008-02-01  Richard Guenther  <rguenther@suse.de>
9426
9427         PR other/35042
9428         * invoke.texi (-finline-limit): Remove no longer true parts
9429         of the documentation.  Note that there is no default value.
9430
9431 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9432             Mark Mitchell  <mark@codesourcery.com>
9433             Ben Elliston  <bje@au.ibm.com>
9434
9435         PR c/29326
9436         * doc/extend.texi (Other Builtins): Document.
9437
9438 2008-01-31  Tom Browder <tom.browder@gmail.com>
9439
9440         * doc/c-tree.texi (Types): Fix grammar.
9441         (Expression trees): Ditto.
9442         * doc/passes.texi (Tree-SSA passes): Ditto.
9443         
9444         * doc/configterms.texi (Configure Terms): Fix typo.
9445         * doc/cpp.texi (Common Predefined Macros): Ditto.
9446         * doc/md.texi (Machine Constraints): Ditto.
9447         
9448         * doc/makefile.texi (Makefile): Add comma.
9449
9450 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9451             Gerald Pfeifer  <gerald@pfeifer.com>
9452         
9453         * doc/sourcebuild.texi (Front End): Remove references to CVS
9454         and CVSROOT/modules.
9455         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9456         (Back End): Remove reference to CVS.
9457
9458 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9459
9460         PR target/34900
9461         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9462         comment from...
9463         (mips16_gp_pseudo_reg): ...here.
9464         * config/mips/mips.md (load_const_gp): Replace with...
9465         (load_const_gp_<mode>): ...this :P-based insn.
9466
9467 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9468
9469         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9470         options. Minor fixes.
9471         (-std): Move reference to standards closer to where language
9472         standards are first mentioned.
9473         
9474 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9475
9476         PR rtl-optimization/34995
9477         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9478         parameter and return a bool.  If the rtx parameter is nonnull,
9479         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9480         (find_reloads): Update call accordingly.  Pass the new operand
9481         if it needed no address reloads, otherwise pass null.
9482
9483 2008-01-30  Richard Henderson  <rth@redhat.com>
9484
9485         PR c/34993
9486         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9487         for unbounded arrays.
9488
9489 2008-01-30  Silvius Rus  <rus@google.com>
9490
9491         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9492
9493 2008-01-30  Jan Hubicka  <jh@suse.cz>
9494
9495         PR target/34982
9496         * i386.c (init_cumulative_args): Use real function declaration when
9497         calling locally.
9498
9499 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9500
9501         PR rtl-optimization/34998
9502         * global.c (build_insn_chain): Treat non-subreg_lowpart
9503         SUBREGs of pseudos as clobbering all the words covered by the
9504         SUBREG, not just all the bytes.
9505         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9506         original df_ref rather than an extract parameter.
9507         (global_conflicts): Update call accordingly.
9508
9509 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9510
9511         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9512         the overflow check to make it easier to read.
9513         (__fixtfdi): Change the type of the ll member in union
9514         long_double to UDItype_x.
9515
9516 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9517
9518         PR middle-end/34969
9519         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9520         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9521         * tree-inline.c (fold_marked_statements): Call
9522         cgraph_update_edges_for_call_stmt if folding a call statement.
9523         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9524         debug_generic_stmt calls, reset it back afterwards.
9525
9526         PR c/35017
9527         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9528         static decls.
9529         * c-typeck.c (build_external_ref): Don't pedwarn about
9530         static vars in current function's scope.
9531
9532 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9533
9534         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9535
9536 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9537
9538         PR c/35002
9539         * ipa-struct-reorg.c: Fix spelling.
9540         * params.def: Ditto.
9541
9542 2008-01-29  Richard Guenther  <rguenther@suse.de>
9543
9544         PR middle-end/35006
9545         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9546         field.
9547         * tree-inline.c (remap_type): Increment remapping_type_depth
9548         around remapping types.
9549         (copy_body_r): Only add referenced variables if they are referenced
9550         from code, not types.
9551
9552 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9553
9554         PR c++/34055
9555         PR c++/34103
9556         PR c++/34219
9557         PR c++/34606
9558         PR c++/34753
9559         PR c++/34754
9560         PR c++/34755
9561         PR c++/34919
9562         PR c++/34961
9563         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9564         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9565
9566 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9567
9568         PR target/34412
9569         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9570         pointer for tiny stack.
9571
9572 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9573
9574         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9575
9576 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9577
9578         * config/vx-common.h: Fix typo in comment.
9579
9580 2008-01-28  Ian Lance Taylor  <iant@google.com>
9581
9582         PR c++/34862
9583         PR c++/33407
9584         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9585         coalesce pointers if they have different DECL_NO_TBAA_P values.
9586         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9587         between variables with different DECL_NO_TBAA_P values.
9588
9589 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9590
9591         PR 31535
9592         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9593         are not legitimate small data references on SPE targets.
9594
9595 2008-01-28  David Daney  <ddaney@avtrex.com>
9596
9597         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9598
9599 2008-01-28  David Daney  <ddaney@avtrex.com>
9600
9601         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9602
9603 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9604
9605         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9606         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9607         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9608         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9609         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9610         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9611         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9612         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9613
9614 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9615
9616         * basic-block.h (condjump_equiv_p): Fix comment.
9617
9618 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9619
9620         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9621         print_generic_stmt_indented): Fix comment.
9622
9623 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9624
9625         * configure.ac (__stack_chk_fail): Add detecion for availability
9626         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9627         * configure: Regenerate.
9628
9629 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9630
9631         PR middle-end/34688
9632         * final.c (output_addr_const): Handle TRUNCATE.
9633
9634 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9635
9636         PR target/34711
9637         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9638         (zero_cost, infinite_cost): New constants.
9639         (struct cost_pair): Change type of cost to comp_cost.
9640         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9641         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9642         New functions.
9643         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9644         split_address_cost, ptr_difference_cost, difference_cost,
9645         get_computation_cost_at, get_computation_cost,
9646         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9647         determine_use_iv_cost_condition, determine_use_iv_costs,
9648         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9649         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9650         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9651         Change type of cost to comp_cost.
9652         (determine_iv_cost): Increase cost of non-original ivs, instead
9653         of decreasing the cost of original ones.
9654         (get_address_cost): Indicate the complexity of the addressing mode 
9655         in comp_cost.
9656         (try_add_cand_for): Prefer using ivs not specific to some object.
9657         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9658
9659 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9660             Janis Johnson  <janis187@us.ibm.com>
9661
9662         PR target/34814
9663         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9664         (TARGET_INSTANTIATE_DECLS): Likewise.
9665         * target.h (expand_to_rtl_hook): New target hook.
9666         (instantiate_decls): Likewise.
9667         * function.c (instantiate_decl): Make non-static.  Rename to...
9668         (instantiate_decl_rtl): ... this.
9669         (instantiate_expr): Use instantiate_decl_rtl.
9670         (instantiate_decls_1): Likewise.
9671         (instantiate_decls): Likewise.
9672         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9673         * function.h (instantiate_decl_rtl): Add prototype.
9674         * cfgexpand.c (target.h): New include.
9675         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9676         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9677         (TARGET_INSTANTIATE_DECLS): Likewise.
9678         (TARGET_INITIALIZER): New target hooks added.
9679         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9680         New prototype.
9681         * config/rs6000/rs6000.c (tree-flow.h): New include.
9682         (machine_function): Add sdmode_stack_slot field.
9683         (rs6000_alloc_sdmode_stack_slot): New function.
9684         (rs6000_instantiate_decls): Likewise.
9685         (rs6000_secondary_memory_needed_rtx): Likewise.
9686         (rs6000_check_sdmode): Likewise.
9687         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9688         (TARGET_INSTANTIATE_DECLS): Likewise.
9689         (rs6000_hard_regno_mode_ok): Allow SDmode.
9690         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9691         (rs6000_emit_move): Handle SDmode.
9692         (function_arg_advance): Likewise.
9693         (function_arg): Likewise.
9694         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9695         SDmode var args for 32-bit compiles.
9696         (rs6000_secondary_reload_class): Handle SDmode.
9697         (rs6000_output_function_epilogue): Likewise.
9698         (rs6000_function_value): Simplify if statement.
9699         (rs6000_libcall_value): Likewise.
9700         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9701         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9702         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9703         (movsd_hardfloat): New define_insn.
9704         (movsd_softfloat): Likewise.
9705         (movsd_store): Likewise.
9706         (movsd_load): Likewise.
9707         (extendsddd2): Likewise.
9708         (extendsdtd2): Likewise.
9709         (truncddsd2): Likewise.
9710         (movdd_hardfloat64): Fixup comment.
9711         (UNSPEC_MOVSD_LOAD): New constant.
9712         (UNSPEC_MOVSD_STORE): Likewise.
9713
9714 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9715
9716         PR c++/34965
9717         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9718         TRUTH_XOR_EXPR.
9719         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9720         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9721         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9722         and TRUTH_XOR_EXPR.
9723
9724 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9725
9726         PR target/34794
9727         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9728         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9729         __LONGDOUBLE128 too.
9730         * config/rs6000/aix61.h: New file.
9731
9732 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9733
9734         PR rtl-optimization/34959
9735         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9736         popcount and parity rtxes the same mode as their operand.
9737         Truncate or extend the result to the return value's mode
9738         if necessary.
9739
9740 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9741
9742         PR target/34981
9743         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9744         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9745         to GOT_VERSION_REGNUM.
9746         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9747         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9748         * config/mips/mips.c (mips_emit_call_insn): New function.
9749         (mips_call_tls_get_addr): Call mips_expand_call directly.
9750         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9751         emit_call_insn.
9752         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9753         (mips_expand_call): Update the call to mips16_build_call_stub
9754         accordingly and a remove redundant condition.  Assert that MIPS16
9755         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9756         the call insn.
9757         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9758         TARGET_USE_GOT.
9759         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9760         (mips_avoid_hazard): Remove hazard_set handling.
9761         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9762         (UNSPEC_RESTORE_GP): ...this.
9763         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9764         (FAKE_CALL_REGNO): Rename to...
9765         (GOT_VERSION_REGNUM): ...this.
9766         (type): Add "ghost" value.  Add an associated insn reservation.
9767         (hazard_set): Remove.
9768         (exception_receiver): Rename to...
9769         (restore_gp): ...this and update the unspec identifier accordingly.
9770         (exception_receiver, nonlocal_got_receiver): New expanders.
9771         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9772         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9773         (set_got_version, update_got_version): New patterns.
9774
9775 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9776
9777         PR target/34970
9778         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9779
9780 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9781
9782         PR other/31955
9783         * doc/install.texi2html: Generate gcc-vers.texi.
9784
9785 2008-01-25  DJ Delorie  <dj@redhat.com>
9786
9787         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9788
9789 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9790
9791         * config/c4x: Remove directory.
9792         * config.gcc (crx-*, mt-*): Mark obsolete.
9793         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9794         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9795         sh-*-rtemscoff*): Remove cases.
9796         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9797         * real.c (encode_c4x_single, decode_c4x_single,
9798         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9799         c4x_extended_format): Remove.
9800         * real.h (c4x_single_format, c4x_extended_format): Remove.
9801         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9802         on C4x.
9803         (Pragmas): Remove comment about c4x pragmas.
9804         * doc/install.texi (c4x): Remove target-specific instructions.
9805         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9806         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9807         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9808         refer to C4x source files as examples.
9809         (C4X_FLOAT_FORMAT): Remove documentation.
9810
9811 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9812
9813         * config/bfin/bfin.c (override_options): Reorder tests so that
9814         flag_pic gets enabled for -msep-data.
9815
9816 2008-01-25  Richard Guenther  <rguenther@suse.de>
9817
9818         PR middle-end/32244
9819         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9820         to its bitfield precision if required.
9821
9822 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9823
9824         PR middle-end/33880
9825         * tree-nested.c (walk_omp_for): New function.
9826         (convert_nonlocal_reference, convert_local_reference): Call
9827         walk_omp_for on OMP_FOR.
9828         (convert_call_expr): Call walk_body on OMP_FOR's
9829         OMP_FOR_PRE_INIT_BODY.
9830
9831 2008-01-25  Richard Guenther  <rguenther@suse.de>
9832
9833         PR tree-optimization/34966
9834         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9835         default defs and PHI_NODEs we have to insert after the
9836         defining statement.
9837
9838 2008-01-24  Nick Clifton  <nickc@redhat.com>
9839
9840         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9841         Provide a default definition.
9842         (LIBGCC2_UNITS_PER_WORD): Likewise.
9843
9844         * config/stormy16/stormy16.c: Include df.h for the prototype
9845         for df_regs_ever_live_p.
9846         (xstormy16_expand_builtin_va_start): Convert the stack offset
9847         into a component_ref and then use POINTER_PLUS_EXPR to add it
9848         to the incoming_virtual_args_rtx.
9849         (xstormy16_gimplify_va_arg_expr): Rename to
9850         xstormy16_gimplify_va_arg_expr.
9851         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9852         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9853         xstormy16_gimplify_va_arg_expr.
9854         Fix up some formatting issues.
9855
9856         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9857         Move to predicates.md.
9858         (xs_hi_general_operand): Likewise.
9859         (xs_hi_nonmemory_operand): Likewise.
9860         * config/stormy16/predicates.md:
9861         (xstormy16_carry_plus_operand): New predicate.
9862         (xs_hi_general_operand): New predicate.
9863         (xs_hi_nonmemory_operand): New predicate.
9864         * config/stormy16/stormy16-protos.h:
9865         (xstormy16_carry_plus_operand): Delete prototype.
9866         (xs_hi_general_operand): Likewise.
9867         (xs_hi_nonmemory_operand): Likewise.
9868
9869         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9870         modifiers as they are no longer needed and they can trigger
9871         reload spill failures.
9872
9873         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9874         with a match_operand in order to help reload.
9875
9876         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9877         constraint with 'e' for the 8th alternative as this version of
9878         the mov.w instruction only accepts the lower 8 registers.
9879
9880 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9881
9882         PR target/34856
9883         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9884         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9885         vector elements.
9886
9887 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9888
9889         PR middle-end/33333
9890         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9891
9892 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9893
9894         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9895         New functions.
9896         (remove_structure): Update allocations list before removing structure.
9897         
9898 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9899
9900         * ipa-struct-reorg.c (is_safe_cond_expr, 
9901         create_new_stmts_for_cond_expr): Use integer_zerop function,
9902         that recognize not only zero-pointer, but zero-integer too.
9903
9904 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9905
9906         PR other/22232
9907         * fixproto: Escape "." in sed expression that strips leading "./".
9908
9909 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9910
9911         PR driver/34904
9912         * gcc.c (SWITCH_OK): Removed.
9913         (SWITCH_LIVE): Changed to bit.
9914         (SWITCH_FALSE): Likewise.
9915         (SWITCH_IGNORE): Likewise.
9916         (switchstr): Change live_cond to unsigned int.
9917         (process_command): Replace SWITCH_OK with 0.
9918         (do_self_spec): Likewise.
9919         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9920         (give_switch): Likewise.
9921         (used_arg): Likewise.
9922         (do_spec_1): Set the SWITCH_IGNORE bit.
9923         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9924         bits.  Set the SWITCH_LIVE bit.
9925
9926 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9927
9928         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9929
9930 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9931
9932         PR tree-optimization/34472
9933         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9934         parameter to a "bool *" and set *DATA to false if there is
9935         an unsafe access.  Do not delete the structure here.
9936         (check_cond_exprs): Delete it here instead.
9937         (check_cond_exprs, exclude_cold_structs): Do not increase
9938         I when removing a structure.
9939
9940 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9941
9942         PR target/34856
9943         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9944         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9945
9946 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9947
9948         PR middle-end/34934
9949         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9950         a fixed vector for stack.
9951
9952 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9953
9954         PR c++/25701
9955         * doc/gcc.texi (Software development): Add a direntry for g++.
9956         
9957 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9958
9959         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9960         stale and straggling -fforce-addr comments above.
9961
9962         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9963         define.
9964         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9965         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9966
9967 2008-01-23  Michael Matz  <matz@suse.de>
9968
9969         PR debug/34895
9970         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9971         gen_type_die.
9972
9973 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9974
9975         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9976         malloc result type.
9977
9978 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9979
9980         * config/avr/avr.c (avr_current_arch): New variable.
9981         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9982         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9983         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9984         (avr_override_options): Init 'avr_current_arch'. 
9985         (base_arch_s): Move from here...
9986         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9987         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9988         'mega' to 'have_jmp_call'.
9989         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9990         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9991         macros.
9992         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9993         architectures.
9994         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9995         MULTILIB_MATCHES): (Ditto.).
9996
9997 2008-01-23  Richard Guenther  <rguenther@suse.de>
9998
9999         PR middle-end/31529
10000         * cgraphunit.c (cgraph_reset_node): Always mark the node
10001         not reachable if it is not queued already.
10002
10003 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10004
10005         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10006         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10007         (cputype_selected): New static variable.
10008         (bfin_handle_option): Set it if -mcpu is used.
10009         (override_option): Select default set of workarounds if no cpu type
10010         selected on the command line.
10011         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10012
10013         From  Michael Frysinger  <michael.frysinger@analog.com>
10014         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10015         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10016
10017         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10018         for bf547, bf523, bf524, and bf526.
10019         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10020         bf526.
10021         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10022         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10023         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10024         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10025         * doc/invoke.texi (Blackfin Options): Document that
10026         -mcpu now accept bf547, bf523, bf524, and bf526.
10027
10028 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10029
10030         PR rtl-optimization/34628
10031         * combine.c (try_combine): Stop and undo after the first combination
10032         if an autoincrement side-effect on the first insn has effectively
10033         been lost.
10034
10035 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10036
10037         PR target/34529
10038         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10039         Offset addresses are not valid for Altivec or paired float modes.
10040
10041 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10042
10043         PR c++/34607
10044         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10045         if DECL_INITIAL (decl) is error_mark_node.
10046
10047         PR c++/34914
10048         * c-common.c (handle_vector_size_attribute): Only allow
10049         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10050         the same way as pointer, array etc. types.
10051         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10052
10053         PR c++/34917
10054         * tree.c (build_type_attribute_qual_variant): Call
10055         build_qualified_type if attributes are equal, but quals are not.
10056
10057 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10058
10059         PR 32102
10060         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10061         * flags.h (warn_strict_aliasing): Remove.
10062         (warn_strict_overflow): Remove.
10063         * opts.c (warn_strict_aliasing): Remove.
10064         (warn_strict_overflow): Remove.
10065         * c-opts.c (c_common_handle_option): -Wall only sets
10066         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10067         (c_common_post_options): Give default values to -Wstrict-aliasing
10068         and -Wstrict-overflow if they are uninitialized.
10069         * common.opt (Wstrict-aliasing): Specify Var and Init.
10070         (Wstrict-overflow): Likewise.
10071
10072 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10073
10074         PR rtl-optimization/26854
10075         PR rtl-optimization/34400
10076         PR rtl-optimization/34884
10077         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10078         DF_RD->gen.
10079         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10080         (df_rd_bb_info.expanded_lr_out): Deleted
10081         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10082         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10083         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10084         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10085         Removed code to allocate, initialize or free expanded_lr_out.
10086         (df_rd_bb_local_compute_process_def): Restructured to make more
10087         understandable.
10088         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10089         sets if the sets are being trimmed.
10090
10091 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10092
10093         PR bootstrap/32287
10094         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10095         (as_vers): Likewise.
10096         * configure: Regenerated.
10097
10098 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10099
10100         PR middle-end/33092
10101         * tree-pass.h (pass_build_alias): New pass.
10102         * tree-ssa-alias.c (gate_build_alias): New.
10103         (pass_build_alias): New.
10104         * passes.c (init_optimization_passes): Add pass_build_alias after
10105         pass_create_structure_vars.
10106
10107 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10108
10109         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10110         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10111         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10112         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10113         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10114         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10115         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10116         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10117         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10118         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10119         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10120         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10121         * config/s390/s390.md (FP_ALL): New mode iterator.
10122         (_d): New mode attribute.
10123         ("*signbit<mode>2>"): Changed mode of first operand.
10124         ("isinf<mode>2"): Changed mode of first operand.
10125         ("*TDC_insn"): Adaptation for DFP modes.
10126
10127 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10128
10129         * tree.c (check_qualified_type): Improve function description.
10130
10131 2008-01-21  Jason Merrill  <jason@redhat.com>
10132
10133         PR c++/34196
10134         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10135         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10136         if it is set.
10137
10138 2008-01-21  DJ Delorie  <dj@redhat.com>
10139
10140         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10141         return zero.
10142
10143 2008-01-21  Richard Guenther  <rguenther@suse.de>
10144
10145         PR middle-end/34856
10146         * tree-cfg.c (verify_expr): Allow all invariant expressions
10147         instead of just constant class ones as reference argument.
10148         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10149         like any other constant.
10150         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10151
10152 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10153
10154         * regmove.c (fixup_match_1): Update call crossed frequencies.
10155
10156 2008-01-21  Richard Guenther  <rguenther@suse.de>
10157
10158         PR c/34885
10159         * tree-inline.c (setup_one_parameter): Deal with mismatched
10160         types using a VIEW_CONVERT_EXPR.
10161
10162 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10163             Olga Golovanevsky  <olga@il.ibm.com>
10164         
10165         PR tree-optimization/34701
10166         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10167         when the structure size is not a power of 2.
10168
10169 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10170
10171         * doc/install.texi: Add doc for --enable-checking=df.
10172         
10173 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10174
10175         PR rtl-optimization/34808
10176         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10177
10178 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10179
10180         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10181         input.
10182
10183 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10184
10185         PR rtl-optimization/26854
10186         PR rtl-optimization/34400
10187         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10188         DF_RD->gen.
10189         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10190         (df_rd_bb_info.expanded_lr_out): New.
10191         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10192         * loop_iv.c (iv_analysis_loop_init): Ditto.
10193         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10194         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10195         Added code to allocate, initialize or free expanded_lr_out.
10196         (df_rd_bb_local_compute_process_def): Restructured to make
10197         more understandable.
10198         (df_rd_confluence_n): Add code to do nothing with fake edges and
10199         code to no apply invalidate_by_call sets if the sets are being trimmed.
10200         (df_lr_local_finalize): Renamed to df_lr_finalize.
10201         (df_live_local_finalize): Renamed to df_live_finalize.
10202
10203 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10204
10205         PR target/34831
10206         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10207         deciding whether to use reciprocal instructions.
10208
10209 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10210
10211         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10212         dwarf2out_note_section_used if cold_text_section is NULL.
10213
10214 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10215
10216         PR gcov-profile/34610
10217         * tree-cfg.c (make_edges): Mark both outgoing edges from
10218         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10219         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10220         from OMP_FOR and OMP_CONTINUE outgoing edges.
10221
10222         * tree-profile.c (tree_profiling): Return early if
10223         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10224         at the end.
10225         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10226         from cfun to child_cfun.
10227         * function.h (struct function): Add after_tree_profile bit.
10228
10229 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10230
10231         * config/avr/avr.S (_exit): Disable interrupt.
10232
10233 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10234             Steven Bosscher  <stevenb.gcc@gmail.com>
10235
10236         PR rtl-optimization/26854
10237         PR rtl-optimization/34400
10238         * df-problems.c (df_live_scratch): New scratch bitmap.
10239         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10240         (df_live_reset): Clear the proper bitmaps.
10241         (df_live_bb_local_compute): Only process the artificial defs once
10242         since the order is not important.
10243         (df_live_init): Init the df_live sets only with the variables
10244         found live by df_lr.
10245         (df_live_transfer_function): Use the df_lr sets to prune the
10246         df_live sets as they are being computed.  
10247         (df_live_free): Free df_live_scratch.
10248
10249 2008-01-18  Ian Lance Taylor  <iant@google.com>
10250
10251         * common.opt: Add fmerge-debug-strings.
10252         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10253         flag_merge_debug_strings rather than flag_merge_constants.
10254         * doc/invoke.texi (Option Summary): Mention
10255         -fmerge-debug-strings.
10256         (Debugging Options): Document -fmerge-debug-strings.
10257
10258 2008-01-18  Ian Lance Taylor  <iant@google.com>
10259
10260         PR c++/33407
10261         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10262         (struct tree_function_decl): Add new field operator_new_flag.
10263         * tree-inline.c (expand_call_inline): When inlining a call to
10264         operator new, force the return value to go into a variable, and
10265         set DECL_NO_TBAA_P on that variable.
10266         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10267
10268 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10269
10270         PR debug/34484
10271         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10272         DWARF2_DEBUGGING_INFO.
10273         (dwarf2out_note_section_used): Ditto.  Add prototype.
10274         (have_multiple_function_sections, text_section_used,
10275         cold_text_section_used, *cold_text_sections): Move declarations
10276         before their uses.
10277
10278 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10279
10280         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10281         field and add signal_ra.
10282         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10283         assignments to frame state pc.  Move end of stack check after
10284         MD_FALLBACK_FRAME_STATE_FOR.
10285         (uw_update_context_1): Use frame state signal_regs if set, instead
10286         of checking signal_frame flag.
10287         (uw_update_context): Use frame state signal_ra if set.
10288         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10289         * config/xtensa/linux-unwind.h: New file.
10290
10291 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10292
10293         * modulo-sched.c (get_sched_window): Fix comment typo.
10294
10295 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10296
10297         PR tree-optimization/34648
10298         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10299
10300 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10301
10302         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10303         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10304
10305 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10306
10307         PR rtl-optimization/34400
10308         * df-core.c (df_worklist_dataflow_overeager,
10309         df_worklist_dataflow_doublequeue): New functions.
10310         (df_worklist_dataflow): Two different worklist solvers.
10311         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10312         New param.
10313
10314 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10315
10316         PR testsuite/34821
10317         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10318         and ftree-parallelize-loops.
10319
10320 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10321
10322         PR rtl-optimization/34826
10323         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10324
10325 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10326
10327         * global.c (find_reg): Mark the eh regs as used if necessary.
10328         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10329         * ra.h (struct allocno): no_eh_reg field added.  Changed
10330         no_stack_reg type to bitfield.
10331
10332 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10333
10334         * tree.c (substitute_in_expr): Add missing 'break'.
10335
10336 2008-01-17  Richard Guenther  <rguenther@suse.de>
10337
10338         PR tree-optimization/34825
10339         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10340         x / x as division to handle.
10341
10342 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10343
10344         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10345         "-pthread" is specified.
10346         * pa-hpux11.h (LIB_SPEC): Likewise.
10347
10348 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10349             Peter Bergner  <bergner@vnet.ibm.com>
10350
10351         PR rtl-optimization/33796
10352         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10353
10354 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10355
10356         PR libgfortran/34699
10357         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10358         static links.
10359         * pa-hpux10.h (LINK_SPEC): Likewise.
10360         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10361
10362 2008-01-16  Richard Guenther  <rguenther@suse.de>
10363
10364         PR middle-end/32628
10365         * fold-const.c (fold_convert_const_int_from_int): Do not
10366         set overflow if that occured only because of a sign extension
10367         change when converting from/to a sizetype with the same
10368         precision and signedness.
10369
10370 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10371
10372         PR debug/34249
10373         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10374         location address to the correct place.  Update copyright year.
10375
10376 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10377
10378         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10379         no dependences in the dependence_relations vector.
10380
10381 2008-01-16  Jan Hubicka  <jh@suse.cz>
10382
10383         PR rtl-optimization/31396
10384         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10385         * cfg.c (dump_reg_info): Print it.
10386         * regs.h (struct reg_info_t): add freq_calls_crossed.
10387         (REG_FREQ_CALLS_CROSSED): New macro.
10388         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10389         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10390         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10391         regmove_optimize): Update call crossed frequencies.
10392         * local-alloc.c (struct qty): Add freq_calls_crossed.
10393         (alloc_qty): Copute freq_calls_crossed.
10394         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10395         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10396         * ra.h (struct allocno): Add freq_calls_crossed.
10397
10398 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10399
10400         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10401         libgomp when compiling with ftree-parallelize-loops.
10402         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10403
10404 2008-01-16  Richard Guenther  <rguenther@suse.de>
10405
10406         PR tree-optimization/34769
10407         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10408         * tree.c (int_cst_value): Instead make this function more
10409         permissive in what it accepts as valid input.  Document this
10410         function always sign-extends the value.
10411
10412 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10413             Richard Guenther  <rguenther@suse.de>
10414
10415         PR c/34668
10416         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10417         (gimple_fold_indirect_ref_rhs): ... this.
10418         (gimple_fold_indirect_ref): New function with foldings
10419         that preserve lvalueness.
10420         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10421         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10422         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10423         to fold an INDIRECT_REF, fall back to the old use of
10424         fold_indirect_ref_1.
10425
10426 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10427
10428         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10429         free_conflict_function.
10430         (compute_self_dependence): Same.
10431
10432 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10433
10434         PR debug/34249
10435         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10436         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10437         function global.
10438         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10439         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10440         for DWARF2_UNWIND_INFO targets.
10441
10442 2008-01-16  Richard Guenther  <rguenther@suse.de>
10443
10444         PR c/34768
10445         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10446         type qualifiers for function types.
10447
10448 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10449
10450         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10451         loop_iterator li from previous commit.
10452
10453 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10454
10455         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10456
10457 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10458
10459         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10460         (parallelize_loops): Don't parallelize irreducible components.
10461
10462 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10463
10464         PR c++/24924
10465         * c-opts (c_common_post_options): Do not enable CPP
10466         flag_pedantic_errors by default.
10467         
10468 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10469
10470         PR rtl-optimization/31944
10471         * cse.c (remove_pseudo_from_table): New function.
10472         (merge_equiv_classes): Use above function to remove pseudo-registers.
10473         (invalidate): Likewise.
10474
10475 2008-01-13  Richard Guenther  <rguenther@suse.de>
10476
10477         PR middle-end/34601
10478         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10479         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10480
10481 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10482
10483         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10484         validate_change to unshare the source of the PC set.
10485
10486 2008-01-12  Jan Hubicka  <jh@suse.cz>
10487
10488         PR middle-end/32135
10489         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10490         references above array bounds.  This might trigger bounds checks for
10491         pointers to arrays.
10492
10493 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10494
10495         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10496         new_replaceable_dependencies.
10497
10498 2008-01-12  Doug Kwan  <dougkwan@google.com>
10499
10500         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10501         instead of OPT_Wreturn_type in warning due to ignored return type
10502         qualifiers.
10503         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10504         options included in -Wextra.
10505         * c.opt: New option -Wignored_qualifiers.
10506         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10507         -Wignore_qualifiers.
10508         (-Wignored-qualifiers): Document.
10509         (-Wreturn-type): Remove description of functionality now handled
10510         by -Wignored-qualifiers.
10511
10512 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10513
10514         PR ada/33788
10515         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10516         NOP_EXPR if it is between integral types with the same precision.
10517
10518 2008-01-12  Jan Hubicka  <jh@suse.cz>
10519
10520         PR other/28023
10521         * invoke.texi (max-inline-recursive-depth): Fix default value.
10522
10523 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10524
10525         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10526         correct type.
10527
10528 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10529         
10530         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10531         
10532 2008-01-11  James E. Wilson  <wilson@specifix.com>
10533
10534         PR target/26015
10535         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10536
10537 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10538
10539         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10540         save/restore frame pointer register and don't use 'call-prologues' 
10541         optimization in function with "OS_task" attribute.
10542
10543 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10544
10545         PR middle-end/31309
10546         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10547         when copying to memory.
10548
10549 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10550
10551         PR rtl-optimization/30905
10552         * cfgcleanup.c: Include dce.h
10553         (crossjumps_occured): New global variable.
10554         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10555         If something changed, set crossjumps_occured to true.
10556         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10557         Don't add/remove fake edges to exit here...
10558         (cleanup_cfg): ...but do it here, when crossjumping.
10559         Run a fast DCE when successful crossjumps occured in the latest
10560         iteration of try_optimize_cfg.
10561
10562 2008-01-11  Richard Guenther  <rguenther@suse.de>
10563
10564         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10565         (struct vn_unary_op_s): Likewise.
10566         (vn_reference_insert): Free old reference on hash collision.
10567
10568 2008-01-10  Raksit Ashok  <raksit@google.com>
10569
10570         PR rtl-optimization/27971
10571         * combine.c (find_split_point): Split PLUS expressions which are
10572         inside a MEM rtx, and whose first operand is complex.
10573
10574 2008-01-10  DJ Delorie  <dj@redhat.com>
10575
10576         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10577         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10578         (m32c_hard_regno_ok): Call the underlying function.
10579
10580 2008-01-10  Richard Guenther  <rguenther@suse.de>
10581
10582         PR middle-end/34683
10583         * tree-cfg.c (tree_merge_blocks): Do not go through the
10584         full-blown folding and stmt updating path if we just deal
10585         with virtual operands.
10586         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10587         test for abnormal SSA_NAMEs.
10588
10589 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10590
10591         PR middle-end/34641
10592         * reload.c (push_reload): Add assertions.  All constants from
10593         reg_equiv_constant should have been used for replacing the respective
10594         pseudo earlier.
10595         (find_reloads_address): Invoke find_reloads_address_part for
10596         constant taken from the reg_equiv_constant array.
10597
10598 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10599
10600         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10601         field (valnum) the first in the struct.  Replace bools with
10602         unit bit fields.
10603
10604 2008-01-10  Richard Guenther  <rguenther@suse.de>
10605
10606         PR tree-optimization/34651
10607         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10608         types and ordering for masking and converting.
10609
10610 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10611
10612         PR tree-optimization/34017
10613         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10614         also for PHI_NODE expressions.
10615
10616 2008-01-09  Jan Hubicka  <jh@suse.cz>
10617
10618         PR tree-optimization/34708
10619         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10620         based on number of case labels.
10621         (init_inline_once): Remove switch_cost.
10622         * tree-inline.h (eni_weights_d): Remove switch_cost.
10623
10624 2008-01-09  Richard Guenther  <rguenther@suse.de>
10625         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10626
10627         PR middle-end/30132
10628         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10629         temporary if an rvalue is ok or an lvalue is not required.
10630
10631 2008-01-09  Richard Guenther  <rguenther@suse.de>
10632
10633         PR middle-end/34458
10634         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10635         adjust return type.
10636
10637 2008-01-09  Richard Guenther  <rguenther@suse.de>
10638
10639         PR middle-end/34679
10640         * tree.c (host_integerp): Check for sizetype only if the
10641         type is an integer type.
10642
10643 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10644
10645         PR debug/26364
10646         * opts.c (decode_options): Disable inlining of functions called
10647         once if not in unit-at-a-time mode.
10648
10649 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10650
10651         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10652
10653 2008-01-08  Richard Guenther  <rguenther@suse.de>
10654
10655         PR middle-end/31863
10656         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10657         out early if the result will be unused.
10658
10659 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10660
10661         PR target/34709
10662         Revert:
10663
10664         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10665         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10666         for TARGET_RECIP.       
10667         
10668 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10669         
10670         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10671         for vectorization tuned.
10672         
10673 2008-01-08  Richard Guenther  <rguenther@suse.de>
10674
10675         PR tree-optimization/34683
10676         * tree-ssa-operands.c (operand_build_cmp): Export.
10677         * tree-ssa-operands.h (operand_build_cmp): Declare.
10678         * tree-vn.c (vuses_compare): Remove.
10679         (sort_vuses): Use operand_build_cmp.
10680         (sort_vuses_heap): Likewise.
10681         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10682         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10683         (vdefs_to_vec): Do not sort already sorted VDEFs.
10684
10685 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10686
10687         PR middle-end/34694
10688         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10689
10690 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10691
10692         PR target/34702
10693         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10694         limitations of reciprocal sequences on x86 targets.
10695
10696 2008-01-08  Richard Guenther  <rguenther@suse.de>
10697
10698         PR tree-optimization/34683
10699         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10700
10701 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10702
10703         PR target/34622
10704         * config/darwin.c (darwin_mergeable_string_section): Don't use
10705         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10706
10707 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10708
10709         PR target/34682
10710         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10711         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10712         predicates of op0 and op1 to register_operand.
10713         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10714         expander using X87MODEF mode iterator.  Change predicates of
10715         op0 and op1 to register_operand.
10716         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10717         corresponding patterns and macroize using MODEF macro.  Change
10718         predicates of op0 and op1 to register_operand and remove
10719         "m" constraint. Disparage "r" alternative with "!".
10720         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10721         macroize using X87MODEF macro.  Change predicates of op0 and op1
10722         to register_operand and remove "m" constraint.  Disparage "r"
10723         alternative with "!".
10724         (absneg splitter with memory operands): Remove.
10725         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10726         patterns and macroize using X87MODEF mode iterator.
10727         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10728         Change predicate of op1 to register_operand.
10729         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10730         for memory operands.
10731
10732 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10733
10734         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10735
10736 2008-01-07  Richard Guenther  <rguenther@suse.de>
10737
10738         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10739         fields.
10740
10741 2008-01-07  Richard Guenther  <rguenther@suse.de>
10742
10743         PR tree-optimization/34683
10744         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10745         VOPs of the needed size to save memory.  Use VEC_quick_push
10746         to save compile-time.
10747         (vdefs_to_vec): Likewise.
10748
10749 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10750
10751         * config/spu/spu.md (divdf3): Genetate inline code for double
10752         division.  The implementation doesn't handle INF or NAN, therefore it
10753         only applies when -ffinite-math-only is given.
10754
10755 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10756
10757         PR libstdc++/34680
10758         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10759         * doc/cpp.texi ([Common Predefined Macros]): Document.
10760
10761 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10762
10763         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10764         order to use commutative addition instead of subtraction.
10765
10766 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10767             Mircea Namolaru  <namolaru@il.ibm.com>
10768             Vladimir Yanovsky  <yanov@il.ibm.com>
10769             Revital Eres  <eres@il.ibm.com>
10770
10771         PR tree-optimization/34263
10772         * tree-outof-ssa.c (process_single_block_loop_latch,
10773         contains_tree_r): New functions.
10774         (analyze_edges_for_bb): Call process_single_block_loop_latch
10775         function to empty single-basic-block latch block if possible.
10776
10777 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10778
10779         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10780         for TARGET_RECIP.
10781         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10782
10783 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10784
10785         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10786
10787 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10788
10789         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10790
10791 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10792
10793         PR tree-optimization/34618
10794         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10795         flag from T.
10796
10797 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10798
10799         PR target/34673
10800         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10801         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10802         Update copyright year.
10803
10804         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10805         Update copyright year.
10806         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10807         using NR fixup.
10808
10809 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10810
10811         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10812         edge does not point to current bb before changing need_assert.
10813
10814 2008-01-04  Richard Guenther  <rguenther@suse.de>
10815
10816         PR middle-end/34029
10817         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10818         for verifying purposes if they are is_gimple_min_invariant.
10819
10820 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10821
10822         PR tree-optimization/34448
10823         PR tree-optimization/34465
10824         * gimplify.c (gimplify_init_constructor): Add new parameter
10825         notify_temp_creation.  Use it.
10826         (gimplify_modify_expr_rhs): Take volatiles into account when
10827         optimizing constructors.
10828         Do not optimize constructors if gimplify_init_constructor will dump to
10829         memory.
10830         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10831         * gcc.c-torture/compile/pr34448.c: New.
10832
10833 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10834
10835         PR gcov-profile/34609
10836         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10837         return_slot if result is TREE_ADDRESSABLE.
10838
10839 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10840
10841         * config/mips/mips.md (sqrt_condition): Tweak comment.
10842         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10843
10844 2008-01-03  Tom Tromey  <tromey@redhat.com>
10845
10846         PR c/34457
10847         * c-common.c (c_type_hash): Handle VLAs.
10848
10849 2008-01-03  Jan Hubicka  <jh@suse.cz>
10850
10851         PR tree-optimization/31081
10852         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10853         0 when inlining and not inlining to first basic block.
10854         (remap_decl): When var is initialized to 0, don't set default_def.
10855         (expand_call_inline): Set entry_bb.
10856         * tree-inline.h (copy_body_data): Add entry_bb.
10857
10858 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10859
10860         PR c++/34619
10861         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10862         before returning.
10863
10864         PR tree-optimization/29484
10865         * tree-inline.c (inline_forbidden_p_2): New function.
10866         (inline_forbidden_p): Disallow inlining if some static var
10867         has an address of a local LABEL_DECL in its initializer.
10868         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10869         vs. inlining.
10870
10871 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10872
10873         PR tree-optimization/34635
10874         * tree-data-ref.c (add_other_self_distances): Make sure that the
10875         evolution step is constant.
10876
10877 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10878
10879         PR middle-end/34608
10880         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10881
10882 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10883
10884         * tree-sra.c (scalarize_init): Insert the generate_element_init
10885         statements after the generate_element_zero statements.
10886
10887 2008-01-02  Richard Guenther  <rguenther@suse.de>
10888
10889         PR middle-end/34093
10890         PR middle-end/31976
10891         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10892         for very large number of operands instead of ICEing.
10893
10894 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10895
10896         PR target/34013
10897         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10898         while stack probing.
10899
10900 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10901
10902         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10903         in C++0x mode.
10904
10905 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10906
10907         PR libmudflap/26442
10908         * tree-mudflap.c (mx_register_decls): Guard warning by
10909         !DECL_ARTIFICIAL check.
10910
10911 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10912
10913         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10914         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10915         sse5_perm<mode>): Fix constraints.