OSDN Git Service

2008-05-28 Rafael Espindola <espindola@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-28  Rafael Espindola  <espindola@google.com>
2
3         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
4         invalid sharing.
5
6 2008-05-28  Richard Guenther  <rguenther@suse.de>
7
8         PR tree-optimization/36339
9         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
10         and clobbering code out of the loop.
11
12 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
13
14         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
15         letters defined.
16
17         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
18         s390_contiguous_bitmask_p, s390_symref_operand_p,
19         s390_check_symref_alignment, s390_reload_larl_operand,
20         s390_reload_symref_address): New functions.
21         (s390_branch_condition_mnemonic): Support compare and branch
22         instructions.
23         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
24         and 'W' constraints.
25         (s390_secondary_reload): Add secondary reloads for unaligned
26         symbol refs or symbol refs to floating point or QI/TI mode
27         integer values.
28         (legitimate_address_p): Accept symbol references as addresses.
29         (s390_expand_insv): Use rotate and insert selected bits
30         instruction for insv when building for z10.
31         (print_operand_address): Handle symbol ref addresses.
32         (print_operand): Output modifier 'c' added for signed byte
33         values.
34         (s390_encode_section_info): Mark symbol refs with
35         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
36
37         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
38         (length attribute): RRF, RRR have 4 byte length.
39         (FPALL, INTALL): New mode iterators added.
40         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
41         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
42         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
43         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
44         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
45         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
46         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
47         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
48         instructions.
49         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
50         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
51         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
52         reload<INTALL:mode><P:mode>_toreg_z10,
53         reload<FPALL:mode><P:mode>_tomem_z10,
54         reload<FPALL:mode><P:mode>_toreg_z10,
55         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
56         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
57         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
58         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
59         definition.
60         (movmem, clrmem, cmpmem): New splitters added.
61
62         * config/s390/predicates.md (larl_operand): Use
63         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
64         SYMBOL_REF_ALIGN1_P.
65         (s390_signed_integer_comparison,
66         s390_unsigned_integer_comparison): New predicates.
67
68         * config/s390/s390-protos.h (s390_check_symref_alignment,
69         s390_contiguous_bitmask_p, s390_reload_larl_operand,
70         s390_reload_symref_address,
71         s390_compare_and_branch_condition_mask): Prototypes added.
72
73         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
74         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
75         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
76
77 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
78
79         * config/s390/s390.c (z10_cost): New cost function for z10.
80         (s390_handle_arch_option, override_options): Support
81         -march=z10 switch.
82         (s390_issue_rate): Adjust issue rate for z10.
83         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
84         (processor_flags): Add PF_Z10.
85         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
86         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
87         * gcc/config.gcc: Add z10.
88
89 2008-05-28  Richard Guenther  <rguenther@suse.de>
90
91         PR tree-optimization/36291
92         * tree-flow. h (struct gimple_df): Remove var_anns member.
93         * tree-flow-inline.h (gimple_var_anns): Remove.
94         (var_ann): Simplify.
95         * tree-dfa.c (create_var_ann): Simplify.
96         (remove_referenced_var): Clear alias info from var_anns of globals.
97         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
98         (delete_tree_ssa): Clear alias info from var_anns of globals.
99         Do not free var_anns.
100         (var_ann_eq): Remove.
101         (var_ann_hash): Likewise.
102
103 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
104
105         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
106         and loongson2f entries.
107         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
108         * config/mips/mips.h (processor_type): Add Loongson-2E
109         and Loongson-2F entries.
110         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
111         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
112         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
113         * doc/invoke.texi (MIPS Options): Document loongson2e
114         and loongson2f processor names.
115
116 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
117
118         PR target/35767
119         PR target/35771
120         * config/i386/i386.c (ix86_function_arg_boundary): Use
121         alignment of canonical type.
122         (ix86_expand_vector_move): Check unaligned memory access for
123         all SSE modes.
124
125 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
126
127         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
128         Moved to the front of file.
129
130 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
131             H.J. Lu  <hongjiu.lu@intel.com>
132
133         * dwarf2out.c (current_fde): New.
134         (add_cfi): Use it.
135         (lookup_cfa:): Likewise.
136         (dwarf2out_end_epilogue): Likewise.
137         (dwarf2out_note_section_used): Likewise.
138
139 2008-05-27  Michael Matz  <matz@suse.de>
140
141         PR c++/27975
142         * c.opt (Wenum-compare): New warning option.
143         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
144
145 2008-05-27  Michael Matz  <matz@suse.de>
146
147         PR middle-end/36326
148         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
149         non-BLKmode types.
150         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
151         into memory as tail calls.
152
153 2008-05-27  Richard Guenther  <rguenther@suse.de>
154
155         PR tree-optimization/36339
156         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
157         pointers cause all addressable variables to be call clobbered.
158
159 2008-05-27  Richard Guenther  <rguenther@suse.de>
160
161         PR tree-optimization/36245
162         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
163         bases.
164
165 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
166
167         * config/s390/s390.md: Replace all occurences of the 'm'
168         constraint with 'RT'.
169
170 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
171
172         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
173         definitions added.
174         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
175         "*movdi_64".
176         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
177         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
178         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
179
180 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
181
182         * reload.c: (find_reloads): Skip alternatives according to the
183         "enabled" attribute. Constify the constraint variable.
184         * recog.c (get_attr_enabled): Add default implementation.
185         (extract_insn): Set the alternative_enabled_p array
186         in the recog_data struct.
187         (preprocess_constraints, constrain_operands): Skip
188         alternatives according to the "enabled" attribute
189         * recog.h (struct recog_data): New field alternative_enabled_p.
190         (skip_alternative): New inline function.
191         * regclass.c: (record_operand_costs): Check the "enabled"
192         attribute.
193         (record_reg_classes): Skip alternative according to the
194         "enabled" attribute.
195
196         * doc/md.texi: Add documention for the "enabled" attribute.
197
198 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
199
200         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
201         * postreload.c (reload_cse_simplify_operands): Replace 'm'
202         constraint with TARGET_MEM_CONSTRAINT.
203         * recog.c (asm_operand_ok, preprocess_constraints,
204         constrain_operands): Likewise.
205         * regclass.c (record_reg_classes): Likewise.
206         * reload.c (find_reloads, alternative_allows_const_pool_ref):
207         Likewise.
208         * reload1.c (maybe_fix_stack_asms): Likewise.
209         * stmt.c (parse_output_constraint, parse_input_constraint):
210         Likewise.
211         * recog.h: Adjust comment.
212         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
213         * genoutput.c (note_constraint): Don't emit error for 'm'
214         constraint.
215         * doc/md.texi: Add a note to description of 'm' constraint.
216         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
217
218 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
219
220         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
221         that the bitfield is of integral type before testing its precision.
222
223 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
224             Sa Liu  <saliu@de.ibm.com> 
225
226         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
227         __modti3, __udivti3, __umodti3 and __udivmodti4.
228         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
229         that implement TImode mul and div functions.
230         * config/spu/multi3.c: New. Implement __multi3.
231         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
232         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
233         functions on SPU.
234
235 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
236
237         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
238         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
239         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
240         tls_sysv_suffix): New mode and mode attribute iterators.
241         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
242         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
243         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
244         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
245         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
246         iterators.
247
248 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
249
250         PR tree-optimization/36329
251         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
252         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
253         * cgraphbuild.c (initialize_inline_failed): Use the latter
254         macro in lieu of the former.
255         * ipa-inline.c (cgraph_mark_inline): Likewise.
256         (cgraph_decide_inlining_of_small_function): Likewise.
257         (cgraph_decide_inlining): Likewise.
258         (cgraph_decide_inlining_incrementally): Likewise.
259
260 2008-05-26  Tristan Gingold  <gingold@adacore.com>
261             Anatoly Sokolov  <aesok@post.ru>
262
263         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
264         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
265         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
266         optimization for 'avr6' architecture.
267
268 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
269
270         PR target/34932
271         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
272
273 2008-05-26  Richard Guenther  <rguenther@suse.de>
274
275         * tree-ssa-sccvn.c (expr_has_constants): Declare.
276         (visit_reference_op_load): Initialize VN_INFO->has_constants
277         properly.
278
279 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
280
281         PR middle-end/36253
282         * caller-save.c (insert_restore): Verify alignment of spill
283         space.
284         (insert_save): Likewise.
285
286         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
287
288         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
289         (STACK_SLOT_ALIGNMENT): Likewise.
290
291         * function.c (LOCAL_ALIGNMENT): Removed.
292         (get_stack_local_alignment): New.
293         (assign_stack_local): Use it.  Set alignment on stack slot.
294         (assign_stack_temp_for_type): Use get_stack_local_alignment.
295
296         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
297         (STACK_SLOT_ALIGNMENT): New.
298
299         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
300         stack slot in XFmode.
301
302         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
303
304 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
305
306         PR/36321
307         * config/i386/i386.md (allocate_stack_worker_64): Make sure
308         argument operand in rax isn't removed.
309
310 2008-05-26  Richard Guenther  <rguenther@suse.de>
311
312         PR middle-end/36300
313         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
314         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
315
316 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
317
318         PR bootstrap/36331
319         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
320
321 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
322
323         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
324         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
325
326 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
327
328          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
329         build a trampoline if we don't want one.
330         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
331         return zero for nested functions if we don't want a trampoline.
332
333 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
334
335         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
336
337 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
338
339         PR fortran/18428
340         * c.opt: Removed undocumented option '-lang-fortran'.
341         * c-common.h: Removed global variable 'lang_fortran'.
342         * c-opts.c (c_common_handle_option): Removed code to handle
343         option '-lang-fortran'. Updated includes.
344         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
345         definition of '__GFORTRAN__'.
346         (define__GNUC__): Reimplemented to use BASEVER and
347         cpp_define_formatted.
348         (builtin_define_with_value_n): Removed.
349         * c-incpath.h: Renamed to ...
350         * incpath.h: ... this.
351         * c-incpath.c: Renamed to ...
352         * incpath.c: ... this. Updated includes.
353         * fix-header.c: Updated includes.
354         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
355         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
356         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
357
358 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
359
360         * tree.h: Update the table of flags used on tree nodes.
361         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
362         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
363         (FORCED_LABEL): Add access check.
364         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
365         (ASM_INPUT_P): Likewise.
366         (ASM_VOLATILE_P): Likewise.
367         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
368         (OMP_SECTION_LAST): Access private_flag directly.
369         (OMP_RETURN_NOWAIT): Likewise.
370         (OMP_PARALLEL_COMBINED): Likewise.
371         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
372         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
373         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
374         deprecated_flag directly.
375
376 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
377
378         * final.c (frame_pointer_needed): Removed.
379         * flags.h (frame_pointer_needed): Likewise.
380
381         * function.h (rtl_data): Add frame_pointer_needed.
382         (frame_pointer_needed): New.
383
384 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
385
386         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
387
388 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
389
390         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
391         SRC is a REG.
392
393 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
394
395         * c-common.c (strip_array_types): Move function to..
396         * tree.c: ..here.
397         (get_inner_array_type): Delete.
398         * c-common.h (strip_array_types): Move declaration to..
399         * tree.h: ..here.
400         (get_inner_array_type): Delete.
401         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
402         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
403         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
404         * config/pa/pa.c (emit_move_sequence): Likewise.
405
406 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
407
408         * config/i386/i386.md (*sse_prologue_save_insn): Set length
409         attribute to 34.
410
411 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
412
413         * function.c: Include target hook for nonlocal_goto frame value.
414
415 2008-05-24  Richard Guenther  <rguenther@suse.de>
416
417         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
418         a scalar variable can be only accessed through a pointer
419         or a union.
420
421 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
422
423         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
424         * doc/extend.texi: Likewise.
425
426 2008-05-23  DJ Delorie  <dj@redhat.com>
427
428         * config/m32c/jump.md (untyped_call): Add.
429
430         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
431         for A24 to PSImode.
432         (m32c_address_cost): Detail costs for indirect offsets.
433
434 2008-05-23  Rafael Espindola  <espindola@google.com>
435
436         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
437         if a node is a SUBREG.
438         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
439         is a SUBREG.
440
441 2008-05-23  Paul Brook  <paul@codesourcery.com>
442             Carlos O'Donell  <carlos@codesourcery.com>
443
444         * doc/extend.texi: Clarify use of __attribute__((naked)).
445         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
446         * target.h (gcc_target): Add allocate_stack_slots_for_args.
447         * function.c (use_register_for_decl): Use
448         targetm.calls.allocate_stack_slots_for_args.
449         * target-def.h (TARGET_CALLS): Add 
450         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
451         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
452         New function.
453         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
454
455 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
456
457         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
458
459 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
460
461         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
462         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
463         is only rounded once.
464
465 2008-05-23  Richard Guenther  <rguenther@suse.de>
466
467         * tree-ssa-operands.c (mark_difference_for_renaming): Use
468         bitmap_xor.
469
470 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
471             Jakub Jelinek  <jakub@redhat.com>
472
473         PR target/36079
474         * configure.ac: Handle --enable-cld.
475         * configure: Regenerated.
476         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
477         * config/i386/i386.h (struct machine_function): Add needs_cld field.
478         (ix86_current_function_needs_cld): New define.
479         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
480         (cld): New isns pattern.
481         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
482         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
483         * config/i386/i386.opt (mcld): New option.
484         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
485         TARGET_CLD and ix86_current_function_needs_cld.
486         (override_options): Use -mcld by default for 32-bit code if
487         USE_IX86_CLD.
488
489         * doc/install.texi (Options specification): Document --enable-cld.
490         * doc/invoke.texi (Machine Dependent Options)
491         [i386 and x86-64 Options]: Add -mcld option.
492         (Intel 386 and AMD x86-64 Options): Document -mcld option.
493
494 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
495         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
496         (return_in_memory_64): Likewise.
497         (return_in_memory_ms_64): Likewise.
498
499 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
500
501         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
502         * builtins.c (fold_builtin_fpclassify): New.
503         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
504         * builtins.def (BUILT_IN_FPCLASSIFY): New.
505         * c-common.c (handle_type_generic_attribute): Adjust to accept
506         fixed arguments before an elipsis.
507         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
508         * doc/extend.texi: Document __builtin_fpclassify.
509
510 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
511
512         * omp-low.c (gate_expand_omp_ssa): Remove.
513         (pass_expand_omp_ssa): Remove.
514         (gate_expand_omp): Do not check for flag_openmp_ssa.
515         * common.opt (-fopenmp-ssa): Remove.
516         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
517
518 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
519
520         * config/sh/sh.opt (mfixed-range): New option.
521         * config/sh/sh-protos.h (sh_fix_range): Declare.
522         * config/sh/sh.c (sh_fix_range): New function.
523         * config/sh/sh.h (sh_fixed_range_str): Declare.
524         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
525         is not empty.
526         * doc/invoke.texi (SH Options): Document -mfixed-range.
527
528 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
529
530         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
531         it before the redeclaration.
532
533 2008-05-22  Anatoly Sokolov <aesok@post.ru>
534
535         * config/avr/avr.c (get_sequence_length): Add new function.
536         (expand_prologue, expand_epilogue): Remove duplicate code.
537
538 2008-05-22  Rafael Espindola  <espindola@google.com>
539
540         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
541         sharing.
542
543 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
544
545         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
546         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
547
548         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
549         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
550         (vect_update_misalignment_for_peel): Likewise.
551         (vector_alignment_reachable_p): Likewise.
552         * tree-vect-transform.c (vectorizable_load): Likewise.
553         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
554         (get_vectype_for_scalar_type): Pass mode of scalar_type
555         to UNITS_PER_SIMD_WORD.
556
557         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
558         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
559         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
560         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
561         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
562
563 2008-05-22  Ira Rosen  <irar@il.ibm.com>
564
565         PR tree-optimization/36293
566         * tree-vect-transform.c (vect_transform_strided_load): Don't check
567         if the first load must be skipped because of a gap.
568
569 2008-05-22  Richard Guenther  <rguenther@suse.de>
570
571         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
572         more cases of offset disambiguation that is possible if
573         strict-aliasing rules apply.
574         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
575         for basic offset and type-based disambiguation.
576
577 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
578
579         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
580         ix86_expand_vector_set on V16QImode for SSE4.1.
581
582 2008-05-21  Tom Tromey  <tromey@redhat.com>
583
584         * c.opt (Wimport): Mark as undocumented.
585         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
586         -Wno-import.
587         (Warning Options): Likewise.
588         * doc/cppopts.texi: Don't mention -Wimport.
589
590 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
591
592         PR tree-optimization/36287
593         PR tree-optimization/36286
594         * lambda-code.c (build_access_matrix): Do not use the loop->num
595         for computing the number of induction variables: use the loop depth
596         instead.
597
598 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
599
600         PR/36280
601         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
602         option -f(no-)leading-underscore.
603
604 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
605
606         * config/i386/i386.c (ix86_expand_vector_init_general): Use
607         GET_MODE_NUNITS (mode).
608
609 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
610
611         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
612         (-mmulhw): Add 464 to description.
613         (-mdlmzb): Likewise.
614         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
615         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
616         464fp entries.
617         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
618         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
619         * config/rs6000/rs6000.md: Update comments for 464.
620
621 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
622
623         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
624
625 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
626
627         * config/i386/sse.md (vec_extractv4sf): Removed.
628         (vec_extractv2df): Likewise.
629         (vec_extractv2di): Likewise.
630         (vec_extractv4si): Likewise.
631         (vec_extractv8hi): Likewise.
632         (vec_extractv16qi): Likewise.
633         (vec_extract<mode>): New.
634
635 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
636
637         * config/i386/sse.md (vec_setv4sf): Removed.
638         (vec_setv2df): Likewise.
639         (vec_setv2di): Likewise.
640         (vec_setv4si): Likewise.
641         (vec_setv8hi): Likewise.
642         (vec_setv16qi): Likewise.
643         (vec_set<mode>): New.
644
645 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
646
647         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
648         goto for vec_concat and vec_interleave.
649
650 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
651
652         * config/i386/sse.md (vec_initv4sf): Removed.
653         (vec_initv2df): Likewise.
654         (vec_initv2di): Likewise.
655         (vec_initv4si): Likewise.
656         (vec_initv8hi): Likewise.
657         (vec_initv16qi): Likewise.
658         (vec_init<mode>): New.
659
660 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
661
662         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
663
664 2008-05-21  Tom Tromey  <tromey@redhat.com>
665
666         * ggc-zone.c (lookup_page_table_if_allocated): New function.
667         (zone_find_object_offset): Likewise.
668         (gt_ggc_m_S): Likewise.
669         (highest_bit): Likewise.
670         * ggc-page.c (gt_ggc_m_S): New function.
671         * stringpool.c (string_stack): Remove.
672         (init_stringpool): Update.
673         (ggc_alloc_string): Use ggc_alloc.
674         (maybe_delete_ident): New function.
675         (ggc_purge_stringpool): Likewise.
676         (gt_ggc_m_S): Remove.
677         * ggc-common.c (ggc_protect_identifiers): New global.
678         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
679         ggc_protect_identifiers.
680         * ggc.h (ggc_protect_identifiers): Declare.
681         (gt_ggc_m_S): Update.
682         (ggc_purge_stringpool): Declare.
683         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
684         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
685         special case.
686         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
687
688 2008-05-21  David S. Miller  <davem@davemloft.net>
689
690         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
691         tmake_file.
692
693 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
694
695         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
696         once finished.
697
698 2008-05-20  David Daney  <ddaney@avtrex.com>
699
700         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
701         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
702         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
703         UNSPEC_UPDATE_GOT_VERSION): Renumber.
704         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
705         (atomic_hiqi_op): New define_code_iterator.
706         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
707         mips_expand_compare_and_swap_12.
708         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
709         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
710         (sync_<optab><mode>, sync_old_<optab><mode>,
711         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
712         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
713         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
714         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
715         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
716         (test_and_set_12): New insn.
717         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
718         sync_new_<optab><mode>, sync_old_nand<mode>,
719         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
720         clobber to operand 0 for SI and DI mode insns.
721         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
722         mips_gen_fn_4): New typedefs.
723         (mips_gen_fn_ptrs): Define new union type.
724         (mips_expand_compare_and_swap_12): Remove declaration.
725         (mips_expand_atomic_qihi): Declare function.
726         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
727         (mips_expand_atomic_qihi): ... this.  Use new generator function
728         parameter.
729         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
730         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
731         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
732         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
733         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
734         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
735         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
736         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
737         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
738         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
739         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
740         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
741
742 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
743
744         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
745         the missing break.
746
747 2008-05-20  Anatoly Sokolov <aesok@post.ru>
748
749         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
750         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
751         (avr_attribute_table): Add 'OS_main' function attribute.
752         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
753         functions with 'OS_main' attribute.
754
755 2008-05-20  Richard Guenther  <rguenther@suse.de>
756
757         PR tree-optimization/35204
758         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
759         helper, split out from ...
760         (DFS): ... here.  Make the DFS walk non-recursive.
761
762 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
763             Jan Sjodin  <jan.sjodin@amd.com>
764
765         PR tree-optimization/36181
766         * tree-parloops.c (loop_has_vector_phi_nodes): New.
767         (parallelize_loops): Don't parallelize when the loop has vector
768         phi nodes.
769
770 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
771             Sebastian Pop  <sebastian.pop@amd.com>
772
773         * tree-loop-linear.c (gather_interchange_stats): Look in the access
774         matrix, and never look at the tree representation of the memory
775         accesses.
776         (linear_transform_loops): Computes parameters and access matrices.
777         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
778         when fails.
779         (access_matrix_get_index_for_parameter): New.
780         * tree-data-ref.h (struct access_matrix): New.
781         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
782         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
783         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
784         am_vector_index_for_loop): New.
785         (struct data_reference): Add field access_matrix.
786         (DR_ACCESS_MATRIX): New.
787         (compute_data_dependences_for_loop): Update declaration.
788         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
789         * lambda.h (lambda_vector_vec_p): Declared.
790         * lambda-code.c: Depend on pointer-set.h.
791         (lambda_collect_parameters_from_af, lambda_collect_parameters,
792         av_for_af_base, av_for_af, build_access_matrix,
793         lambda_compute_access_matrices): New.
794         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
795
796 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
797
798         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
799         $SOURCEDIR/include.
800
801 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
802             Sebastian Pop  <sebastian.pop@amd.com>
803
804         PR tree-optimization/36206
805         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
806         FOLD_CONVERSIONS.
807         (instantiate_scev_1): Rename flags to fold_conversions.
808         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
809         outeside instantiation_loop.
810         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
811         (evolution_function_is_affine_or_constant_p): Removed.
812         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
813         instantiate_scev.
814         (analyze_siv_subscript): Pass in the loop nest number.
815         Call evolution_function_is_affine_in_loop instead of 
816         evolution_function_is_affine_p.
817         (analyze_overlapping_iterations): Pass in the loop nest number.
818
819 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
820             Sebastian Pop  <sebastian.pop@amd.com>
821
822         PR tree-optimization/36206
823         * tree-chrec.h (chrec_fold_op): New.
824         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
825         and other trees.
826
827 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
828
829         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
830         (DIRS_EQ): New.
831         (remove_duplicates): Do not set inode on non-inode systems.
832         Use DIRS_EQ.
833
834 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
835
836         * config.gcc (tm_file): Update comments about relative pathnames.
837
838 2008-05-20  Richard Guenther  <rguenther@suse.de>
839
840         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
841         * tree-ssa-sccvn.c (process_scc): Likewise.
842         * tree-ssa-sink.c (execute_sink_code): Likewise.
843         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
844         * tree-vrp.c (process_assert_insertions): Likewise.
845         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
846         (perform_tree_ssa_dce): Likewise.
847         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
848         (dump_dominator_optimization_stats): Likewise.
849         * tree-vectorizer.c (vectorize_loops): Likewise.
850
851 2008-05-20  Richard Guenther  <rguenther@suse.de>
852
853         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
854
855 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
856
857         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
858         (ix86_i386elf_return_in_memory): Likewise.
859         (ix86_i386interix_return_in_memory): Likewise.
860         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
861         (SUBTARGET_RETURN_IN_MEMORY): New.
862         * config/i386/i386elf.h: Likewise.
863         * config/i386/ptx4-i.h: Likewise.
864         * config/i386/sol2-10.h: Likewise.
865         * config/i386/sysv4.h: Likewise.
866         * config/i386/vx-common.h: Likewise.
867         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
868         * config/i386/i386.c (ix86_return_in_memory): Made static and
869         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
870         (ix86_i386elf_return_in_memory): Removed.
871         (ix86_i386interix_return_in_memory): Removed.
872         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
873         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
874
875 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
876
877         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
878
879 2008-05-19  Xinliang David Li  <davidxl@google.com>
880
881         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
882         * opts.c: Ditto.
883         * common.opt: Ditto.
884         * doc/invoke.texi: Ditto.
885
886 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
887
888         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
889         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
890
891 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
892
893         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
894         sizes of operand array from 8/4 to 4/2.
895         (ix86_expand_vector_init_general): Change size of operand array
896         from 32 to 16.  Remove op0, op1 and half_mode.
897
898 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
899
900         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
901         (ix86_expand_vector_init_interleave): Likewise.
902         (ix86_expand_vector_init_general): Use them.  Assert word_mode
903         == SImode when n_words == 4.
904
905 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
906
907         * config/i386/i386.c (ix86_secondary_reload): New static function.
908         (TARGET_SECONDARY_RELOAD): New define.
909         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
910         * config/i386/i386.md (reload_outqi): Remove.
911
912 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
913
914         PR middle-end/35509
915         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
916         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
917         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
918         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
919         (fold_builtin_1): Likewise.
920         * builtins.def (BUILT_IN_ISINF_SIGN): New.
921         c-common.c (check_builtin_function_arguments): Handle
922         BUILT_IN_ISINF_SIGN.
923         * doc/extend.texi: Document __builtin_isinf_sign.
924         * fold-const.c (operand_equal_p): Handle COND_EXPR.
925
926 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
927
928         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
929         EH cleanup at the end of the pass, search for those that have been
930         turned into forwarder blocks and do the cleanup on their successor.
931
932 2008-05-18  Richard Guenther  <rguenther@suse.de>
933
934         * tree-cfg.c (verify_gimple_expr): Allow conversions from
935         pointers to sizetype and vice versa.
936
937 2008-05-18 Xinliang David Li   <davidxl@google.com>
938
939         * gcc/tree-ssa-dce.c: Coding style fix.
940         (check_pow): Documentation comment. 
941         (check_log): Documenation comment. Coding style fix.
942         (is_unnecessary_except_errno_call): Ditto.
943         (gen_conditions_for_pow): Ditto.
944         (gen_conditions_for_log): Ditto.
945         (gen_shrink_wrap_conditions): Ditto.
946         (shrink_wrap_one_built_in_calls): Ditto.
947         * gcc/doc/invoke.texi: Better documentation string.
948         * ChangeLog: Fix wrong change log entries from 
949         May 17 checkin on function call DCE.
950
951 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
952
953         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
954
955 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
956
957         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
958         * df-problems.c (simulation routines): Fixed block comment to
959         properly say how to add forwards scanning functions.
960         
961 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
962
963         * tree-inline.c (setup_one_parameter): Remove dead code.
964
965 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
966
967         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
968         a BIT_AND_EXPR only for an INTEGER_TYPE.
969
970 2008-05-17 Xinliang David Li   <davidxl@google.com>
971
972         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
973         (check_pow, check_log, is_unnecessary_except_errno_call): New 
974         functions to check for eliminating math functions that are pure 
975         except for setting errno.
976         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
977         general condition expressions for shrink-wrapping pow/log calls.
978         (gen_shrink_wrap_conditions): Ditto.
979         (shrink_wrap_one_built_in_call): Ditto.
980         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
981         (mark_operand_necessary): If debugging, output if OP is necessary.
982         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
983         unnecessary.
984         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
985         opt level >= 2.
986         * gcc/common.opt: New user flag -ftree-builtin-dce.
987         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
988
989 2008-05-16  David S. Miller  <davem@davemloft.net>
990
991         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
992         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
993
994 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
995
996         PR target/36246
997         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
998
999 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1000
1001         * ifcvt.c (dead_or_predicable): Rename
1002         df_simulate_one_insn_backwards to df_simulate_one_insn.
1003         * recog.c (peephole2_optimize): Ditto.
1004         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1005         Ditto.
1006         * df.h: Rename df_simulate_one_insn_backwards to
1007         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1008         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1009         scanning of defs and uses.
1010         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1011         (df_simulate_one_insn_forwards): Removed.
1012
1013 2008-05-16  Doug Kwan  <dougkwan@google.com>
1014
1015         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1016         QNaN & SNaN.
1017         (real_from_string): Handle NaNs and Inf as approriate.
1018
1019 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1020
1021         * doc/gty.texi (Source Files Containing Type Information): Note
1022         that headers should appear first in the gtfiles list.
1023
1024 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1025
1026         * tree.def (COND_EXEC): Properly documented this code.
1027
1028 2008-05-16  Diego Novillo  <dnovillo@google.com>
1029
1030         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1031         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1032         the new field.
1033
1034 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1035
1036         * tree-ssa-dse (max_stmt_uid): Removed.
1037         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1038         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1039         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1040         * function.h (cfun.last_stmt_uid): New field.
1041         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1042         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1043         New functions.
1044         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1045         (create_stmt_ann): Initialize the ann->uid field.
1046         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1047         with new calls.
1048         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1049
1050 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1051
1052         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1053         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1054         (init_empty_tree_cfg): Call it.
1055
1056 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1057
1058         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1059         Update all users.
1060
1061 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1062
1063         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1064         * tree-dump.c (dump_options): New verbose option.
1065         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1066         Add verbose dump.
1067         * tree-pass.h (TDF_VERBOSE): New dump flag.
1068         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1069         (tree-flow.h): Added include.
1070         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1071
1072 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1073
1074         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1075
1076         From Jie Zhang  <jie.zhang@analog.com>
1077         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1078         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1079         mcpu=bf561-none and mcpu=bf561-0.2.
1080         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1081         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1082         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1083         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1084         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1085         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1086         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1087         option.
1088         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1089         (cputype_selected): Remove.
1090         (bfin_handle_option): Don't use cputype_selected.
1091         (override_options): When no mcpu option, enable all workarounds.
1092         Don't use bfin_workarounds.
1093         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1094         processor type.
1095         (DEFAULT_CPU_TYPE): Don't define.
1096
1097 2008-05-16  Richard Guenther  <rguenther@suse.de>
1098
1099         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1100         on deletion of the last stmt.
1101
1102 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1103
1104         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1105         V8HImode for SSE2 and V16QImode for SSE4.1.
1106
1107 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1108
1109         * cgraph.h (compute_inline_parameters): Made public.
1110         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1111         variable_generate_summary, function_write_summary,
1112         variable_write_summary, variable_read_summary.  Added generate_summary,
1113         write_summary, read_summary.
1114         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1115         pass_ipa_inline.function_generate_summary, to
1116         compute_inline_parameters. 
1117         * ipa-inline.c (compute_inline_parameters): Made public and added
1118         node parameter.
1119         (compute_inline_parameters_for_current): New function.
1120         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1121         (inline_generate_summary): Removed parameter and made to loop over
1122         all cgraph nodes.
1123         (pass_ipa_inline): Updated for new IPA_PASS structure.
1124         * passes.c (execute_ipa_summary_passes): Now is called once per
1125         pass rather than once per node*pass.
1126         
1127 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1128
1129         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1130         avr_have_mul_p, avr_asm_only_p): Remove variables.
1131         (avr_override_options): Remove initialization of removed variables.
1132         (avr_file_start):  Convert removed variables to fields of 
1133         'struct base_arch_s *avr_current_arch'. 
1134         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1135         (AVR_HAVE_MUL): (Ditto.).
1136         (AVR_HAVE_MOVW): (Ditto.).
1137         (AVR_HAVE_LPMX): (Ditto.). 
1138         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1139         avr_asm_only_p): Remove declaration.
1140
1141 2008-05-15  Diego Novillo  <dnovillo@google.com>
1142
1143         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1144         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1145
1146 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1147
1148         PR middle-end/36194
1149         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1150         Don't call record_truncated_value from here.
1151         (record_truncated_value): Turn it into a for_each_rtx callback.
1152         (record_truncated_values): New function.
1153         (combine_instructions): Call note_uses with record_truncated_values.
1154         Change name of check_conversion to check_promoted_subreg. 
1155
1156 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1157
1158         * doc/sourcebuild.texi: Document support for torture tests.
1159
1160 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1161
1162         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1163         to alternative 4 of operand 2.
1164
1165 2008-05-15  Richard Guenther  <rguenther@suse.de>
1166
1167         * tree-pass.h (current_pass): Declare.
1168         (get_pass_for_id): Likewise.
1169         * passes.c (passes_by_id, passes_by_id_size): New globals.
1170         (set_pass_for_id): New function.
1171         (get_pass_for_id): Likewise.
1172         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1173         (execute_function_todo): Flush per function statistics.
1174         * toplev.c (compile_file): Init statistics.
1175         (general_init): Do early statistics initialization.
1176         (finalize): Finish statistics.
1177         * statistics.h (statistics_early_init): Declare.
1178         (statistics_init): Likewise.
1179         (statistics_fini): Likewise.
1180         (statistics_fini_pass): Likewise.
1181         (statistics_counter_event): Likewise.
1182         (statistics_histogram_event): Likewise.
1183         * statistics.c: New file.
1184         * Makefile.in (OBJS-common): Add statistics.o.
1185         (statistics.o): Add dependencies.
1186         * doc/invoke.texi (-fdump-statistics): Document.
1187
1188         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1189         (insert): Likewise.
1190         (execute_pre): Use statistics_counter_event.
1191         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1192         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1193
1194 2008-05-15  Diego Novillo  <dnovillo@google.com>
1195
1196         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1197
1198         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1199         * tree-ssa-alias.c (new_type_alias): Remove references to
1200         sub-variables from comment.
1201         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1202
1203 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1204
1205         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1206         attribute to 1 only for insertps alternative.
1207
1208 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1209
1210         * config/bfin/bfin.md (loadbytes): New pattern.
1211         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1212         (bfin_init_builtins): Initialize it.
1213         (bdesc_1arg): Add it.
1214
1215 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1216
1217         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1218         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1219         * testsuite/lib/target-supports.exp: Add
1220         check_effective_target_fortran_integer_16.
1221
1222 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1223
1224         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1225         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1226         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1227         (TARGET_RETURN_IN_MEMORY): Define.
1228
1229 2008-05-15  Richard Guenther  <rguenther@suse.de>
1230
1231         PR middle-end/36244
1232         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1233         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1234         represent unmodifiable vars.
1235
1236 2008-05-15  Richard Guenther  <rguenther@suse.de>
1237
1238         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1239         INDIRECT_REF and TARGET_MEM_REF.
1240         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1241         TARGET_MEM_REF.
1242
1243 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1244             H.J. Lu  <hongjiu.lu@intel.com>
1245
1246         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1247         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1248         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1249         insn alternatives.  Add missing alternatives.
1250         (*vec_concatv2di_rex64_sse4_1): Likewise.
1251         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1252         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1253         Require TARGET_SSE.
1254
1255 2008-05-15  Richard Guenther  <rguenther@suse.de>
1256
1257         PR tree-optimization/36009
1258         PR tree-optimization/36204
1259         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1260         (determine_invariantness_stmt): Record the loop a store is
1261         always executed in.
1262         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1263         dependency.
1264
1265 2008-05-15  Richard Guenther  <rguenther@suse.de>
1266
1267         PR tree-optimization/34330
1268         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1269         through the pointer will alias the SMT.
1270
1271 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1272
1273         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1274
1275 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1276
1277         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1278
1279 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1280             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1281
1282         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1283         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1284         (vashl_optab): New optab for vector/vector shifts.
1285         (vashr_optab): Ditto.
1286         (vlshr_optab): Ditto.
1287         (vrotl_optab): Ditto.
1288         (vrotr_optab): Ditto.
1289         (optab_subtype): New enum for optab_for_tree_code call.
1290         (optab_for_tree_code): Add enum optab_subtype argument.
1291
1292         * optabs.c (optab_for_tree_code): Take an additional argument to
1293         distinguish between a vector shift by a scalar and vector shift by
1294         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1295         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1296         vector shift by a vector.
1297         (expand_widen_pattern_expr): Pass additional argument to
1298         optab_for_tree_code.
1299
1300         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1301         vrotl_optab, vrotr_optab.
1302
1303         * expr.c (expand_expr_real_1): Update calls to
1304         optab_for_tree_code to distinguish between vector shifted by a
1305         scalar and vector shifted by a vector.
1306         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1307         (supportable_narrowing_operation): Ditto.
1308         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1309         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1310         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1311         (vect_create_epilog_for_reduction): Ditto.
1312         (vectorizable_reduction): Ditto.
1313         (vectorizable_operation): Ditto.
1314         (vect_strided_store_supported): Ditto.
1315         (vect_strided_load_supported): Ditto.
1316         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1317         * expmed.c (expand_shift): Ditto.
1318
1319         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1320         scalar type.
1321         (ashr@var{m}3): Ditto.
1322         (vashl@var{m}3): Document new vector/vector shift standard name.
1323         (vashr@var{m}3): Ditto.
1324         (vlshr@var{m}3): Ditto.
1325         (vrotl@var{m}3): Ditto.
1326         (vrotr@var{m}3): Ditto.
1327
1328         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1329         (PPERM_INVERT): Ditto.
1330         (PPERM_REVERSE): Ditto.
1331         (PPERM_REV_INV): Ditto.
1332         (PPERM_ZERO): Ditto.
1333         (PPERM_ONES): Ditto.
1334         (PPERM_SIGN): Ditto.
1335         (PPERM_INV_SIGN): Ditto.
1336         (PPERM_SRC1): Ditto.
1337         (PPERM_SRC2): Ditto.
1338
1339         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1340         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1341         allows a memory operand to be the value being added, and split it
1342         to improve vectorization.
1343         (sse5_pmacsdqh_mem): Ditto.
1344         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1345         (sse5_mulv2div2di3_high): Ditto.
1346         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1347         (vec_pack_trunc_v4si): Ditto.
1348         (vec_pack_trunc_v2di): Ditto.
1349         (sse5_pcmov_<mode>): Remove code that tried to use use
1350         andps/andnps instead of pcmov.
1351         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1352         pmacsdqh instructions.
1353         (vec_widen_smult_lo_v4si): Ditto.
1354
1355         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1356         (PPERM_INVERT): Ditto.
1357         (PPERM_REVERSE): Ditto.
1358         (PPERM_REV_INV): Ditto.
1359         (PPERM_ZERO): Ditto.
1360         (PPERM_ONES): Ditto.
1361         (PPERM_SIGN): Ditto.
1362         (PPERM_INV_SIGN): Ditto.
1363         (PPERM_SRC1): Ditto.
1364         (PPERM_SRC2): Ditto.
1365         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1366         true/false tests.
1367         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1368         comparisons.
1369         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1370         says ignore whether the last reference is a memory operand.
1371
1372 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1373             Paolo Bonzini <bonzini at gnu dot org>
1374
1375         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1376         shift patterns.
1377
1378         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1379         (vlshr<mode>3): Rename from vlshr<mode>3.
1380         (vashr<mode>3): Rename from vashr<mode>3.
1381         (mulv4sf3): Change the names of vector shift patterns.
1382         (mulv4si3): Ditto.
1383         (negv4sf2): Ditt.
1384
1385         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1386         shift insns.
1387
1388         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1389         (SI_SHLHI): Ditto.
1390         (SI_SHL): Ditto.
1391         (SI_SHLI): Ditto.
1392         (SI_ROTH): Ditto.
1393         (SI_ROTHI): Ditto.
1394         (SI_ROT): Ditto.
1395         (SI_ROTI): Ditto.
1396         (SPU_RL_0): Ditto.
1397         (SPU_RL_1): Ditto.
1398         (SPU_RL_2): Ditto.
1399         (SPU_RL_3): Ditto.
1400         (SPU_RL_4): Ditto.
1401         (SPU_RL_5): Ditto.
1402         (SPU_RL_6): Ditto.
1403         (SPU_RL_7): Ditto.
1404         (SPU_SL_0): Ditto.
1405         (SPU_SL_1): Ditto.
1406         (SPU_SL_2): Ditto.
1407         (SPU_SL_3): Ditto.
1408         (SPU_SL_4): Ditto.
1409         (SPU_SL_5): Ditto.
1410         (SPU_SL_6): Ditto.
1411         (SPU_SL_7): Ditto.
1412
1413         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1414         (floatunssidf2_internal): Change vector/vector shift names.
1415         (floatunsdidf2_internal): Ditto.
1416         (mulv8hi3): Ditto.
1417         (ashrdi3): Ditto.
1418         (ashrti3): Ditto.
1419         (cgt_df): Ditto.
1420         (cgt_v2df): Ditto.
1421         (dftsv): Ditto.
1422         (vashl<mode>3): Rename from ashl<mode>3.
1423         (vashr<mode>3): Rename from ashr<mode>3.
1424         (vlshr<mode>3): Rename from lshr<mode>3.
1425         (vrotl<mode>3): Rename from rotl<mode>3.
1426
1427 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1428
1429         PR target/36224
1430         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1431         multiply gives the wrong value when doing widening multiplies.
1432         (vec_widen_smult_lo_v4si): Ditto.
1433
1434 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1435
1436         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1437         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1438         emit_library_call_value. 
1439         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1440         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1441         * calls.c (initialize_argument_information, precompute_arguments, 
1442         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1443         (precompute_arguments): Removed flags parameter.
1444         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1445         
1446 2008-05-14  Richard Guenther  <rguenther@suse.de>
1447
1448         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1449         Make sure to register the store if the use is a PHI_NODE.
1450
1451 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1452
1453         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1454         memory if the component is to be referenced in BLKmode according
1455         to get_inner_reference.
1456
1457 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1458
1459         * calls.c (emit_library_call_value_1): Restore code clearing
1460         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1461
1462 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1463             Nicolas Roche  <roche@adacore.com>
1464
1465         * configure.ac: Add support for a "gcc_subdir" variable in
1466         config-lang.in, to denote a subdirectory where the language/GCC
1467         integration files are to be found.
1468         * configure: Regenerate.
1469
1470 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1471
1472         PR tree-optimization/36098
1473         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1474         value for the first load in the group in case of a gap.
1475         (vect_build_slp_tree): Check that there are no gaps in loads.
1476
1477 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1478
1479         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1480         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1481         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1482         emit_insn and remove unneeded code to construct extra args.
1483         (emit_no_conflict_block): Removed.
1484         * optabls.h: (emit_no_conflict_block): Removed.
1485         * cse.c (cse_extended_basic_block): Remove search for
1486         REG_NO_CONFLICT note.
1487         * global.c: Removed incorrect comment added in revision 117.
1488         * expr.c (convert_move): Change call to emit_no_conflict_block to
1489         emit_insn.
1490         * recog.c: Change comments so that they do not mention
1491         REG_NO_CONFLICT.
1492         * local_alloc.c (combine_regs): Removed last parameter.
1493         (no_conflict_p): Removed.
1494         (block_alloc): Removed note, no_conflict_combined_regno and set
1495         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1496         (combine_regs): Removed already_dead and code to look for
1497         REG_NO_CONFLICT notes.
1498         * lower_subreg (remove_retval_note): Removed code to look for
1499         REG_NO_CONFLICT block.
1500         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1501         (resolve_clobber): Remove code to process libcalls that have
1502         REG_NO_CONFLICT notes.
1503         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1504         case.
1505         * combine.c (can_combine_p, distribute_notes):  Removed
1506         REG_NO_CONFLICT case.
1507         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1508         to emit_insns.
1509         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1510         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1511         Ditto.
1512         * reg-notes.def (NO_CONFLICT): Removed.
1513
1514 2008-05-14  David S. Miller  <davem@davemloft.net>
1515
1516         * config/sparc/sparc.c (sparc_profile_hook): If
1517         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1518         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1519         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1520
1521 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1522
1523         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1524
1525 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1526
1527         PR target/36222
1528         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1529         and op1 expansion before vector concat to have less live pseudos.
1530
1531 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1532
1533         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1534         ix86_expand_vector_set if supported.
1535
1536 2008-05-13  Diego Novillo  <dnovillo@google.com>
1537             Kenneth Zadeck  <zadeck@naturalbridge.com>
1538
1539         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1540
1541         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1542         phinodes_print_statistics, init_ssanames, fini_ssanames,
1543         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1544         release_ssa_name, release_defs, replace_ssa_name_symbol,
1545         ssanames_print_statistics): Move ...
1546         * tree-flow.h: ... here.
1547         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1548         Use FN instead of cfun.
1549         (make_ssa_name_fn): Rename from make_ssa_name.
1550         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1551         * tree-flow-inline.h (make_ssa_name): Move from
1552         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1553         * omp-low.c (expand_omp_parallel):
1554         * tree-flow-inline.h (redirect_edge_var_map_result):
1555         * tree-ssa.c (init_tree_ssa): Add argument FN.
1556         Use it instead of cfun.  Update all users.
1557
1558 2008-05-13  Tom Tromey  <tromey@redhat.com>
1559
1560         PR preprocessor/22168:
1561         * doc/cpp.texi (Top): Update menu.
1562         (Alternatives to Wrapper #ifndef): New node.
1563         (Other Directives): Document deprecation.
1564         (Obsolete Features): Remove menu.
1565         (Assertions): Merge node into Obsolete Features.
1566         (Obsolete once-only headers): Move earlier; rename to Alternatives
1567         to Wrapper #ifndef.
1568         * doc/cppopts.texi: Update.
1569         * c.opt (Wdeprecated): Enable for C and ObjC.
1570         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1571         (C++ Dialect Options): Move -Wno-deprecated from here to...
1572         (Warning Options): ... here.
1573
1574 2008-05-13  Richard Guenther  <rguenther@suse.de>
1575
1576         PR middle-end/36227
1577         * fold-const.c (fold_sign_changed_comparison): Do not allow
1578         changes in pointer-ness.
1579
1580 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1581
1582         PR target/24713
1583         * config/sh/sh.c (sh_expand_prologue): Don't clear
1584         RTX_FRAME_RELATED_P for push insns.
1585
1586 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1587
1588         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1589
1590 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1591
1592         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1593         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1594         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1595
1596 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1597
1598         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1599         (*vec_concatv4sf_sse): This.
1600         (*sse2_concatv2si): Renamed to ...
1601         (*vec_concatv2si_sse2): This.
1602         (*sse1_concatv2si): Renamed to ...
1603         (*vec_concatv2si_sse): This.
1604         (*vec_concatv2di_rex): Renamed to ...
1605         (*vec_concatv2di_rex64): This.
1606         (*vec_concatv2si_sse4_1): New.
1607         (*vec_concatv2di_rex64_sse4_1): Likewise.
1608
1609 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1610
1611         PR rtl-optimization/36111
1612         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1613         that was created for swappable operands.
1614
1615 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1616
1617         PR ada/36001
1618         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1619         * configure.ac: Add call to ACX_PROG_GNAT.
1620
1621 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1622
1623         * optc-gen.awk: Fix comment typo.
1624
1625 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1626
1627         * pretty-print.c (pp_integer_with_precision): Use
1628         HOST_LONG_LONG_FORMAT.
1629
1630 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1631
1632         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1633                 
1634 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1635
1636         * config/i386/i386.c (bdesc_ptest): Removed.
1637         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1638         (bdesc_args): Add __builtin_ia32_ptestz128,
1639         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1640         (ix86_init_mmx_sse_builtins): Updated.
1641         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1642         (ix86_expand_builtin): Updated.
1643
1644 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1645
1646         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1647         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1648
1649 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1650
1651         * value-prof.c (interesting_stringop_to_profile): Do not
1652         return early for BUILT_IN_MEMPCPY.
1653
1654 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1655
1656         * calls.c (expand_call): Don't use callgraph to increase
1657         preferred_stack_boundary.
1658
1659         * cgraph.h (cgraph_rtl_info): Use unsigned on
1660         preferred_incoming_stack_boundary.
1661
1662         * final.c (rest_of_clean_state): Use unsigned on
1663         preferred_stack_boundary.
1664
1665 2008-05-09  Tom Tromey  <tromey@redhat.com>
1666
1667         PR preprocessor/22231:
1668         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1669         proceeding.
1670
1671 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1672
1673         PR tree-optimization/36129
1674         * tree-ssa-ccp.c: Include value-prof.h.
1675         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1676         built-in function was folded to a constant.
1677         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1678
1679 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1680             Sebastian Pop  <sebastian.pop@amd.com>
1681
1682         * tree-scalar-evolution.c: Document instantiate_scev.
1683         (instantiate_parameters_1): Renamed instantiate_scev_1.
1684         Don't use the same loop for instantiation_loop and evolution_loop.
1685         (instantiate_scev): New.
1686         (instantiate_parameters): Moved...
1687         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1688         same loop twice.  Maintains the semantics for this function.
1689         * tree-scalar-evolution.h (instantiate_scev): Declare.
1690         (instantiate_parameters): ...here.  Now static inline.
1691         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1692         instead of resolve_mixers.
1693
1694 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1695
1696         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1697
1698 2008-05-09  Tomas Bily  <tbily@suse.cz>
1699
1700         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1701         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1702         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1703         * c-common.c (c_common_truthvalue_conversion): Likewise.
1704         * tree-object-size.c (compute_object_offset): Likewise.
1705         * tree-inline.c (estimate_num_insns_1): Likewise.
1706         * varasm.c (const_hash_1, compare_constant, copy_constant)
1707         (compute_reloc_for_constant, output_addressed_constants)
1708         (initializer_constant_valid_p): Likewise.
1709         * c-omp.c (check_omp_for_incr_expr): Likewise.
1710         * gimplify.c (gimplify_expr): Likewise.
1711         * c-typeck.c (c_finish_return): Likewise.
1712         * tree-vectorizer.c (supportable_widening_operation)
1713         (supportable_narrowing_operation): Likewise.
1714         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1715         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1716         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1717         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1718         (descr_info_loc): Likewise.
1719         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1720         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1721         (fold_unary): Likewise.
1722         * builtins.c (get_pointer_alignment): Likewise.
1723         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1724         (instantiate_parameters_1): Likewise.
1725         * tree.c (expr_align, stabilize_reference): Likewise.
1726         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1727         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1728         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1729         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1730         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1731         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1732         Likewise.
1733         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1734         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1735         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1736         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1737         (forward_propagate_comparison)
1738         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1739         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1740         * emit-rtl.c (component_ref_for_mem_expr)
1741         (set_mem_attributes_minus_bitpos): Likewise.
1742         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1743         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1744         Likewise.
1745         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1746         (build_function_call, pointer_diff, build_compound_expr)
1747         (c_finish_return): Likewise.
1748         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1749         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1750         Likewise.
1751         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1752         * expr.c (is_aligning_offset): Likewise.
1753         * tree-ssa-alias.c (is_escape_site): Likewise.
1754         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1755         (check_all_va_list_escapes): Likewise.
1756         * tree-ssa-loop-ivopts.c (determine_base_object)
1757         (determine_common_wider_type): Likewise.
1758         * dojump.c (do_jump): Likewise.
1759         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1760         * tree-gimple.c (is_gimple_cast): Likewise.
1761         * fold-const.c (decode_field_reference, )
1762         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1763         (fold_binary): Likewise.
1764         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1765         (already_warned_in_frontend_p): Likewise.
1766         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1767         * tree.c (really_constant_p, get_unwidened): Likewise.
1768         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1769         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1770         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1771         Likewise.
1772         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1773         CONVERT_EXPR_P.
1774         (CONVERT_EXPR_P): Define.
1775         (CASE_CONVERT): Define.
1776         
1777 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1778
1779         PR middle-end/36117
1780         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1781         (delete_unmarked_insns): When deleting a call, call
1782         delete_unreachable_blocks.
1783         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1784         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1785
1786 2008-05-08  Richard Guenther  <rguenther@suse.de>
1787
1788         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1789         (-ftree-salias): Likewise.
1790         (salias-max-implicit-fields): Remove param documentation.
1791         (salias-max-array-elements): Likewise.
1792         * tree-pass.h (pass_create_structure_vars): Remove.
1793         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1794         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1795         * tree-ssa-alias.c (create_structure_vars): Remove.
1796         (gate_structure_vars): Likewise.
1797         (pass_create_structure_vars): Likewise.
1798         (gate_build_alias): Likewise.
1799         (pass_build_alias): Adjust to run always and dump the function.
1800         * common.opt (ftree-salias): Hide.
1801         * passes.c (init_optimization_passes): Remove
1802         pass_create_structure_vars, adjust comment.
1803         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1804         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1805         * opts.c (decode_options): Do not set flag_tree_salias.
1806         (common_handle_option): Add OPT_ftree_salias to the backward
1807         compatibility section.
1808
1809 2008-05-08  Richard Guenther  <rguenther@suse.de>
1810
1811         * tree-flow-inline.h (var_can_have_subvars): Move ...
1812         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1813         * tree-flow.h (var_can_have_subvars): Remove.
1814         (push_fields_onto_fieldstack): Remove.
1815         (sort_fieldstack): Likewise.
1816         (struct fieldoff): Move ...
1817         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1818         alias_set and base_for_components fields.
1819         (sort_fieldstack): Make static.
1820         (push_fields_onto_fieldstack): Likewise.  Remove code that
1821         handles anything but RECORD_TYPEs.  Remove alias_set and
1822         base_for_components handling.
1823         (create_variable_info_for): Adjust.
1824
1825 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1826
1827         * common.opt (Wframe-larger-than=): Shorten the help message
1828         to one line.
1829         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1830
1831 2008-05-08  Rafael Espindola  <espindola@google.com>
1832
1833         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1834         trap.
1835         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1836         trap and that both operands are gimple values.
1837         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1838         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1839         is a fp operation.
1840
1841 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1842
1843         * read-rtl.c (join_c_conditions): Return the first string if the
1844         two strings are equal.
1845
1846 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1847
1848         * gensupport.h (pred_data): Add a "num_codes" field.
1849         (add_predicate_code): Declare.
1850         * gensupport.c (add_predicate_code): New function.
1851         (std_pred_table): Add an "allows_const_p" field.
1852         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1853         Remove the (incomplete) list of such codes from the codes field.
1854         (init_predicate_table): Use add_predicate_code.  Add all
1855         RTX_CONST_OBJs if allows_const_p is true.
1856         * genrecog.c (process_define_predicate): Use add_predicate_code.
1857
1858 2008-05-08  David Daney  <ddaney@avtrex.com>
1859             Richard Sandiford  <rsandifo@nildram.co.uk>
1860         
1861         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1862         special case of constant zero operands.
1863         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1864         old and new values.  Special case constant zero values.
1865         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1866         fails.
1867         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1868         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1869
1870 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1871
1872         PR target/36090
1873         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1874         similar RTX_CONST_OBJ before CONST_INT.
1875
1876 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1877
1878         * stmt.c (expand_stack_restore): Change sa mode if needed.
1879
1880 2008-05-08  Richard Guenther  <rguenther@suse.de>
1881
1882         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1883         return type to bool.
1884         (ix86_sol10_return_in_memory): Likewise.
1885         (ix86_i386elf_return_in_memory): Likewise.
1886         (ix86_i386interix_return_in_memory): Likewise.
1887         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1888         (ix86_sol10_return_in_memory): Likewise.
1889         (ix86_i386elf_return_in_memory): Likewise.
1890         (ix86_i386interix_return_in_memory): Likewise.
1891
1892 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1893
1894         PR bootstrap/36180
1895         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1896         fndecl argument.
1897         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1898         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1899         declared in front.
1900
1901 2008-05-08  Richard Guenther  <rguenther@suse.de>
1902
1903         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1904         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1905         (DR_SUBVARS): Remove.
1906         * tree-dfa.c (dump_subvars_for): Remove.
1907         (debug_subvars_for): Likewise.
1908         (dump_variable): Do not dump subvars.
1909         (remove_referenced_var): Do not remove subvars.
1910         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1911         (lookup_subvars_for_var): Remove.
1912         (get_subvars_for_var): Likewise.
1913         (get_subvars_at): Likewise.
1914         (get_first_overlapping_subvar): Likewise.
1915         (overlap_subvar): Likewise.
1916         * tree-flow.h (subvar_t): Remove.
1917         (struct var_ann_d): Remove subvars field.
1918         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1919         argument.  Remove special handling of SFTs.
1920         (compute_tag_properties): Likewise.
1921         (set_initial_properties): Likewise.
1922         (compute_call_clobbered): Likewise.
1923         (count_mem_refs): Likewise.
1924         (compute_memory_partitions): Likewise.
1925         (compute_flow_insensitive_aliasing): Likewise.
1926         (setup_pointers_and_addressables): Likewise.
1927         (new_type_alias): Likewise.
1928         (struct used_part): Remove.
1929         (used_portions): Likewise.
1930         (struct used_part_map): Likewise.
1931         (used_part_map_eq): Likewise.
1932         (used_part_map_hash): Likewise.
1933         (free_used_part_map): Likewise.
1934         (up_lookup): Likewise.
1935         (up_insert): Likewise.
1936         (get_or_create_used_part_for): Likewise.
1937         (create_sft): Likewise.
1938         (create_overlap_variables_for): Likewise.
1939         (find_used_portions): Likewise.
1940         (create_structure_vars): Likewise.
1941         * tree.def (STRUCT_FIELD_TAG): Remove.
1942         * tree.h (MTAG_P): Adjust.
1943         (struct tree_memory_tag): Remove base_for_components and
1944         unpartitionable flags.
1945         (struct tree_struct_field_tag): Remove.
1946         (SFT_PARENT_VAR): Likewise.
1947         (SFT_OFFSET): Likewise.
1948         (SFT_SIZE): Likewise.
1949         (SFT_NONADDRESSABLE_P): Likewise.
1950         (SFT_ALIAS_SET): Likewise.
1951         (SFT_UNPARTITIONABLE_P): Likewise.
1952         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1953         (union tree_node): Remove sft field.
1954         * alias.c (get_alias_set): Remove special handling of SFTs.
1955         * print-tree.c (print_node): Remove handling of SFTs.
1956         * tree-dump.c (dequeue_and_dump): Likewise.
1957         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1958         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1959         * tree-predcom.c (set_alias_info): Do not set subvars.
1960         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1961         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1962         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1963         (add_vars_for_offset): Remove.
1964         (add_virtual_operand): Remove special handling of SFTs.
1965         (add_call_clobber_ops): Likewise.
1966         (add_call_read_ops): Likewise.
1967         (get_asm_expr_operands): Likewise.
1968         (get_modify_stmt_operands): Likewise.
1969         (get_expr_operands): Likewise.
1970         (add_to_addressable_set): Likewise.
1971         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1972         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1973         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1974         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1975         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1976         (tree_node_structure): Likewise.
1977         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1978         handling of SFTs.
1979         (find_what_p_points_to): Likewise.
1980
1981 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1982
1983         * config/spu/spu.md: Fixed subti3 pattern.
1984
1985 2008-05-08  Richard Guenther  <rguenther@suse.de>
1986
1987         PR middle-end/36154
1988         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1989         sure to create a representative for trailing arrays for PTA.
1990
1991 2008-05-08  Richard Guenther  <rguenther@suse.de>
1992
1993         PR middle-end/36172
1994         * fold-const.c (operand_equal_p): Two objects which types
1995         differ in pointerness are not equal.
1996
1997 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1998
1999         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2000         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2001         (emit_library_call_value_1): Add new variable fndecl initialized by
2002         NULL_TREE. It should be the decl type of orgfun, but this information
2003         seems not to be available here, so it uses the default calling abi.
2004         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2005         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2006         by TARGET_RETURN_IN_MEMORY.
2007         * config/i386/i386-interix.h: Likewise.
2008         * config/i386/i386.h: Likewise.
2009         * config/i386/i386elf.h: Likewise.
2010         * config/i386/ptx4-i.h: Likewise.
2011         * config/i386/sol2-10.h: Likewise.
2012         * config/i386/sysv4.h: Likewise.
2013         * config/i386/vx-common.h: Likewise.
2014         * config/cris/cris.h: Removed #if 0 clause.
2015         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2016         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2017         argument.
2018         (ix86_sol10_return_in_memory): Likewise.
2019         (ix86_i386elf_return_in_memory): New.
2020         (ix86_i386interix_return_in_memory): New.
2021         * config/mt/mt-protos.h (mt_return_in_memory): New.
2022         * config/mt/mt.c: Likewise.
2023         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2024         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2025         * config/bfin/bfin.h: Likewise.
2026         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2027         argument.
2028         * config/bfin/bfin.c: Likewise.
2029         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2030         * config/alpha/unicosmk.h: Likewise.
2031         * config/i386/cygming.h: Likewise.
2032         * config/iq2000/iq2000.h: Likewise.
2033         * config/mips/mips.h: Likewise.
2034         * config/mn10300/mn10300.h: Likewise.
2035         * config/rs6000/rs6000.h: Likewise.
2036         * config/score/score.h: Likewise.
2037         * config/spu/spu.h: Likewise.
2038         * config/v850/v850.h: Likewise.
2039         * defaults.h: Likewise.
2040         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2041         * expr.c (emit_block_move): Adjust use of
2042         OUTGOING_REG_PARM_STACK_SPACE.
2043         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2044         OUTGOING_REG_PARM_STACK_SPACE.
2045         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2046
2047 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2048
2049         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2050         on OMP_RETURN for OMP_FOR.
2051
2052         PR debug/35896
2053         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2054         (fortran_common): New function.
2055         (gen_variable_die): Call fortran_common instead of common_check,
2056         adjust for it returning tree instead of rtx.  Formatting.
2057
2058 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2059
2060         PR rtl/7335
2061         PR rtl/33826
2062         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2063         * c-decl.c (merge_decls): Ditto.
2064         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2065         to RTL_CONST_OR_PURE_CALL_P.
2066         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2067         Initialized DECL_LOOPING_CONST_PURE.
2068         (process_call_operands): Set tree_side_effects properly.
2069         * tree.h (TREE_READONLY_DECL_P): Removed.
2070         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2071         (DECL_LOOPING_OR_CONST_P): New macro.
2072         (struct tree_function_decl): Added looping_const_or_pure_p.
2073         (ECF_*) Renumbered.
2074         (ECF_LOOPING_OR_CONST_P): New macro.
2075         * rtlanal.c (pure_const_p): Removed.
2076         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2077         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2078         to RTL_CONST_CALL_P.
2079         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2080         (check_decl, check_tree, check_call, scan_function): Initialize
2081         looping.
2082         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2083         (static_execute): Set looping true for recursive functions.
2084         Undo setting state to IPA_NEITHER for recursive functions.
2085         * cse.c (cse_insn): 
2086         * ifcvt.c (noce_can_store_speculate_p): Changed
2087         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2088         RTL_CONST_OR_PURE_CALL_P.
2089         * dse.c (scan_insn): Ditto.
2090         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2091         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2092         RTL_CONST_OR_PURE_CALL_P.
2093         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2094         pure_call_p to RTL_CONST_CALL_P.
2095         * gimplify.c (gimplify_call_expr): Clear side effects for
2096         non-looping pure and constant calls.
2097         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2098         (flags_from_decl_or_type): Set ecf flags from decl flags.
2099         (initialize_argument_information): Turn off
2100         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2101         Change const to pure if callee_copies is true rather than just
2102         turning off const.
2103         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2104         way of marking pure calls.
2105         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2106         Remove hack that was supposed to fix pr7335 and remove old
2107         way of marking pure calls.
2108         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2109         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2110         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2111         RTL_CONST_OR_PURE_CALL_P.
2112         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2113         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2114         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2115         * sched-deps.c (schedule_analyze): Ditto.
2116         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2117         return_val field of calls to represent pure and const function info.
2118         (CONST_OR_PURE_CALL_P): Deleted macro.
2119         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2120         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2121         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2122         TREE_READONLY.
2123         * tree-optimize.c (execute_fixup_cfg): Added test for
2124         ECF_LOOPING_CONST_OR_PURE.
2125         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2126         DECL_PURE_P.
2127         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2128         effects for looping pure or const calls.
2129         (verify_gimple_expr): Added verification code. 
2130         * config/alpha/alpha.c (alpha_legitimize_address,
2131         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2132         RTL_CONST_CALL_P.
2133         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2134         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2135         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2136         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2137         RTL_CONST_OR_PURE_CALL_P.
2138         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2139         and const calls to be deleted.
2140
2141 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         PR target/35714
2144         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2145         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2146         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2147         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2148         to handle nonimmediate operands.
2149         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2150         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2151         to handle nonimmediate operands.
2152         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2153         (mmx_pmulhrwv4hi3): New expander.  Use
2154         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2155         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2156         (sse2_umulv1siv1di3): New expander.  Use
2157         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2158         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2159         (mmx_eq<mode>3): New expander.  Use
2160         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2161         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2162         (mmx_uavgv8qi3): New expander.  Use
2163         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2164         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2165         (mmx_uavgv4hi3): New expander.  Use
2166         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2167
2168         * config/i386/sse.md
2169         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2170         to handle nonimmediate operands.
2171         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2172         to handle nonimmediate operands.
2173         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2174         to handle nonimmediate operands.
2175         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2176         to handle nonimmediate operands.
2177         (sse2_unpckhpd_exp): New expander.  Use
2178         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2179         (sse2_unpcklpd_exp): New expander.  Use
2180         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2181         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2182         to handle nonimmediate operands.
2183         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2184         to handle nonimmediate operands.
2185         (*sse2_<plusminus_insn><mode>3): Rename from
2186         sse2_<plusminus_insn><mode>3 insn pattern.
2187         (sse2_<plusminus_insn><mode>3): New expander.  Use
2188         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2189         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2190         (sse2_umulv2siv2di3): New expander.  Use
2191         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2192         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2193         (sse4_1_mulv2siv2di3): New expander.  Use
2194         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2195         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2196         (sse2_pmaddwd): New expander.  Use
2197         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2198         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2199         (sse2_eq<mode>3): New expander.  Use
2200         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2201         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2202         (sse4_1_eqv2di3): New expander.  Use
2203         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2204         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2205         (sse2_uavgv16qi3): New expander.  Use
2206         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2207         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2208         (sse2_uavgv16qi3): New expander.  Use
2209         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2210         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2211         (sse2_uavgv8hi3): New expander.  Use
2212         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2213         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2214         (ssse3_pmulhrswv8hi3): New expander.  Use
2215         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2216         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2217         (ssse3_pmulhrswv4hi3): New expander.  Use
2218         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2219
2220         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2221         (<sse>_vmmul<mode>3): Ditto.
2222         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2223         (divv2df3): Ditto.
2224         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2225         (ssse3_pmaddubsw): Ditto.
2226
2227         * config/i386/i386.c (struct_builtin_description)
2228         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2229         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2230         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2231         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2232         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2233         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2234         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2235         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2236         (ix86_fixup_binary_operands): Assert that src1
2237         and src2 must have the same mode when swapped.
2238         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2239         and ix86_binary_operator_ok.  Do not force operands in registers
2240         when optimizing.
2241
2242 2008-05-07  Jan Hubicka  <jh@suse.cz>
2243
2244         * cgraph.c (dump_cgraph_node): Update.
2245         * cgraph.h (cgraph_local_info): Break out inline summary.
2246         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2247         hook.
2248         * ipa-inline (inline_summary): New accestor function.
2249         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2250         cgraph_decide_inlining, compute_inline_parameters): Update.
2251         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2252
2253 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2254
2255         Cleanup ColdFire scheduling support and add V4 pipeline model.
2256
2257         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2258         (define_attr cpu): Add cfv4 value.
2259         (define_attr type, define_attr type1): Merge into a single 'type'
2260         attribute.  Update all uses.
2261         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2262         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2263         Update all uses.
2264         (define_attr opx_mem, define_attr opy_mem): Remove.
2265         (define_attr op_mem): Clean up, update comment.
2266         (define_attr size): Use specific values instead of general int.
2267         (define_attr guess, define_attr split): Remove.  Update all uses.
2268         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2269         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2270         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2271         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2272         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2273         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2274         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2275         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2276         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2277         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2278         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2279         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2280         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2281         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2282         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2283         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2284         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2285         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2286         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2287         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2288         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2289         Update or set attributes.
2290         (stack_tie): New fake instruction.
2291
2292         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2293         (m68k_sched_attr_size): Update declaration.
2294         (m68k_sched_attr_type2): Remove.
2295         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2296         Declare new bypass predicates.
2297
2298         * config/m68k/m68k.c (m68k_sched_issue_rate,
2299         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2300         implementations.
2301         (TARGET_SCHED_ISSUE_RATE,
2302         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2303         (override_options): Handle scheduling for ColdFire V4 core.
2304         (m68k_expand_prologue): Emit stack_tie.
2305         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2306         'OP_TYPE_FPN'.  Update all uses.
2307         (sched_guess_p): Remove.
2308         (sched_address_type): Handle symbolic addresses.
2309         (sched_get_operand): New static function.
2310         (sched_operand_type): Merge into sched_attr_op_type.
2311         (sched_attr_op_type): Handle FP registers, handle quick constants,
2312         update.
2313         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2314         (m68k_sched_attr_size): Update.  Move logic to ...
2315         (sched_get_attr_size_int): New static function.
2316         (sched_get_opxy_mem_type): New static function.
2317         (m68k_sched_attr_op_mem): Update.
2318         (m68k_sched_attr_type2): Remove.
2319         (sched_cfv4_bypass_data): New static variable.
2320         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2321         (m68k_sched_issue_rate): Implement scheduler hook.
2322         (struct _sched_ib: enabled_p): New field.
2323         (m68k_sched_variable_issue): Update.  Handle V4.
2324         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2325         sched_dump_class_func_t, sched_dump_split_class,
2326         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2327         sched_dump_dfa_class, m68k_sched_dump): Remove.
2328         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2329         hook.
2330         (m68k_sched_init_global): Remove statisctics dumping, introduce
2331         sanity check that all instructions have pipeline reservations.  Handle
2332         ColdFire V4 core.
2333         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2334         Handle ColdFire V4 core.
2335         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2336         New static functions.
2337         (m68k_sched_address_bypass_p): New bypass predicate.
2338         (sched_get_indexed_address_scale): New static function.
2339         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2340
2341         * cf.md: Update comments.
2342         (define_attr type2): Remove.  Use 'type' attribute instead.
2343         Update all uses.
2344         (cf_ib): Rename to cfv123_ib.  Update all uses.
2345         (cf_oep): Rename to cfv123_oep.  Update all uses.
2346         (cf_chr): Rename to cfv123_chr.  Update all uses.
2347         (cf_mem): Rename to cfv123_mem.  Update all uses.
2348         (cf_mac): Move to more appropriate place.
2349         (cfv123_guess): New automaton and cpu_unit.
2350         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2351         Update uses of 'size' attribute.  Handle before reload scheduling.
2352         (cfv123_guess): New dummy reservation for unhandled instructions.
2353         (cfv4_*): Pipeline description of ColdFire V4 core.
2354         (ignore): New reservation to handle 'ignore' type.
2355
2356 2008-05-07  Ian Lance Taylor  <iant@google.com>
2357
2358         PR middle-end/36013
2359         * gimplify.c (find_single_pointer_decl_1): Don't look through
2360         indirections.
2361         (find_single_pointer_decl): Adjust comments.
2362
2363 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2364
2365         PR middle-end/36137
2366         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2367         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2368
2369         PR middle-end/36106
2370         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2371         integral type rather than floating point, then VIEW_CONVERT_EXPR
2372         to the floating point type.
2373
2374 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2375
2376         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2377         TFmode op0 to register.
2378
2379 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2380
2381         * c-decl.c (grokdeclarator): Comment typo.
2382
2383 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2384
2385         * tree-flow.h: Remove prototype for computed_goto_p.
2386         * tree-cfg.c (computed_goto_p): Make static.
2387
2388 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2389
2390         PR target/35657
2391         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2392         (contains_aligned_value_p): This.  Handle _Decimal128.
2393         (ix86_function_arg_boundary): Only align _Decimal128 to its
2394         natural boundary and handle it properly.
2395
2396 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2397
2398         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2399         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2400         (ipcp_method_set_orig_node): Removed.
2401         (ipcp_cval_get_cvalue_type): Removed.
2402         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2403         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2404         (ipcp_cval_set_cvalue_type): Removed.
2405         (ipcp_cval_get_cvalue): Removed.
2406         (ipcp_cval_set_cvalue): Removed.
2407         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2408         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2409         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2410         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2411         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2412         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2413         (ipcp_get_ith_lattice): Changed parameters.
2414         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2415         (ipcp_lattice_from_jfunc): Changed parameters.
2416         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2417         (ipcp_method_cval_print): Added temporary variable info.
2418         (ipcp_redirect): Removed already unused local variable caller.
2419         (ipcp_redirect): New temporary variable orig_callee_info
2420         (ipcp_redirect): Removed newly unused local variable callee.
2421         (ipcp_redirect): Removed (a bit confusing) local variable type.
2422         (ipcp_insert_stage): Added local variable info.
2423         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2424         renamed too
2425         (ipcp_formal_create): Removed.
2426         (ipcp_method_cval_set): Removed.
2427         (ipcp_propagate_stage): Renamed lattice variables.
2428         (ipcp_method_cval_set_cvalue_type): Removed.
2429         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2430         (ipcp_print_all_lattices): Changed printed strings to refer to 
2431         lattices rather than cvals.
2432         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2433         (ipcp_propagate_const): Changed formal parameters.
2434         (build_const_val): Changed formal parameters.
2435         (ipcp_insert_stage): Removed useless variable cvalue
2436         (build_const_val): Changed formal parameters.
2437         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2438         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2439         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2440         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2441         (ipcp_print_func_profile_counts): Changed string from "method" to 
2442         "function"
2443         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2444         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2445         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2446         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2447         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2448         (ipcp_lat_is_const): Changed parameters and made inline.
2449         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2450         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2451         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2452         the predicate condition directly
2453         (ipcp_propagate_stage): Added local variable args. Removed local
2454         variable callee.  (Both are mere code simplifications.)
2455         (ipcp_method_dont_insert_const): Renamed to
2456         ipcp_node_not_modifiable_p.
2457         (ipcp_node_not_modifiable_p): Made inline.
2458         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2459         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2460         (ipcp_print_all_lattices): Removed variable cvalue
2461         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2462         Updated comments.
2463
2464 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2465
2466         * tree-sra.c (try_instantiate_multiple_fields): Early return
2467         if field has POINTER_TYPE.
2468
2469 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2470
2471         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2472         by using 'q' specifier for instruction.
2473         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2474
2475 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2476
2477         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2478         Change mode of zero_extract from QImode to HImode.
2479         (sign bit tests peepholes): (Ditto.).
2480
2481 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2482
2483         * config/i386/mmx.md: Remove double backslashes from asm templates.
2484         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2485         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2486         to handle nonimmediate operands.
2487         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2488         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2489         to handle nonimmediate operands.
2490         (*mmx_<code>v2sf3_finite): New insn pattern.
2491         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2492         (mmx_<code>v2sf3): New expander.  Use
2493         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2494         (mmx_<plusminus_insn><mode>3): New expander.  Use
2495         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2496         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2497         (mmx_add<mode>3): Removed.
2498         (mmx_ssadd<mode>3): Ditto.
2499         (mmx_usadd<mode>3): Ditto.
2500         (mmx_sub<mode>3): Ditto.
2501         (mmx_sssub<mode>3): Ditto.
2502         (mmx_ussub<mode>3): Ditto.
2503         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2504         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2505         to handle nonimmediate operands.
2506         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2507         insn pattern.
2508         (mmx_smulv4hi3_highpart): New expander.  Use
2509         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2510         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2511         insn pattern.
2512         (mmx_umulv4hi3_highpart): New expander.  Use
2513         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2514         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2515         (mmx_<code>v4hi3): New expander.  Use
2516         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2517         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2518         (mmx_<code>v8qi3): New expander.  Use
2519         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2520         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2521         (mmx_<code><mode>3): New expander.  Use
2522         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2523
2524 2008-05-05  Jan Hubicka  <jh@suse.cz>
2525
2526         PR tree-optimization/36118
2527         * passes.c (pass_init_dump_file): Fix dump header.
2528
2529 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2530
2531         PR middle-end/36141
2532         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2533         VCE for function decls.
2534
2535 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2536
2537         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2538
2539 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2540
2541         * config/i386/i386.md (sat_plusminus): New.
2542         (plusminus_insn): Likewise.
2543         (plusminus_mnemonic): Likewise.
2544         (addsub): Removed.
2545         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2546         (*<addsub><mode>3_cc_overflow): Renamed to ...
2547         (*<plusminus_insn><mode>3_cc_overflow): This.
2548         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2549         (*<plusminus_insn>si3_zext_cc_overflow): This.
2550
2551         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2552         (<plusminus_insn><mode>3): This.
2553         (*<addsub><mode>3): Renamed to ...
2554         (*<plusminus_insn><mode>3): This.
2555         (<sse>_vm<addsub><mode>3): Renamed to ...
2556         (<sse>_vm<plusminus_insn><mode>3): This.
2557         (sse3_h<addsub>v4sf3): Renamed to ...
2558         (sse3_h<plusminus_insn>v4sf3): This.
2559         (sse3_h<addsub>v2df3): Renamed to ...
2560         (sse3_h<plusminus_insn>v2df3): This.
2561         (<plusminus_insn><mode>3): New.
2562         (*<plusminus_insn><mode>3): Likewise.
2563         (sse2_<plusminus_insn><mode>3): Likewise.
2564         (add<mode>): Removed.
2565         (*add<mode>3): Likewise.
2566         (sse2_ssadd<mode>3): Likewise.
2567         (sse2_usadd<mode>3): Likewise.
2568         (sub<mode>3): Likewise.
2569         (*sub<mode>3): Likewise.
2570         (sse2_sssub<mode>3): Likewise.
2571         (sse2_ussub<mode>3): Likewise.
2572
2573 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2574
2575         * gthr-single.h: Add in required interface elements as per gthr.h.
2576         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2577         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2578         Generalize UNUSED macro. 
2579         (__gthread_once): Add.
2580         (__gthread_key_create): Add.
2581         (__gthread_key_delete): Add.
2582         (__gthread_getspecific): Add.
2583         (__gthread_setspecific): Add.
2584         
2585 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2586
2587         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2588         the same size types for the indirect reference on the rhs, then
2589         create a VCE.
2590
2591 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2592
2593         * config/i386/i386.md
2594         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2595         one insn template instead of template series.
2596         (*xordi_1_rex64): Ditto.
2597         (*xordi_2_rex64): Ditto.
2598
2599 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2600
2601         PR tree-optimization/36119
2602         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2603         in case of SLP.
2604
2605 2008-06-04  Jan Hubicka  <jh@suse.cz>
2606
2607         tree-optimization/36100
2608         * tree-pass.h (pass_O0_always_inline): Declare.
2609         * ipa-inline.c (inline_transform): Remove dead code.
2610         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2611         pass_O0_always_inline): New.
2612         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2613
2614 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2615
2616         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2617         mnemonic in this_param move for TARGET_64BIT.
2618
2619 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2620
2621         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2622         (*strmovsi_rex_1): Ditto.
2623         (*strsetsi_1): Ditto.
2624         (*strsetsi_rex_1): Ditto.
2625
2626         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2627         adddicc expanders using SWI mode iterator.
2628
2629 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2630
2631         PR target/36121
2632         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2633         argument handling.
2634
2635 2008-05-04  David S. Miller  <davem@davemloft.net>
2636
2637         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2638         (sparc*-*-linux*): Use linux.h in tm_file.
2639         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2640         compiler defaulting to 32-bit.
2641         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2642         no longer needed.
2643         * config/sparc/linux.h: Remove definitions now obtained
2644         properly from linux.h
2645         * config/sparc/linux64.h: Likewise.
2646         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2647         don't want this setting for 32-bit builds in a biarch compiler.
2648         * doc/install.texi: Add sparc-linux to list of targets
2649         supporting --enable-targets=all.
2650
2651 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2652
2653         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2654
2655 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2656
2657         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2658         after V4SI_FTYPE_V8HI.
2659         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2660         case V4SI_FTYPE_V2DF.
2661
2662 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2663
2664         * doc/invoke.texi (max-flow-memory-locations): Removed.
2665         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2666         
2667 2008-05-03  Richard Guenther  <rguenther@suse.de>
2668
2669         PR middle-end/34973
2670         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2671
2672 2008-05-02  David S. Miller  <davem@davemloft.net>
2673
2674         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2675
2676 2008-05-02  Simon Baldwin <simonb@google.com>
2677
2678         PR bootstrap/36108
2679         * c-common.h (warn_array_subscript_range): Removed.
2680         * c-common.c (warn_array_subscript_range): Ditto.
2681         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2682         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2683
2684 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2685
2686         * config/i386/i386.c (ix86_special_builtin_type): New.
2687         (bdesc_special_args): Likewise.
2688         (ix86_expand_special_args_builtin): Likewise.
2689         (ix86_init_mmx_sse_builtins): Updated.
2690         (ix86_expand_builtin): Updated.
2691         (ix86_expand_store_builtin): Removed.
2692         (ix86_expand_unop_builtin): Likewise.
2693
2694         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2695         * config/i386/mmintrin.h (__v2sf): Here.
2696
2697         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2698         const __v2sf.
2699         (_mm_loadl_pi): Likewise.
2700         (_mm_storeh_pi): Replace __v2si with __v2sf.
2701         (_mm_storel_pi): Likewise.
2702
2703         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2704         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2705         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2706         __builtin_ia32_loadlpd.
2707
2708 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2709
2710         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2711         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2712         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2713         (ix86_init_mmx_sse_builtins): Updated.
2714         (ix86_expand_args_builtin): Likewise.
2715         (ix86_expand_builtin): Likewise.
2716         (ix86_expand_unop1_builtin): Renamed to ...
2717         (ix86_expand_unop_vec_merge_builtin): This.
2718
2719 2008-05-01  Jan Hubicka  <jh@suse.cz>
2720
2721         PR bootstrap/36100
2722         * ipa-inline.c (inline_generate_summary): Make static.
2723         (inline_transform): Do not call inlining at -O0; make static.
2724         * passes.c (execute_todo): Add sanity check.
2725         (execute_one_ipa_transform_pass): Execute proper flags.
2726
2727 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2728
2729         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2730         (DECL_NONADDRESSABLE_P): Likewise.
2731         * alias.c (record_component_aliases): Fix comment.
2732
2733 2008-05-01  Simon Baldwin <simonb@google.com>
2734
2735         * c-common.h (warn_array_subscript_range): New function.
2736         * c-common.c (warn_array_subscript_range): Ditto.
2737         * tree-vrp.c (check_array_ref): Corrected code to agree with
2738         comment, ignoring only arrays of size 0 or size 1.
2739         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2740
2741 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2742
2743         * config/i386/i386.c (ix86_builtin_type): Replace
2744         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2745         (bdesc_args): Updated.
2746         (ix86_init_mmx_sse_builtins): Likewise.
2747         (ix86_expand_args_builtin): Likewise.
2748
2749         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2750         with __v1di.
2751
2752         * doc/extend.texi: Correct __builtin_ia32_palignr.
2753
2754 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2755
2756         PR target/36095
2757         * config/i386/i386.c (bdesc_crc32): Removed.
2758         (ix86_expand_crc32): Likewise.
2759         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2760         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2761         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2762         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2763         UINT_FTYPE_UINT_UCHAR.
2764         (bdesc_args): Updated. Add crc32 builtins.
2765         (ix86_init_mmx_sse_builtins): Updated.
2766         (ix86_expand_args_builtin): Updated to support subreg.
2767
2768         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2769
2770 2008-05-01  Jan Hubicka  <jh@suse.cz>
2771
2772         * tree-pass.h (opt_pass): Add IPA_PASS.
2773         (varpool_node, cgraph_node): Forward declare.
2774         (ipa_opt_pass): Define.
2775         (pass_ipa_inline): Turn into ipa_opt_pass.
2776         (pass_apply_inline): Remove.
2777         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2778         (apply_inline): Turn into ....
2779         (inline_transform): ... this one.
2780         (inline_generate_summary): New function.
2781         (pass_apply_inline): Remove.
2782         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2783         vector.
2784         (struct function): Add ipa_transforms_to_apply.
2785         * passes.c (register_one_dump_file): Work on IPA_PASS.
2786         (init_optimization_passes): Remove pass_inline_parameters and
2787         pass_apply_inline.
2788         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2789         (execute_one_pass) ... here; apply transforms when possible.
2790         (add_ipa_transform_pass, execute_ipa_summary_asses,
2791         execute_one_ipa_transform_pass): New.
2792         (execute_ipa_pass_list): Update for IPA_PASS type.
2793
2794 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2795
2796         * config/i386/i386.c (ix86_builtin_type): Add
2797         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2798         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2799         (bdesc_args): Add SSE4a builtins.
2800         (ix86_init_mmx_sse_builtins): Updated.
2801         (ix86_expand_args_builtin): Likewise.
2802         (ix86_expand_builtin): Likewise.
2803
2804 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2805
2806         * config/i386/i386.c (ix86_builtin_type): Add
2807         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2808         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2809         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2810         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2811         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2812         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2813         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2814         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2815         and DI_FTYPE_DI_DI_INT.
2816         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2817         (ix86_init_mmx_sse_builtins): Updated.
2818         (ix86_expand_args_builtin): Likewise.
2819         (ix86_expand_builtin): Likewise.
2820         (ix86_expand_binop_imm_builtin): Removed.
2821
2822         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2823
2824 2008-04-30  Richard Guenther  <rguenther@suse.de>
2825
2826         PR tree-optimization/32921
2827         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2828
2829 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2830
2831         * config/arm/arm.c (arm_unwind_emit): Use
2832         crtl->all_throwers_are_sibcalls instead of
2833         cfun->all_throwers_are_sibcalls.
2834         (arm_output_fn_unwind): Likewise.
2835         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2836         instead of cfun->uses_pic_offset_table.
2837         (frv_expand_prologue): Likewise.
2838         (frv_frame_pointer_required): Likewise.
2839         (frv_expand_fdpic_call): Likewise.
2840         (frv_emit_movsi): Likewise.
2841         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2842         cfun->returns_pcc_struct instead of
2843         current_function_returns_pcc_struct.
2844         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2845         instead of cfun->calls_eh_return.
2846         (m32c_pushm_popm): Likewise.
2847         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2848         "extern" declaration.
2849
2850 2008-04-30  Richard Guenther  <rguenther@suse.de>
2851
2852         PR tree-optimization/21636
2853         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2854         constant address.
2855         (evaluate_stmt): Print the likely value.
2856         (ccp_visit_stmt): Avoid excessive vertical spacing.
2857
2858 2008-04-30  Rafael Espindola  <espindola@google.com>
2859
2860         * builtins.c (fold_call_expr): Return realret.
2861         * tree-ssa-threadedge.c
2862         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2863         __builtin_object_size.
2864
2865 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2866
2867         * gcc.c (wrapper_string): New variable.
2868         (insert_wrapper): New function.
2869         (execute): New option -wrapper.
2870         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2871
2872 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2873
2874         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2875         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2876         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2877         from...
2878         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2879         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2880         config/rs6000/e500crtres64gprctr.asm,
2881         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2882         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2883         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2884         config/rs6000/e500crtsav64gprctr.asm,
2885         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2886         config/rs6000/e500crtsavg64gprctr.asm: New files.
2887         * config/rs6000/t-ppccomm: Add build rules for new files.
2888         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2889         * config/rs6000/t-netbsd: Add build rules for new files.
2890         (LIB2FUNCS_STATIC_EXTRA): New variable.
2891         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2892         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2893         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2894
2895 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2896
2897         * config/i386/i386.c (ix86_builtin_type): Add
2898         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2899         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2900         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2901         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2902         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2903         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2904         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2905         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2906         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2907         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2908         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2909         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2910         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2911         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2912         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2913         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2914         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2915         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2916         V1DI_FTYPE_V2SI_V2SI.
2917         (bdesc_2arg): Moved to ...
2918         (bdesc_args): Here.
2919         (ix86_init_mmx_sse_builtins): Updated.
2920         (ix86_expand_args_builtin): Updated.  Take a pointer
2921         to const struct builtin_description.  Handle comparison
2922         builtin functions.
2923         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2924         (ix86_expand_builtin): Updated.
2925
2926         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2927         (ssse3_pmaddubsw128): This.
2928         (ssse3_pmaddubswv4hi3): Renamed to ...
2929         (ssse3_pmaddubsw): This.
2930
2931         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2932         (__builtin_ia32_packssdw128): Likewise.
2933         (__builtin_ia32_packuswb128): Likewise.
2934         (__builtin_ia32_pmaddubsw): Likewise.
2935         (__builtin_ia32_pmaddubsw128): Likewise.
2936
2937 2008-04-30  Richard Guenther  <rguenther@suse.de>
2938
2939         PR tree-optimization/14847
2940         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2941         (recognize_bits_test): Use it.
2942         (recognize_single_bit_test): Likewise.
2943
2944 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2945
2946         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2947         instead of setting number of formal parameters to zero.
2948         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2949         either.
2950         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2951         which are called with variable number of arguments.
2952         (ipcp_insert_stage): Explicitely skipping all nodes which are
2953         called with variable number of arguments.
2954         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2955         number of parameters.
2956
2957         * ipa-prop.h (struct ipa_node_params): Added flag
2958         called_with_var_arguments
2959         (ipa_set_param_count): Added.  Changed sole setter to use it.
2960         (ipa_get_param_count): Added.  All readers of param_count
2961         converted to use it instead.
2962         (ipa_set_called_with_variable_arg): Added.
2963         (ipa_is_called_with_var_arguments): Added.
2964         (ipa_get_ith_param): Added.  All readers of param_decls converted
2965         to use it instead.
2966         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2967         changed to use it. 
2968         (ipa_get_cs_argument_count): Added, all readers of argument_count
2969         changed to cal it.
2970         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2971         to use it.
2972         
2973         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2974         (struct ipcp_lattice): Renamed cval_type to type
2975         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2976
2977         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2978         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2979         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2980         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2981         (build_const_val): Changed the type of parameter cvalue to tree
2982         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2983         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2984         
2985         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2986         constant 
2987
2988         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2989         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2990         (ipa_add_method): Renamed to ipa_push_func_to_list
2991         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2992         (ipa_callsite_param_count): Removed.
2993         (ipa_callsite_param_count_set): Removed.
2994         (ipa_callsite_param): Removed.
2995         (ipa_callsite_callee): Removed.
2996         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2997         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2998         (ipa_method_formal_count): Removed.
2999         (ipa_method_formal_count_set): Removed.
3000         (ipa_method_get_tree): Removed.
3001         (ipa_method_tree_map_create): Removed.
3002         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3003         (ipa_create_param_decls_array): Creates the array itself
3004         (ipa_create_param_decls_array): Temporary variable info instead of 
3005         a few dereferences.
3006         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3007         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3008         (get_type): Removed.
3009         (ipa_jf_get_info_type): Removed.
3010         (ipa_node_create): Renamed to ipa_create_node_params
3011         (ipa_free): Renamed to ipa_free_all_node_params
3012         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3013         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3014         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3015         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3016         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3017         ipa_free_all_edge_args
3018         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3019         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3020         (ipa_create_methodlist_node): Removed.
3021         (ipa_methodlist_method): Removed.
3022         (ipa_methodlist_method_set): Removed.
3023         (ipa_methodlist_next_method): Removed.
3024         (ipa_methodlist_next_method_set): Removed.
3025         (ipa_method_is_modified): Removed.
3026         (ipa_method_modify_create): Removed.
3027         (ipa_method_modify_init): Temporary variable info instead of a few 
3028         dereferences.
3029         (ipa_detect_param_modifications): Temporary variable info instead of 
3030         a few dereferences.
3031         (ipa_compute_jump_functions): Temporary variable info instead of 
3032         a few dereferences.
3033         (ipa_method_modify_set): Removed.
3034         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3035         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3036         than craph_node as the first parameter.
3037         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3038         (ipa_method_modify_init): Removed.
3039         (ipa_compute_jump_functions): Added a temp variable instead of 
3040         repeatadly dereferencing the cgraph_edge.aux pointer
3041         (ipa_callsite_param_set_type): Removed.
3042         (ipa_compute_jump_functions): i renamed to index and moved to 
3043         an inner block
3044         (ipa_callsite_param_set_info_type_formal): Removed.
3045         (ipa_callsite_param_set_info_type): Removed.
3046         (ipa_callsite_param_map_create): Removed.
3047         (ipa_callsite_tree): Removed.
3048         (ipa_callsite_caller): Removed.
3049         (ipa_pop_func_from_list): return_method removed to return_func
3050
3051         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3052         prefixed all values with IPA_. Changed all users.
3053         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3054         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3055         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3056         (union parameter_info): Renamed to jump_func_value.
3057         (union jump_func_value): Renamed value to constant
3058         (struct ipa_jump_func): Renamed info_type to value
3059         (struct ipa_node): Renamed to ipa_node_params
3060         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3061         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3062         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3063         (struct ipa_edge): Renamed to ipa_edge_args
3064         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3065         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3066         (struct ipa_methodlist): Renamed to ipa_func_list
3067         (struct ipa_func_list): method_p renamed to node, next_method
3068         renamed to next
3069         (ipa_methodlist_p): Removed, switched all users to struct pointer
3070         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3071
3072 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3073
3074         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3075         (rs6000_emit_epilogue): Use backchain to restore only when we
3076         have a large frame.  Make use of frame pointer to restore if we
3077         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3078
3079 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3080
3081         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3082         Add mode to zero_extract.
3083         (sign bit tests peepholes): (Ditto.).
3084
3085 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3086
3087         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3088         Instructions in comments with SSE3.
3089         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3090         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3091         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3092         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3093         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3094         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3095         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3096         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3097         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3098         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3099         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3100         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3101         (bdesc_sse_args): Renamed to ...
3102         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3103         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3104         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3105         IX86_BUILTIN_FABSQ.
3106         (bdesc_1arg): Moved to ...
3107         (bdesc_args): Here.
3108         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3109         Instructions in comments with SSE3.
3110         (ix86_expand_sse_operands_builtin): Renamed to ...
3111         (ix86_expand_args_builtin): This.  Updated.
3112         (ix86_expand_unop1_builtin): Update comments.
3113         (ix86_expand_builtin): Updated.
3114
3115 2008-04-29  Richard Guenther  <rguenther@suse.de>
3116
3117         PR tree-optimization/36078
3118         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3119         Update virtual SSA form after cleaning up the CFG.
3120
3121 2008-04-29  Richard Guenther  <rguenther@suse.de>
3122
3123         PR middle-end/15255
3124         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3125
3126 2008-04-29  Richard Guenther  <rguenther@suse.de>
3127
3128         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3129         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3130         (compute_flow_insensitive_aliasing): Do not treat
3131         PTR_IS_REF_ALL pointers special.
3132         (get_smt_for): Likewise.
3133         (may_alias_p): Re-structure.
3134         (is_escape_site): A ref-all pointer conversion is not an escape site.
3135         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3136         PTR_IS_REF_ALL pointers special.
3137         * tree-ssa-structalias.h (struct alias_info): Remove
3138         ref_all_symbol_mem_tag field.
3139         (PTR_IS_REF_ALL): Remove.
3140
3141 2008-04-29  Richard Guenther  <rguenther@suse.de>
3142
3143         PR middle-end/36077
3144         * fold-const.c (extract_muldiv_1): In combining division constants
3145         make sure to never overflow.
3146
3147 2008-04-29  Nick Clifton  <nickc@redhat.com>
3148
3149         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3150
3151 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3152
3153         PR bootstrap/35169
3154         * optc-gen.awk: Work around HP-UX/IA awk bug.
3155
3156 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3157
3158         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3159         2008-04-25 commit.
3160
3161 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3162
3163         PR target/36073
3164         * config/i386/i386.md
3165         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3166         Change operand 1 predicate to nonimmediate_operand.
3167
3168 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3169
3170         PR debug/36060
3171         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3172         die_sub field.
3173         * gengtype.c (walk_type, write_func_for_structure): Handle
3174         chain_circular.
3175         * doc/gty.texi: Document chain_circular.
3176
3177 2008-04-28  Richard Guenther  <rguenther@suse.de>
3178
3179         PR tree-optimization/36066
3180         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3181         SCEV and loop.
3182
3183 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3184
3185         PR target/36064
3186         * config/i386/i386.md
3187         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3188         Use match_scratch instead of match_operand for operands 3 and 4.
3189
3190 2008-04-27  Richard Guenther  <rguenther@suse.de>
3191
3192         PR tree-optimization/18754
3193         PR tree-optimization/34223
3194         * tree-pass.h (pass_complete_unrolli): Declare.
3195         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3196         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3197         Rewrite loop into loop closed SSA form if it is not already.
3198         (tree_unroll_loops_completely): Re-structure to iterate over
3199         innermost loops with intermediate CFG cleanups.
3200         Unroll outermost loops only if requested or the code does not grow
3201         doing so.
3202         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3203         loops are available.
3204         (tree_vectorize): Instead do so here.
3205         (tree_complete_unroll): Also unroll outermost loops.
3206         (tree_complete_unroll_inner): New function.
3207         (gate_tree_complete_unroll_inner): Likewise.
3208         (pass_complete_unrolli): New pass.
3209         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3210         uses outside of the loop.
3211         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3212         form if it is available.  
3213         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3214         * passes.c (init_optimization_passes): Schedule complete inner
3215         loop unrolling pass before the first CCP pass after final inlining.
3216
3217 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3218
3219         * targhooks.h (default_emutls_var_fields,
3220         default_emutls_var_init): Declare.
3221         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3222         * target.h (struct gcc_target): Add struct emutls member.
3223         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3224         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3225         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3226         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3227         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3228         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3229         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3230         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3231         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3232         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3233         emit debug information.
3234         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3235         * varasm.c: Include targhooks.h.
3236         (emutls_object_section, emutls_tmpl_section): New.
3237         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3238         (EMUTLS_SEPARATOR): New.
3239         (prefix_name): New.
3240         (get_emutls_object_name): New.
3241         (default_emutls_var_fields): New, broken out of ...
3242         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3243         (get_emutls_init_templ_addr): Adjust to use target hooks.
3244         (emutls_decl): Adjust to use target hooks.
3245         (emutls_finish): Likewise.
3246         (default_emutls_var_init): New, broken out of ...
3247         (assemble_variable): ... here.  Adjust to use target hooks.
3248         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3249         SECCAT_EMUTLS_TMPL.
3250         * c-common.c (handle_section_attribute): Prevent overriding
3251         sections for emulated tls with special sections.
3252         * config/i386/i386.c (x86_64_elf_select_section): Add
3253         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3254         (x86_64_elf_unique_section): Likewise.
3255         * config/vxworks.c: Include tree.h.
3256         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3257         (vxworks_override_options): Set TLS scheme.
3258         * doc/tm.texi (Emulated TLS): New node.
3259
3260 2008-04-26  Simon Baldwin <simonb@google.com>
3261
3262         PR c/35652
3263         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3264         with propagated string constants.
3265
3266 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3267
3268         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3269         constraint for operand 2 when operand 0 is memory operand.
3270         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3271         operand 0 is memory operand.
3272         (fix_trunc<mode>_i387_with_temp): Ditto.
3273         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3274         operand 2 when operand 1 is memory operand.
3275         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3276         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3277         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3278         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3279         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3280         operands 2,3 and 4 when operand 1 is memory operand.
3281         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3282         is memory operand.
3283         (fistdi2_floor_with_temp): Ditto.
3284         (fist<mode>2_floor_with_temp): Ditto.
3285         (fistdi2_ceil_with_temp): Ditto.
3286         (fist<mode>2_ceil_with_temp): Ditto.
3287         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3288
3289 2008-04-26  David Daney  <ddaney@avtrex.com>
3290
3291         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3292         unspec_volitile.
3293         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3294         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3295         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3296         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3297         (compare_and_swap_12): New insn.
3298         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3299         * config/mips/mips.c (mips_force_binary): New function.
3300         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3301         (mips_expand_compare_and_swap_12): New function.
3302         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3303
3304 2008-04-25  Jan Hubicka  <jh@suse.cz>
3305
3306         PR testsuite/35843
3307         * cfgexpand.c (pass_expand): Turn into RTL pass.
3308         * passes.c (execute_one_pass): Do pass typechecking after execution.
3309         * tree-pass.h (pass_expand): Turn into RTL pass.
3310
3311         * function.h (struct rtl_data): Move here fields
3312         accesses_prior_frames, calls_eh_return, saves_all_registers,
3313         has_nonlocal_goto, has_asm_statement, is_thunk,
3314         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3315         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3316         arg_pointer_save_area_init from struct function; turn into bool.
3317         (struct function): Move
3318         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3319         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3320         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3321         tail_call_emit, arg_pointer_save_area_init
3322         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3323         (current_function_returns_struct, current_function_returns_pcc_struct,
3324         current_function_calls_setjmp, current_function_calls_alloca,
3325         current_function_accesses_prior_frames,
3326         current_function_calls_eh_return, current_function_is_thunk,
3327         current_function_stdarg, current_function_profile,
3328         current_function_limit_stack, current_function_uses_pic_offset_table,
3329         current_function_uses_const_pool, current_function_has_nonlocal_label,
3330         current_function_saves_all_registers,
3331         current_function_has_nonlocal_goto,
3332         current_function_has_asm_statement): Remove accesor macros.
3333         * ra-conflict.c (global_conflicts): Update.
3334         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3335         (suitable_for_tail_call_opt_p): Update.
3336         * builtins.c (expand_builtin_return_addr): Update.
3337         (expand_builtin_setjmp_setup): Update.
3338         (expand_builtin_nonlocal_goto): Update.
3339         * final.c (final_start_function): Update.
3340         (profile_function): Update.
3341         (leaf_function_p): Update.
3342         (only_leaf_regs_used): Update.
3343         * df-scan.c (df_get_exit_block_use_set): Update.
3344         * dojump.c (clear_pending_stack_adjust): Update.
3345         * tree-stdarg.c (gate_optimize_stdarg): Update.
3346         * gimple-low.c (lower_function_body): Update.
3347         * global.c (compute_regsets): Update.
3348         (global_alloc): Update.
3349         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3350         * expr.c (expand_assignment): Update.
3351         * dse.c (dse_step0): Update.
3352         (dse_step1): Update.
3353         * c-decl.c (store_parm_decls): Update.
3354         * local-alloc.c (combine_regs): Update.
3355         (find_free_reg): Update.
3356         * function.c (assign_parms_augmented_arg_list): Update.
3357         (assign_parm_find_data_types): Update.
3358         (assign_parms): Update.
3359         (allocate_struct_function): Update.
3360         (expand_function_start): Update.
3361         (expand_function_end): Update.
3362         (get_arg_pointer_save_area): Update.
3363         (thread_prologue_and_epilogue_insns): Update.
3364         (rest_of_match_asm_constraints): Update.
3365         * stor-layout.c (variable_size): Update.
3366         * gcse.c (gcse_main): Update.
3367         (bypass_jumps): Update.
3368         * gimplify.c (gimplify_function_tree): Update.
3369         * calls.c (emit_call_1): Update.
3370         (expand_call): Update.
3371         * bt-load.c (compute_defs_uses_and_gen): Update.
3372         * except.c (sjlj_assign_call_site_values): Update.
3373         (sjlj_emit_function_enter): Update.
3374         (can_throw_external): Update.
3375         (set_nothrow_function_flags): Update.
3376         (expand_builtin_unwind_init): Update.
3377         (expand_eh_return): Update.
3378         (convert_to_eh_region_ranges): Update.
3379         (output_function_exception_table): Update.
3380         * emit-rtl.c (gen_tmp_stack_mem): Update.
3381         * cfgexpand.c (expand_used_vars): Update.
3382         (tree_expand_cfg): Update.
3383         * cfgcleanup.c (rest_of_handle_jump): Update.
3384         * explow.c (allocate_dynamic_stack_space): Update.
3385         * varasm.c (assemble_start_function): Update.
3386         (force_const_mem): Update.
3387         (mark_constant_pool): Update.
3388         * tree-optimize.c (tree_rest_of_compilation): Update.
3389         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3390         * tree-cfg.c (notice_special_calls): Update.
3391         (is_ctrl_altering_stmt): Update.
3392         (tree_can_make_abnormal_goto): Update.
3393         (tree_purge_dead_abnormal_call_edges): Update.
3394         * config/alpha/predicates.md: Update.
3395         * config/alpha/alpha.c (alpha_sa_mask): Update.
3396         (alpha_sa_size): Update.
3397         (alpha_does_function_need_gp): Update.
3398         (alpha_expand_prologue): Update.
3399         (alpha_start_function): Update.
3400         (alpha_output_function_end_prologue): Update.
3401         (alpha_expand_epilogue): Update.
3402         * config/frv/frv.c (frv_stack_info): Update.
3403         (frv_expand_epilogue): Update.
3404         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3405         (s390_register_info): Update.
3406         (s390_frame_info): Update.
3407         (s390_init_frame_layout): Update.
3408         (s390_can_eliminate): Update.
3409         (save_gprs): Update.
3410         * config/spu/spu.c (spu_split_immediate): Update.
3411         (need_to_save_reg): Update.
3412         (spu_expand_prologue): Update.
3413         (spu_expand_epilogue): Update.
3414         * config/sparc/sparc.md: Update.
3415         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3416         (sparc_tls_got): Update.
3417         (legitimize_pic_address): Update.
3418         (sparc_emit_call_insn): Update.
3419         (sparc_expand_prologue): Update.
3420         (output_return): Update.
3421         (print_operand): Update.
3422         (sparc_function_ok_for_sibcall): Update.
3423         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3424         * config/m32r/m32r.md: Update.
3425         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3426         (m32r_compute_frame_size): Update.
3427         (m32r_expand_prologue): Update.
3428         (m32r_expand_epilogue): Update.
3429         (m32r_legitimize_pic_address): Update.
3430         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3431         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3432         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3433         (gen_push): Update.
3434         (ix86_save_reg): Update.
3435         (ix86_compute_frame_layout): Update.
3436         (ix86_expand_prologue): Update.
3437         (ix86_expand_epilogue): Update.
3438         * config/sh/sh.c (output_stack_adjust): Update.
3439         (calc_live_regs): Update.
3440         (sh5_schedule_saves): Update.
3441         (sh_expand_prologue): Update.
3442         (sh_expand_epilogue): Update.
3443         (sh_setup_incoming_varargs): Update.
3444         (sh_allocate_initial_value): Update.
3445         (sh_get_pr_initial_val): Update.
3446         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3447         * config/sh/sh.md (label:): Update.
3448         * config/avr/avr.c (out_movhi_mr_r): Update.
3449         * config/crx/crx.h (enum): Update.
3450         * config/xtensa/xtensa.h (along): Update.
3451         * config/stormy16/stormy16.c Update.
3452         (xstormy16_compute_stack_layout): Update.
3453         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3454         (fr30_expand_prologue): Update.
3455         * config/cris/cris.c (cris_conditional_register_usage): Update.
3456         (cris_reg_saved_in_regsave_area): Update.
3457         (cris_initial_frame_pointer_offset): Update.
3458         (cris_simple_epilogue): Update.
3459         (cris_expand_prologue): Update.
3460         (cris_expand_epilogue): Update.
3461         (cris_expand_pic_call_address): Update.
3462         (cris_asm_output_symbol_ref): Update.
3463         (cris_asm_output_label_ref): Update.
3464         * config/cris/cris.md Update.
3465         * config/iq2000/iq2000.c (compute_frame_size): Update.
3466         (iq2000_expand_epilogue): Update.
3467         * config/mt/mt.h (save_direction): Update.
3468         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3469         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3470         (ia64_secondary_reload_class): Update.
3471         * config/m68k/m68k.c (m68k_save_reg): Update.
3472         (m68k_expand_prologue): Update.
3473         (m68k_expand_epilogue): Update.
3474         (legitimize_pic_address): Update.
3475         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3476         (first_reg_to_save): Update.
3477         (first_altivec_reg_to_save): Update.
3478         (compute_vrsave_mask): Update.
3479         (compute_save_world_info): Update.
3480         (rs6000_stack_info): Update.
3481         (spe_func_has_64bit_regs_p): Update.
3482         (rs6000_ra_ever_killed): Update.
3483         (rs6000_emit_eh_reg_restore): Update.
3484         (rs6000_emit_allocate_stack): Update.
3485         (rs6000_emit_prologue): Update.
3486         (rs6000_emit_epilogue): Update.
3487         (rs6000_output_function_epilogue): Update.
3488         (output_profile_hook): Update.
3489         (rs6000_elf_declare_function_name): Update.
3490         * config/rs6000/rs6000.h (rs6000_args): Update.
3491         * config/rs6000/rs6000.md: Update.
3492         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3493         * config/arc/arc.c (arc_output_function_epilogue): Update.
3494         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3495         * config/darwin.c (machopic_function_base_name): Update.
3496         * config/score/score3.c (score3_compute_frame_size): Update.
3497         (rpush): Update.
3498         (rpop): Update.
3499         (score3_epilogue): Update.
3500         * config/score/score7.c (score7_compute_frame_size): Update.
3501         (score7_prologue): Update.
3502         (score7_epilogue): Update.
3503         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3504         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3505         * config/arm/arm.c (use_return_insn): Update.
3506         (require_pic_register): Update.
3507         (arm_load_pic_register): Update.
3508         (arm_compute_save_reg0_reg12_mask): Update.
3509         (arm_compute_save_reg_mask): Update.
3510         (thumb1_compute_save_reg_mask): Update.
3511         (output_return_instruction): Update.
3512         (arm_output_function_prologue): Update.
3513         (arm_output_epilogue): Update.
3514         (arm_get_frame_offsets): Update.
3515         (arm_expand_prologue): Update.
3516         (thumb_pushpop): Update.
3517         (thumb_exit): Update.
3518         (thumb1_expand_prologue): Update.
3519         (thumb1_expand_epilogue): Update.
3520         (arm_unwind_emit): Update.
3521         (arm_output_fn_unwind): Update.
3522         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3523         * config/arm/arm.md: Update.
3524         * config/pa/pa.md: Update.
3525         * config/pa/pa.c (legitimize_pic_address): Update.
3526         (compute_frame_size): Update.
3527         (hppa_expand_prologue): Update.
3528         (hppa_expand_epilogue): Update.
3529         (borx_reg_operand): Update.
3530         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3531         (HARD_REGNO_RENAME_OK): Update.
3532         * config/mips/mips.c (mips_global_pointer): Update.
3533         (mips_save_reg_p): Update.
3534         (mips_compute_frame_info): Update.
3535         (mips_frame_pointer_required): Update.
3536         (mips_expand_prologue): Update.
3537         (mips_expand_epilogue): Update.
3538         (mips_can_use_return_insn): Update.
3539         (mips_reorg_process_insns): Update.
3540         * config/v850/v850.c (compute_register_save_size): Update.
3541         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3542         * config/mmix/mmix.c (along): Update.
3543         (mmix_expand_epilogue): Update.
3544         * config/bfin/bfin.c (legitimize_pic_address): Update.
3545         (must_save_p): Update.
3546         (stack_frame_needed_p): Update.
3547         (add_to_reg): Update.
3548         (bfin_expand_prologue): Update.
3549         * stmt.c (expand_asm_operands): Update.
3550         * reload1.c (reload): Update.
3551         (init_elim_table): Update.
3552
3553 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3554         
3555         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3556         
3557 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3558
3559         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3560         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3561         (mov<mode>): Removed.
3562         (*movv4sf_internal): Likewise.
3563         (*movv2df_internal): Likewise.
3564
3565 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3566
3567         * config.gcc (crx-*-elf): Remove deprecation.
3568
3569 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3570
3571         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3572         __gcc_deregister_frame with atexit.
3573         (deregister_frame_dtor): Remove.
3574
3575 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3576             Nathan Sidwell  <nathan@codesourcery.com>
3577
3578         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3579         (misel): Likewise.
3580         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3581         (rs6000_isel): Likewise.
3582         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3583         (rs6000_isel): New variable.
3584         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3585
3586 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3587
3588         PR c++/35758
3589         * c-common.c (handle_vector_size_attribute): Call
3590         lang_hooks.types.reconstruct_complex_type instead of
3591         reconstruct_complex_type.
3592         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3593         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3594         * langhooks.h (struct lang_hooks_for_types): Add
3595         reconstruct_complex_type hook.
3596         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3597         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3598
3599 2008-04-24  Richard Guenther  <rguenther@suse.de>
3600
3601         * c-common.h (check_builtin_function_arguments): Declare.
3602         * c-common.c (validate_nargs): New function.
3603         (check_builtin_function_arguments): Likewise.
3604         * c-typeck.c (build_function_call): Call
3605         check_builtin_function_arguments.
3606         * builtins.c (fold_builtin_classify): Remove error reporting code.
3607         (fold_builtin_unordered_cmp): Likewise.
3608         (fold_builtin_1): Likewise.
3609         (fold_builtin_n): Likewise.
3610
3611 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3612
3613         PR tree-optimization/36008
3614         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3615         the original op1, rather than delta by step.
3616
3617 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3618             Sebastian Pop  <sebastian.pop@amd.com>
3619
3620         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3621         eliminate_local_variables_stmt, eliminate_local_variables,
3622         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3623         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3624         of code delimited by two edges in the CFG.
3625         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3626         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3627         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3628         the case of parallelisation of reductions.
3629         (expr_invariant_in_region_p): New.
3630
3631         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3632         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3633
3634 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3635             Richard Guenther  <rguenther@suse.de>
3636
3637         PR tree-optimization/36034
3638         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3639         incapable of dealing with loads with gaps.
3640
3641 2008-04-24  Rafael Espindola  <espindola@google.com>
3642
3643         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3644         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3645         vrp_evaluate_conditional.
3646         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3647         (vrp_evaluate_conditional): Split the cond argument.
3648         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3649         (simplify_stmt_for_jump_threading): Update call to
3650         vrp_evaluate_conditional.
3651
3652 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3653
3654         PR tree-optimization/35982
3655         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3656         interleaved data-refs are of the same type.
3657
3658 2008-04-24  Danny Smith  <dannysmith@users.net>
3659
3660         * c-format.c (check_format_info_main): Use strncmp rather than a
3661         magic prefix to handle multichar length specs.
3662         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3663         Don't prefix "I64" and "I32" with '\0'.
3664
3665 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3666
3667         PR target/36015
3668         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3669         in registers for -m32 only if stdarg_p (fntype).
3670
3671 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3672
3673         PR rtl-optimization/36006
3674         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3675         temp to op0 in order to avoid invalid rtx sharing.
3676
3677 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3678
3679         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3680         check TREE_INVARIANT.
3681         * tree-gimple.c (is_gimple_address): New.
3682         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3683         * tree-gimple.h (is_gimple_address): New.
3684         * tree.h (decl_address_invariant_p): New.
3685         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3686         (build_string): Likewise.
3687         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3688         (tree_invariant_p_1): Likewise.
3689         (save_expr): Use it.
3690         (tree_invariant_p): New.
3691         (skip_simple_arithmetic): Use it.
3692         (stabilize_reference_1): Use it.
3693         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3694         simplify.
3695         (build1_stat): Drop code to compute TREE_INVARIANT.
3696         (build2_stat): Drop code to compute TREE_INVARIANT.
3697         (build3_stat): Drop code to compute TREE_INVARIANT.
3698         (build4_stat): Drop code to compute TREE_INVARIANT.
3699         (build5_stat): Drop code to compute TREE_INVARIANT.
3700         (build7_stat): Drop code to compute TREE_INVARIANT.
3701         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3702         * tree.h (struct tree_base): Remove invariant_flag.
3703         (TREE_INVARIANT): Remove.
3704         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3705         (fold_builtin_expect): Check TREE_CONSTANT.
3706         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3707         * c-tree.h (c_expr_to_decl): Drop third parameter.
3708         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3709         (build_c_cast): Don't set TREE_INVARIANT.
3710         (pop_init_level): Don't set TREE_INVARIANT.
3711         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3712         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3713         TREE_CONSTANT.
3714         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3715         (gimplify_addr_expr): Adjust comment.
3716         * tree-mudflap.c (mf_build_string):
3717         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3718         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3719         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3720         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3721         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3722         * langhooks.h (struct lang_hooks): Drop third parameter from
3723         expr_to_decl.
3724
3725 2008-04-23  Richard Guenther  <rguenther@suse.de>
3726
3727         PR tree-optimization/27799
3728         PR tree-optimization/32921
3729         PR tree-optimization/32624
3730         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3731         SMTs aliases and the tag itself into the solution.
3732         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3733         merge the points-to solution back into the SMT aliases.
3734         (may_alias_p): Use alias_set_subset_of instead of
3735         aliases_conflict_p.  A pointer which points to
3736         memory with alias set zero may access any variable.
3737
3738 2008-04-23  Richard Guenther  <rguenther@suse.de>
3739
3740         * alias.c (alias_set_subset_of): Correctly handle asking
3741         if zero is a subset of an alias set with zero child.
3742         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3743         (compute_flow_insensitive_aliasing): Correctly walk all
3744         pointers.  Do not unnecessarily union sets.
3745
3746 2008-04-23  Richard Guenther  <rguenther@suse.de>
3747
3748         PR middle-end/36021
3749         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3750
3751 2008-04-22  Tomas Bily  <tbily@suse.cz>
3752
3753         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3754         unreachable case.
3755         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3756         NON_LVALUE_EXPR.
3757         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3758         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3759         * tree-inline.c (estimate_num_insns_1): Likewise.
3760         * varasm.c (const_hash_1, compare_constant, copy_constant)
3761         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3762         * emit-rtl.c (component_ref_for_mem_expr)
3763         (set_mem_attributes_minus_bitpos): Likewise.
3764         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3765         (is_aligning_offset): Likewise.
3766         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3767         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3768         * dojump.c (do_jump): Likewise.
3769         * builtins.c (get_pointer_alignment, get_memory_rtx)
3770         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3771         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3772
3773 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3774
3775         PR rtl-optimization/36017
3776         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3777         expanding the library call.
3778
3779 2008-04-22  Ian Lance Taylor  <iant@google.com>
3780
3781         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3782         than size_in_bytes.
3783
3784 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3785
3786         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3787         of LR/CTR moves for Power6.
3788
3789 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3790
3791         PR middle-end/36003
3792         * passes.c (init_optimization_passes): Remove
3793         pass_fast_rtl_byte_dce.
3794         
3795 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3796
3797         PR target/29096
3798         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3799         builtin functions to generate faster code.
3800         (_mm_cvtpu16_ps): Ditto.
3801         (_mm_cvtpi32x2_ps): Ditto.
3802
3803 2008-04-22  Nick Clifton  <nickc@redhat.com>
3804
3805         * common.opt (ftree-loop-distribution): Add Optimization
3806         attribute.
3807
3808         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3809         (frv_expand_builtin_va_start): Likewise.
3810
3811         * config/arm/arm.c (thumb_find_work_register): Fix location of
3812         argument register count.
3813
3814 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3815
3816         Support scheduling for ColdFire V1 and V3 microarchitecture.
3817         Improve scheduling of multiplication instructions.
3818
3819         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3820         (mac): New instruction attribute.
3821         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3822         (m68k_sched_mac): New variable.
3823         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3824         Handle cfv1 and cfv3.
3825         (max_insn_size): New static variable.
3826         (struct _sched_ib): New type.
3827         (sched_ib): New static variable.
3828         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3829         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3830         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3831         Update.
3832         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3833         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3834         new variables.  Update.
3835         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3836         Add modeling of cfv3 instruction buffer.  Update.
3837         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3838         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3839         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3840         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3841         a particular reservation applies to.
3842         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3843         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3844         to mul_l and mul_w.
3845         (cf_ib_*): Simplify description of instruction buffer.
3846         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3847         (cf_mem): Split into cf_mem1 and cf_mem2.
3848         (cf_v2_move_??): Rename to cfv12_alu_??.
3849         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3850         (cf_v2_mul_??): Remove reservations.
3851         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3852         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3853         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3854         appropriate place.
3855         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3856         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3857         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3858         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3859         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3860         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3861         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3862         expansions of the above reservations for instructions of sizes
3863         1, 2 and 3 words.
3864
3865 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3866
3867         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3868
3869 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3870
3871         * coverage.c: Include tree-pass.h.
3872         (coverage_counter_alloc): Print da_file_name to the dump file.
3873
3874 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3875
3876         * sbitmap.c (sbitmap_range_empty_p): New function.
3877         * sbitmap.h (sbitmap_range_empty_p): New function.
3878         * bitmap.h: Now includes obstack.h.
3879
3880 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3881             Kenneth Zadeck  <zadeck@naturalbridge.com>
3882
3883         * dbgcnt.def (ra_byte_scan): Added.
3884         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3885         when the last hit happens for a counter.  
3886         * timevar.def (TV_DF_BYTE_LR): New variable.
3887         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3888         * passes.c (pass_fast_rtl_byte_dce): New pass.
3889         * fwprop.c (update_df): Added mode to call df_ref_create.
3890         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3891         DF_REF_EXTRACT_OFFSET.
3892         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3893         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3894         (df_mm): New enum.
3895         (df_ref_extract): Added mode field.
3896         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3897         DF_REF_EXTRACT_OFFSET.
3898         (DF_REF_EXTRACT_MODE): New macro.
3899         (df_byte_lr_bb_info): New structure.
3900         (df_print_byte_regset, df_compute_accessed_bytes, 
3901         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3902         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3903         df_byte_lr_simulate_uses,
3904         df_byte_lr_simulate_artificial_refs_at_top,
3905         df_byte_lr_simulate_artificial_refs_at_end,
3906         df_compute_accessed_bytes): New function.
3907         (df_ref_create): Add parameter.
3908         (df_byte_lr_get_bb_info): New inline function.
3909         * df-scan.c (df_ref_record, df_uses_record,
3910         df_ref_create_structure): Added mode parameter.
3911         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3912         df_defs_record, df_uses_record, df_get_conditional_uses,
3913         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3914         df_entry_block_defs_collect, df_exit_block_uses_collect):
3915         Added mode parameter to calls to df_ref_record, df_uses_record,
3916         df_ref_create_structure.
3917         (df_ref_equal_p, df_ref_compare): Added test for modes.
3918         (df_ref_create_structure): Added code to set mode.  Renamed
3919         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3920         DF_REF_EXTRACT_OFFSET.
3921         * df-core.c (df_print_byte_regset): New function.
3922         * df-byte-scan.c: New file.
3923         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3924         calls to BITMAP_FREE.  
3925         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3926         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3927         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3928         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3929         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3930         df_byte_lr_local_compute, df_byte_lr_init,
3931         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3932         df_byte_lr_transfer_function, df_byte_lr_free, 
3933         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3934         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3935         df_byte_lr_simulate_uses,
3936         df_byte_lr_simulate_artificial_refs_at_top,
3937         df_byte_lr_simulate_artificial_refs_at_end): New function.
3938         * dce.c (byte_dce_process_block): New function.
3939         (dce_process_block): au is now passed in rather than computed
3940         locally.  Changed loops that look at artificial defs to not look
3941         for conditional or partial ones, because there never are any.  
3942         (fast_dce): Now is able to drive byte_dce_process_block or 
3943         dce_process_block depending on the kind of dce being done.
3944         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3945         (rest_of_handle_fast_byte_dce): New function.
3946         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3947         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3948
3949 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3950
3951         PR fortran/35019
3952         * gcc.h: Added fortran options that take arguments to
3953         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3954         macros.
3955
3956 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3957
3958         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3959         scalarization if on the LHS and not a full access.
3960
3961 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3962
3963         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3964
3965 2008-04-18  Rafael Espindola  <espindola@google.com>
3966
3967         * tree-vrp.c (find_case_label_index): Fix the binary search.
3968         (find_case_label_range): New.
3969         (vrp_visit_switch_stmt): Use find_case_label_range.
3970         (simplify_switch_using_ranges): Use find_case_label_range.
3971
3972 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3973
3974         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3975         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3976
3977 2008-04-18  Tom Tromey  <tromey@redhat.com>
3978
3979         PR libcpp/15500:
3980         * doc/cpp.texi (Implementation-defined behavior): Mention
3981         -finput-charset.
3982
3983 2008-04-18  Ian Lance Taylor  <iant@google.com>
3984
3985         * fold-const.c (pointer_may_wrap_p): New static function.
3986         (fold_comparison): Add another test for pointer overflow.  Use
3987         pointer_may_wrap_p to disable some false positives.
3988
3989 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3990           
3991         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3992         (fname_as_string): Match updated cpp_interpret_string prototype.
3993         (fix_string_type): Support char16_t* and char32_t*.
3994         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
3995         derivative) nodes.  Register as builtin if C++0x.
3996         (c_parse_error): Support CPP_CHAR{16,32}.
3997         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
3998         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
3999         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4000         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4001         CTI_CHAR32_ARRAY_TYPE>: New elements.
4002         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4003         char32_type_node, signed_char32_type_node, char16_array_type_node,
4004         char32_array_type_node): New defines.
4005         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4006         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4007         (lex_string): Support CPP_STRING{16,32}, match updated
4008         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4009         (lex_charconst): Support CPP_CHAR{16,32}.
4010         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4011         and CPP_STRING{16,32}.
4012
4013 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4014
4015         PR bootstrap/35457
4016         * aclocal.m4: Regenerate.
4017         * configure: Regenerate.
4018
4019 2008-04-18  Jan Hubicka  <jh@suse.cz>
4020
4021         * except.c (dw2_size_of_call_site_table,
4022         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4023
4024         * cgraphbuild.c (build_cgraph_edges): Update.
4025         * tree-pass.h: Update comment.
4026         * final.c (leaf_function_p): Update.
4027         (leaf_renumber_regs): Update.
4028         (rest_of_clean_state): Update.
4029         * omp-low.c (expand_omp_parallel): Update.
4030         * ipa-reference.c (analyze_function): Update.
4031         * reorg.c (find_end_label): Update.
4032         (optimize_skip): Update.
4033         (fill_simple_delay_slots): Update.
4034         (fill_simple_delay_slots): Update.
4035         (make_return_insns): Update.
4036         (dbr_schedule): Update.
4037         * gimple-low.c (record_vars_into): Update.
4038         * cfgbuild.c (make_edges): Update.
4039         * function.c (assign_stack_local): Update.
4040         (assign_parm_adjust_stack_rtl): Update.
4041         (locate_and_pad_parm): Update.
4042         (allocate_struct_function): Do not initialize stack_alignment_needed
4043         and preferred_stack_boundary here.
4044         (stack_protect_prologue): Update.
4045         (stack_protect_epilogue): Update.
4046         (expand_function_start): Initialize stack_alignment_needed,
4047         preferred_stack_boundary and max_jumptable_ents.
4048         (expand_function_end): Update.
4049         (free_after_compilation): Do not NULLify epilogue_delay_list.
4050         * function.h (struct rtl_data): Add stack_protect_guard,
4051         stack_alignment_needed,
4052         preferred_stack_boundary, epilogue_delay_list.
4053         (struct function): Remove value_histograms, stack_alignment_needed,
4054         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4055         last_label_uid,
4056         unexpanded_var_list, stack_protect_guard.
4057         (current_function_epilogue_delay_list): Remove.
4058         * ipa-type-escape.c (analyze_function): Update.
4059         * gimplify.c (pop_gimplify_context): Update comment.
4060         * calls.c (expand_call): Update.
4061         (emit_library_call_value_1): Update.
4062         * except.c (set_nothrow_function_flags): Update.
4063         * cfgexpand.c (get_decl_align_unit): Update.
4064         (create_stack_guard): Update.
4065         (estimated_stack_frame_size): Update.
4066         (expand_used_vars): Update.
4067         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4068         * explow.c (allocate_dynamic_stack_space): Update.
4069         * tree-ssa-live.c (remove_unused_locals): Update.
4070         * varasm.c (mark_constant_pool): Update.
4071         * tree-inline.c (remap_decls): Update.
4072         (initialize_cfun): Update.
4073         (declare_return_variable): Update.
4074         (inline_forbidden_p): Update.
4075         (expand_call_inline): Update.
4076         (declare_inline_vars): Update.
4077         (tree_function_versioning): Update.
4078         * tree-flow.h (value_histograms): New.
4079         (VALUE_HISTOGRAMS): New macro.
4080         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4081         last_label_uid.
4082         * tree-cfg.c (set_bb_for_stmt): Update.
4083         (replace_by_duplicate_decl): Update.
4084         (move_block_to_fn): Update.
4085         (new_label_mapper): Update.
4086         (dump_function_to_file): Update.
4087         * ipa-struct-reorg.c (build_data_structure): Update.
4088         * cfgrtl.c (print_rtl_with_bb): Update.
4089         * reload1.c (reload): Update.
4090         (reload): Update.
4091         * config/i386/i386.c (setup_incoming_varargs_64,
4092         ix86_compute_frame_layout): Update.
4093         * config/arc/arc.c (arc_output_function_epilogue): Update.
4094
4095 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4096
4097         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4098         for FreeBSD as well.
4099         * gthr-posix95.h: Likewise.
4100
4101 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4102
4103         PR rtl-optimization/35838
4104         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4105         out the byte offset of the first subreg.
4106
4107 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4108
4109         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4110         to split_ti instead of three separate calls with single member arrays.
4111         (subti3 splitter): Ditto.
4112         (adddi3 splitter): Ditto with split_di.
4113         (subdi3 splitter): Ditto.
4114         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4115         two separate calls with single member arrays.  Swap match_dup
4116         operands 1 and 2 to better fit into the array.
4117         (negdi2 splitter): Ditto with split_di.
4118         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4119         two separate calls with single member arrays.  Swap match_dup operands
4120         6 and 7 to better fit into the array.
4121
4122 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4123
4124         * config/i386/i386.c (sse_builtin_type): New.
4125         (bdesc_sse_args): Likewise.
4126         (bdesc_sse_3arg): Removed.
4127         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4128         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4129         IX86_BUILTIN_ROUNDPS.
4130         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4131         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4132         IX86_BUILTIN_ROUNDPS.
4133         (ix86_expand_sse_4_operands_builtin): Removed.
4134         (ix86_expand_sse_operands_builtin): New.
4135         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4136         and CODE_FOR_sse4_1_roundps.
4137         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4138         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4139
4140 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4141
4142         PR target/35907
4143         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4144         regs before frame pop when needed.  If use_backchain_to_restore_sp
4145         then load backchain into a temp reg to restore vr and vrsave.  Add
4146         code to restore vr after frame pop if possible.
4147
4148 2008-04-17  Richard Guenther  <rguenther@suse.de>
4149
4150         * tree-vn.c (expressions_equal_p): Do not check type
4151         equality or compatibility before calling operand_equal_p.
4152         * fold-const.c (operand_equal_p): Check equivalence of
4153         integer constants before bailing out due to signedness or
4154         precision differences.
4155         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4156         spurious differences in type qualification.  Ignore types
4157         for COMPONENT_REFs at all.
4158
4159 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4160
4161         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4162         msw_skip comparison.
4163         
4164 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4165
4166         PR c/35739
4167         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4168         reg type.
4169
4170         PR tree-optimization/35899
4171         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4172         rather than TREE_OPERAND.
4173
4174 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4175
4176         PR target/35944
4177         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4178         temporary registers.  Change operand predicate to general_operand.
4179         (remainderxf3): Ditto.
4180
4181 2008-04-16  Richard Guenther  <rguenther@suse.de>
4182
4183         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4184         * tree-affine.c (aff_combination_expand): Look through some
4185         conversions.
4186
4187 2008-04-15  Doug Kwan  <dougkwan@google.com>
4188
4189         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4190         for hex printing.
4191         * tree-pretty-print.c (dump_generic_node): Ditto.
4192         * final.c (output_addr_const): Ditto.
4193         * dwarf2out.c (output_cfi): Ditto.
4194         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4195         * print-rtl.c (print_rtx): Ditto.
4196         * print-tree.c (print_node_brief, print_node): Ditto.
4197         * c-common.c (match_case_to_enum_1): Ditto.
4198         * sched-vis.c (print_value): Ditto.
4199         * config/i386/i386.c (print_operand): Cast to long unsigned int
4200         for hex printing.
4201
4202 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4203         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4204         MS Windows VirtualProtect function.
4205
4206 2008-04-15  Jan Hubicka  <jh@suse.cz>
4207
4208         * gengtype.c (write_root): Param_is argument is OK.
4209         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4210         * function.h: Include varray.h
4211         (rtl_eh): New stucture based on except.c one.
4212         (call_site_record): New forward declaration and vector type.
4213         * calls.c (emit_call_1): Do not call
4214         note_current_region_may_contain_throw.
4215         * except.c (eh_status): Remove cur_region, try_region since they are
4216         unused.
4217         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4218         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4219         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4220         Remove call_site_data_used, call_site_data_size.
4221         Turn call_site_record into vector in function.h.
4222         (note_current_region_may_contain_throw): Remove.
4223         (get_exception_pointer, get_exception_filter): Do not take struct
4224         function argument; update.
4225         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4226         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4227         build_post_landing_pads, dw2_build_landing_pads,
4228         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4229         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4230         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4231         sjlj_build_landing_pads, finish_eh_generation,
4232         remove_exception_handler_label, remove_eh_handler,
4233         maybe_remove_eh_handler, add_reachable_handler,
4234         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4235         add_action_record, collect_one_action_chain, add_call_site,
4236         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4237         sjlj_output_call_site_table, output_function_exception_table,
4238         * except.h (note_current_region_may_contain_throw): Remove
4239         (get_exception_pointer, get_exception_filter): Do not take struct
4240         function argument.
4241         * Makefile.in (GTFILES): Put varargs before struct function.
4242
4243 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4244
4245         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4246         punt for STRING_CST.
4247         (get_constraint_for): Deal with STRING_CST here instead.
4248
4249 2008-04-15  Richard Guenther  <rguenther@suse.de>
4250
4251         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4252         statements in a basic-block with a backward walk.  Do not
4253         substitute into dead statements but instead remove those.
4254
4255 2008-04-15  Richard Guenther  <rguenther@suse.de>
4256
4257         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4258         to zero, thus disable creation of SFTs.
4259
4260 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4261
4262         * tree-predcom.c (suitable_reference_p): Return false if the
4263         reference can throw.
4264
4265 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4266
4267         PR c/35751
4268         * c-decl.c (finish_decl): If extern or static var has variable
4269         size, set TREE_TYPE (decl) to error_mark_node.
4270
4271 2008-04-15  Rafael Espindola  <espindola@google.com>
4272
4273         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4274         variable arg1.
4275
4276 2008-04-15  Richard Guenther  <rguenther@suse.de>
4277
4278         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4279         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4280         (visit_reference_op_load): Do walk vuse-vdef chains on
4281         vn_reference_lookup.
4282         (visit_reference_op_store): But do not here.
4283         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4284         vn_reference_lookup.
4285         (vn_lookup_with_vuses): But do so here.
4286
4287 2008-04-14  Ian Lance Taylor  <iant@google.com>
4288
4289         * fold-const.c (fold_overflow_warning): Remove assertion.
4290
4291 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4292
4293         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4294         temp1 local variables.
4295
4296 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4297
4298         PR target/35661
4299         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4300         ".text.unlikely" section as executable.
4301
4302 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4303
4304         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4305         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4306         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4307         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4308         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4309         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4310         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4311
4312 2008-04-14  Ian Lance Taylor  <iant@google.com>
4313
4314         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4315         * fold-const.c (fold_comparison): If appropriate, test
4316         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4317         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4318         reassociating a pointer type.
4319         * doc/invoke.texi (Optimize Options): Document that
4320         -fstrict-overflow applies to pointer wraparound.
4321
4322 2008-04-13  Jan Hubicka  <jh@suse.cz>
4323
4324         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4325
4326 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4327
4328         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4329         we are going to "save the world".
4330
4331 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4332
4333         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4334         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4335         operand 0 constraint, not "=".
4336
4337 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4338
4339         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4340
4341 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4342
4343         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4344         of size of positions_needed * CHAR_BIT.
4345
4346 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4347
4348         PR middle-end/35897
4349         * dse.c (store_info): Change positions_needed to unsigned
4350         HOST_WIDE_INT.
4351         (lowpart_bitmask): New.
4352         (record_store): Cast to unsigned HOST_WIDE_INT for
4353         positions_needed.  Assert width <= size of positions_needed *
4354         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4355         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4356         lowpart_bitmask to set mask.
4357
4358 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4359
4360         * config/bfin/constraints.md: New file.
4361         * config/bfin/bfin.md: Include it.
4362         (adddi3): Use satisfies_constraint functions instead of the old macros.
4363         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4364         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4365         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4366         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4367         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4368         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4369         EXTRA_CONSTRAINT): Delete.
4370         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4371         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4372         of the old macros.
4373         * config/bfin/bfin.c: Include "tm-constrs.h".
4374         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4375         Use satisfies_constraint functions instead of the old macros.
4376         * doc/md.texi (Blackfin Constraints): Update file name reference.
4377
4378 2008-04-11  Richard Guenther  <rguenther@suse.de>
4379
4380         PR tree-optimization/35869
4381         * tree-vrp.c (execute_vrp): Move switch statement update after
4382         jump threading.  Schedule another cfg cleanup run.
4383
4384 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4385
4386         PR c/35744
4387         * attribs.c (decl_attributes): Return early on errorneous node.
4388
4389 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4390
4391         * tree.h (struct tree_base): Added a new flag default_def_flag.
4392         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4393
4394 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4395
4396         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4397
4398 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4399
4400         PR target/35768
4401         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4402         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4403         (icacheflush): Likewise.
4404         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4405         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4406
4407 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4408
4409         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4410
4411 2008-04-10  Rafael Espindola  <espindola@google.com>
4412
4413         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4414         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4415         (extract_range_from_expr): The same.
4416
4417 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4418
4419         * config/mips/mips.md (GPR2): New mode iterator.
4420         (seq): Add comment.
4421         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4422         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4423         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4424         Rewrite these to take two modes, the mode of comparison and the
4425         mode of the destination.
4426         * config/mips/mips.c (mips_expand_scc): Instead of having
4427         paradoxical subreg as destination, expand "narrowing" scc if mode
4428         of comparison is SI and target is requested in DI mode.
4429         (mips_emit_int_order_test): Update comment.  Make mode of
4430         comparison match CMP0 rather than TARGET.  When creating inverse
4431         target use mode of TARGET.
4432
4433 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4434
4435         * gcov-dump.c (tag_summary): Only print summaries for the first
4436         GCOV_COUNTERS_SUMMABLE counters.
4437
4438 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4439
4440         * config/i386/i386.md (absneg): New code iterator.
4441         (absnegprefix): New code attribute.
4442         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4443         patterns using absneg code iterator.
4444         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4445         using absneg code iterator.
4446         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4447         *neg<mode>2 patterns using absneg code iterator.
4448         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4449         *negextendsfdf2 patterns using absneg code iterator.
4450         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4451         *negextendsfxf2 patterns using absneg code iterator.
4452         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4453         *negextendsfdf2 patterns using absneg code iterator.
4454         * config/i386/sse.md (<code><mode>2): Macroize expander from
4455         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4456
4457 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4458
4459         * config/s390/s390.h: Remove the remains of the recent search
4460         & replace action of current_function_outgoing_args_size.
4461
4462 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4463
4464         PR tree-optimization/35821
4465         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4466         NEW_STMT_LIST is not NULL.
4467
4468 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4469
4470         PR libstdc++/35597
4471         * toplev.c (process_options): Remove -ffunction-sections debugging
4472         warning.
4473
4474 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4475
4476         PR middle-end/PR28690
4477         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4478         than gen_rtx_fmt_ee to perform more canonicalizations.
4479
4480 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4481
4482         PR driver/35665
4483         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4484
4485 2008-04-09  Richard Guenther  <rguenther@suse.de>
4486
4487         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4488         (dump_function_to_file): Dump function arguments with types.
4489
4490 2008-04-08  Richard Guenther  <rguenther@suse.de>
4491
4492         * fold-const.c (fold_widened_comparison): Do not allow
4493         sign-changes that change the result.
4494
4495 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4496
4497         PR target/35839
4498         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4499         kinds of indirect references.
4500
4501 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4502
4503         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4504         GNU Fortran language string.
4505
4506 2008-04-08  Rafael Espindola  <espindola@google.com>
4507
4508         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4509         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4510         * tree.h (tree_call_nonnegative_warnv_p): New.
4511
4512 2008-04-08  Jan Hubicka  <jh@suse.cz>
4513
4514         * function.c (free_after_compilation): Clear out regno_reg_rtx
4515         pointer.
4516
4517 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4518
4519         Revert
4520         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4521
4522         PR middle-end/PR28690
4523         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4524         same precedence as REG_POINTER and MEM_POINTER operands.
4525
4526 2008-04-08  Richard Guenther  <rguenther@suse.de>
4527
4528         PR middle-end/35834
4529         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4530         for adding index to base.
4531
4532 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4533
4534         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4535         (MINGW_ENABLE_EXECUTE_STACK): New.
4536         (IN_LIBGCC2): For libgcc include windows.h file for
4537         function declarations.
4538
4539 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4540
4541         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4542         and tem2 if tem1 is not a REG or MULT.
4543
4544 2008-04-08  Jan Hubicka  <jh@suse.cz>
4545
4546         * function.h (incomming_args): Break out of struct function.
4547         (function_subsections): Break out of struct function.
4548         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4549         return_rtx and hard_reg_initial_vals from struct function.
4550         Kill inl_max_label_num.
4551         (current_function_pops_args, current_function_args_info,
4552         current_function_args_size, current_function_args_size,
4553         current_function_pretend_args_size,
4554         current_function_outgoing_args_size,
4555         current_function_internal_arg_pointer, current_function_return_rtx):
4556         Kill compatibility accestor macros.
4557         * builtins.c (expand_builtin_apply_args_1): Update.
4558         (expand_builtin_next_arg): Update.
4559         * df-scan.c (df_get_call_refs): Update.
4560         * dbxout.c (dbxout_function_end): Update.
4561         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4562         (output_line_info): Update.
4563         (secname_for_decl): Update.
4564         (dwarf2out_var_location): Update.
4565         * function.c (free_after_compilation): Update.
4566         (assign_parm_find_stack_rtl): Update.
4567         (assign_parms): Update.
4568         (expand_dummy_function_end): Update.
4569         (expand_function_end): Update.
4570         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4571         (expand_call): Update.
4572         (emit_library_call_value_1): Update.
4573         (store_one_arg): Update.
4574         * varasm.c (initialize_cold_section_name): Update.
4575         (unlikely_text_section): Update.
4576         (unlikely_text_section_p): Update.
4577         (assemble_start_function): Update.
4578         (assemble_end_function): Update.
4579         (default_section_type_flags): Update.
4580         (switch_to_section): Update.
4581         * integrate.c (set_decl_abstract_flags): Update.
4582         (get_hard_reg_initial_val): Update.
4583         (has_hard_reg_initial_val): Update.
4584         (allocate_initial_values): Update.
4585         * resource.c (init_resource_info): Update.
4586         * config/alpha/alpha.c (NUM_ARGS): Update.
4587         (direct_return): Update.
4588         (alpha_va_start): Update.
4589         (alpha_sa_size): Update.
4590         (alpha_initial_elimination_offset): Update.
4591         (alpha_expand_prologue): Update.
4592         (alpha_start_function): Update.
4593         (alpha_expand_epilogue): Update.
4594         (unicosmk_initial_elimination_offset):
4595         * config/alpha/alpha.md (call expander): Update.
4596         * config/s390/s390.c (s390_register_info): Update.
4597         (s390_register_info): Update.
4598         (s390_frame_info): Update.
4599         (s390_initial_elimination_offset): Update.
4600         (s390_build_builtin_va_list): Update.
4601         (s390_va_start): Update.
4602         * config/spu/spu.c (direct_return): Update.
4603         (spu_expand_prologue): Update.
4604         (spu_initial_elimination_offset): Update.
4605         (spu_build_builtin_va_list): Update.
4606         (spu_va_start): Update.
4607         * config/sparc/sparc.c (sparc_init_modes): Update.
4608         (sparc_compute_frame_size): Update.
4609         (function_value): Update.
4610         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4611         * config/i386/i386.md (return expander): Update.
4612         * config/i386/i386.c (ix86_va_start): Update.
4613         (ix86_can_use_return_insn_p): Update.
4614         (ix86_compute_frame_layout): Update.
4615         (ix86_expand_epilogue): Update.
4616         * config/sh/sh.c (output_stack_adjust): Update.
4617         (calc_live_regs): Update.
4618         (sh_expand_prologue): Update.
4619         (sh_builtin_saveregs): Update.
4620         (sh_va_start): Update.
4621         (initial_elimination_offset): Update.
4622         (sh_allocate_initial_value): Update.
4623         (sh_function_ok_for_sibcall): Update.
4624         (sh_get_pr_initial_val): Update.
4625         * config/sh/sh.md (return expander): Update.
4626         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4627         * config/crx/crx.c (crx_compute_frame): UPdate.
4628         (crx_initial_elimination_offset): UPdate.
4629         * config/xtensa/xtensa.c (compute_frame_size): Update
4630         (xtensa_builtin_saveregs): Update.
4631         (xtensa_va_start): Update.
4632         (order_regs_for_local_alloc): Update.
4633         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4634         (xstormy16_expand_builtin_va_start): Update.
4635         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4636         * config/m68hc11/m68hc11.md (return expanders): Update.
4637         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4638         (expand_epilogue): Update.
4639         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4640         (cris_simple_epilogue): Update.
4641         (cris_expand_prologue): Update.
4642         (cris_expand_epilogue): Update.
4643         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4644         (compute_frame_size): Update.
4645         * config/mt/mt.c (mt_compute_frame_size): Update.
4646         * config/mn10300/mn10300.c (expand_prologue): Update.
4647         (expand_epilogue): Update.
4648         (initial_offset): Update.
4649         (mn10300_builtin_saveregs):
4650         * config/mn10300/mn10300.md (return expander): Update.
4651         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4652         (ia64_initial_elimination_offset): Update.
4653         (ia64_initial_elimination_offset): Update.
4654         (ia64_expand_prologue): Update.
4655         * config/m68k/m68k.md (return expander): Update.
4656         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4657         (rs6000_stack_info): Update.
4658         * config/mcore/mcore.c (layout_mcore_frame): Update.
4659         (mcore_expand_prolog): Update.
4660         * config/arc/arc.c (arc_compute_frame_size): Update.
4661         * config/score/score3.c (score3_compute_frame_size): Update.
4662         * config/score/score7.c (score7_compute_frame_size): Update.
4663         * config/arm/arm.c (use_return_insn): Update.
4664         (thumb_find_work_register): Update.
4665         (arm_compute_save_reg_mask): Update.
4666         (arm_output_function_prologue): Update.
4667         (arm_output_epilogue): Update.
4668         (arm_size_return_regs): Update.
4669         (arm_get_frame_offsets): Update.
4670         (arm_expand_prologue): Update.
4671         (thumb_exit): Update.
4672         (thumb_unexpanded_epilogue): Update.
4673         (thumb1_output_function_prologue): Update.
4674         * config/pa/pa.md (return expander): Update.
4675         * config/pa/pa.c (compute_frame_size): Update.
4676         (hppa_builtin_saveregs): Update.
4677         * config/mips/mips.c (mips_va_start): Update.
4678         (mips16_build_function_stub): Update.
4679         (mips_compute_frame_info): Update.
4680         (mips_restore_gp): Update.
4681         (mips_output_function_prologue): Update.
4682         (mips_expand_prologue): Update.
4683         * config/v850/v850.c (compute_frame_size): Update.
4684         (expand_prologue): * config/mmix/mmix.c (along): update.
4685         (mmix_initial_elimination_offset): update.
4686         (mmix_reorg): update.
4687         (mmix_use_simple_return): update.
4688         (mmix_expand_prologue): update.
4689         (mmix_expand_epilogue): Update.
4690         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4691         (emit_link_insn): Update.
4692
4693 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4694
4695         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4696         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4697         instructions.
4698         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4699         atmega103 device.
4700
4701 2008-04-07  Jan Hubicka  <jh@suse.cz>
4702
4703         * function.h (rtl): Rename to x_rtl.
4704         (crtl): New define.
4705         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4706         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4707         used_temp_slots avail_temp_slots, temp_slot_level,
4708         nonlocal_goto_handler_labels): Update accesstors.
4709         (rtl): New global variable.
4710         (struct function): Move some fileds to rtl_data.
4711         (get_arg_pointer_save_area): Update prototype.
4712         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4713         get_arg_pointer_save_area.
4714         * expr.c (init_expr): Update
4715         * function.c (get_frame_size): Update
4716         (assign_stack_local): Update
4717         (expand_function_end): Update.
4718         (get_art_pointer_save_area): Update
4719         * function.h 
4720         * emit-rtl.c (rtl): Declare.
4721         (regno_reg_rtx): Declare.
4722         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4723         Update.
4724         (gen_reg_rtx): Update.
4725         * varasm.c (n_deferred_constatns): Update accestor.
4726         (init_varasm_status): Do not allocate varasm_status.
4727         (force_const_mem, get_pool_size, output_constant_pool): Update.
4728         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4729         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4730         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4731         * sparc/sparc.h (INIT_EXPANDERS): Update.
4732         * ia64/ia64.h (INIT_EXPANDERS): Update.
4733
4734 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4735
4736         * reload.c (push_secondary_reload): Add missing break to for loop.
4737
4738 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4739
4740         PR middle-end/PR28690
4741         * rtlanal.c: Update copyright years.
4742         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4743         as REG_POINTER and MEM_POINTER operands.
4744         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4745         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4746         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4747         * gcse.c: Update copyright years.
4748         (pre_delete): Call gen_reg_rtx_and_attrs.
4749         (hoist_code): Likewise.
4750         (build_store_vectors): Likewise.
4751         (delete_store): Likewise.
4752         * loop-invariant.c (move_invariant_reg): Likewise.
4753         Update copyright years.
4754
4755 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4756
4757         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4758         control string instead of quoted.
4759
4760 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4761
4762         * doc/rtl.texi: Rewrite of subreg section.
4763
4764 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4765
4766         PR/35842
4767         * config/i386/i386.c (legitimize_pic_address): Add treating
4768         of dllimport SYM_REF's.
4769         (legitimize_dllimport_symbol): Add prototype.
4770
4771 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4772
4773         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4774         reference in constructor with non self-referential type.
4775
4776 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4777
4778         Removal of Return with Depressed Stack Pointer support
4779         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4780         (ECF_SP_DEPRESSED): Likewise.
4781         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4782         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4783         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4784         (expand_call): Do not test ECF_SP_DEPRESSED.
4785         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4786         * function.c (keep_stack_depressed): Delete.
4787         (handle_epilogue_set): Likewise.
4788         (update_epilogue_consts): Likewise.
4789         (emit_equiv_load): Likewise.
4790         (thread_prologue_and_epilogue_insns): Remove support for Return with
4791         Depressed Stack Pointer.
4792         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4793
4794 2008-04-06  Richard Guenther  <rguenther@suse.de>
4795
4796         PR tree-optimization/35400
4797         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4798         information from SSA_NAMEs.
4799
4800 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4801
4802         * config/avr/avr.h (avr_mega_p): Remove declaration.
4803         (AVR_MEGA): Remove macro.
4804         * config/avr/avr.c (avr_mega_p): Remove variable.
4805         (avr_override_options): Remove inicializion of avr_mega_p.
4806         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4807         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4808         (avr_jump_mode): (Ditto.).
4809         (avr_output_progmem_section_asm_op): (Ditto.).
4810         (avr_asm_init_sections): (Ditto.).
4811         (avr_asm_init_sections): (Ditto.).
4812         (avr_rtx_costs): (Ditto.).
4813         * config/avr/avr.md: (Ditto.).
4814         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4815         '__AVR_MEGA__'.
4816
4817 2008-04-06  Richard Guenther  <rguenther@suse.de>
4818
4819         PR tree-optimization/35842
4820         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4821         is_gimple_invariant_address.
4822
4823 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4824
4825         * gcc.c (default_compilers): Sync Fortran extensions list with
4826         that in fortran/lang-specs.h.
4827         * doc/invoke.texi: Likewise.
4828         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4829         * dwarf2out.c (gen_compile_unit_die): Likewise.
4830
4831 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4832
4833         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4834
4835 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4836
4837         PR target/12329
4838         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4839         attribute is used for nested functions.
4840
4841 2008-04-05  Jan Hubicka  <jh@suse.cz>
4842
4843         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4844
4845         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4846         letter argument.
4847         (dump_files): Update.
4848         (enable_rtl_dump_file): Do not accept letter argument.
4849         * tree-pass.h (dump_file_info): Remove letter argument.
4850         * toplev.c (decode_d_option): Update -da handling.
4851         * toplev.h (enable_rtl_dump_file): Update prototype.
4852         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4853         it out based on pass type.
4854         (register_dump_files_1): Likewise.
4855         (init_optimization_passes): Update register_one_dump_file calls.
4856         (execute_one_pass): Sanity check that IPA passes are called at IPA
4857         level and RTL passes at RTL level.
4858         (execute_pass_list): IPA pass can not be after or subpass of
4859         GIMPLE/RTL pass.
4860         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4861         disallov RTL subpasses of IPA subpasses.
4862
4863 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4864
4865         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4866         builtins that return exactly once and do not throw. Cache call to
4867         call_expr_flags.
4868
4869 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4870
4871         PR rtl-optimization/34916
4872         PR middle-end/35519
4873         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4874         between instruction pairs.
4875
4876 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4877
4878         * doc/invoke.texi: Document -mbitops for SH.
4879         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4880         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4881         * config/sh/sh.c (print_operand): Add %t operand code.
4882         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4883         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4884         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4885         (extendqihi2): Likewise.
4886         (movqi_i): Likewise.
4887         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4888         (extv): Use bld instruction for SH2A if possible.
4889         (extzv): Likewise.
4890         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4891         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4892         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4893         (bset.b, bclr.b): Define peepholes.
4894         * config/sh/sh.opt (mbitops): New option.
4895
4896 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4897
4898         PR target/35620
4899         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4900         and view convert expression.
4901
4902 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4903
4904         PR target/35364
4905         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4906
4907 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4908
4909         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4910
4911         * config/i386/cpuid.h (bit_AES): New.
4912         (bit_PCLMUL): Likewise.
4913
4914         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4915         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4916         SSE2 if AES or PCLMUL is enabled.
4917         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4918         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4919         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4920         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4921         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4922         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4923         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4924         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4925         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4926         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4927         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4928         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4929         __builtin_ia32_aeskeygenassist128 and
4930         __builtin_ia32_pclmulqdq128.
4931         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4932         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4933         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4934
4935         * config/i386/i386.h (TARGET_AES): New.
4936         (TARGET_PCLMUL): Likewise.
4937         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4938
4939         * config/i386/i386.md (UNSPEC_AESENC): New.
4940         (UNSPEC_AESENCLAST): Likewise.
4941         (UNSPEC_AESDEC): Likewise.
4942         (UNSPEC_AESDECLAST): Likewise.
4943         (UNSPEC_AESIMC): Likewise.
4944         (UNSPEC_AESKEYGENASSIST): Likewise.
4945         (UNSPEC_PCLMUL): Likewise.
4946
4947         * config/i386/i386.opt (maes): New.
4948         (mpclmul): Likewise.
4949
4950         * config/i386/sse.md (aesenc): New pattern.
4951         (aesenclast): Likewise.
4952         (aesdec): Likewise.
4953         (aesdeclast): Likewise.
4954         (aesimc): Likewise.
4955         (aeskeygenassist): Likewise.
4956         (pclmulqdq): Likewise.
4957
4958         * config/i386/wmmintrin.h: New.
4959
4960         * doc/extend.texi: Document AES and PCLMUL built-in function.
4961
4962         * doc/invoke.texi: Document -maes and -mpclmul.
4963
4964 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4965
4966         * function.c (free_after_parsing): Replace with
4967         cxx_push_function_context from C++ front-end.
4968         (allocate_struct_function): Don't call langhook.
4969         * langhooks.h (struct lang_hooks_for_functions): Delete.
4970         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4971         member "function".
4972         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4973         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4974         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4975         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4976         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4977         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4978         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4979
4980         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4981         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4982         
4983 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4984
4985         PR c/35440
4986         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4987         for all types.
4988
4989 2008-04-04  Richard Guenther  <rguenther@suse.de>
4990
4991         PR middle-end/35823
4992         * fold-const.c (optimize_minmax_comparison): Use the correct
4993         type for the constant in the simplified comparison.
4994
4995 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
4996
4997         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
4998         Pass L2 size as "--param l2-cache-size" to the compiler.
4999         (decode_l2_cache): New function to decode L2 cache parameters using
5000         0x8000006 extended cpuid function.
5001         (detect_caches_amd): Determine parameters of L2 cache using
5002         decode_l2_caches function.
5003         (decode_caches_intel): Decode L2 cache parameters.
5004         (detect_caches_intel): Determine L2 cache parameters using
5005         decode_caches_intel and decode_l2_caches functions.
5006
5007 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5008
5009         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5010         secondary input reload for subword loads from the constant pool.
5011
5012 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5013
5014         PR target/35713
5015         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5016           constants of the appropriate size for runtime calculations.
5017
5018         PR c/35712
5019         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5020           decimal-float literal constant zero.
5021
5022 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5023
5024         PR c/35738
5025         * c-parser.c (c_parser_omp_atomic): Call
5026         default_function_array_conversion on the RHS.
5027
5028         PR middle-end/35818
5029         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5030         call is_variable_sized if decl has incomplete type.
5031
5032 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5033
5034         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5035
5036 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5037
5038         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5039         iterators.
5040         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5041         (sgt<u>): Merge sgt and sgtu into new expander.
5042         (sgt, sgtu): Remove expanders.
5043         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5044         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5045         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5046         *sgtu_<mode>_mips16 into new pattern.
5047         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5048         (sge<u>): Merge sge and sgeu into new expander.
5049         (sge, sgeu): Remove expanders.
5050         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5051         new pattern.
5052         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5053         (slt<u>): Merge slt and sltu into new expander.
5054         (slt, sltu): Remove expanders.
5055         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5056         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5057         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5058         *sltu_<mode>_mips16 into new pattern.
5059         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5060         (sle<u>): Merge sle and sleu into new expander.
5061         (sle, sleu): Remove expanders.
5062         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5063         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5064         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5065         *sleu_<mode>_mips16 into new pattern.
5066         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5067
5068 2008-04-03  Jan Hubicka  <jh@suse.cz>
5069
5070         PR tree-optimization/35795
5071         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5072         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5073         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5074         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5075         * score/score3.c (score3_output_mi_thunk): Likewise.
5076         * score/score7.c (score7_output_mi_thunk): Likewise.
5077         * mips/mips.c (mips_output_mi_thunk): Likewise.
5078
5079 2008-04-03  Richard Guenther  <rguenther@suse.de>
5080
5081         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5082         conversions.  Simplify code.
5083
5084 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5085
5086         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5087
5088 2008-04-03  Tom Tromey  <tromey@redhat.com>
5089             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5090
5091         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5092         * config/bfin/t-bfin-linux (generated_files): Add
5093         linux-sysroot-suffix.h.
5094         * doc/install.texi (Prerequisites): Require make 3.80.
5095         * doc/sourcebuild.texi (Front End Directory): Document new
5096         variable.
5097         * Makefile.in (generated_files): New variable.
5098         (ALL_HOST_OBJS): New variable.
5099         ($(ALL_HOST_OBJS)): New target.
5100
5101 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5102
5103         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5104         (remap_block): Call id->transform_lang_insert_block instead
5105         of langhook.
5106         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5107         Set id.transform_lang_insert_block to NULL.
5108         (clone_body): Move to cp/optimize.c
5109         * tree-inline.h (struct copy_body_data): Change
5110         transform_lang_insert_block to function pointer.
5111         (copy_generic_body, copy_decl_no_change): Export.
5112         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5113         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5114         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5115
5116         * c-tree.h (insert_block): Kill.
5117         * c-decl.c (insert_block): Kill.
5118
5119 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5120
5121         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5122         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5123         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5124         argument.
5125         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5126         argument, call {push,pop}_function_context from here.
5127         * c-parser.c: Use c_{push,pop}_function_context.
5128
5129         * function.c (push_function_context_to): Move meat ...
5130         (push_function_context): ... here.  Simplify.
5131         * function.c (pop_function_context_from): Move meat ...
5132         (pop_function_context): ... here.  Simplify.
5133         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5134         leave_nested).
5135         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5136         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5137         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5138         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5139
5140 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5141
5142         * expmed.c (extract_force_align_mem_bit_field): Remove.
5143
5144 2008-04-03  Richard Guenther  <rguenther@suse.de>
5145
5146         PR middle-end/35800
5147         * expr.h (try_casesi): Adjust prototype.
5148         * expr.c (try_casesi): Take fallback label as extra parameter.
5149         Use that for gen_casesi if default_label is NULL.
5150         * stmt.c (expand_case): Pass fallback label to try_casesi,
5151         make sure to fill gaps with a fallback label if default_label
5152         is not present.
5153
5154 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5155
5156         PR target/35801
5157         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5158
5159 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5160
5161         * expmed.c (extract_split_bit_field): Remove if (0) code.
5162         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5163         (do_ds_constraint): Likewise.
5164
5165 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5166
5167         * doc/cppopts.texi (-dU): Document.
5168         * c-common.h (flag_dump_macros): Update comment.
5169         * c-opts.c (handle_OPT_d): Handle -dU.
5170         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5171         dump_queued_macros, cb_used_define, cb_used_undef): New.
5172         (init_pp_output): Handle -dU.
5173         (cb_line_change): Call dump_queued_macros.
5174         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5175
5176 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5177
5178         * config/avr/predicates.md (io_address_operand): New predicate. 
5179         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5180         * config/avr/avr.c (avr_io_address_p): Remove function.
5181         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5182         'avr_io_address_p' function.
5183         (out_movhi_r_mr): (Ditto.).
5184         (out_movqi_mr_r): (Ditto.).
5185         (out_movhi_mr_r): (Ditto.).
5186         (avr_address_cost): (Ditto.).
5187
5188 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5189
5190         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5191         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5192         in 32bit mode when XMM registers are available to avoid store
5193         forwarding stalls.
5194         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5195         corresponding post-reload splitters.
5196
5197 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5198
5199         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5200         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5201         __builtin_ia32_roundss.
5202         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5203         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5204         __builtin_ia32_roundss.
5205         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5206         IX86_BUILTIN_SHUFPD here.
5207
5208 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5209
5210         * config/i386/i386.md (plogic): New.
5211         (plogicprefix): Likewise.
5212
5213         * config/i386/mmx.md (mmx_<code><mode>3): New.
5214         (mmx_and<mode>3): Removed.
5215         (mmx_ior<mode>3): Likewise.
5216         (mmx_xor<mode>3): Likewise.
5217
5218         * config/i386/sse.md (<code><mode>3): New.
5219         (*<code><mode>3): Likewise.
5220         (*<code><mode>3): Likewise.
5221         (<code><mode>3): Likewise.
5222         (*sse_<code><mode>3): Likewise.
5223         (*sse2_<code><mode>3): Likewise.
5224         (<code>tf3): Likewise.
5225         (*<code>tf3): Likewise.
5226         (and<mode>3): Likewise.
5227         (*and<mode>3): Likewise.
5228         (ior<mode>3): Removed.
5229         (*ior<mode>3): Likewise.
5230         (xor<mode>3): Likewise.
5231         (*xor<mode>3): Likewise.
5232         (*and<mode>3): Likewise.
5233         (*ior<mode>3): Likewise.
5234         (*xor<mode>3): Likewise.
5235         (and<mode>3): Likewise.
5236         (*sse_and<mode>3): Likewise.
5237         (*sse2_and<mode>3): Likewise.
5238         (andtf3): Likewise.
5239         (*andtf3): Likewise.
5240         (ior<mode>3): Likewise.
5241         (*sse_ior<mode>3): Likewise.
5242         (*sse2_ior<mode>3): Likewise.
5243         (iortf3): Likewise.
5244         (*iortf3): Likewise.
5245         (xor<mode>3): Likewise.
5246         (*sse_xor<mode>3): Likewise.
5247         (*sse2_xor<mode>3): Likewise.
5248         (xortf3): Likewise.
5249         (*xortf3): Likewise.
5250
5251 2008-04-02  Richard Guenther  <rguenther@suse.de>
5252
5253         PR tree-optimization/14495
5254         PR tree-optimization/34793
5255         * tree-vrp.c (struct switch_update): New structure.
5256         (to_remove_edges, to_update_switch_stmts): New VECs.
5257         (simplify_switch_using_ranges): New function.  Remove not taken
5258         case labels and edges.
5259         (simplify_stmt_using_ranges): Call it.
5260         (identify_jump_threads): Mark edges we have queued for removal
5261         so we don't thread them.
5262         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5263         case label vector.
5264         * tree-cfg.c (group_case_labels): Deal with missing default label.
5265         (tree_verify_flow_info): Allow missing default label.
5266         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5267         (emit_case_nodes): Likewise.
5268         (expand_case): Do not rely on the default label to be present.
5269         * expr.c (try_casesi): Deal with NULL default_label.
5270         (do_tablejump): Likewise.
5271
5272 2008-04-02  Richard Guenther  <rguenther@suse.de>
5273
5274         PR tree-optimization/14495
5275         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5276         SWITCH_EXPR here ...
5277         (vrp_visit_switch_stmt): ... but here (new function).
5278         (find_case_label_index): New helper function.
5279         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5280
5281 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5282
5283         * fwprop.c: Fix ISO-C99ism.
5284
5285 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5286
5287         PR bootstrap/35752
5288         * Makefile.in (objdir): Set it here.
5289         * configure.ac: Not here.  Find dynamic linker characteristics.
5290         * exec-tool.in: Use them.
5291         * aclocal.m4: Regenerate.
5292         * configure: Regenerate.
5293
5294 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5295
5296         * expr.c (expand_var): Delete it.
5297         * expr.h (expand_var): Delete prototype.
5298         * function.c (expand_function_start): Use expand_decl instead.
5299         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5300         langhook.
5301
5302 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5303
5304         PR rtl-optimization/35542
5305         * fwprop.c (forward_propagate_and_simplify): Replace
5306         loc_reg_mentioned_in_p with reg_mentioned_p.
5307
5308 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5309
5310         PR rtl-optimization/35281
5311         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5312         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5313         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5314         (varying_mem_p): Move above propagate_rtx.
5315         (all_uses_available_at): Do not check MEMs.
5316
5317 2008-04-02  Rafael Espindola  <espindola@google.com>
5318
5319         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5320         (register_edge_assert_for_2): Split the cond argument.
5321         (register_edge_assert_for_1): Adjust for the change in
5322         register_edge_assert_for_2.
5323         (register_edge_assert_for): Split the cond argument.
5324         (find_switch_asserts): Adjust for the change in
5325         register_edge_assert_for.
5326
5327 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5328
5329         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5330         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5331         offsets for 64-bit mingw.
5332         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5333         abi for x86_64-pc-mingw.
5334
5335 2008-04-02  Richard Guenther  <rguenther@suse.de>
5336
5337         * tree-vrp.c (extract_range_from_assert): Make sure to not
5338         produce range min/max with TREE_OVERFOW set.
5339         If merging a anti-range and a range keep the anti-range if
5340         the range covers all values of the type.
5341         (register_edge_assert_for_2): Only allow sign-changing
5342         conversions in detecting canonical range checks.  Also
5343         register an assert for the unsigned name if useful.
5344
5345         PR tree-optimization/35787
5346         * tree-vrp.c (vrp_val_max): New function.
5347         (vrp_val_min): Likewise.
5348         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5349         (vrp_val_is_min): Likewise.
5350         (supports_overflow_infinity): Use vrp_val_{min,max}.
5351         (negative_overflow_infinity): Likewise.
5352         (positive_overflow_infinity): Likewise.
5353         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5354         (is_positive_overflow_infinity): Likewise.
5355         (is_overflow_infinity): Likewise.
5356         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5357         vrp_val_is_{min,max}.
5358         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5359         to ranges if possible.  Avoid empty ranges.
5360
5361 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5362
5363         PR middle-end/35705
5364         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5365         the expression is a function address.
5366
5367 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5368
5369         PR fortran/35154, fortran/23057
5370         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5371         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5372         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5373         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5374         in common.
5375         (dbxout_syms): Check for COMMON-based symbol and wrap in
5376         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5377         in bracket for efficiency.
5378
5379         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5380         using DW_TAG_common_block + member offset.
5381         (add_pubname_string): New function.
5382         (dw_expand_expr): New function to find block name and offset for
5383         COMMON var.
5384         (common_check): New function to check whether symbol in Fortran COMMON.
5385         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5386
5387 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5388
5389         PR c/35436
5390         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5391
5392 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5393
5394         * config/v850/v850.md (casesi): Remove if (0) code.
5395         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5396         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5397
5398 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5399
5400         * config/i386/i386.md (rex64suffix): New mode attribute.
5401         (floathi<mode>2): Disable expander for SSE math.
5402         (*floathi<mode>2_1): New insn insn_and_split pattern.
5403         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5404         corresponding post-reload splitters.
5405         (*floathi<mode>2_i387): New macroized insn pattern.
5406         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5407         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5408         insn_and_split pattern.
5409         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5410         New macroized instruction patterns and corresponding post-reload
5411         splitters.
5412         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5413         and corresponding post-reload splitters.
5414         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5415         New macroized instruction patterns.
5416         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5417         macroized instruction patterns and corresponding post-reload splitters.
5418         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5419         corresponding post-reload splitters.
5420         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5421         New macroized instruction patterns.
5422         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5423         corresponding post-reload splitters.
5424         (*floatsi<mode>2_i387): New macroized instruction patterns.
5425
5426 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5427
5428         * config/i386/i386.md (smaxmin): New.
5429         (umaxmin): Likewise.
5430         (maxminiprefix): Likewise.
5431         (maxminfprefix): Likewise.
5432         (<code><mode>3): Likewise.
5433         (smin<mode>3): Removed.
5434         (smax<mode>3): Likewise.
5435
5436         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5437         (mmx_<code>v4hi3): Likewise.
5438         (mmx_<code>v8qi3): Likewise.
5439         (mmx_smaxv2sf3): Removed.
5440         (mmx_sminv2sf3): Likewise.
5441         (mmx_umaxv8qi3): Likewise.
5442         (mmx_smaxv4hi3): Likewise.
5443         (mmx_uminv8qi3): Likewise.
5444         (mmx_sminv4hi3): Likewise.
5445
5446         * config/i386/sse.md (<addsub><mode>3): New.
5447         (*<addsub><mode>3): Likewise.
5448         (<sse>_vm<addsub><mode>3): Likewise.
5449         (<maxmin><mode>3): Likewise.
5450         (*<maxmin><mode>3_finite): Likewise.
5451         (*<maxmin><mode>3): Likewise.
5452         (<sse>_vm<maxmin><mode>3): Likewise.
5453         (sse3_h<addsub>v4sf3): Likewise.
5454         (sse3_h<addsub>v2df3): Likewise.
5455         (<maxmin>v16qi3): Likewise.
5456         (*<maxmin>v16qi3): Likewise.
5457         (<maxmin>v8hi3): Likewise.
5458         (*<maxmin>v8hi3): Likewise.
5459         (*sse4_1_<maxmin><mode>3): Likewise.
5460         (*sse4_1_<maxmin><mode>3): Likewise.
5461         (add<mode>3): Removed.
5462         (*add<mode>3): Likewise.
5463         (<sse>_vmadd<mode>3): Likewise.
5464         (sub<mode>3): Likewise.
5465         (*sub<mode>3): Likewise.
5466         (<sse>_vmsub<mode>3): Likewise.
5467         (smin<mode>3): Likewise.
5468         (*smin<mode>3_finite): Likewise.
5469         (*smin<mode>3): Likewise.
5470         (<sse>_vmsmin<mode>3): Likewise.
5471         (smax<mode>3): Likewise.
5472         (*smax<mode>3_finite): Likewise.
5473         (*smax<mode>3): Likewise.
5474         (<sse>_vmsmax<mode>3): Likewise.
5475         (sse3_haddv4sf3): Likewise.
5476         (sse3_haddv2df3): Likewise.
5477         (sse3_hsubv4sf3): Likewise.
5478         (sse3_hsubv2df3): Likewise.
5479         (umaxv16qi3): Likewise.
5480         (*umaxv16qi3): Likewise.
5481         (smaxv8hi3): Likewise.
5482         (*smaxv8hi3): Likewise.
5483         (*sse4_1_smax<mode>3): Likewise.
5484         (*sse4_1_umax<mode>3): Likewise.
5485         (uminv16qi3): Likewise.
5486         (*uminv16qi3): Likewise.
5487         (sminv8hi3): Likewise.
5488         (*sminv8hi3): Likewise.
5489         (*sse4_1_smin<mode>3): Likewise.
5490         (*sse4_1_umin<mode>3): Likewise.
5491
5492 2008-04-01  Rafael Espindola  <espindola@google.com>
5493
5494         * tree-cfg.c (verify_expr): remove in_phi.
5495         (verify_stmt): Don't call walk_tree with verify_expr. Use
5496         is_gimple_min_invariant instead of is_gimple_val.
5497
5498 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5499
5500         * doc/include/gpl_v3.texi: Update for manpage generation.
5501         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5502         gpl.texi.
5503         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5504         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5505         gpl_v3.texi instead of gpl.texi.
5506         (gpl.pod): New.
5507
5508 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5509
5510         PR pch/13675
5511         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5512
5513 2008-04-01  Rafael Espindola  <espindola@google.com>
5514
5515         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5516         (extract_code_and_val_from_cond): Use
5517         extract_code_and_val_from_cond_with_ops.
5518
5519 2008-04-01  Jan Hubicka  <jh@suse.cz>
5520
5521         * function.c (free_after_compilation): Free epilogue_delay_list.
5522         (prepare_function_start): Assert that previous compilation was freed.
5523
5524 2008-04-01  Jan Hubicka  <jh@suse.cz>
5525             Jim Wilson  <wilson@tuliptree.org>
5526             Andreas Tobler <andreast@gcc.gnu.org>
5527
5528         PR middle-end/35781
5529         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5530         rtl.emit instead cfun->emit.
5531         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5532         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5533
5534 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5535
5536         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5537
5538 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5539
5540         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5541         New options
5542         (fprofile-use): Add var flag_profile_use
5543         * coverage.c (coverage_begin_output): Do not open a gcno file for
5544         output only if -ftest-coverage is set.
5545         Do not add getpwd() to gcda file path.
5546         (build_gcov_info): Check the new flag
5547         flag_profile_datafile_relative_path.
5548         (coverage_init): Use profile_data_prefix.
5549         Read profile counter only if flag_profile_use is set.
5550         * opts.c (common_handle_option): New option fprofile-use=,
5551         fprofile-dir=, fprofile-generate=.
5552         * toplev.c (profile_data_prefix): New variable definition.
5553         * toplev.h (profile_data_prefix): New declaration.
5554         * doc/invoke.tex (Option Summary, Optimization Options):
5555         Add new options.
5556
5557 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5558
5559         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5560         use tmp consistently.
5561
5562         PR target/35695
5563         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5564         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5565         UNSPEC_FR_RECIP_APPROX_RES.
5566         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5567
5568 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5569
5570         PR c/35750
5571         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5572
5573 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5574
5575         PR middle-end/30186
5576         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5577         element of the vector via a pointer.
5578
5579 2008-03-31  Ian Lance Taylor  <iant@google.com>
5580
5581         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5582
5583 2008-03-31  Jan Hubicka  <jh@suse.cz>
5584
5585         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5586         get_arg_pointer_save_area.
5587         * expr.c (init_expr): Just clear out rtl.expr.
5588         * function.c (free_after_compilation): Clear out whole RTL structure.
5589         (get_func_frame_size): Merge into ...
5590         (get_frame_size): ... this one.
5591         (assign_stack_local_1): Merge into ...
5592         (assign_stack_local): ... this one.
5593         (expand_function_end): Update call of get_arg_pointer_save_area.
5594         (get_art_pointer_save_area): Remove cfun argument.
5595         * function.h (emit_status): regno_pointer_align does not need length
5596         attribute. Move x_regno_reg_rtx to ...
5597         (regno_reg_rtx): ... new global array.
5598         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5599         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5600         apply_args_value, forced_labels, stack_pointer_delta):
5601         Update accestors.
5602         (struct varasm_status): Move here from varasm.c
5603         (struct rtl_data): New. Move here some fields from struct function.
5604         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5605         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5606         used_temp_slots avail_temp_slots, temp_slot_level,
5607         nonlocal_goto_handler_labels): Update accesstors.
5608         (rtl): New global variable.
5609         (struct function): Move some fileds to rtl_data.
5610         (get_arg_pointer_save_area): Update prototype.
5611         * emit-rtl.c (rtl): Declare.
5612         (regno_reg_rtx): Declare.
5613         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5614         Update.
5615         (gen_reg_rtx): Update.
5616         (init_virtual_regs): Do not tate emit_status argument.
5617         (init_emit): Do not allocate emit.
5618         * varasm.c (varasm_statuc): Move to function.h.
5619         (n_deferred_constatns): Update accestor.
5620         (init_varasm_status): Do not allocate varasm_status.
5621         (force_const_mem, get_pool_size, output_constant_pool): Update.
5622         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5623         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5624
5625 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5626
5627         PR rtl-optimization/35729
5628         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5629         references.
5630
5631 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5632
5633         PR target/32000
5634         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5635         load/store if memory is unaligned.
5636         (*movti_rex64): Likewise.
5637
5638         * config/i386/predicates.md (misaligned_operand): New.
5639
5640 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5641
5642         PR tree-opt/35431
5643         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5644         complex types.
5645
5646 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5647
5648         * config/ia64/constraints.md: Add 'j' constraint.
5649         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5650         (movdi_internal): Likewise.
5651
5652 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5653
5654         PR c/35748
5655         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5656
5657 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5658
5659         PR target/35757
5660         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5661         proper error message for the third argument on blendpd and
5662         blendps.
5663
5664         * config/i386/sse.md (blendbits): New.
5665         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5666
5667 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5668
5669         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5670
5671 2008-03-30  Richard Guenther  <rguenther@suse.de>
5672
5673         PR middle-end/31023
5674         * fold-const.c (fold_sign_changed_comparison): Do leave
5675         conversions to base-types alone.
5676
5677 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5678
5679         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5680         the link register if one altivec register is be saved.
5681
5682 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5683
5684         * final.c (final_scan_insn): Remove if (0) code.
5685
5686 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5687
5688         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5689
5690 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5691
5692         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5693         of V4SFmode to ix86_binary_operator_ok.
5694
5695 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5696
5697         * config/i386/i386.c (override_options): Initialize
5698         ix86_veclib_handler to ix86_veclibabi_svml when
5699         -mveclibabi=svml is used.
5700         (ix86_veclibabi_svml): New function for SVML ABI style
5701         vectorization support.
5702         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5703
5704 2008-03-28  Rafael Espindola  <espindola@google.com>
5705
5706         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5707         (tree_binary_nonnegative_warnv_p): Make it public.
5708         (tree_single_nonnegative_warnv_p): Make it public.
5709         (tree_invalid_nonnegative_warnv_p): Make it public.
5710         (tree_unary_nonzero_warnv_p): Make it public.
5711         (tree_binary_nonzero_warnv_p): Make it public
5712         (tree_single_nonzero_warnv_p): Make it public.
5713         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5714         (extract_range_from_binary_expr): Split the expr argument.
5715         (extract_range_from_unary_expr): Split the expr argument.
5716         (extract_range_from_comparison): Split the expr argument.
5717         (extract_range_from_expr): Use the new aux functions.
5718         (vrp_evaluate_conditional_warnv): Use
5719         vrp_evaluate_conditional_warnv_with_ops.
5720         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5721         (tree_binary_nonzero_warnv_p): Declare.
5722         (tree_single_nonzero_warnv_p): Declare.
5723         (tree_expr_nonzero_warnv_p): Declare.
5724         (tree_unary_nonnegative_warnv_p): Declare.
5725         (tree_binary_nonnegative_warnv_p): Declare.
5726         (tree_single_nonnegative_warnv_p): Declare.
5727         (tree_invalid_nonnegative_warnv_p): Declare.
5728
5729 2008-03-28  Richard Guenther  <rguenther@suse.de>
5730
5731         PR tree-optimization/30317
5732         PR tree-optimization/30911
5733         PR tree-optimization/34793
5734         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5735         (struct assert_locus_d): New member EXPR.
5736         (register_new_assert_for): Add EXPR parameter to support
5737         ASSERT_EXPR <name, expr OP limit>.
5738         (register_edge_assert_for_1): Adjust callers.
5739         (find_assert_locations): Likewise.
5740         (process_assert_insertions_for): Build condition from expression.
5741         (extract_range_from_assert): Handle ASSERT_EXPRs
5742         of the form ASSERT_EXPR <name, expr OP limit>.
5743         (register_edge_assert_for_2): New helper registering
5744         asserts for comparisons.  Recognize range tests of the form
5745         (unsigned)i - CST1 OP CST2.
5746         (register_edge_assert_for_1): Use it.
5747         (register_edge_assert_for): Likewise.
5748         (needs_overflow_infinity): Integer sub-types
5749         do not need overflow infinities.
5750         (vrp_val_is_max): The extreme values of integer sub-types
5751         are those of the base type.
5752         (vrp_val_is_min): Likewise.
5753         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5754         expressions.
5755
5756 2008-03-28  Nick Clifton  <nickc@redhat.com>
5757
5758         PR target/31110
5759         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5760         Return GENERAL_REGS for stack adjustment reloads.
5761
5762 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5763
5764         PR target/31334
5765         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5766         const_vector when all the vectors are constant.
5767
5768 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5769
5770         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5771         comparisons.
5772         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5773         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5774         (scc_sf): New.
5775         (s<code>_sf): Use new scc_sf attribute for opcode names.
5776
5777 2008-03-27  Tom Tromey  <tromey@redhat.com>
5778
5779         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5780         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5781         config/spu/t-spu-elf, config/i386/t-interix,
5782         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5783         config/i386/x-darwin, config/i386/x-mingw32,
5784         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5785         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5786         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5787         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5788         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5789         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5790         config/score/t-score-elf, config/arm/t-strongarm-pe,
5791         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5792         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5793         Revert automatic dependency patch.
5794
5795 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5796
5797         PR target/35657
5798         * config/i386/i386.c (ix86_function_arg_boundary): Align
5799         decimal floating point to its natural boundary.
5800
5801 2008-03-27  Richard Guenther  <rguenther@suse.de>
5802
5803         PR middle-end/35716
5804         * fold-const.c (fold_comparison): Restrict distinct decl
5805         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5806         solely rely on operand_equal_p.
5807
5808 2008-03-27  Richard Guenther  <rguenther@suse.de>
5809
5810         PR c/32511
5811         * c-common.c (handle_weak_attribute): Reject combination of
5812         weak and inline.
5813
5814 2008-03-27  Richard Guenther  <rguenther@suse.de>
5815
5816         PR tree-optimization/32810
5817         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5818         conversions from DECL_INITIAL.
5819         (fold_const_aggregate_ref): Likewise from constructor elements.
5820
5821 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5822
5823         * tree-affine.h (aff_combination_expand): Declare.
5824         (get_inner_reference_aff): Likewise.
5825         * tree-affine.c (aff_combination_expand): Split out from
5826         tree_to_aff_combination_expand.
5827         (get_inner_reference_aff): New function.
5828         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5829         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5830         (struct lim_aux_data): sm_done field removed.
5831         (mem_ref_loc_p, mem_ref_locs_p): New types.
5832         (struct mem_ref): Added id, stored, accesses_in_loop,
5833         indep_loop, dep_loop, indep_ref, dep_ref fields.
5834         Removed is_stored, locs and next fields.
5835         (memory_accesses): New variable.
5836         (movement_possibility): Do not allow moving statements
5837         that store to memory.
5838         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5839         New functions.
5840         (determine_max_movement): For statements with memory references,
5841         find the outermost loop in that the reference is independent.
5842         (move_computations_stmt): Mark the virtual operands for renaming.
5843         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5844         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5845         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5846         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5847         create_vop_ref_mapping, analyze_memory_references,
5848         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5849         get_all_locs_in_loop, ref_always_accessed_p,
5850         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5851         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5852         store_motion_loop, store_motion): New functions.
5853         (struct vop_to_refs_elt): New type.
5854         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5855         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5856         (schedule_sm): Replaced by...
5857         (execute_sm): ... this.
5858         (determine_lsm_ref, hoist_memory_references,
5859         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5860         find_more_ref_vops, free_mem_ref, free_mem_refs,
5861         determine_lsm_loop, determine_lsm): Removed.
5862         (tree_ssa_lim_finalize): Free data structures used by store motion.
5863         (tree_ssa_lim): Call analyze_memory_references.  Use
5864         store_motion instead of determine_lsm.
5865
5866 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5867
5868         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5869         rename tmake_file to m68hc11/t-m68hc11.
5870         (mcore): Set inhibit_libc to true.
5871         * config.host (alpha*-dec-*vms*): Set extra_programs.
5872         (interix3*): Don't use host_xmake_file.
5873         * configure.ac: Let config.gcc override inhibit_libc.
5874         * configure: Regenerate.
5875
5876         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5877         * config/t-openbsd-thread: Remove commented out lines.
5878         
5879         * config/x-interix: Remove.
5880
5881         * config/m68hc11/t-m68hc11-gas: Rename to...
5882         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5883
5884         * config/mcore/t-mcore: Remove T_CFLAGS.
5885         * config/mcore/t-mcore-pe: Likewise.
5886
5887 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5888
5889         * configure.ac: Replace custom __GNU_SOURCE test with
5890         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5891         * aclocal.m4: Regenerate.
5892         * configure: Regenerate.
5893         * config.in: Regenerate.
5894
5895 2008-03-27  Richard Guenther  <rguenther@suse.de>
5896
5897         * fold-const.c (target.h): Include.
5898         (fold_comparison): Fold comparison of addresses of decls
5899         that bind locally or of constants.  Consolidate address folding code.
5900         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5901         results from fold_binary_to_constant.
5902         (compare_values_warnv): Likewise.
5903
5904 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5905
5906         PR middle-end/35429
5907         * fold-const.c (fold_truthop): Check for integeral types when folding
5908         a == 0 && b == 0 and a != 0 || b != 0 .
5909
5910 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5911
5912         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5913
5914 2008-03-26  Andreas Schwab  <schwab@suse.de>
5915
5916         * doc/invoke.texi: Fix use of @item vs. @itemx.
5917
5918 2008-03-26  Tom Tromey  <tromey@redhat.com>
5919
5920         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5921         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5922         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5923         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5924         build/genconstants.o, build/genemit.o, build/genextract.o,
5925         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5926         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5927         options.h.
5928
5929 2008-03-26  Richard Guenther  <rguenther@suse.de>
5930
5931         Revert
5932         2008-03-26  Richard Guenther  <rguenther@suse.de>
5933
5934         * fold-const.c (target.h): Include.
5935         (fold_comparison): Fold comparison of addresses of two decls
5936         that bind locally.  Consolidate address folding code.
5937
5938 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5939
5940         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5941         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5942         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5943         dconstsqrt2, dconstthird, dconste and/or dconst10.
5944         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5945         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5946         dconstsqrt2, dconste): Delete.
5947         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5948         Constify variable.
5949         * real.c (get_real_const): New.
5950         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5951         dconstsqrt2, dconste): Delete.
5952         (real_value_const, get_real_const): New.
5953
5954 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5955
5956         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5957
5958         * config/i386/i386.c (ix86_function_arg_boundary): Check
5959         BIGGEST_ALIGNMENT instead of 128.
5960         (setup_incoming_varargs_64): Likewise.
5961
5962 2008-03-26  Tom Tromey  <tromey@redhat.com>
5963
5964         * Makefile.in (DEPFILES): Add missing '/'.
5965
5966 2008-03-26  Richard Guenther  <rguenther@suse.de>
5967
5968         * fold-const.c (target.h): Include.
5969         (fold_comparison): Fold comparison of addresses of two decls
5970         that bind locally.  Consolidate address folding code.
5971
5972 2008-03-26  Nick Clifton  <nickc@redhat.com>
5973
5974         PR target/31232
5975         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5976         not allow INT+INT as a legitimate addressing mode.
5977
5978 2008-03-26  Richard Guenther  <rguenther@suse.de>
5979
5980         * tree-flow.h (widen_bitfield): Remove declaration.
5981         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5982         (widen_bitfield): Remove function.
5983         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5984         code.
5985
5986 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5987
5988         PR target/31558
5989         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5990         error_mark_node's.
5991
5992 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5993
5994         PR rtl-optimization/35232
5995         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
5996         (forget_old_reloads_1, forget_marked_reloads): Don't clear
5997         reg_reloaded_call_part_clobbered here.
5998         (reload_regs_reach_end_p): New function.
5999         (reload_reg_rtx_for_input): New variable.
6000         (reload_reg_rtx_for_output): Likewise.
6001         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6002         when reassigning a pseudo register.  Load reloadreg from 
6003         reload_reg_rtx_for_input, moving the mode and register
6004         calculation to...
6005         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6006         instead of the original when deciding whether an input reload
6007         would be a no-op or whether an output reload can be deleted.
6008         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6009         when setting up new_spill_reg_store.  Load it from
6010         reload_reg_rtx_for_output, moving the mode and register
6011         calculation to...
6012         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6013         instead of the original when deciding whether an output reload
6014         would be a no-op.  Do the same when modifying insn notes.
6015         Use rtx_equal_p instead of == to compare the registers.
6016         (inherit_piecemeal_p): Take a mode and two register numbers
6017         as argument.
6018         (emit_reload_insns): Clear new_spill_reg_store for every hard
6019         register in the reload register.  Remove spill registers
6020         from reg_reloaded_valid before considering whether to record
6021         inheritance information for them.  Use reload_reg_rtx_for_output
6022         instead of reg_rtx when recording output reloads.  Use
6023         reload_reg_rtx_for_input instead of reg_rtx when recording
6024         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6025         at the same time as setting reg_reloaded_valid.
6026         (delete_output_reload): Add a new_reload_reg parameter and use it
6027         instead of rld[j].reg_rtx.
6028         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6029         calls accordingly.
6030
6031 2008-03-25  Tom Tromey  <tromey@redhat.com>
6032
6033         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6034         (build/genattr.o): Likewise.
6035         (build/genattrtab.o): Likewise.
6036         (build/gencodes.o): Likewise.
6037         (build/genconfig.o): Likewise.
6038         (build/genconstants.o): Likewise.
6039         (build/genemit.o): Likewise.
6040         (build/genextract.o): Likewise.
6041         (build/genflags.o): Likewise.
6042
6043 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6044         
6045         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6046         instead of size_int for integer types.
6047         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6048         to match type of MINUS_EXPR.
6049         
6050 2008-03-25  Tom Tromey  <tromey@redhat.com>
6051
6052         * configure: Rebuilt.
6053         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6054         Makefile.
6055
6056 2008-03-25  Tom Tromey  <tromey@redhat.com>
6057
6058         * config/x-solaris (host-solaris.o): Update.
6059         * config/x-linux (host-linux.o): Update.
6060         * config/x-hpux (host-hpux.o): Update.
6061         * config/x-darwin (host-darwin.o): Update.
6062         * config/v850/t-v850e (v850-c.o): Update.
6063         * config/v850/t-v850 (v850-c.o): Update.
6064         * config/t-vxworks (vxworks.o): Update.
6065         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6066         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6067         * config/spu/t-spu-elf (spu-c.o): Update.
6068         (spu.o): Remove.
6069         * config/sh/t-symbian (sh-c.o): Update.
6070         (symbian.o): Update.
6071         * config/sh/t-sh (sh-c.o): Update.
6072         * config/score/t-score-elf (score7.o, score3.o): Update.
6073         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6074         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6075         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6076         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6077         (rs6000.o): Remove.
6078         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6079         * config/m32c/t-m32c (m32c-pragma.o): Update.
6080         * config/ia64/t-ia64 (ia64-c.o): Update.
6081         * config/i386/x-mingw32 (host-mingw32.o): Update.
6082         * config/i386/x-i386 (driver-i386.o): Update.
6083         * config/i386/x-darwin (host-i386-darwin.o): Update.
6084         * config/i386/x-cygwin (host-cygwin.o): Update.
6085         * config/i386/t-nwld (nwld.o): Update.
6086         * config/i386/t-netware (netware.o): Update.
6087         * config/i386/t-interix (winnt.o): Update.
6088         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6089         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6090         msformat-c.o): Update.
6091         * config/bfin/t-bfin-linux (generated_files): Add
6092         linux-sysroot-suffix.h.
6093         * config/arm/t-wince-pe (pe.o): Update.
6094         * config/arm/t-strongarm-pe (pe.o): Update.
6095         * config/arm/t-pe (pe.o): Update.
6096         * config/arm/t-arm (arm-c.o): Update.
6097         * doc/install.texi (Prerequisites): Require make 3.80.
6098         * Makefile.in: Remove .o targets.
6099         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6100         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6101         (simple_generated_h, simple_generated_c): Move earlier.
6102         (generated_files): New variable.
6103         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6104         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6105         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6106         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6107         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6108         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6109         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6110         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6111         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6112         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6113         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6114         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6115         (.c.o): Remove.
6116         (COMPILE.base, COMPILE): New variables.
6117         (%.o): New pattern rule.
6118         (ALL_HOST_OBJS): New variable.
6119         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6120         (dummy-checksum.o, cc1-checksum.o): Remove.
6121         (DRIVER_SHLIB): New variable.
6122         (DRIVER_DEFINES): Use it.
6123         (gencondmd.c): Move out of build/.
6124         (s-conditions): Update.
6125         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6126         (ALL_BUILD_OBJS): Likewise.
6127         (build/%.o): Use BUILDCOMPILE.
6128         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6129         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6130         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6131         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6132         build/genconfig.o, build/genconstants.o, build/genemit.o,
6133         build/genextract.o, build/genflags.o, build/genmddeps.o,
6134         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6135         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6136         build/gen-protos.o, build/scan.o, build/fix-header.o,
6137         build/scan-decls.o): Simplify.
6138         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6139         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6140         prefix.o, toplev.o): Reduce to variable setting.
6141         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6142         ($(out_object_file), gcc-options.o): New targets.
6143         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6144         * configure: Rebuilt.
6145         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6146         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6147
6148 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6149
6150         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6151         complain when we hit an error, return ERROR_MARK_NODE.
6152
6153 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6154
6155         * config/sh/constraints.md (Pso, Psz): New constraints.
6156         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6157         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6158
6159 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6160
6161         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6162         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6163
6164 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6165
6166         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6167         (prefetch_sh2a): New.   
6168
6169 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6170             Naveen.H.S  <naveen.hs@kpitcummins.com>
6171
6172         * config/sh/constraints.md (I28): New constraint.
6173         * config/sh/sh.c (broken_move): Add support for movi20s.
6174         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6175
6176 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6177             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6178             Naveen.H.S  <naveen.hs@kpitcummins.com>
6179
6180         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6181         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6182         (print_operand): Handle resbank in %@ operand code.
6183         (sh_encode_section_info): New.
6184         (push_regs): Add conditions for resbank.
6185         (sh_expand_epilogue): Likewise.
6186         (sh_insert_attributes): Likewise.
6187         (sh_attribute_table): Likewise.
6188         (sh_handle_resbank_handler_attribute): New.
6189         (sh2a_handle_function_vector_handler_attribute): New.
6190         (sh2a_is_function_vector_call): New.
6191         (sh2a_get_function_vector_number): New.
6192         (sh2a_function_vector_p): New.
6193         (sh_cfun_resbank_handler_p): New.
6194         * config/sh/sh.md (calli): Emit jsr/n if possible.
6195         (calli_tbr_rel): New.
6196         (calli_pcrel): Emit jsr/n if possible.
6197         (return_i): Emit rts/n if possible.
6198         (call_valuei_tbr_rel): New.
6199         (call_valuei_pcrel): Add condition for SH2A target.
6200         (call_value): Likewise.
6201         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6202         (sh2a_get_function_vector_number): Likewise.
6203         (sh2a_is_function_vector_call): Likewise.
6204         * doc/extend.texi: Document TBR relative addressing of SH2A.
6205         (resbank): Add description for SH2A.
6206
6207 2008-03-24  Richard Guenther  <rguenther@suse.de>
6208
6209         PR c/22371
6210         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6211         pointer assignments change conversions according to middle-end rules.
6212         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6213         * configure.ac: Include type checking in yes.
6214         * configure: Regenerate.
6215
6216 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6217
6218         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6219         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6220         
6221 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6222
6223         * gthr-vxworks.h (UNUSED): Define.
6224
6225 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6226
6227         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6228
6229 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6230
6231         * doc/extend.texi (Function Attributes): Add missing comma in the
6232         example of the "alloc_size" attribute.
6233         
6234 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6235
6236         Revert:
6237         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6238
6239         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6240         32bit host.
6241
6242         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6243
6244         PR target/35496
6245         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6246         of the underlying type of a MS bitfield layout to the natural
6247         alignment of the type.
6248
6249         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6250
6251         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6252         to their natural alignment to avoid store forwarding stalls.
6253
6254 2008-03-22  Richard Guenther  <rguenther@suse.de>
6255
6256         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6257         For PHI nodes verify the address is invariant.
6258         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6259         (get_symbol_constant_value): Use is_gimple_min_invariant.
6260         (maybe_fold_stmt_indirect): Likewise.
6261
6262 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6263
6264         PR rtl-optimization/33927
6265         * Makefile.in (dse.o): Depend on $(TM_P_H).
6266         * expr.h (extract_low_bits): Declare.
6267         * expmed.c (extract_low_bits): New function.
6268         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6269         * dse.c: Include tm_p.h.
6270         (find_shift_sequence): Remove the read_reg argument and return the
6271         read value.  Emit the instructions instead of returning them.
6272         Iterate on new_mode rather than calculating it each time.
6273         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6274         source to NEW_MODE and extract_low_bits to convert the shifted
6275         value to READ_MODE.
6276         (replace_read): Allow the load and store to have different mode
6277         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6278         or extraction instructions before trying the replacement.  Update
6279         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6280
6281 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6282
6283         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6284         to their natural alignment to avoid store forwarding stalls.
6285
6286 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6287
6288         PR target/27946
6289         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6290         encouraging but not allowing gprs for input;
6291         change the input constraint to !f#r.
6292         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6293         gprs for output;
6294         change the output constraint to !f#r.
6295
6296 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6297
6298         PR target/13958
6299         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6300         corresponding post-reload splitters.
6301         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6302         when x87 FP math is selected.
6303         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6304         New function prototype.
6305         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6306         unreachable function to ease macroization of insn patterns.
6307
6308 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6309
6310         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6311         reference dumps if ddr is NULL or dependence is unknown.
6312
6313 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6314
6315         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6316         unsigned extension into account.
6317         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6318         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6319         Do computations on a scratch register.
6320
6321 2008-03-21  Richard Guenther  <rguenther@suse.de>
6322
6323         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6324         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6325         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6326         * tree-ssa-dom.c (record_equality): Likewise.
6327         * tree-inline.c (copy_body_r): Likewise.
6328         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6329         TREE_INVARIANT.
6330
6331 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6332
6333         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6334         as 'delete_unused' argument.
6335
6336 2008-03-20  Richard Guenther  <rguenther@suse.de>
6337
6338         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6339         special casing of constant qualifiers.
6340         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6341         care about them in general.
6342         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6343         regardless of their type.
6344         (fold_stmt_r): Forcefully fold *& if we end up with that.
6345
6346 2008-03-20  Paul Brook  <paul@codesourcery.com>
6347
6348         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6349         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6350         linker flags.
6351         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6352         definition.
6353         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6354         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6355
6356 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6357
6358         * common.opt (Wmudflap): New option.
6359         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6360         (mx_register_decls): Likewise.
6361         (mudflap_finish_file): Likewise.
6362         * doc/invoke.texi: Document -Wno-mudflap.
6363
6364 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6365
6366         * c-format.c (replace_format_name_to_system_name): New.
6367         (cmp_attribs): New.
6368         (convert_format_name_to_system_name): New.
6369         (decode_format_attr): Add use of convert_format_name_to_system_name.
6370         (format_types_orig): Add gnu_ prefix to names.
6371         (check_format_info_main): Special treating of \0 escaped names for
6372         supporting multi-character format specifiers as I32, I64.
6373         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6374         (gnu_target_overrides_format_attributes): New.
6375         * c-format.h: Add structure target_ovr_attr to hold
6376         system specific formatter names.
6377         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6378         msformat-c.o file to c_target_objs and cxx_target_objs.
6379         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6380         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6381         (TARGET_N_FORMAT_TYPES): New.
6382         * config/i386/msformat-c.c: New.
6383         * config/i386/t-cygming: Add build rule for msformat-c.o.
6384         * doc/extend.texi: Add new format names gnu_* and ms_* and
6385         further details.
6386         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6387
6388 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6389
6390         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6391         optimizations turned on under -O3.
6392         (ftree-vectorize): Add that the flag is turned on with -O3.
6393
6394 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6395
6396         * regmove.c (try_auto_increment): Fix spelling error in comment.
6397         * final.c (final_scan_insn): Likewise.
6398
6399 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6400
6401         PR target/14552
6402         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6403         allocator preferences for "y" and "r" class registers.
6404         ("*mov<mode>_internal"): Ditto.
6405         ("*movv2sf_internal_rex64"): Ditto.
6406         ("*movv2sf_internal"): Ditto.
6407
6408 2008-03-19  Michael Matz  <matz@suse.de>
6409
6410         PR middle-end/35616
6411         * calls.c (expand_call): Check overlap of arguments with call
6412         address for sibcalls.
6413
6414 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6415
6416         PR target/35496
6417         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6418         of the underlying type of a MS bitfield layout to the natural
6419         alignment of the type.
6420
6421 2008-03-19  Jan Hubicka  <jh@suse.cz>
6422
6423         PR other/35094
6424         * toplev.c (decode_d_option): Handle all CPP flags.
6425         * tree-vrp.c: Update tree_pass descriptors.
6426         * regrename.c: Update tree_pass descriptors.
6427         * fwprop.c: Update tree_pass descriptors.
6428         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6429         * tree-into-ssa.c: Update tree_pass descriptors.
6430         * tree-dump.c: Update tree_pass descriptors.
6431         * tree-complex.c: Update tree_pass descriptors.
6432         * tree-dump.h: Update tree_pass descriptors.
6433         * see.c: Update tree_pass descriptors.
6434         * cgraphbuild.c: Update tree_pass descriptors.
6435         * tracer.c: Update tree_pass descriptors.
6436         * tree-loop-distribution.c: Update tree_pass descriptors.
6437         * cgraph.c: Update tree_pass descriptors.
6438         * postreload-gcse.c: Update tree_pass descriptors.
6439         * postreload.c: Update tree_pass descriptors.
6440         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6441         * tree-tailcall.c: Update tree_pass descriptors.
6442         * tree-pass.h (tree_opt_pass): Rename to ...
6443         (opt_pass) ... this one; add "type" field and remove letter field.
6444         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6445         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6446         all_lowering_passes): Update declaration.
6447         * ipa-cp.c: Update tree_pass descriptors.
6448         * final.c: Update tree_pass descriptors.
6449         * omp-low.c: Update tree_pass descriptors.
6450         * tree-ssa-dse.c: Update tree_pass descriptors.
6451         * ipa-reference.c: Update tree_pass descriptors.
6452         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6453         * auto-inc-dec.c: Update tree_pass descriptors.
6454         * reorg.c: Update tree_pass descriptors.
6455         * cgraphunit.c: Update tree_pass descriptors.
6456         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6457         * tree-ssa-ccp.c: Update tree_pass descriptors.
6458         * df-core.c: Update tree_pass descriptors.
6459         * mode-switching.c: Update tree_pass descriptors.
6460         * tree-nomudflap.c: Update tree_pass descriptors.
6461         * modulo-sched.c: Update tree_pass descriptors.
6462         * ipa-pure-const.c: Update tree_pass descriptors.
6463         * cse.c: Update tree_pass descriptors.
6464         * web.c: Update tree_pass descriptors.
6465         * tree-stdarg.c: Update tree_pass descriptors.
6466         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6467         * tree-ssa-dom.c: Update tree_pass descriptors.
6468         * tree-nrv.c: Update tree_pass descriptors.
6469         * tree-ssa-alias.c: Update tree_pass descriptors.
6470         * loop-init.c: Update tree_pass descriptors.
6471         * gimple-low.c: Update tree_pass descriptors.
6472         * ipa-inline.c: Update tree_pass descriptors.
6473         * tree-ssa-sink.c: Update tree_pass descriptors.
6474         * global.c: Update tree_pass descriptors.
6475         * ifcvt.c: Update tree_pass descriptors.
6476         * jump.c: Update tree_pass descriptors.
6477         * predict.c: Update tree_pass descriptors.
6478         * tree-ssa-loop.c: Update tree_pass descriptors.
6479         * recog.c: Update tree_pass descriptors.
6480         * dse.c: Update tree_pass descriptors.
6481         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6482         * tree-eh.c: Update tree_pass descriptors.
6483         * regmove.c: Update tree_pass descriptors.
6484         * local-alloc.c
6485         * function.c: Update tree_pass descriptors.
6486         * tree-vectorizer.c: Update tree_pass descriptors.
6487         * gcse.c: Update tree_pass descriptors.
6488         * ipa-type-escape.c: Update tree_pass descriptors.
6489         * tree-if-conv.c: Update tree_pass descriptors.
6490         * init-regs.c: Update tree_pass descriptors.
6491         * ipa.c: Update tree_pass descriptors.
6492         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6493         * rtl-factoring.c: Update tree_pass descriptors.
6494         * lower-subreg.c: Update tree_pass descriptors.
6495         * bt-load.c: Update tree_pass descriptors.
6496         * tree-dfa.c: Update tree_pass descriptors.
6497         * except.c: Update tree_pass descriptors.
6498         * emit-rtl.c: Update tree_pass descriptors.
6499         * cfgexpand.c: Update tree_pass descriptors.
6500         * tree-cfgcleanup.c: Update tree_pass descriptors.
6501         * cfgcleanup.c: Update tree_pass descriptors.
6502         * tree-ssa-pre.c: Update tree_pass descriptors.
6503         * tree-sra.c: Update tree_pass descriptors.
6504         * tree-mudflap.c: Update tree_pass descriptors.
6505         * tree-ssa-copy.c: Update tree_pass descriptors.
6506         * cfglayout.c: Update tree_pass descriptors.
6507         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6508         * tree-ssa-dce.c: Update tree_pass descriptors.
6509         * tree-ssa.c: Update tree_pass descriptors.
6510         * regclass.c: Update tree_pass descriptors.
6511         * integrate.c: Update tree_pass descriptors.
6512         * tree-optimize.c: Update tree_pass descriptors.
6513         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6514         * tree-object-size.c: Update tree_pass descriptors.
6515         * combine.c: Update tree_pass descriptors.
6516         * tree-outof-ssa.c: Update tree_pass descriptors.
6517         * bb-reorder.c: Update tree_pass descriptors.
6518         * stack-ptr-mod.c: Update tree_pass descriptors.
6519         * var-tracking.c: Update tree_pass descriptors.
6520         * tree-profile.c: Update tree_pass descriptors.
6521         * tree-vect-generic.c: Update tree_pass descriptors.
6522         * reg-stack.c: Update tree_pass descriptors.
6523         * sched-rgn.c: Update tree_pass descriptors.
6524         * tree-ssa-structalias.c: Update tree_pass descriptors.
6525         * tree-cfg.c: Update tree_pass descriptors.
6526         * passes.c (current_pass): Update declaration.
6527         (finish_optimization_passes): Update.
6528         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6529         (register_one_dump_file, register_dump_files_1, next_pass_1):
6530         Update arguments.
6531         (init_optimization_passes): Update handling of new types.
6532         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6533         * ipa-struct-reorg.c: Update tree_pass descriptors.
6534         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6535         * combine-stack-adj.c: Update tree_pass descriptors.
6536         * cfgrtl.c: Update tree_pass descriptors.
6537         * dce.c: Update tree_pass descriptors.
6538         * tree-ssanames.c: Update tree_pass descriptors.
6539
6540 2008-03-19  Richard Guenther  <rguenther@suse.de>
6541
6542         PR middle-end/35609
6543         * tree-ssa.c (walk_data): New structure.
6544         (warn_uninitialized_var): If not always_executed warn with "maybe"
6545         instead of "is".
6546         (execute_early_warn_uninitialized): Compute post-dominators.
6547         Initialize always_executed before processing each basic block.
6548
6549 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6550
6551         PR target/35504
6552         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6553         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6554
6555 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6556
6557         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6558
6559 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6560
6561         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6562         is true.
6563         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6564         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6565         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6566         target after ignore has been set, and move there also the commputation
6567         of subtarget and original_target.
6568         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6569         (LANG_HOOKS_INITIALIZER): Remove it.
6570         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6571
6572 2008-03-18  Richard Guenther  <rguenther@suse.de>
6573
6574         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6575         found an expression with constants, note that in the VN for the lhs.
6576         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6577         fold them to constants if possible.  Run cleanup_cfg if done so.
6578         (execute_pre): Return todo.
6579         (do_pre): Likewise.
6580         (execute_fre): Likewise.
6581         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6582         of constants.
6583         (get_prop_source_stmt): Look through pointer conversions.
6584
6585 2008-03-18  Jan Hubicka  <jh@suse.cz>
6586
6587         * tree-pretty-print.c: Include predict.h.
6588         (dump_generic_node): Dump predictor.
6589         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6590         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6591         * gimple-low.c (lower_stmt): Likewise.
6592         * expr.c (expand_expr_real): Likewise.
6593         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6594         them.
6595         (build_predict_expr, build_predict_expr): New.
6596         * predict.h (predictor_name, build_predict_expr): Update.
6597         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6598         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6599         * predict.def (PRED_CONTINUE): Update hitrate.
6600         * tree.def (PREDICT_EXPR): Define.
6601         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6602         do not handle BIND_EXPR.
6603         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6604         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6605         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6606         operands.
6607
6608 2008-03-18  Michael Matz  <matz@suse.de>
6609
6610         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6611
6612 2008-03-18  Richard Guenther  <rguenther@suse.de>
6613
6614         * tree-gimple.h (is_gimple_invariant_address): Declare.
6615         (is_gimple_constant): Likewise.
6616         * tree-gimple.c (is_gimple_constant): New function.
6617         (is_gimple_invariant_address): Likewise.
6618         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6619         and is_gimple_invariant_address.
6620         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6621         previous change.
6622         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6623         an addressable base.
6624
6625 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6626
6627         PR middle-end/35611
6628         * gimplify.c (gimplify_expr): Gimplify second operand of
6629         OMP_ATOMIC_LOAD.
6630
6631 2008-03-17  Richard Guenther  <rguenther@suse.de>
6632
6633         PR tree-optimization/19637
6634         * fold-const.c (fold_unary): Remove restrictions of removing
6635         intermediate pointer-conversions (P2)(P1)P0.
6636         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6637         conversion to void pointer.
6638         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6639
6640 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6641
6642         PR debug/31510
6643         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6644         emulated thread local variables.
6645
6646 2008-03-16  Richard Guenther  <rguenther@suse.de>
6647
6648         PR middle-end/35607
6649         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6650         expand TREE_INVARIANT operations that are not gimple invariant.
6651
6652 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6653
6654         * doc/extend.texi (Alignment): Say that the ABI controls
6655         the __alignof__ for non-strict-alignment targets rather
6656         than being a recommendation.
6657
6658 2008-03-15  Paul Brook  <paul@codesourcery.com>
6659
6660         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6661         annotations.
6662         (arm_output_fn_unwind): Mark functions that can not be unwound.
6663
6664 2008-03-15  Paul Brook  <paul@codesourcery.com>
6665
6666         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6667         extension instructions.
6668
6669 2008-03-15  Richard Guenther  <rguenther@suse.de>
6670
6671         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6672         and fold constant aggregate refs.
6673         (fold_const_aggregate_ref): Handle string constants
6674         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6675         (evaluate_stmt): Simplify now that ccp_fold folds constant
6676         aggregate refs.
6677
6678 2008-03-15  Paul Brook  <paul@codesourcery.com>
6679
6680         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6681         (extzv): Use gen_extzv_t2.
6682         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6683
6684 2008-03-15  Richard Guenther  <rguenther@suse.de>
6685
6686         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6687         (fold_const_aggregate_ref): Likewise.
6688         (get_value): Return NULL if we don't have any values.
6689         (ccp_finalize): Set const_val to NULL after freeing it.
6690         * tree-flow.h (get_symbol_constant_value): Declare.
6691         (fold_const_aggregate_ref): Likewise.
6692         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6693
6694 2008-03-15  Richard Guenther  <rguenther@suse.de>
6695
6696         PR middle-end/35593
6697         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6698         to not produce negative array indices if not allowed.  Add
6699         parameter to indicate that.
6700         (maybe_fold_offset_to_component_ref): Allow negative array
6701         indices only for the first member of a structure.
6702         (maybe_fold_offset_to_reference): Allow negative array indices.
6703         (maybe_fold_stmt_addition): Likewise.
6704
6705 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6706             Anatoly Sokolov <aesok@post.ru>
6707
6708         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6709         (avr_arch): Add ARCH_AVR6.
6710         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6711         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6712         instead of fixed value 2.
6713         (print_operand_address): Use gs() asm specifier instead of pm().
6714         (avr_assemble_integer): (Ditto.).
6715         (avr_output_addr_vec_elt): (Ditto.).
6716         (print_operand): Handle "!" code.
6717         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6718         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6719         (AVR_HAVE_EIJMP_EICALL): Define.
6720         (AVR_3_BYTE_PC): Redefine.
6721         (AVR_2_BYTE_PC): (Ditto.).
6722         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6723         (LINK_SPEC): Add atmega2560 and atmega2561.
6724         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6725         (crtm2561.o).
6726         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6727         for 3 byte PC devices.
6728         (call_value_insn): (Ditto.).
6729         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6730         (indirect_jump): Use only for for 2 byte PC devices.
6731         (*tablejump): (Ditto.).
6732         (*indirect_jump_avr6): Add insn.
6733         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6734         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6735         instead of ijmp for 3 byte PC devices.
6736         (__tablejump2__): (Ditto.).
6737         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6738         (MULITLIB_DIRNAMES): (Ditto.). 
6739         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6740
6741 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6742
6743         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6744         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6745         ("mmx_psadbw"): Use V1DI mode for operand 0.
6746         * config/i386/i386-modes.def (V1SI): New vector mode.
6747         * config/i386/i386.c (struct builtin_description)
6748         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6749         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6750         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6751         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6752         v1di_ftype_v8qi_v8qi type.
6753         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6754
6755         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6756         __builtin_ia32_pmuludq]: Fix the mode of return value.
6757
6758 2008-03-15  Richard Guenther  <rguenther@suse.de>
6759
6760         PR middle-end/35595
6761         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6762         being a PHI_NODE.
6763
6764 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6765         
6766         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6767         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6768         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6769         unless TARGET_SERIALIZE_VOLATILE is enabled.
6770         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6771         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6772         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6773
6774 2008-03-14  Richard Guenther  <rguenther@suse.de>
6775
6776         PR tree-optimization/34172
6777         * tree-flow.h (refs_may_alias_p): Declare.
6778         (get_single_def_stmt): Likewise.
6779         (get_single_def_stmt_from_phi): Likewise.
6780         (get_single_def_stmt_with_phi): Likewise.
6781         * tree-dfa.c (refs_may_alias_p): New function.
6782         (get_single_def_stmt): Likewise.
6783         (get_single_def_stmt_from_phi): Likewise.
6784         (get_single_def_stmt_with_phi): Likewise.
6785         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6786         (vn_reference_lookup_1): New helper function.
6787         (vn_reference_lookup): Walk the virtual use-def chain to
6788         continue searching for a match if the def does not alias the
6789         reference we are looking for.
6790
6791 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6792
6793         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6794         archive and Perzl.  Update The Written Word listing.
6795
6796 2008-03-14  Richard Guenther  <rguenther@suse.de>
6797
6798         PR tree-optimization/34043
6799         PR tree-optimization/33989
6800         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6801         when doing FRE.
6802         (bitmap_find_leader): Use extra argument to verify dominance
6803         relationship inside a basic-block.
6804         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6805         (find_leader_in_sets): Adjust.
6806         (create_component_ref_by_pieces): Take extra argument for
6807         dominance check, handle lookup failures.
6808         (find_or_generate_expression): Likewise.
6809         (create_expression_by_pieces): Likewise.
6810         (insert_into_preds_of_block): Adjust.
6811         (create_value_expr_from): If asked for, verify all operands
6812         are in the blocks AVAIL_OUT set.
6813         (make_values_for_stmt): Check for SSA_NAMEs that are life
6814         over an abnormal edge.
6815         (compute_avail): Remove such check.
6816         (do_SCCVN_insertion): New function.
6817         (eliminate): If we do not find a leader suitable for replacement
6818         insert a replacement expression from SCCVN if available.
6819         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6820         (struct vn_ssa_aux): Add needs_insertion flag.
6821         * tree-ssa-sccvn.c (may_insert): New global flag.
6822         (copy_reference_ops_from_ref): Value-number union member access
6823         based on its size, not type and member if insertion is allowed.
6824         (visit_reference_op_load): For a weak match from union type
6825         punning lookup a view-converted value and insert a SSA_NAME
6826         for that value if that is not found.
6827         (visit_use): Make dumps shorter.  Do not disallow value numbering
6828         SSA_NAMEs that are life over an abnormal edge to constants.
6829         (free_scc_vn): Release inserted SSA_NAMEs.
6830         (run_scc_vn): New flag to specify whether insertion is allowed.
6831         Process SSA_NAMEs in forward order.
6832         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6833         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6834         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6835         pointer type to/from integral types that do not change the
6836         precision to regular conversions.
6837
6838 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6839
6840         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6841         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6842         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6843         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6844         input arguments and the mode of return value.  Built-in functions
6845         that operate on whole 64-bit MMX register now use V1DI mode.
6846
6847 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6848             Olga Golovanevsky  <olga@il.ibm.com>
6849
6850         PR tree-optimization/35041
6851         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6852         to locate the right position in a statement.
6853
6854 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6855
6856         PR target/34000
6857         PR target/35553
6858         * config/i386/xmmintrin.h:  Change all static inline functions to
6859         extern inline and add __gnu_inline__ attribute.
6860         * config/i386/bmintrin.h: Ditto.
6861         * config/i386/smmintrin.h: Ditto.
6862         * config/i386/tmmintrin.h: Ditto.
6863         * config/i386/mmintrin-common.h: Ditto.
6864         * config/i386/ammintrin.h: Ditto.
6865         * config/i386/emmintrin.h: Ditto.
6866         * config/i386/pmmintrin.h: Ditto.
6867         * config/i386/mmintrin.h: Ditto.
6868         * config/i386/mm3dnow.h: Ditto.
6869
6870 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6871
6872         PR middle-end/35185
6873         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6874         (lower_omp_2): New function.
6875         (lower_omp_1, lower_omp): Rewritten.
6876
6877 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6878
6879         PR 35054
6880         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6881         with the phrase "Microsoft Windows compilers".
6882         (Push/Pop Macro Pragmas): New subsection. Document
6883         #pragma push_macro and pragma pop_macro.
6884
6885 2008-03-12  Paul Brook  <paul@codesourcery.com>
6886
6887         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6888
6889 2008-03-12  Paul Brook  <paul@codesourcery.com>
6890
6891         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6892         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6893         (thumb2_addsi_shortim): Rename ...
6894         (thumb2_addsi_short): ... to this.  Allow register operands.
6895         (thumb2_subsi_short): New pattern.
6896         (thumb2_one_cmplsi2_short,
6897         thumb2_negsi2_short): New patterns and peepholes.
6898
6899 2008-03-12  Paul Brook  <paul@codesourcery.com>
6900
6901         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6902
6903 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6904
6905         * config/i386/i386.md (int_cond): New code iterator.
6906         (fp_cond): Ditto.
6907         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6908         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6909         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6910         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6911         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6912         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6913         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6914         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6915
6916 2008-03-12  Paul Brook  <paul@codesourcery.com>
6917
6918         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6919         instead of {arm,thumb}_compute_save_reg_mask.
6920         (output_return_instruction): Ditto.
6921         (thumb_unexpanded_epilogue): Ditto.
6922         (thumb1_expand_prologue): Ditto.
6923         (thumb1_output_function_prologue): Ditto.
6924         (arm_set_return_address): Ditto.
6925         (thumb_set_return_address): Ditto.
6926         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6927         regs to achieve stack alignment.
6928         (thumb1_compute_save_reg_mask): Fix compiler warning.
6929         (arm_output_epilogue): Use offsets->saved_regs_mask.
6930         Adjust stack pointer by poping call clobered registers.
6931         (arm_expand_prologue): Use offsets->saved_regs_mask.
6932         Adjust stack pointer by pushing extra registers.
6933         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6934
6935 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6936
6937         PR tree-opt/35422
6938         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6939         conversion to the operands of a multiplication.
6940
6941 2008-03-12  Richard Guenther  <rguenther@suse.de>
6942
6943         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6944         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6945         * timevar.def (TV_TREE_PHIPROP): Add.
6946         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6947         pass description.  Use TV_TREE_PHIPROP.
6948         * tree-ssa-forwprop.c: Remove phiprop code.
6949
6950 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6951
6952         PR middle-end/35549
6953         * omp-low.c (maybe_lookup_decl): Constify first argument.
6954         (use_pointer_for_field): Change last argument from bool to
6955         omp_context *.  Disallow shared copy-in/out in nested
6956         parallel if decl is shared in outer parallel too.
6957         (build_outer_var_ref, scan_sharing_clauses,
6958         lower_rec_input_clauses, lower_copyprivate_clauses,
6959         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6960
6961 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6962             Ira Rosen  <irar@il.ibm.com>
6963
6964         * tree-vectorizer.c (free_stmt_vec_info): New function.
6965         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6966         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6967         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6968         * tree-vect-transform.c (vectorizable_conversion): Free
6969         vec_oprnds0 if it was allocated.
6970         (vect_permute_store_chain): Remove unused VECs.
6971         (vectorizable_store): Free VECs that are allocated in the..
6972         function.
6973         (vect_transform_strided_load, vectorizable_load): Likewise.
6974         (vect_remove_stores): Simplify the code.
6975         (vect_transform_loop): Move code to vect_remove_stores().
6976         Call vect_remove_stores() and free_stmt_vec_info().
6977
6978 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6979
6980         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6981         TARGET_HPUX.  Revise comment.
6982         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6983         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6984         Use sr4 variant of `be' instruction when not generating PIC code.
6985         (attr_length_call): Adjust for above change.
6986
6987 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6988
6989         * ipa-reference.c (static_execute): Remove module_statics_const and
6990         associated setting code.
6991
6992 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6993
6994         PR target/35540
6995         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
6996         predicate for operand 1.
6997         (paritysi2_cmp): Use register_operand predicate for operand 2.
6998         Use earlyclobber modifier for operand 1.  Remove support for
6999         memory operands.
7000         (paritydi2_cmp): Use register_operand predicate for operand 3.
7001         Use earlyclobber modifier for operand 1.  Remove support for
7002         memory operands.
7003
7004 2008-03-11  Paul Brook  <paul@codesourcery.com>
7005             Vladimir Prus  <vladimir@codesourcery.com>
7006
7007         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7008         (arm_compute_save_reg0_reg12_mask): Always
7009         check if register 11 must be saved.  Always safe hard frame pointer
7010         when frame_pointer_needeed.
7011         (arm_compute_save_reg_mask): Save IP and PC
7012         only with apcs frames.
7013         (arm_output_epilogue): Adjust Thumb2 codepath to
7014         be also invoked and work for ARM non-apcs frames.
7015         (arm_expand_prologue): Don't bother saving IP
7016         for non-apcs frame, since it's not clobbered by
7017         prologue code.  Implement non-apcs frame
7018         layout.
7019
7020 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7021
7022         PR rtl-optimization/35281
7023         * expr.c (convert_move): Use a new pseudo for the intermediate
7024         from_mode->word_mode result.
7025
7026 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7027
7028         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7029         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7030         * toplev.c (compile_file): Don't call it.
7031
7032 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7033
7034         PR middle-end/35526
7035         * expr.c (store_expr): Call emit_block_move if the mode
7036         of "temp" RTX is BLKmode.
7037
7038 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7039             Richard Guenther  <rguenther@suse.de>
7040
7041         PR tree-optimization/31358
7042         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7043         the step with a NULL_TREE.
7044         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7045         to sizetype if type is a pointer type.
7046         (add_candidate_1): Don't convert the base and step to
7047         the generic type if the orginal type is a pointer type.
7048         (add_iv_value_candidates): Use sizetype for the step
7049         if type is a pointer type.
7050         (cand_value_at): Likewise.
7051         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7052         for pointer types.
7053         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7054         Don't convert the tem affine to the type.
7055         (add_elt_to_tree): Use sizetype for the step if a pointer.
7056         Use POINTER_PLUS_EXPR for pointers.
7057         (aff_combination_to_tree): Use sizetype for the step if a
7058         pointer.
7059
7060 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7061
7062         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7063         Remove commutativity hint.
7064
7065 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7066
7067         PR c/35438
7068         PR c/35439
7069         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7070         errorneous type.  Check that v is a VAR_DECL.
7071
7072         PR middle-end/35099
7073         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7074
7075 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7076
7077         PR tree-optimization/35494
7078         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7079         may be overriden at link and run time.
7080
7081 2008-03-10  Richard Guenther  <rguenther@suse.de>
7082
7083         PR tree-optimization/34677
7084         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7085         (poolify_tree): Likewise.
7086         (modify_expr_template): Likewise.
7087         (poolify_modify_stmt): Likewise.
7088         (insert_fake_stores): Handle all component-ref style stores
7089         in addition to INDIRECT_REF.  Also handle complex types.
7090         Do not poolify the inserted load.
7091         (realify_fake_stores): Do not rebuild the tree but only
7092         make it a SSA_NAME copy.
7093         (init_pre): Remove initialzation of modify_expr_template.
7094         Do not allocate modify_expr_node_pool.
7095         (fini_pre): Do not free modify_expr_node_pool.
7096
7097 2008-03-10  Paul Brook  <paul@codesourcery.com>
7098
7099         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7100         to avoid conflicts.
7101
7102 2008-03-10  Paul Brook  <paul@codesourcery.com>
7103             Mark Shinwell  <shinwell@codesourcery.com>
7104
7105         * config/arm/cortex-r4.md: New.
7106         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7107         insn attributes.
7108         * config/arm/arm.md: Include cortex-r4.md.
7109         (insn): Add smmls, sdiv and udiv values.
7110         (generic_sched): Don't use generic scheduling for Cortex-R4.
7111         (arm_issue_rate): New function.
7112         (TARGET_SCHED_ISSUE_RATE): Define.
7113
7114 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7115
7116         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7117
7118 2008-03-10  Richard Guenther  <rguenther@suse.de>
7119
7120         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7121         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7122
7123 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7124
7125         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7126         Set default to true.
7127
7128 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7129
7130         * c.opt (Wsynth): Deprecate.
7131         * doc/invoke.texi (Option Summary, Warning Options): Document
7132         -Wno-format-contains-nul.
7133
7134 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7135
7136         PR target/35496
7137         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7138         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7139
7140 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7141
7142         * config/rs6000/rs6000.c (builtin_description): Rename vector
7143         left shift operations.
7144         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7145         (altivec_vsl<VI_char>): Rename to ...
7146         (ashl<mode>3): ... new name.
7147         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7148         gen_ashlv4si3.
7149         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7150
7151 2008-03-08  Richard Guenther  <rguenther@suse.de>
7152
7153         * coverage.h (tree_coverage_counter_addr): Declare.
7154         * coverage.c (tree_coverage_counter_addr): New function.
7155         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7156         before using again.
7157         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7158         (tree_gen_one_value_profiler): Likewise.
7159         (tree_gen_ic_profiler): Likewise.
7160         (tree_gen_average_profiler): Likewise.
7161         (tree_gen_ior_profiler): Likewise.
7162
7163 2008-03-08  Richard Guenther  <rguenther@suse.de>
7164
7165         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7166         (vn_binary_op_insert): Likewise.
7167         (vn_unary_op_lookup): Likewise.
7168         (vn_unary_op_insert): Likewise.
7169         (vn_nary_op_lookup): Declare.
7170         (vn_nary_op_insert): Likewise.
7171         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7172         and binary hashes, use a single obstack for unary_op_pool
7173         and binary_op_pool.
7174         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7175         a single struct vn_nary_op_s.  Store tree code length and
7176         a variable number of operands.
7177         (struct vn_reference_op_struct): Remove unused op2.
7178         (vn_reference_op_eq): Do not compare op2.
7179         (vn_reference_op_compute_hash): Do not compute hash of op2.
7180         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7181         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7182         with vn_nary_op_compute_hash.
7183         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7184         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7185         vn_nary_op_lookup.
7186         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7187         vn_nary_op_insert.
7188         (visit_unary_op): Call nary functions.
7189         (visit_binary_op): Likewise.
7190         (process_scc): Adjust for struct vn_tables_s changes.
7191         (allocate_vn_table): Likewise.
7192         (free_vn_table): Likewise.
7193         * tree-vn.c (vn_add): Call nary functions.
7194         (vn_lookup): Likewise.
7195
7196 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7197
7198         PR target/35498
7199         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7200         wdst back after sync_compare_and_swapqhi_internal.
7201
7202 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7203
7204         PR target/22152
7205         * config/i386/i386-modes.def (V1DI): New vector mode.
7206         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7207         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7208         (MMXMODE248): Ditto.
7209         (MMXMODE): Add V1DI mode.
7210         (mmxvecsize): Change DI mode to V1DI mode.
7211         ("mov<mode>): Use MMXMODEI8 mode iterator.
7212         ("*mov<mode>_internal_rex64"): Ditto.
7213         ("*mov<mode>_internal"): Ditto.
7214         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7215         ("mmx_sub<mode>3"): Ditto.
7216         ("mmx_adddi3"): Remove insn pattern.
7217         ("mmx_subdi3"): Ditto.
7218         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7219         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7220         ("mmx_ashl<mode>3"): Ditto.
7221         ("mmx_lshrdi3"): Remove insn pattern.
7222         ("mmx_ashldi3"): Ditto.
7223         * config/i386/i386.c (classify_argument): Handle V1DImode.
7224         (function_arg_advance_32): Ditto.
7225         (function_arg_32): Ditto.
7226         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7227         mmx_addv1di3 insn pattern.
7228         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7229         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7230         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7231         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7232         Remove definitions of built-in functions.
7233         (V1DI_type_node): New node.
7234         (v1di_ftype_v1di_int): Ditto.
7235         (v1di_ftype_v1di_v1di): Ditto.
7236         (v2si_ftype_v2si_si): Ditto.
7237         (v4hi_ftype_v4hi_di): Remove node.
7238         (v2si_ftype_v2si_di): Ditto.
7239         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7240         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7241         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7242         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7243         Add new builtins using def_builtin_const.
7244         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7245         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7246         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7247         * config/i386/mmintrin.h (__v1di): New typedef.
7248         (_mm_add_si64): Cast arguments to __v1di type.
7249         (_mm_sub_si64): Ditto.
7250         (_mm_sll_pi16): Cast __count to __v4hi type.
7251         (_mm_sll_pi32): Cast __count to __v2si type.
7252         (_mm_sll_si64): Cast arguments to __v1di type.
7253         (_mm_srl_pi16): Cast __count to __v4hi type.
7254         (_mm_srl_pi32): Cast __count to __v2si type.
7255         (_mm_srl_si64): Cast arguments to __v1di type.
7256         (_mm_sra_pi16): Cast __count to __v4hi type.
7257         (_mm_sra_pi32): Cast __count to __v2si type.
7258         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7259         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7260         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7261         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7262         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7263         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7264         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7265         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7266         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7267         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7268         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7269         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7270
7271 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7272
7273         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7274
7275 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7276
7277         PR target/35373
7278         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7279         reg+const addressing for Altivec modes.  Don't generate reg+reg
7280         addressing for TFmode or TDmode quantities.
7281
7282 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7283
7284         * c-common.c (vector_types_convertible_p): Call langhook
7285         instead of comptypes.
7286
7287 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7288
7289         PR tree-opt/35402
7290         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7291         integral and scalar float variables which have a
7292         NULL DECL_INITIAL.
7293
7294 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7295
7296         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7297         dwarf_register_span hook when emitting unwind information for
7298         register-to-memory saves.
7299         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7300         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7301
7302 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7303
7304         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7305         for the same VAR_DECL.
7306
7307 2008-03-06  Tom Tromey  <tromey@redhat.com>
7308
7309         * treelang: Delete.
7310         * doc/standards.texi (Standards): Don't mention treelang.
7311         * doc/invoke.texi (Overall Options): Don't mention treelang.
7312         * doc/install.texi (Prerequisites): Don't mention bison or
7313         treelang.
7314         (Configuration): Don't mention treelang.
7315         (Building): Likewise.
7316         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7317
7318 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7319
7320         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7321         word-extractions out of a multi-word object.
7322
7323 2008-03-06  Richard Guenther  <rguenther@suse.de>
7324
7325         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7326         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7327         result type and precision.
7328         * expr.c (get_inner_reference): Set unsignedp based on the result
7329         type of BIT_FIELD_REF.
7330         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7331         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7332         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7333         for BIT_FIELD_REF.
7334         (sra_build_assignment): Likewise.
7335         (sra_build_elt_assignment): Likewise.
7336         (sra_explode_bitfield_assignment): Likewise.
7337         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7338         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7339         set BIT_FIELD_REF_UNSIGNED.
7340         (vectorizable_load): Likewise.
7341
7342 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7343
7344         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7345         at bb start.
7346
7347 2008-03-06  Richard Guenther  <rguenther@suse.de>
7348
7349         * alias.c (struct alias_set_entry): Move has_zero_child field
7350         to pack with alias_set.
7351
7352 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7353
7354         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7355         32bit host.
7356
7357 2008-03-05  Ian Lance Taylor  <iant@google.com>
7358
7359         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7360
7361 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7362
7363         * fwprop.c (update_df): Support width and offset parameters of
7364         df_ref_create.
7365         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7366         global_conflicts): Change DF_REF_EXTRACT to either
7367         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7368         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7369         * df-scan.c (df_ref_record, df_defs_record,
7370         df_ref_create_structure, df_def_record_1, df_uses_record,
7371         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7372         df_bb_refs_collect, df_entry_block_defs_collect,
7373         df_exit_block_uses_collect): Support new width and offset fields.
7374         (ref_extract_pool): New storage pool.
7375         (df_free_ref): New function.
7376         (df_reg_chain_unlink, df_free_collection_rec,
7377         df_sort_and_compress_refs): Call df_free_ref.
7378         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7379         of df_ref_extract.
7380         (df_ref_create_structure): Allocate df_ref_extract if offset and
7381         width fields are used.
7382         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7383         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7384         and SIGN_EXTRACT.
7385         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7386         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7387         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7388         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7389         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7390         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7391         (df_ref_extract): New structure.
7392         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7393         (df_ref_create): Add width and offset parameters.
7394         
7395 2008-03-05  Richard Guenther  <rguenther@suse.de>
7396
7397         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7398         Use ranges_overlap_p.
7399         (offset_overlaps_with_access): Rename
7400         to ranges_overlap_p and move ...
7401         * tree-flow-inline.h (ranges_overlap_p): ... here.
7402
7403         * tree.h (get_inner_reference, handled_component_p): Update
7404         comments.
7405
7406         * tree.h (record_component_aliases, get_alias_set,
7407         alias_sets_conflict_p, alias_sets_must_conflict_p,
7408         objects_must_conflict_p): Move declarations ...
7409         * alias.h (record_component_aliases, get_alias_set,
7410         alias_sets_conflict_p, alias_sets_must_conflict_p,
7411         objects_must_conflict_p): ... here.
7412         Include coretypes.h.
7413         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7414
7415 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7416
7417         * cfg.c: Include tree-flow.h.
7418         (remove_edge_raw): Call redirect_edge_var_map_clear.
7419         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7420         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7421         (redirect_edge_var_map_result): New.
7422         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7423         PENDING_STMT use with redirect_edge_var_map_*.
7424         * tree-ssa.c (edge_var_maps): New definition.
7425         (redirect_edge_var_map_add): New.
7426         (redirect_edge_var_map_clear): New.
7427         (redirect_edge_var_map_dup): New.
7428         (redirect_edge_var_map_vector): New.
7429         (redirect_edge_var_map_destroy): New.
7430         (ssa_redirect_edge): Replace PENDING_STMT use with
7431         redirect_edge_var_map_*.
7432         (flush_pending_stmts): Same.
7433         (delete_tree_ssa): Destroy edge var map.
7434         * tree-flow.h (struct _edge_var_map): New.
7435         Define edge_var_map vector type.
7436         Declare redirect_edge_var_map_* prototypes.
7437         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7438         * tree-cfg.c (reinstall_phi_args): Replace
7439         PENDING_STMT use with redirect_edge_var_map_*.
7440
7441 2008-03-05  Richard Guenther  <rguenther@suse.de>
7442
7443         PR tree-optimization/35472
7444         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7445         whose single use_stmt has a overlapping set of loaded and
7446         stored symbols as that use_stmt might be a noop assignment then.
7447
7448 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7449
7450         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7451
7452 2008-03-05  Richard Guenther  <rguenther@suse.de>
7453
7454         PR c++/35336
7455         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7456         should be constants.
7457         * tree-cfg.c (verify_expr): Verify it.
7458         * fold-const.c (fold_truthop): Remove code generating
7459         BIT_FIELD_REFs of structure bases.
7460         (fold_binary): Likewise.
7461         (fold_ternary): Position and size of BIT_FIELD_REFs are
7462         always host integers.
7463         (make_bit_field_ref): Remove.
7464         (optimize_bit_field_compare): Remove.
7465         (all_ones_mask_p): Remove.
7466
7467 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7468
7469         PR gcc/33009
7470         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7471         (split_block_and_df_analyze): New. Split basic block and rebuild
7472         dataflow.
7473         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7474         SPLIT_BLOCK.
7475         (split_pattern_seq): Likewise.
7476         (erase_matching_seqs): Likewise.
7477         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7478
7479 2008-03-04  Geoff Keating  <geoffk@apple.com>
7480
7481         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7482         declaration and code.
7483         (tree_invalid_nonnegative_warnv_p): Likewise.
7484
7485 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7486
7487         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7488         examples.  Truncate option-names then causing overfull hbox.
7489
7490 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7491
7492         PR target/35222
7493         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7494         on hpux10.
7495         * configure: Rebuilt.
7496
7497 2008-03-04  Rafael Espindola  <espindola@google.com>
7498
7499         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7500         (tree_unary_nonnegative_warnv_p): New.
7501         (tree_binary_nonnegative_warnv_p): New.
7502         (tree_single_nonnegative_warnv_p): New.
7503         (tree_invalid_nonnegative_warnv_p): New.
7504         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7505
7506 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7507
7508         PR 28322
7509         * opts.c (handle_option): Postpone 'unknown option' errors only for
7510         warning options.
7511
7512 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7513
7514         PR target/35453
7515         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7516         (_SIDD_XXX): This.
7517
7518 2008-03-04  Rafael Espindola  <espindola@google.com>
7519
7520         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7521         (tree_binary_nonzero_warnv_p): New.
7522         (tree_single_nonzero_warnv_p): New.
7523         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7524
7525 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7526
7527         PR middle-end/35456
7528         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7529         transformations for modes that have signed zeros.
7530         * ifcvt.c (noce_try_abs): Ditto.
7531
7532 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7533
7534         * config/i386/i386.c (override_options): Force
7535         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7536
7537 2008-03-04  Jan Hubicka  <jh@suse.cz>
7538
7539         PR c++/35262
7540         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7541         in last commit.
7542
7543 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7544
7545         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7546         label to probe the stack.
7547
7548 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7549
7550         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7551         (__gthr_win32_mutex_destroy): Declare.
7552         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7553         __gthr_win32_mutex_destroy.
7554         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7555
7556 2008-03-03  Jan Hubicka  <jh@suse.cz>
7557
7558         PR c++/35262
7559         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7560         aggressive on inlining cold calls.
7561
7562 2008-03-03  Richard Guenther  <rguenther@suse.de>
7563
7564         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7565         struct copies into the expression table.
7566         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7567         (try_to_simplify): Likewise.
7568         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7569         integral and pointer arguments which do not change the
7570         precision to NOP_EXPRs.
7571         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7572         VIEW_CONVERT_EXPR case.
7573
7574 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7575
7576         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7577         defined in a loop at depth 0 is invariant.
7578         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7579         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7580         be called at loop depth 0.
7581
7582 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7583
7584         PR driver/35420
7585         * gcc.c (process_command): Update copyright notice dates.
7586         * gcov.c (print_version): Likewise.
7587         * gcov-dump.c (print_version): Likewise.
7588         * mips-tfile.c (main): Likewise.
7589         * mips-tdump.c (main): Likewise.
7590
7591 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7592
7593         PR 24924
7594         * c-common.c (flag_permissive): Delete.
7595         (constant_expression_warnings): Check flags first.
7596         (constant_expression_error): New.
7597         * c-common.h (flag_permissive): Delete.
7598         (constant_expression_error): Declare.
7599         * flags.h (flag_permissive): Declare. Update description.
7600         * diagnostic.c (pedwarn): Update.
7601         (permerror): New.
7602         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7603         (permissive_error_kind): New.
7604         * toplev.c (flag_permissive): Define. Update description.
7605         * toplev.h (permissive_error_kind): Declare.
7606         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7607         (pedwarn_c90): Use pedantic_warning_kind.
7608         * c-opts.c (c_common_post_options): flag_permissive does not affect
7609         flag_pedantic_errors.
7610
7611 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7612
7613         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7614         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7615         __absvsi2, __absvDI2): Use unsigned arithmetic.
7616
7617 2008-03-02  Andi Kleen  <ak@suse.de>
7618             Richard Guenther  <rguenther@suse.de>
7619
7620         * struct-equiv.c: Remove file.
7621         * cfg_cleanup.c (condjump_equiv_p): Remove.
7622         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7623         (struct-equiv.o): Remove rule.
7624         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7625         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7626         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7627
7628 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7629
7630         * ifcvt.c (noce_process_if_block): Try to handle only the then
7631         block if the else block exists but isn't suitable.
7632
7633 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7634
7635         PR gcc/35063
7636         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7637         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7638         regression from previous patch.
7639
7640 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7641
7642         PR gcc/35063
7643         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7644         implemented.
7645         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7646         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7647         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7648         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7649         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7650         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7651         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7652         (__gthread_mutex_destroy_function): Rename to
7653         __gthread_mutex_destroy.
7654         * gthr-dce.h (__gthread_mutex_destroy): Call
7655         pthread_mutex_destroy.
7656         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7657         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7658         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7659
7660 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7661
7662         * df-scan.c (df_ref_chain_change_bb): Simplify.
7663         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7664         set_block_for_insn if there's any change.
7665         * df.h ((df_insn_change_bb): Fix prototype.
7666         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7667         df_insn_change_bb, don't call set_block_for_insn.
7668         * emit-rtl.c (reorder_insns): Likewise.
7669         * haifa-sched.c (move_insn): Likewise.
7670
7671 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7672
7673         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7674
7675 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7676
7677         * tree-flow-inline.h (next_readonly_imm_use): Return
7678         NULL_USE_OPERAND_P after the end.
7679
7680 2008-03-01  Richard Guenther  <rguenther@suse.de>
7681
7682         PR tree-optimization/35411
7683         * tree-sra.c (sra_build_assignment): Split conversion to
7684         final type to a separate statement if we are not assigning
7685         to a register.
7686
7687 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7688
7689         * fold-const.c (fold_convertible_p): Correct the logic to follow
7690         that in fold_convert().
7691
7692 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7693
7694         PR c++/35315
7695         * tree-inline.c (build_duplicate_type): When we make a
7696         duplicate type, make it unique in the canonical types system.
7697
7698 2008-02-29  Tom Tromey  <tromey@redhat.com>
7699
7700         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7701         input_file_stack_history, input_file_stack_restored): Remove.
7702         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7703         * input.h (struct file_stack): Remove.
7704         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7705         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7706         Likewise.
7707         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7708         type.
7709         (diagnostic_last_module_changed): Add 'map' argument.
7710         (diagnostic_set_last_function): Likewise.
7711         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7712         line map, not input_file_stack.
7713         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7714
7715 2008-02-29  Paul Brook  <paul@codesourcery.com>
7716
7717         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7718
7719 2008-02-29  Paul Brook  <paul@codesourcery.com>
7720
7721         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7722
7723 2008-02-29  Richard Guenther  <rguenther@suse.de>
7724
7725         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7726         vn_lookup_or_add.
7727         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7728         value for comparing for a store match.
7729         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7730         (try_to_simplify): Do not do a full-blown reference lookup.
7731
7732 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7733
7734         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7735         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7736
7737         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7738
7739 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7740
7741         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7742         strides against cache sizes.
7743
7744 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7745
7746         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7747         constant to fpul.
7748
7749 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7750
7751         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7752         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7753         is smaller than the original promoted value.
7754         (simplify_subreg): If OP is a SUBREG, try to preserve its
7755         SUBREG_PROMOTED_VAR_P information.
7756
7757 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7758
7759         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7760         (VN_INFO_GET): Allocate new objects on the obstack.
7761         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7762         for rpo_numbers_temp, for consistency.
7763         (free_scc_vn): Free the obstack.
7764
7765 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7766
7767         * doc/invoke.texi: Document -ftree-loop-distribution.
7768         * tree-loop-distribution.c: New.
7769         * tree-pass.h (pass_loop_distribution): New.
7770         * graphds.h (struct graph): Add htab_t indices.
7771         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7772         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7773         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7774         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7775         * tree-data-ref.c (debug_data_dependence_relations): New.
7776         (dump_data_dependence_relation): Also print data references.
7777         (free_data_ref): Extern.
7778         (same_access_functions): Moved...
7779         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7780         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7781         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7782         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7783         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7784         (stmts_from_loop): Skip LABEL_EXPR.
7785         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7786         New.
7787         (build_rdg): Initialize rdg->indices htab.
7788         (free_rdg, stores_from_loop, ref_base_address,
7789         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7790         have_similar_memory_accesses_1, ref_base_address_1,
7791         remove_similar_memory_refs): New.
7792         * tree-data-ref.h: Depend on tree-chrec.h.
7793         (debug_data_dependence_relations, free_data_ref): Declared.
7794         (same_access_functions): ... here.
7795         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7796         New.
7797         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7798         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7799         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7800         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7801         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7802         rdg_vertex_for_stmt): Declared.
7803         (struct rdg_edge): Add level.
7804         (RDGE_LEVEL): New.
7805         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7806         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7807         Declared.
7808         (rdg_has_similar_memory_accesses): New.
7809         * tree-vect-analyze.c: Remove unused static decls.
7810         * lambda.h (dependence_level): New.
7811         * common.opt (ftree-loop-distribution): New.
7812         * tree-flow.h (mark_virtual_ops_in_bb, 
7813         slpeel_tree_duplicate_loop_to_edge_cfg,
7814         rename_variables_in_loop): Declared.
7815         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7816         (OBJS-common): Add tree-loop-distribution.o.
7817         (tree-loop-distribution.o): New rule.
7818         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7819         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7820         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7821
7822 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7823
7824         PR target/33963
7825         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7826         other than structures and unions.
7827
7828 2008-02-28  Richard Guenther  <rguenther@suse.de>
7829
7830         Revert:
7831         2008-02-26  Richard Guenther  <rguenther@suse.de>
7832
7833         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7834         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7835         (lookup_decl_from_uid): Declare.
7836         (remove_decl_from_map): Likewise.
7837         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7838         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7839         (decl_for_uid_map): New global hashtable mapping DECL_UID
7840         to the decl tree.
7841         (init_ttree): Allocate it.
7842         (insert_decl_to_uid_decl_map): New helper function.
7843         (make_node_stat): Insert new decls into the map.
7844         (copy_node_stat): Likewise.
7845         (lookup_decl_from_uid): New function.
7846         (remove_decl_from_map): Likewise.
7847         (print_decl_for_uid_map_statistics): New helper.
7848         (dump_tree_statistics): Call it.
7849
7850         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7851         (referenced_var_iterator): Adjust.
7852         (FOR_EACH_REFERENCED_VAR): Adjust.
7853         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7854         (num_referenced_vars): Adjust.
7855         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7856         (first_referenced_var): Remove.
7857         (end_referenced_vars_p): Likewise.
7858         (next_referenced_var): Likewise.
7859         (referenced_var_iterator_set): New helper function.
7860         * tree-dfa.c (referenced_var_lookup): Adjust.
7861         (referenced_var_check_and_insert): Likewise.
7862         (remove_referenced_var): Likewise.
7863         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7864         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7865         (verify_call_clobbering): Likewise.
7866         (verify_memory_partitions): Likewise.
7867         (init_tree_ssa): Allocate bitmap instead of hashtable for
7868         referenced_vars.
7869         (delete_tree_ssa): Adjust.
7870         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7871         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7872         (compute_tag_properties): Likewise.
7873         (set_initial_properties): Likewise.
7874         (find_partition_for): Likewise.
7875         (update_reference_counts): Likewise.
7876         (dump_may_aliases_for): Likewise.
7877         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7878         (add_call_clobber_ops): Likewise.
7879         (add_call_read_ops): Likewise.
7880         (get_asm_expr_operands): Likewise.
7881         * tree-into-ssa.c (dump_decl_set): Likewise.
7882         (update_ssa): Likewise.
7883         * tree-sra.c (scan_function): Likewise.
7884         (decide_instantiations): Likewise.
7885         (scalarize_parms): Likewise.
7886         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7887         (dsa_named_for): Likewise.
7888         * tree-ssa-structalias.c (update_alias_info): Likewise.
7889         (merge_smts_into): Likewise.
7890
7891 2008-02-27  David Daney  <ddaney@avtrex.com>
7892
7893         PR target/34409
7894         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7895         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7896         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7897         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7898         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7899
7900 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7901
7902         PR target/25477
7903         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7904         (BUILT_IN_NEXTTOWARD): Remove.
7905         (BUILT_IN_NEXTTOWARDF): Ditto.
7906         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7907         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7908
7909 2008-02-27  Tom Tromey  <tromey@redhat.com>
7910
7911         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7912         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7913
7914 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7915
7916         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7917         update the respective field on newdecl.
7918
7919 2008-02-27  Revital Eres  <eres@il.ibm.com>
7920
7921         PR rtl-optimization/34999
7922         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7923         crossing edges that ends with a call insn.
7924         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7925         call insn and clear the EDGE_CROSSING flag of the crossing edge
7926         when fixing fallthru edges.
7927
7928 2008-02-27  Richard Guenther  <rguenther@suse.de>
7929
7930         PR middle-end/35390
7931         * fold-const.c (fold_unary): Return the correct argument,
7932         converted to the result type.
7933
7934 2008-02-27  Richard Guenther  <rguenther@suse.de>
7935
7936         PR middle-end/34971
7937         * expr.c (expand_expr_real_1): Assert on rotates that operate
7938         on partial modes.
7939         * fold-const.c (fold_binary): Use the types precision, not the
7940         bitsize of the mode if folding rotate expressions.  Build rotates
7941         only for full modes.
7942
7943 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7944
7945         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7946         and CPP_PRAGMA_EOL.
7947         * c-pragma.c (pragma_ns_name): New typedef.
7948         (registered_pp_pragmas): New variable.
7949         (c_pp_lookup_pragma): New function.
7950         (c_register_pragma_1): If flag_preprocess_only, do nothing
7951         for non-expanded pragmas, for expanded ones push pragma's
7952         namespace and name into registered_pp_pragmas vector.
7953         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7954         flag_preprocess_only, don't register GCC pch_preprocess
7955         pragma if flag_preprocess_only.
7956         * c-opts.c (c_common_init): Call init_pragma even if
7957         flag_preprocess_only.
7958         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7959         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7960         cpp_register_pragma if flag_preprocess_only.
7961
7962 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7963
7964         PR c/28800
7965         * c-parser.c (c_parser_translation_unit): Warn for empty
7966         translation unit, not empty source file.
7967
7968 2008-02-26  Paul Brook  <paul@codesourcery.com>
7969
7970         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7971         operand for Thumb-2.
7972         * config/arm/arm.h (reg_class): Add CORE_REGS.
7973         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7974         (BASE_REG_CLASS): Use CORE_REGS.
7975         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7976         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7977         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7978         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7979         ARM_REGNO_OK_FOR_INDEX_P.
7980         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7981         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7982         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7983         (ldm/stm peepholes): Ditto.
7984         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7985         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7986         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7987         * config/arm/constraints.md: Enable "k" constraint on ARM.
7988
7989 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7990
7991         * config/rs6000/rs6000.c: Annotate cache line size field in all
7992         instances of struct processor_costs.
7993
7994 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
7995
7996         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
7997         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
7998         jump_bypass): New counters.
7999         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8000         * dce.c (gate_ud_dce): Same.
8001         (gate_fast_dce): Same.
8002         * dse.c (gate_dse1): New function.
8003         (gate_dse2): New function.
8004         (gate_dse): Merge results of new gate functions.
8005         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8006         (gate_handle_jump_bypass): Add dbg_cnt.
8007         (gate_handle_gcse): Add dbg_cnt.
8008         * ifcvt.c (gate_handle_if_conversion): Same.
8009         (gate_handle_if_after_combine): Same.
8010         (gate_handle_if_after_reload): Same.
8011         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8012
8013 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8014
8015         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8016         line sizes.
8017         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8018
8019 2008-02-26  Jason Merrill  <jason@redhat.com>
8020
8021         PR c++/35315
8022         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8023         alone if it's the naming decl for the type's main variant.
8024
8025 2008-02-26  Tom Tromey  <tromey@redhat.com>
8026
8027         * system.h (USE_MAPPED_LOCATION): Poison.
8028         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8029         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8030         (make_goto_expr_edges): Likewise.
8031         (remove_bb): Likewise.
8032         (execute_warn_function_return): Likewise.
8033         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8034         location_t.
8035         * c-common.c (fname_decl): Remove old location code.
8036         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8037         location code.
8038         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8039         variant.
8040         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8041         (gen_rtx_ASM_INPUT): Likewise.
8042         (gen_rtx_ASM_INPUT_loc): Likewise.
8043         (get_rtx_asm_OPERANDS): Remove.
8044         * cfglayout.c (insn_locators_alloc): Remove old location code.
8045         (set_curr_insn_source_location): Likewise.
8046         (curr_insn_locator): Likewise.
8047         * print-tree.c (print_node): Remove old location code.
8048         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8049         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8050         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8051         location_from_locus.
8052         (construct_exit_block): Remove old location code.
8053         * emit-rtl.c (force_next_line_note): Remove old location code.
8054         * profile.c (branch_prob): Remove old location code.
8055         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8056         LOC_LINE): Remove old-location variants.
8057         * langhooks.c (lhd_print_error_function): Remove old location
8058         code.
8059         * configure, config.in: Rebuilt.
8060         * configure.ac (--enable-mapped-location): Remove.
8061         * c-decl.c (c_init_decl_processing): Remove old location code.
8062         (finish_function): Likewise.
8063         * recog.c (decode_asm_operands): Remove old location code.
8064         * c-pch.c (c_common_read_pch): Remove old location code.
8065         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8066         variants.
8067         * gimple-low.c (lower_function_body): Remove old location code.
8068         * toplev.c (unknown_location): Remove.
8069         (push_srcloc): Remove old-location variant.
8070         (process_options): Remove old location code.
8071         (lang_dependent_init): Likewise.
8072         * input.h (UNKNOWN_LOCATION): Move definition.
8073         (location_t): Undeprecate.
8074         (source_locus): Remove.
8075         (location_from_locus): Remove.
8076         (struct location_s): Remove.
8077         Remove all old-location code.
8078         (input_line, input_filename): Remove.
8079         * final.c (final_scan_insn): Remove old location code.
8080         * diagnostic.c (diagnostic_build_prefix): Remove
8081         USE_MAPPED_LOCATION test.
8082         * tree.h (gimple_stmt) <locus>: Now a location_t.
8083         (tree_exp) <locus>: Likewise.
8084         (DECL_IS_BUILTIN): Remove old-location variant.
8085         (annotate_with_file_line, annotate_with_locus): Likewise.
8086         (expr_locus, set_expr_locus): Update.
8087         * tree.c (build1_stat): Remove old location code.
8088         (last_annotated_node): Remove.
8089         (annotate_with_file_line): Remove old-location variant.
8090         (annotate_with_locus): Likewise.
8091         (expr_location): Remove old location code.
8092         (set_expr_location): Likewise.
8093         (expr_has_location): Likewise.
8094         (expr_locus): Likewise.
8095         (set_expr_locus): Likewise.
8096         (expr_filename): Don't use location_from_locus.
8097         (expr_lineno): Likewise.
8098         * rtl-error.c (location_for_asm): Remove old location code.
8099         * c-lex.c (cb_line_change): Remove old location code.
8100         (fe_file_change): Likewise.
8101         (cb_def_pragma): Likewise.
8102         (c_lex_with_flags): Likewise.
8103         * gengtype.c (do_typedef): Don't special-case location types.
8104         (define_location_structures): Remove.
8105         (main): Don't call define_location_structures.
8106         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8107         code.
8108
8109 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8110
8111         PR 26264
8112         * builtins.def (BUILT_IN_STDARG_START): Remove.
8113         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8114         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8115         * tree-inline.c (inline_forbidden_p_1): Likewise.
8116         
8117 2008-02-26  Richard Guenther  <rguenther@suse.de>
8118
8119         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8120         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8121         (lookup_decl_from_uid): Declare.
8122         (remove_decl_from_map): Likewise.
8123         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8124         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8125         (decl_for_uid_map): New global hashtable mapping DECL_UID
8126         to the decl tree.
8127         (init_ttree): Allocate it.
8128         (insert_decl_to_uid_decl_map): New helper function.
8129         (make_node_stat): Insert new decls into the map.
8130         (copy_node_stat): Likewise.
8131         (lookup_decl_from_uid): New function.
8132         (remove_decl_from_map): Likewise.
8133         (print_decl_for_uid_map_statistics): New helper.
8134         (dump_tree_statistics): Call it.
8135
8136         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8137         (referenced_var_iterator): Adjust.
8138         (FOR_EACH_REFERENCED_VAR): Adjust.
8139         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8140         (num_referenced_vars): Adjust.
8141         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8142         (first_referenced_var): Remove.
8143         (end_referenced_vars_p): Likewise.
8144         (next_referenced_var): Likewise.
8145         (referenced_var_iterator_set): New helper function.
8146         * tree-dfa.c (referenced_var_lookup): Adjust.
8147         (referenced_var_check_and_insert): Likewise.
8148         (remove_referenced_var): Likewise.
8149         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8150         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8151         (verify_call_clobbering): Likewise.
8152         (verify_memory_partitions): Likewise.
8153         (init_tree_ssa): Allocate bitmap instead of hashtable for
8154         referenced_vars.
8155         (delete_tree_ssa): Adjust.
8156         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8157         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8158         (compute_tag_properties): Likewise.
8159         (set_initial_properties): Likewise.
8160         (find_partition_for): Likewise.
8161         (update_reference_counts): Likewise.
8162         (dump_may_aliases_for): Likewise.
8163         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8164         (add_call_clobber_ops): Likewise.
8165         (add_call_read_ops): Likewise.
8166         (get_asm_expr_operands): Likewise.
8167         * tree-into-ssa.c (dump_decl_set): Likewise.
8168         (update_ssa): Likewise.
8169         * tree-sra.c (scan_function): Likewise.
8170         (decide_instantiations): Likewise.
8171         (scalarize_parms): Likewise.
8172         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8173         (dsa_named_for): Likewise.
8174         * tree-ssa-structalias.c (update_alias_info): Likewise.
8175         (merge_smts_into): Likewise.
8176
8177 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8178
8179         PR 34351
8180         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8181         * c-opts.c (c_common_handle_option): Wall enables
8182         Wvolatile-register-var.
8183         * common.opt: Move Wvolatile-register-var to...
8184         * c.opt: ...here.
8185         
8186 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8187
8188         * common.opt (Wlarger-than=): New.
8189         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8190         -Wlarger-than=.
8191         * opts.c (common_handle_option): Handle -Wlarger-than=.
8192         * optc-gen.awk: Likewise.
8193         * opth-gen.awk: Likewise.
8194         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8195         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8196         
8197 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8198
8199         * c-common.c (match_case_to_enum_1): Add appropriate
8200         OPT_W* parameter to warning.
8201         (c_do_switch_warnings): Likewise.
8202         * c-typeck.c (warning_init): Add one more parameter following
8203         'warning' function.
8204         (push_init_level): Update call to warning_init.
8205         (pop_init_level): Likewise.
8206         (add_pending_init): Likewise.
8207         (output_init_element: Likewise.
8208
8209 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8210
8211         PR 28322
8212         * toplev.c (toplev_main): If there are warnings or error, print
8213         errors for ignored options.
8214         * opts.c (ignored_options): New static variable.
8215         (postpone_unknown_option_error): New.
8216         (print_ignored_options): New.
8217         (handle_option): Postpone errors for unknown -Wno-* options.
8218         * opts.h (print_ignored_options): Declare.
8219         
8220 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8221
8222         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8223         to "ghost".
8224
8225 2008-02-25  Richard Guenther  <rguenther@suse.de>
8226
8227         Revert:
8228         2008-02-25  Richard Guenther  <rguenther@suse.de>
8229
8230         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8231         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8232         (lookup_decl_from_uid): Declare.
8233         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8234         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8235         (decl_for_uid_map): New global hashtable mapping DECL_UID
8236         to the decl tree.
8237         (init_ttree): Allocate it.
8238         (insert_decl_to_uid_decl_map): New helper function.
8239         (make_node_stat): Insert new decls into the map.
8240         (copy_node_stat): Likewise.
8241         (lookup_decl_from_uid): New function.
8242         (print_decl_for_uid_map_statistics): New helper.
8243         (dump_tree_statistics): Call it.
8244
8245         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8246         (referenced_var_iterator): Adjust.
8247         (FOR_EACH_REFERENCED_VAR): Adjust.
8248         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8249         (num_referenced_vars): Adjust.
8250         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8251         (first_referenced_var): Remove.
8252         (end_referenced_vars_p): Likewise.
8253         (next_referenced_var): Likewise.
8254         (referenced_var_iterator_set): New helper function.
8255         * tree-dfa.c (referenced_var_lookup): Adjust.
8256         (referenced_var_check_and_insert): Likewise.
8257         (remove_referenced_var): Likewise.
8258         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8259         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8260         (verify_call_clobbering): Likewise.
8261         (verify_memory_partitions): Likewise.
8262         (init_tree_ssa): Allocate bitmap instead of hashtable for
8263         referenced_vars.
8264         (delete_tree_ssa): Adjust.
8265         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8266         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8267         (compute_tag_properties): Likewise.
8268         (set_initial_properties): Likewise.
8269         (find_partition_for): Likewise.
8270         (update_reference_counts): Likewise.
8271         (dump_may_aliases_for): Likewise.
8272         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8273         (add_call_clobber_ops): Likewise.
8274         (add_call_read_ops): Likewise.
8275         (get_asm_expr_operands): Likewise.
8276         * tree-into-ssa.c (dump_decl_set): Likewise.
8277         (update_ssa): Likewise.
8278         * tree-sra.c (scan_function): Likewise.
8279         (decide_instantiations): Likewise.
8280         (scalarize_parms): Likewise.
8281         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8282         (dsa_named_for): Likewise.
8283         * tree-ssa-structalias.c (update_alias_info): Likewise.
8284         (merge_smts_into): Likewise.
8285
8286 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8287
8288         PR fortran/29549
8289         * doc/invoke.texi (-fcx-limited-range): Document new option.
8290         * toplev.c (process_options): Handle -fcx-fortran-rules.
8291         * common.opt: Add documentation for -fcx-fortran-rules.
8292
8293 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8294
8295         PR c/35162
8296         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8297         actual behaviour and C99.
8298         
8299 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8300
8301         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8302         (ASM_CPU_POWER6_SPEC): Likewise.
8303         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8304         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8305         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8306
8307 2008-02-25  Richard Guenther  <rguenther@suse.de>
8308
8309         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8310         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8311         (lookup_decl_from_uid): Declare.
8312         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8313         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8314         (decl_for_uid_map): New global hashtable mapping DECL_UID
8315         to the decl tree.
8316         (init_ttree): Allocate it.
8317         (insert_decl_to_uid_decl_map): New helper function.
8318         (make_node_stat): Insert new decls into the map.
8319         (copy_node_stat): Likewise.
8320         (lookup_decl_from_uid): New function.
8321         (print_decl_for_uid_map_statistics): New helper.
8322         (dump_tree_statistics): Call it.
8323
8324         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8325         (referenced_var_iterator): Adjust.
8326         (FOR_EACH_REFERENCED_VAR): Adjust.
8327         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8328         (num_referenced_vars): Adjust.
8329         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8330         (first_referenced_var): Remove.
8331         (end_referenced_vars_p): Likewise.
8332         (next_referenced_var): Likewise.
8333         (referenced_var_iterator_set): New helper function.
8334         * tree-dfa.c (referenced_var_lookup): Adjust.
8335         (referenced_var_check_and_insert): Likewise.
8336         (remove_referenced_var): Likewise.
8337         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8338         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8339         (verify_call_clobbering): Likewise.
8340         (verify_memory_partitions): Likewise.
8341         (init_tree_ssa): Allocate bitmap instead of hashtable for
8342         referenced_vars.
8343         (delete_tree_ssa): Adjust.
8344         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8345         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8346         (compute_tag_properties): Likewise.
8347         (set_initial_properties): Likewise.
8348         (find_partition_for): Likewise.
8349         (update_reference_counts): Likewise.
8350         (dump_may_aliases_for): Likewise.
8351         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8352         (add_call_clobber_ops): Likewise.
8353         (add_call_read_ops): Likewise.
8354         (get_asm_expr_operands): Likewise.
8355         * tree-into-ssa.c (dump_decl_set): Likewise.
8356         (update_ssa): Likewise.
8357         * tree-sra.c (scan_function): Likewise.
8358         (decide_instantiations): Likewise.
8359         (scalarize_parms): Likewise.
8360         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8361         (dsa_named_for): Likewise.
8362         * tree-ssa-structalias.c (update_alias_info): Likewise.
8363         (merge_smts_into): Likewise.
8364
8365 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8366
8367         PR target/35258
8368         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8369         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8370         * alias.h (nonoverlapping_memrefs_p): Likewise.
8371
8372 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8373
8374         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8375         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8376         __emultls_get_address, __emultls_register_common,
8377         __floatundi?f, and _Unwind_GetIPInfo.
8378         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8379         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8380         (gen_regparm_prefix): Likewise.
8381         (i386_nlm_encode_section_info): Sync with
8382         config/i386/winnt.c:i386_pe_encode_section_info().
8383         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8384         i386_nlm_mangle_decl_assembler_name): New.
8385         (netware_override_options): New.
8386         * config/i386/netware.h (netware_override_options): Declare.
8387         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8388         (i386_nlm_mangle_decl_assembler_name): Declare.
8389         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8390
8391 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8392
8393         PR other/32948
8394         * c-decl.c (grokdeclarator): Remove unused local variables
8395         `typedef_type' and `type_as_written'.
8396         * bb-reorder.c
8397         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8398         unused local variable `has_hot_blocks'.
8399         (fix_crossing_conditional_branches): Remove unused local variable
8400         `prev_bb'.
8401         
8402 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8403
8404         PR middle-end/19984
8405         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8406         using DEF_C99_BUILTIN.
8407         (BUILT_IN_NANF): Ditto.
8408         (BUILT_IN_NANL): Ditto.
8409
8410 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8411             Revital Eres  <eres@il.ibm.com>
8412
8413         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8414         regarding the order of two dependent insns in the same row.
8415
8416 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8417
8418         * stor-layout.c (layout_decl): Do not bump the alignment of a
8419         bit-field to more than byte alignment if it is packed.
8420
8421 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8422
8423         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8424         e300c2 and e300c3.
8425
8426 2008-02-24  Diego Novillo  <dnovillo@google.com>
8427
8428         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8429
8430         PR 33738
8431         * tree-vrp.c (vrp_evaluate_conditional): With
8432         -Wtype-limits, emit a warning when comparing against a
8433         constant outside the natural range of OP0's type.
8434         * c.opt (Wtype-limits): Move ...
8435         * common.opt (Wtype-limits): ... here.
8436
8437 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8438
8439         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8440         * config/rs6000/e300c2c3.md: New file.
8441         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8442         e300c2 and e300c3.
8443         (rs6000_override_options): Add e300c2 and e300c3 cases to
8444         processor_target_table. Do not allow usage of Altivec or Spe
8445         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8446         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8447         * config/rs6000/rs6000.h (processor_type): Add
8448         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8449         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8450         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8451         and ppce300c3. Include e300c2c3.md.
8452
8453 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8454
8455         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8456         instead of TARGET_STRICT_ALIGN.
8457
8458 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8459
8460         * explow.c (memory_address): Assert that the generated address is
8461         valid.
8462
8463 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8464
8465         PR target/25477
8466         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8467         * config/darwin-ppc-ldouble-patch.def: New file.
8468         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8469         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8470         SUBTARGET_INIT_BUILTINS if defined.
8471         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8472         New functions.
8473
8474 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8475
8476         PR rtl-opt/33512
8477         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8478         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8479
8480 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8481
8482         PR pch/35027
8483         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8484         file" warning condtional on -Winvalid-PCH.
8485
8486 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8487
8488         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8489
8490 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8491
8492         PR target/22076
8493         PR target/34256 
8494         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8495         prevent reload from using MMX registers.
8496         (*mov<mode>_internal): Ditto.
8497         (*movv2sf_internal_rex64): Ditto.
8498         (*movv2sf_internal): Ditto.
8499
8500 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8501
8502         PR documentation/31569
8503         * doc/install.texi2html: Use makeinfo --no-number-sections.
8504
8505 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8506
8507         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8508         ensure that we can address an entire entity > 8 bytes.  Don't
8509         generate reg+reg addressing for such data.
8510
8511 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8512
8513         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8514         strings when optimizing for size, unless the target cares about
8515         alignment.
8516
8517 2008-02-22  Tom Tromey  <tromey@redhat.com>
8518
8519         * regclass.c (current_pass): Remove declaration.
8520
8521 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8522
8523         * config/avr/libgcc.S (__RAMPZ__): Define.
8524         (__do_copy_data): Add for devices with 128KB code memory.
8525
8526 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8527
8528         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8529         Use spe_abi.
8530         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8531
8532 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8533
8534         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8535         GENNONACR_REGS.
8536
8537 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8538
8539         PR c/19999
8540         * c-typeck.c (build_binary_op): Warn about floating point
8541         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8542
8543 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8544
8545         PR target/34526
8546         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8547         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8548         add vrsave.
8549         (rs6000_override_options): Set altivec_abi as default, not override,
8550         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8551         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8552         is used; use new member spe_abi.
8553         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8554         spe_abi and altivec_abi.
8555
8556 2008-02-22  Tomas Bily  <tbily@suse.cz>
8557
8558         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8559
8560 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8561
8562         PR bootstrap/35273
8563         * config.build (build_file_translate): Set to `CMD //c' only if
8564         it works.
8565         * Makefile.in (build_file_translate): Improve comment.
8566
8567 2008-02-21  Jan Hubicka  <jh@suse.cz>
8568
8569         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8570         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8571         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8572
8573 2008-02-21  Michael Matz  <matz@suse.de>
8574
8575         PR target/35264
8576         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8577
8578 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8579
8580         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8581         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8582         as insn constraint.
8583         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8584         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8585         SSE_VEC_FLOAT_MODE_P as insn constraint.
8586         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8587         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8588         sse4a_movntdf using MODEF mode iterator.
8589         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8590         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8591         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8592         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8593         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8594         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8595         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8596
8597 2008-02-21  Richard Guenther  <rguenther@suse.de>
8598
8599         * tree.def (PAREN_EXPR): New tree code.
8600         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8601         and PAREN_EXPR.
8602         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8603         * expr.c (expand_expr_real_1): Likewise.
8604         * tree-inline.c (estimate_num_insns_1): Likewise.
8605         * tree-complex.c (expand_complex_move): Likewise.
8606         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8607         as plain x.
8608
8609 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8610
8611         PR target/35225
8612         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8613
8614 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8615
8616         PR target/35190
8617         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8618
8619         * config/sh/sh.c (find_barrier): Don't go past
8620         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8621
8622 2008-02-20  DJ Delorie  <dj@redhat.com>
8623
8624         * config/h8300/h8300.md (insv): Force source operand to be a register.
8625
8626         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8627         as a jump, not as a plain insn.
8628         
8629 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8630
8631         * doc/invoke.texi (Warning Options): Add new option
8632         -Wframe-larger-than=.
8633         (-Wframe-larger-than): Document.
8634
8635         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8636         Add declarations for new option variables.
8637
8638         * final.c (final_start_function): Check the frame size
8639         before emission and issue a Wframe-larger-than warning.
8640
8641         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8642         Add definitions for new option variables.
8643         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8644
8645         * common.opt (Wframe-larger-than=): New option.
8646
8647 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8648
8649         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8650         (<sse>_div<mode>3): Ditto.
8651         (<sse>_vmdiv<mode>3): Ditto.
8652         (<sse>_vmsqrt<mode>2): Ditto.
8653         (*smax<mode>3): Ditto.
8654         (sse5_frcz<mode>2): Ditto.
8655         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8656         as insn constraint.
8657
8658 2008-02-20  Richard Guenther  <rguenther@suse.de>
8659
8660         PR middle-end/35265
8661         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8662         be happy with INTEGRAL_TYPE_P.
8663
8664 2008-02-20  Richard Guenther  <rguenther@suse.de>
8665
8666         * fold-const.c (split_tree): Associate floatig-point expressions
8667         if flag_associative_math is set.
8668
8669 2008-02-20  Richard Guenther  <rguenther@suse.de>
8670
8671         * tree.h (fold_real_zero_addition_p): Declare.
8672         * fold-const.c (fold_real_zero_addition_p): Export.
8673         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8674         floating-point operations with zero and one.
8675
8676 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8677
8678         * doc/install.texi: Correct references to CFLAGS, replacing them
8679         with BOOT_CFLAGS.  Document flags used during bootstrap for
8680         target libraries.
8681                                 
8682 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8683
8684         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8685         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8686         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8687         insn constraint.
8688         (smin<mode>3): Ditto from similar patterns.
8689         (smax<mode>3): Ditto.
8690         (*ieee_smin<mode>3): Ditto.
8691         (*ieee_smax<mode>3): Ditto.
8692         * config/i386/sse.md (sse): New mode attribute.
8693         (mov<mode>): Macroize expander from movv4sf and movv2df using
8694         SSEMODEF2P mode iterator.
8695         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8696         SSE_VEC_FLOAT_MODE_P as insn constraint.
8697         (storent<mode>): Ditto.
8698         (storent<mode>): Macroize expander from storentsf and storentdf using
8699         MODEF mode iterator.
8700         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8701         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8702         (abs<mode>2): Ditto from similar patterns.
8703         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8704         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8705         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8706         (<sse>_vmsqrt<mode>2): Ditto.
8707         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8708         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8709         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8710         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8711         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8712         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8713         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8714         insn constraint.
8715         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8716         iterator and SSE_FLOAT_MODE_P as insn constraint.
8717         (<sse>_ucomi): Ditto from similar patterns.
8718         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8719         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8720         SSE_VEC_FLOAT_MODE_P as insn constraint.
8721         (vcond<mode>): Ditto from similar patterns.
8722         (and<mode>3, *and<mode>3): Ditto.
8723         (<sse>_nand<mode>3): Ditto.
8724         (ior<mode>3, *ior<mode>3): Ditto.
8725         (xor<mode>3, *xor<mode>3): Ditto.
8726         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8727         iterator and SSE_FLOAT_MODE_P as insn constraint.
8728         (*nand<mode>3): Ditto from similar patterns.
8729         (*ior<mode>3): Ditto.
8730         (*xor<mode>3): Ditto.
8731
8732 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8733
8734         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8735         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8736         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8737
8738 2008-02-19  Jan Hubicka  <jh@suse.cz>
8739
8740         * predict.c (tree_bb_level_predictions): Remove variable next
8741         mistakely introduced by previous commit.
8742
8743 2008-02-19  Jan Hubicka  <jh@suse.cz>
8744
8745         * predict.c (predict_paths_leading_to): Rewrite.
8746         (predict_paths_for_bb): New.
8747         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8748
8749 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8750
8751         PR bootstrap/35218
8752         * Makefile.in (build_file_translate): New.
8753         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8754         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8755         * configure.ac (build_file_translate): Substitute it.
8756         * configure: Regenerate.
8757
8758 2008-02-19  Jan Hubicka  <jh@suse.cz>
8759
8760         PR rtl-optimization/34408
8761         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8762         invalid sharing.
8763
8764 2008-02-19  Jan Hubicka  <jh@suse.cz>
8765
8766         PR middle-end/28779
8767         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8768         call_expr.
8769
8770 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8771
8772         PR Ada/35186
8773         * config/i386/i386-modes.def: Revert the last DI alignment
8774         change until Ada people can look into it.
8775
8776 2008-02-19  Nick Clifton  <nickc@redhat.com>
8777
8778         * opts.c (print_specific_help): Fix typo in --help text.
8779
8780 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8781
8782         PR target/35239
8783         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8784         32-bit inline asm without asm alternatives for host GCC < 3.0.
8785
8786 2008-02-19  Richard Guenther  <rguenther@suse.de>
8787
8788         PR tree-optimization/34989
8789         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8790         Allow propagation to INDIRECT_REF if we can simplify only.
8791
8792 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8793
8794         * c-common.c (warn_for_collisions_1): Use appropriate option when
8795         warning.
8796
8797 2008-02-19  Nick Clifton  <nickc@redhat.com>
8798
8799         PR other/31349
8800         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8801         (handle_options): Fix indentation.
8802         (print_filtered_help): If no language-specific options were
8803         displayed tell the user how to list all the options supported by
8804         the language's front-end.
8805         (print_specific_help): Fix indentation and remove duplicate line.
8806         (common_handle_option): Handle the -v option.
8807         For --help enable the display of undocumented options if the -v
8808         switch has been included on the command line.
8809         For --help= check for overlaps in the arguments between the option
8810         classes and the language names and issue a warning when they
8811         cannot be disambiguated.
8812         * c.opt (v): Pass on to the common option handler.
8813
8814 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8815
8816         * modulo-sched.c (sms_schedule): Change dump message when
8817         create_ddg function fails.
8818         (try_scheduling_node_in_cycle): Rename row to cycle.
8819         (print_partial_schedule): Rename CYCLE to ROW.
8820
8821 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8822             Zdenek Dvorak  <ook@ucw.cz>
8823
8824         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8825
8826 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8827
8828         PR target/33555
8829         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8830         (*x86_movdicc_0_m1_se): Ditto.
8831
8832 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8833
8834         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8835         (CMPtype): Define as __gcc_CMPtype.
8836         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8837         (CMPtype): Define as __gcc_CMPtype.
8838
8839 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8840
8841         Support valgrind 3.3 for --enable-checking=valgrind.
8842         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8843         here.
8844         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8845         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8846         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8847         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8848         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8849         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8850         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8851         respectively.
8852         * ggc-zone.c: Similar.
8853         * ggc-page.c: Similar.
8854
8855 2008-02-19  Paul Brook  <paul@codesourcery.com>
8856
8857         PR target/35071
8858         * config/arm/ieee754-df.S: Fix do_it typo.
8859         * config/arm/ieee754-sf.S: Fix do_it typo.
8860
8861 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8862
8863         PR target/35189
8864         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8865         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8866         (OPTION_MASK_ISA_SSE_SET): Likewise.
8867         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8868         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8869         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8870         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8871         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8872         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8873         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8874         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8875         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8876         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8877         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8878         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8879         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8880         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8881         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8882         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8883         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8884         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8885         (OPTION_MASK_ISA_SSE4): Removed.
8886         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8887         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8888         (override_options): Don't turn on implied SSE/MMX bits in
8889         ix86_isa_flags.
8890
8891 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8892
8893         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8894         32bit host.
8895
8896 2008-02-18  Joey Ye  <joey.ye@intel.com>
8897
8898         PR middle-end/34921
8899         * tree-nested.c (insert_field_into_struct): Set type alignment
8900         to field alignment if the former is less than the latter.
8901
8902 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8903
8904         * BASE-VER: Set to 4.4.0.
8905
8906 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8907
8908         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8909         * doc/cfg.texi: Likewise.
8910         * doc/extend.texi: Likewise.
8911         * doc/gty.texi: Likewise.
8912         * doc/invoke.texi: Likewise.
8913         * doc/loop.texi: Likewise.
8914         * doc/md.texi: Likewise.
8915         * doc/passes.texi: Likewise.
8916         * doc/rtl.texi: Likewise.
8917         * doc/sourcebuild.texi: Likewise.
8918         * doc/tm.texi: Likewise.
8919         * doc/tree-ssa.texi: Likewise.
8920
8921 2008-02-17  Richard Guenther  <rguenther@suse.de>
8922
8923         PR middle-end/35227
8924         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8925         without default definition.
8926
8927 2008-02-17  Richard Guenther  <rguenther@suse.de>
8928
8929         PR tree-optimization/35231
8930         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8931         if A | B != 1.
8932
8933 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8934
8935         Revert:
8936         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8937         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8938         libgcc_cmp_return mode.
8939
8940 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8941
8942         PR c/28368
8943         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8944
8945 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8946
8947         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8948         multilibs.
8949
8950 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8951
8952         * doc/c-tree.texi: Use `@.' where appropriate.
8953         * doc/extend.texi: Likewise.
8954         * doc/install.texi: Likewise.
8955         * doc/invoke.texi: Likewise.
8956         * doc/loop.texi: Likewise.
8957         * doc/makefile.texi: Likewise.
8958         * doc/md.texi: Likewise.
8959         * doc/passes.texi: Likewise.
8960         * doc/standards.texi: Likewise.
8961         * doc/tm.texi: Likewise.
8962
8963 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8964
8965         PR middle-end/35196
8966         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8967         in entry_bb.
8968         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8969         rather than in entry_bb.
8970
8971 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8972
8973         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8974         libgcc_cmp_return mode.
8975
8976 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8977
8978         PR middle-end/35130
8979         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8980         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8981
8982 2008-02-15  Richard Guenther  <rguenther@suse.de>
8983             Zdenek Dvorak  <ook@ucw.cz>
8984
8985         PR tree-optimization/35164
8986         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8987         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8988         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8989         Only propagate addresses which do not have abnormal SSA_NAMEs
8990         in their operands.
8991
8992 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
8993
8994         PR target/35088
8995         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
8996
8997 2008-02-15  Jan Hubicka  <jh@suse.cz>
8998
8999         PR middle-end/35149
9000         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9001
9002 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9003
9004         PR middle-end/34621
9005         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9006         when calculating alignment_pad.
9007
9008 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9009
9010         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9011         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9012         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9013         and STACK_BOUNDARY define.
9014
9015 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9016
9017         PR preprocessor/35061
9018         * c-pragma.c (handle_pragma_pop_macro): Check that
9019         pushed_macro_table has been allocated.
9020
9021 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9022
9023         PR middle-end/35136
9024         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9025         (force_gimple_operand): Likewise.
9026         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9027         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9028         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9029         (find_interesting_uses_address): Check addressability and alignment
9030         of the base expression only after substituting bases of IVs into it.
9031
9032 2008-02-14  Michael Matz  <matz@suse.de>
9033
9034         PR target/34930
9035         * function.c (instantiate_virtual_regs_in_insn): Reload address
9036         before falling back to reloading the whole operand.
9037
9038 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9039
9040         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9041         before the first section switch note.
9042
9043 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9044
9045         * doc/bugreport.texi: Update copyright years.
9046         * doc/c-tree.texi: Likewise.
9047         * doc/cfg.texi: Likewise.
9048         * doc/cpp.texi: Likewise.
9049         * doc/cppinternals.texi: Likewise.
9050         * doc/fragments.texi: Likewise.
9051         * doc/frontends.texi: Likewise.
9052         * doc/gcc.texi: Likewise.
9053         * doc/gty.texi: Likewise.
9054         * doc/hostconfig.texi: Likewise.
9055         * doc/implement-c.texi: Likewise.
9056         * doc/libgcc.texi: Likewise.
9057         * doc/loop.texi: Likewise.
9058         * doc/makefile.texi: Likewise.
9059         * doc/options.texi: Likewise.
9060         * doc/passes.texi: Likewise.
9061         * doc/rtl.texi: Likewise.
9062         * doc/sourcebuild.texi: Likewise.
9063         * doc/standards.texi: Likewise.
9064         * doc/tree-ssa.texi: Likewise.
9065         * doc/trouble.texi: Likewise.
9066
9067         * doc/extend.texi: Use @: or add comma where appropriate.
9068         * doc/invoke.texi: Likewise.
9069         * doc/tm.texi: Likewise.
9070
9071 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9072
9073         PR target/34393
9074         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9075         to a reg.
9076
9077 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9078
9079         * doc/md.texi (clz, ctz): Add reference.
9080         * doc/rtl.texi (clz, ctz): Likewise.
9081
9082 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9083
9084         PR other/35148
9085         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9086         srcdir.
9087
9088 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9089
9090         * config/s390/s390.c (struct constant_pool): New field
9091         emit_pool_after added.
9092         (s390_mainpool_start): Set the emit_pool_after flag according
9093         to the section switch notes.
9094         (s390_mainpool_finish): Consider emit_pool_after when emitting
9095         the literal pool at the end of the function.
9096         (s390_chunkify_start): Force literal pool splits at section
9097         switch notes.
9098
9099 2008-02-13  Michael Matz  <matz@suse.de>
9100
9101         PR debug/35065
9102         * var-tracking.c (clobber_variable_part): Correctly traverse the
9103         list.
9104
9105 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9106
9107         PR 29673
9108         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9109         Add -fdump-ipa-inline.
9110         * tree-dump.c (dump_files): Remove tree-inlined dump.
9111         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9112         
9113 2008-02-12  Richard Guenther  <rguenther@suse.de>
9114
9115         PR tree-optimization/35171
9116         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9117         default defs.
9118
9119 2008-02-12  Richard Guenther  <rguenther@suse.de>
9120
9121         PR middle-end/35163
9122         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9123         value-preserving mode.  Disallow final truncation.
9124
9125 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9126
9127         PR middle-end/35136
9128         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9129         code from here to...
9130         (force_gimple_operand): ...here.
9131
9132 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9133
9134         PR c++/35144
9135         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9136         non-compatible pointers.
9137         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9138         different FIELD_DECLs, try harder by comparing field offsets, sizes
9139         and types.
9140
9141         PR inline-asm/35160
9142         * function.c (match_asm_constraints_1): Don't replace the same input
9143         multiple times.
9144
9145 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9146
9147         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9148         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9149         (expand_epilogue): Restore RAMPZ register.
9150         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9151
9152 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9153
9154         * config/i386/cygwin.asm: (__alloca): Correct calling
9155         convention and alignment.
9156         (__chkstk): Force 8 byte stack alignment.
9157
9158 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9159             Richard Guenther  <rguenther@suse.de>
9160
9161         PR tree-optimization/33992
9162         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9163         the zero we compare against.
9164
9165 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9166
9167         PR libfortran/35063
9168         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9169         to CloseHandle after unlocking to prevent accumulation of handle
9170         count.
9171
9172 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9173
9174         PR middle_end/34150
9175         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9176         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9177         and update LABEL_NUSES during and after reload.
9178
9179 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9180
9181         PR middle-end/34627
9182         * combine.c (simplify_if_then_else): Make sure the comparison is
9183         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9184
9185 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9186
9187         PR bootstrap/35051
9188         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9189         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9190         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9191         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9192         * tree.h (get_type_static_bounds): Likewise.
9193
9194 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9195
9196         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9197         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9198         Make -Wfoo language annotations match what the compiler outputs.
9199
9200 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9201
9202         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9203         intrinsics spu_convts, spu_convtu, spu_convtf.
9204
9205 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9206
9207         * doc/extend.texi (Function Attributes) <noinline>: Mention
9208         asm ("") as method to keep calls.
9209
9210 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9211
9212         PR other/32754
9213         * doc/options.texi (Options): Replace references to opts.sh with
9214         optc-gen.awk.
9215         * opts-common.c: Likewise.
9216         * optc-gen.awk: Likewise.
9217         
9218 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9219
9220         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9221
9222 2008-02-07  Richard Henderson  <rth@redhat.com>
9223
9224         PR rtl-opt/33410
9225         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9226         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9227         funny mode.
9228
9229 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9230
9231         PR tree-optimization/35085
9232         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9233         for operand entry oe2 in addition to operand entry oe3 in order to
9234         expose more opportunities for vectorizer sum reduction.
9235
9236 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9237
9238         PR other/35107
9239         * Makefile.in (LIBS): Remove $(GMPLIBS).
9240         (cc1-dummy, cc1): Add $(GMPLIBS).
9241
9242 2008-02-06  Jan Hubicka  <jh@suse.cz>
9243
9244         PR target/23322
9245         * i386.md (moddf_integer): Do not produce partial memory stalls for
9246         targets where it hurts.
9247
9248 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9249
9250         PR target/35083
9251         * optabs.c (expand_float): Do not check for decimal modes when
9252         expanding unsigned integer through signed conversion.
9253
9254 2008-02-06  Nick Clifton  <nickc@redhat.com>
9255
9256         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9257         inside the clobber with a match_operand and duplicated operand
9258         number in the constraint.
9259         (ineqbranchsi): Delete redundant comment.
9260
9261 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9262
9263         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9264         builtin_define ("__USE_INIT_FINI__").
9265         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9266         -msx multilibs.
9267         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9268
9269 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9270
9271         PR documentation/30330
9272         * doc/invoke.texi (C++ Dialect Options)
9273         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9274         For each warning option -Wfoo that allows -Wno-foo, ensure both
9275         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9276         entry of -Wswitch-default, index -Wnormalized= including the
9277         `=', and -Wlarger-than-@var{len} including @var{len}.
9278
9279 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9280
9281         * config/i386/i386.md (floatunssisf2): Use
9282         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9283         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9284         Macroize expander using MODEF mode iterator.
9285
9286 2008-02-05  Diego Novillo  <dnovillo@google.com>
9287
9288         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9289
9290         PR 33738
9291         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9292
9293 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9294
9295         PR other/35070
9296         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9297
9298 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9299
9300         PR target/35084
9301         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9302         to indicate if a message should be generated.
9303         (init_cumulative_args): Updated.
9304         (function_value_32): Likewise.
9305
9306 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9307
9308         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9309
9310 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9311
9312         PR target/35083
9313         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9314         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9315
9316 2008-02-04  Diego Novillo  <dnovillo@google.com>
9317
9318         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9319
9320         PR 33738
9321         * tree-vrp.c (vrp_evaluate_conditional): With
9322         -Wtype-limits, emit a warning when comparing against a
9323         constant outside the natural range of OP0's type.
9324
9325 2008-02-04  Richard Guenther  <rguenther@suse.de>
9326
9327         PR middle-end/33631
9328         * expr.c (count_type_elements): Give for unions instead of
9329         guessing.
9330
9331 2008-02-04  Richard Guenther  <rguenther@suse.de>
9332
9333         PR middle-end/35043
9334         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9335         to TYPE_DOMAINs base type instead of using bitsizetype here.
9336
9337 2008-02-03  Jason Merrill  <jason@redhat.com>
9338
9339         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9340
9341 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9342
9343         PR other/29972
9344         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9345         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9346         (RS/6000 and PowerPC Options): Fix typos and markup.
9347         * doc/passes.texi (Tree-SSA passes): Likewise.
9348
9349 2008-02-02  Michael Matz  <matz@suse.de>
9350
9351         PR target/35045
9352         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9353         from record_last_reg_set_info.
9354         (record_last_reg_set_info): Take an RTX argument, iterate over all
9355         constituent hardregs.
9356         (record_last_set_info, record_opr_changes): Change calls to
9357         new signature or to record_last_reg_set_info_regno.
9358
9359 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9360
9361         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9362
9363 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9364
9365         PR rtl-optimization/34773
9366         * reg-notes.def (EQUAL): Mention significance of combination of
9367         REG_EQUAL and REG_RETVAL.
9368         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9369         insn that has a REG_RETVAL.
9370
9371 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9372
9373         PR bootstrap/33781
9374         * configure.ac (--enable-fixed-point): Disable unless explicitly
9375         requested on IRIX.
9376         * configure: Regenerate.
9377
9378 2008-02-01  Richard Guenther  <rguenther@suse.de>
9379
9380         PR other/35042
9381         * invoke.texi (-finline-limit): Remove no longer true parts
9382         of the documentation.  Note that there is no default value.
9383
9384 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9385             Mark Mitchell  <mark@codesourcery.com>
9386             Ben Elliston  <bje@au.ibm.com>
9387
9388         PR c/29326
9389         * doc/extend.texi (Other Builtins): Document.
9390
9391 2008-01-31  Tom Browder <tom.browder@gmail.com>
9392
9393         * doc/c-tree.texi (Types): Fix grammar.
9394         (Expression trees): Ditto.
9395         * doc/passes.texi (Tree-SSA passes): Ditto.
9396         
9397         * doc/configterms.texi (Configure Terms): Fix typo.
9398         * doc/cpp.texi (Common Predefined Macros): Ditto.
9399         * doc/md.texi (Machine Constraints): Ditto.
9400         
9401         * doc/makefile.texi (Makefile): Add comma.
9402
9403 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9404             Gerald Pfeifer  <gerald@pfeifer.com>
9405         
9406         * doc/sourcebuild.texi (Front End): Remove references to CVS
9407         and CVSROOT/modules.
9408         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9409         (Back End): Remove reference to CVS.
9410
9411 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9412
9413         PR target/34900
9414         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9415         comment from...
9416         (mips16_gp_pseudo_reg): ...here.
9417         * config/mips/mips.md (load_const_gp): Replace with...
9418         (load_const_gp_<mode>): ...this :P-based insn.
9419
9420 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9421
9422         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9423         options. Minor fixes.
9424         (-std): Move reference to standards closer to where language
9425         standards are first mentioned.
9426         
9427 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9428
9429         PR rtl-optimization/34995
9430         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9431         parameter and return a bool.  If the rtx parameter is nonnull,
9432         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9433         (find_reloads): Update call accordingly.  Pass the new operand
9434         if it needed no address reloads, otherwise pass null.
9435
9436 2008-01-30  Richard Henderson  <rth@redhat.com>
9437
9438         PR c/34993
9439         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9440         for unbounded arrays.
9441
9442 2008-01-30  Silvius Rus  <rus@google.com>
9443
9444         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9445
9446 2008-01-30  Jan Hubicka  <jh@suse.cz>
9447
9448         PR target/34982
9449         * i386.c (init_cumulative_args): Use real function declaration when
9450         calling locally.
9451
9452 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9453
9454         PR rtl-optimization/34998
9455         * global.c (build_insn_chain): Treat non-subreg_lowpart
9456         SUBREGs of pseudos as clobbering all the words covered by the
9457         SUBREG, not just all the bytes.
9458         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9459         original df_ref rather than an extract parameter.
9460         (global_conflicts): Update call accordingly.
9461
9462 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9463
9464         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9465         the overflow check to make it easier to read.
9466         (__fixtfdi): Change the type of the ll member in union
9467         long_double to UDItype_x.
9468
9469 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9470
9471         PR middle-end/34969
9472         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9473         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9474         * tree-inline.c (fold_marked_statements): Call
9475         cgraph_update_edges_for_call_stmt if folding a call statement.
9476         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9477         debug_generic_stmt calls, reset it back afterwards.
9478
9479         PR c/35017
9480         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9481         static decls.
9482         * c-typeck.c (build_external_ref): Don't pedwarn about
9483         static vars in current function's scope.
9484
9485 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9486
9487         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9488
9489 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9490
9491         PR c/35002
9492         * ipa-struct-reorg.c: Fix spelling.
9493         * params.def: Ditto.
9494
9495 2008-01-29  Richard Guenther  <rguenther@suse.de>
9496
9497         PR middle-end/35006
9498         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9499         field.
9500         * tree-inline.c (remap_type): Increment remapping_type_depth
9501         around remapping types.
9502         (copy_body_r): Only add referenced variables if they are referenced
9503         from code, not types.
9504
9505 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9506
9507         PR c++/34055
9508         PR c++/34103
9509         PR c++/34219
9510         PR c++/34606
9511         PR c++/34753
9512         PR c++/34754
9513         PR c++/34755
9514         PR c++/34919
9515         PR c++/34961
9516         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9517         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9518
9519 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9520
9521         PR target/34412
9522         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9523         pointer for tiny stack.
9524
9525 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9526
9527         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9528
9529 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9530
9531         * config/vx-common.h: Fix typo in comment.
9532
9533 2008-01-28  Ian Lance Taylor  <iant@google.com>
9534
9535         PR c++/34862
9536         PR c++/33407
9537         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9538         coalesce pointers if they have different DECL_NO_TBAA_P values.
9539         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9540         between variables with different DECL_NO_TBAA_P values.
9541
9542 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9543
9544         PR 31535
9545         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9546         are not legitimate small data references on SPE targets.
9547
9548 2008-01-28  David Daney  <ddaney@avtrex.com>
9549
9550         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9551
9552 2008-01-28  David Daney  <ddaney@avtrex.com>
9553
9554         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9555
9556 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9557
9558         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9559         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9560         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9561         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9562         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9563         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9564         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9565         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9566
9567 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9568
9569         * basic-block.h (condjump_equiv_p): Fix comment.
9570
9571 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9572
9573         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9574         print_generic_stmt_indented): Fix comment.
9575
9576 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9577
9578         * configure.ac (__stack_chk_fail): Add detecion for availability
9579         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9580         * configure: Regenerate.
9581
9582 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9583
9584         PR middle-end/34688
9585         * final.c (output_addr_const): Handle TRUNCATE.
9586
9587 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9588
9589         PR target/34711
9590         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9591         (zero_cost, infinite_cost): New constants.
9592         (struct cost_pair): Change type of cost to comp_cost.
9593         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9594         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9595         New functions.
9596         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9597         split_address_cost, ptr_difference_cost, difference_cost,
9598         get_computation_cost_at, get_computation_cost,
9599         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9600         determine_use_iv_cost_condition, determine_use_iv_costs,
9601         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9602         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9603         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9604         Change type of cost to comp_cost.
9605         (determine_iv_cost): Increase cost of non-original ivs, instead
9606         of decreasing the cost of original ones.
9607         (get_address_cost): Indicate the complexity of the addressing mode 
9608         in comp_cost.
9609         (try_add_cand_for): Prefer using ivs not specific to some object.
9610         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9611
9612 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9613             Janis Johnson  <janis187@us.ibm.com>
9614
9615         PR target/34814
9616         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9617         (TARGET_INSTANTIATE_DECLS): Likewise.
9618         * target.h (expand_to_rtl_hook): New target hook.
9619         (instantiate_decls): Likewise.
9620         * function.c (instantiate_decl): Make non-static.  Rename to...
9621         (instantiate_decl_rtl): ... this.
9622         (instantiate_expr): Use instantiate_decl_rtl.
9623         (instantiate_decls_1): Likewise.
9624         (instantiate_decls): Likewise.
9625         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9626         * function.h (instantiate_decl_rtl): Add prototype.
9627         * cfgexpand.c (target.h): New include.
9628         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9629         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9630         (TARGET_INSTANTIATE_DECLS): Likewise.
9631         (TARGET_INITIALIZER): New target hooks added.
9632         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9633         New prototype.
9634         * config/rs6000/rs6000.c (tree-flow.h): New include.
9635         (machine_function): Add sdmode_stack_slot field.
9636         (rs6000_alloc_sdmode_stack_slot): New function.
9637         (rs6000_instantiate_decls): Likewise.
9638         (rs6000_secondary_memory_needed_rtx): Likewise.
9639         (rs6000_check_sdmode): Likewise.
9640         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9641         (TARGET_INSTANTIATE_DECLS): Likewise.
9642         (rs6000_hard_regno_mode_ok): Allow SDmode.
9643         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9644         (rs6000_emit_move): Handle SDmode.
9645         (function_arg_advance): Likewise.
9646         (function_arg): Likewise.
9647         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9648         SDmode var args for 32-bit compiles.
9649         (rs6000_secondary_reload_class): Handle SDmode.
9650         (rs6000_output_function_epilogue): Likewise.
9651         (rs6000_function_value): Simplify if statement.
9652         (rs6000_libcall_value): Likewise.
9653         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9654         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9655         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9656         (movsd_hardfloat): New define_insn.
9657         (movsd_softfloat): Likewise.
9658         (movsd_store): Likewise.
9659         (movsd_load): Likewise.
9660         (extendsddd2): Likewise.
9661         (extendsdtd2): Likewise.
9662         (truncddsd2): Likewise.
9663         (movdd_hardfloat64): Fixup comment.
9664         (UNSPEC_MOVSD_LOAD): New constant.
9665         (UNSPEC_MOVSD_STORE): Likewise.
9666
9667 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9668
9669         PR c++/34965
9670         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9671         TRUTH_XOR_EXPR.
9672         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9673         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9674         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9675         and TRUTH_XOR_EXPR.
9676
9677 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9678
9679         PR target/34794
9680         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9681         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9682         __LONGDOUBLE128 too.
9683         * config/rs6000/aix61.h: New file.
9684
9685 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9686
9687         PR rtl-optimization/34959
9688         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9689         popcount and parity rtxes the same mode as their operand.
9690         Truncate or extend the result to the return value's mode
9691         if necessary.
9692
9693 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9694
9695         PR target/34981
9696         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9697         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9698         to GOT_VERSION_REGNUM.
9699         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9700         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9701         * config/mips/mips.c (mips_emit_call_insn): New function.
9702         (mips_call_tls_get_addr): Call mips_expand_call directly.
9703         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9704         emit_call_insn.
9705         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9706         (mips_expand_call): Update the call to mips16_build_call_stub
9707         accordingly and a remove redundant condition.  Assert that MIPS16
9708         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9709         the call insn.
9710         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9711         TARGET_USE_GOT.
9712         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9713         (mips_avoid_hazard): Remove hazard_set handling.
9714         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9715         (UNSPEC_RESTORE_GP): ...this.
9716         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9717         (FAKE_CALL_REGNO): Rename to...
9718         (GOT_VERSION_REGNUM): ...this.
9719         (type): Add "ghost" value.  Add an associated insn reservation.
9720         (hazard_set): Remove.
9721         (exception_receiver): Rename to...
9722         (restore_gp): ...this and update the unspec identifier accordingly.
9723         (exception_receiver, nonlocal_got_receiver): New expanders.
9724         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9725         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9726         (set_got_version, update_got_version): New patterns.
9727
9728 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9729
9730         PR target/34970
9731         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9732
9733 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9734
9735         PR other/31955
9736         * doc/install.texi2html: Generate gcc-vers.texi.
9737
9738 2008-01-25  DJ Delorie  <dj@redhat.com>
9739
9740         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9741
9742 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9743
9744         * config/c4x: Remove directory.
9745         * config.gcc (crx-*, mt-*): Mark obsolete.
9746         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9747         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9748         sh-*-rtemscoff*): Remove cases.
9749         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9750         * real.c (encode_c4x_single, decode_c4x_single,
9751         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9752         c4x_extended_format): Remove.
9753         * real.h (c4x_single_format, c4x_extended_format): Remove.
9754         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9755         on C4x.
9756         (Pragmas): Remove comment about c4x pragmas.
9757         * doc/install.texi (c4x): Remove target-specific instructions.
9758         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9759         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9760         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9761         refer to C4x source files as examples.
9762         (C4X_FLOAT_FORMAT): Remove documentation.
9763
9764 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9765
9766         * config/bfin/bfin.c (override_options): Reorder tests so that
9767         flag_pic gets enabled for -msep-data.
9768
9769 2008-01-25  Richard Guenther  <rguenther@suse.de>
9770
9771         PR middle-end/32244
9772         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9773         to its bitfield precision if required.
9774
9775 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9776
9777         PR middle-end/33880
9778         * tree-nested.c (walk_omp_for): New function.
9779         (convert_nonlocal_reference, convert_local_reference): Call
9780         walk_omp_for on OMP_FOR.
9781         (convert_call_expr): Call walk_body on OMP_FOR's
9782         OMP_FOR_PRE_INIT_BODY.
9783
9784 2008-01-25  Richard Guenther  <rguenther@suse.de>
9785
9786         PR tree-optimization/34966
9787         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9788         default defs and PHI_NODEs we have to insert after the
9789         defining statement.
9790
9791 2008-01-24  Nick Clifton  <nickc@redhat.com>
9792
9793         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9794         Provide a default definition.
9795         (LIBGCC2_UNITS_PER_WORD): Likewise.
9796
9797         * config/stormy16/stormy16.c: Include df.h for the prototype
9798         for df_regs_ever_live_p.
9799         (xstormy16_expand_builtin_va_start): Convert the stack offset
9800         into a component_ref and then use POINTER_PLUS_EXPR to add it
9801         to the incoming_virtual_args_rtx.
9802         (xstormy16_gimplify_va_arg_expr): Rename to
9803         xstormy16_gimplify_va_arg_expr.
9804         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9805         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9806         xstormy16_gimplify_va_arg_expr.
9807         Fix up some formatting issues.
9808
9809         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9810         Move to predicates.md.
9811         (xs_hi_general_operand): Likewise.
9812         (xs_hi_nonmemory_operand): Likewise.
9813         * config/stormy16/predicates.md:
9814         (xstormy16_carry_plus_operand): New predicate.
9815         (xs_hi_general_operand): New predicate.
9816         (xs_hi_nonmemory_operand): New predicate.
9817         * config/stormy16/stormy16-protos.h:
9818         (xstormy16_carry_plus_operand): Delete prototype.
9819         (xs_hi_general_operand): Likewise.
9820         (xs_hi_nonmemory_operand): Likewise.
9821
9822         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9823         modifiers as they are no longer needed and they can trigger
9824         reload spill failures.
9825
9826         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9827         with a match_operand in order to help reload.
9828
9829         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9830         constraint with 'e' for the 8th alternative as this version of
9831         the mov.w instruction only accepts the lower 8 registers.
9832
9833 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9834
9835         PR target/34856
9836         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9837         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9838         vector elements.
9839
9840 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9841
9842         PR middle-end/33333
9843         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9844
9845 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9846
9847         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9848         New functions.
9849         (remove_structure): Update allocations list before removing structure.
9850         
9851 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9852
9853         * ipa-struct-reorg.c (is_safe_cond_expr, 
9854         create_new_stmts_for_cond_expr): Use integer_zerop function,
9855         that recognize not only zero-pointer, but zero-integer too.
9856
9857 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9858
9859         PR other/22232
9860         * fixproto: Escape "." in sed expression that strips leading "./".
9861
9862 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9863
9864         PR driver/34904
9865         * gcc.c (SWITCH_OK): Removed.
9866         (SWITCH_LIVE): Changed to bit.
9867         (SWITCH_FALSE): Likewise.
9868         (SWITCH_IGNORE): Likewise.
9869         (switchstr): Change live_cond to unsigned int.
9870         (process_command): Replace SWITCH_OK with 0.
9871         (do_self_spec): Likewise.
9872         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9873         (give_switch): Likewise.
9874         (used_arg): Likewise.
9875         (do_spec_1): Set the SWITCH_IGNORE bit.
9876         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9877         bits.  Set the SWITCH_LIVE bit.
9878
9879 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9880
9881         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9882
9883 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9884
9885         PR tree-optimization/34472
9886         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9887         parameter to a "bool *" and set *DATA to false if there is
9888         an unsafe access.  Do not delete the structure here.
9889         (check_cond_exprs): Delete it here instead.
9890         (check_cond_exprs, exclude_cold_structs): Do not increase
9891         I when removing a structure.
9892
9893 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9894
9895         PR target/34856
9896         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9897         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9898
9899 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9900
9901         PR middle-end/34934
9902         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9903         a fixed vector for stack.
9904
9905 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9906
9907         PR c++/25701
9908         * doc/gcc.texi (Software development): Add a direntry for g++.
9909         
9910 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9911
9912         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9913         stale and straggling -fforce-addr comments above.
9914
9915         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9916         define.
9917         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9918         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9919
9920 2008-01-23  Michael Matz  <matz@suse.de>
9921
9922         PR debug/34895
9923         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9924         gen_type_die.
9925
9926 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9927
9928         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9929         malloc result type.
9930
9931 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9932
9933         * config/avr/avr.c (avr_current_arch): New variable.
9934         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9935         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9936         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9937         (avr_override_options): Init 'avr_current_arch'. 
9938         (base_arch_s): Move from here...
9939         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9940         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9941         'mega' to 'have_jmp_call'.
9942         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9943         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9944         macros.
9945         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9946         architectures.
9947         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9948         MULTILIB_MATCHES): (Ditto.).
9949
9950 2008-01-23  Richard Guenther  <rguenther@suse.de>
9951
9952         PR middle-end/31529
9953         * cgraphunit.c (cgraph_reset_node): Always mark the node
9954         not reachable if it is not queued already.
9955
9956 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9957
9958         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9959         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9960         (cputype_selected): New static variable.
9961         (bfin_handle_option): Set it if -mcpu is used.
9962         (override_option): Select default set of workarounds if no cpu type
9963         selected on the command line.
9964         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9965
9966         From  Michael Frysinger  <michael.frysinger@analog.com>
9967         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9968         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9969
9970         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9971         for bf547, bf523, bf524, and bf526.
9972         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9973         bf526.
9974         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9975         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9976         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9977         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9978         * doc/invoke.texi (Blackfin Options): Document that
9979         -mcpu now accept bf547, bf523, bf524, and bf526.
9980
9981 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9982
9983         PR rtl-optimization/34628
9984         * combine.c (try_combine): Stop and undo after the first combination
9985         if an autoincrement side-effect on the first insn has effectively
9986         been lost.
9987
9988 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9989
9990         PR target/34529
9991         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9992         Offset addresses are not valid for Altivec or paired float modes.
9993
9994 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
9995
9996         PR c++/34607
9997         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
9998         if DECL_INITIAL (decl) is error_mark_node.
9999
10000         PR c++/34914
10001         * c-common.c (handle_vector_size_attribute): Only allow
10002         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10003         the same way as pointer, array etc. types.
10004         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10005
10006         PR c++/34917
10007         * tree.c (build_type_attribute_qual_variant): Call
10008         build_qualified_type if attributes are equal, but quals are not.
10009
10010 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10011
10012         PR 32102
10013         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10014         * flags.h (warn_strict_aliasing): Remove.
10015         (warn_strict_overflow): Remove.
10016         * opts.c (warn_strict_aliasing): Remove.
10017         (warn_strict_overflow): Remove.
10018         * c-opts.c (c_common_handle_option): -Wall only sets
10019         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10020         (c_common_post_options): Give default values to -Wstrict-aliasing
10021         and -Wstrict-overflow if they are uninitialized.
10022         * common.opt (Wstrict-aliasing): Specify Var and Init.
10023         (Wstrict-overflow): Likewise.
10024
10025 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10026
10027         PR rtl-optimization/26854
10028         PR rtl-optimization/34400
10029         PR rtl-optimization/34884
10030         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10031         DF_RD->gen.
10032         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10033         (df_rd_bb_info.expanded_lr_out): Deleted
10034         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10035         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10036         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10037         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10038         Removed code to allocate, initialize or free expanded_lr_out.
10039         (df_rd_bb_local_compute_process_def): Restructured to make more
10040         understandable.
10041         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10042         sets if the sets are being trimmed.
10043
10044 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10045
10046         PR bootstrap/32287
10047         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10048         (as_vers): Likewise.
10049         * configure: Regenerated.
10050
10051 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10052
10053         PR middle-end/33092
10054         * tree-pass.h (pass_build_alias): New pass.
10055         * tree-ssa-alias.c (gate_build_alias): New.
10056         (pass_build_alias): New.
10057         * passes.c (init_optimization_passes): Add pass_build_alias after
10058         pass_create_structure_vars.
10059
10060 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10061
10062         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10063         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10064         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10065         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10066         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10067         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10068         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10069         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10070         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10071         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10072         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10073         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10074         * config/s390/s390.md (FP_ALL): New mode iterator.
10075         (_d): New mode attribute.
10076         ("*signbit<mode>2>"): Changed mode of first operand.
10077         ("isinf<mode>2"): Changed mode of first operand.
10078         ("*TDC_insn"): Adaptation for DFP modes.
10079
10080 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10081
10082         * tree.c (check_qualified_type): Improve function description.
10083
10084 2008-01-21  Jason Merrill  <jason@redhat.com>
10085
10086         PR c++/34196
10087         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10088         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10089         if it is set.
10090
10091 2008-01-21  DJ Delorie  <dj@redhat.com>
10092
10093         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10094         return zero.
10095
10096 2008-01-21  Richard Guenther  <rguenther@suse.de>
10097
10098         PR middle-end/34856
10099         * tree-cfg.c (verify_expr): Allow all invariant expressions
10100         instead of just constant class ones as reference argument.
10101         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10102         like any other constant.
10103         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10104
10105 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10106
10107         * regmove.c (fixup_match_1): Update call crossed frequencies.
10108
10109 2008-01-21  Richard Guenther  <rguenther@suse.de>
10110
10111         PR c/34885
10112         * tree-inline.c (setup_one_parameter): Deal with mismatched
10113         types using a VIEW_CONVERT_EXPR.
10114
10115 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10116             Olga Golovanevsky  <olga@il.ibm.com>
10117         
10118         PR tree-optimization/34701
10119         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10120         when the structure size is not a power of 2.
10121
10122 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10123
10124         * doc/install.texi: Add doc for --enable-checking=df.
10125         
10126 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10127
10128         PR rtl-optimization/34808
10129         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10130
10131 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10132
10133         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10134         input.
10135
10136 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10137
10138         PR rtl-optimization/26854
10139         PR rtl-optimization/34400
10140         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10141         DF_RD->gen.
10142         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10143         (df_rd_bb_info.expanded_lr_out): New.
10144         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10145         * loop_iv.c (iv_analysis_loop_init): Ditto.
10146         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10147         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10148         Added code to allocate, initialize or free expanded_lr_out.
10149         (df_rd_bb_local_compute_process_def): Restructured to make
10150         more understandable.
10151         (df_rd_confluence_n): Add code to do nothing with fake edges and
10152         code to no apply invalidate_by_call sets if the sets are being trimmed.
10153         (df_lr_local_finalize): Renamed to df_lr_finalize.
10154         (df_live_local_finalize): Renamed to df_live_finalize.
10155
10156 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10157
10158         PR target/34831
10159         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10160         deciding whether to use reciprocal instructions.
10161
10162 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10163
10164         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10165         dwarf2out_note_section_used if cold_text_section is NULL.
10166
10167 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10168
10169         PR gcov-profile/34610
10170         * tree-cfg.c (make_edges): Mark both outgoing edges from
10171         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10172         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10173         from OMP_FOR and OMP_CONTINUE outgoing edges.
10174
10175         * tree-profile.c (tree_profiling): Return early if
10176         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10177         at the end.
10178         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10179         from cfun to child_cfun.
10180         * function.h (struct function): Add after_tree_profile bit.
10181
10182 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10183
10184         * config/avr/avr.S (_exit): Disable interrupt.
10185
10186 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10187             Steven Bosscher  <stevenb.gcc@gmail.com>
10188
10189         PR rtl-optimization/26854
10190         PR rtl-optimization/34400
10191         * df-problems.c (df_live_scratch): New scratch bitmap.
10192         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10193         (df_live_reset): Clear the proper bitmaps.
10194         (df_live_bb_local_compute): Only process the artificial defs once
10195         since the order is not important.
10196         (df_live_init): Init the df_live sets only with the variables
10197         found live by df_lr.
10198         (df_live_transfer_function): Use the df_lr sets to prune the
10199         df_live sets as they are being computed.  
10200         (df_live_free): Free df_live_scratch.
10201
10202 2008-01-18  Ian Lance Taylor  <iant@google.com>
10203
10204         * common.opt: Add fmerge-debug-strings.
10205         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10206         flag_merge_debug_strings rather than flag_merge_constants.
10207         * doc/invoke.texi (Option Summary): Mention
10208         -fmerge-debug-strings.
10209         (Debugging Options): Document -fmerge-debug-strings.
10210
10211 2008-01-18  Ian Lance Taylor  <iant@google.com>
10212
10213         PR c++/33407
10214         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10215         (struct tree_function_decl): Add new field operator_new_flag.
10216         * tree-inline.c (expand_call_inline): When inlining a call to
10217         operator new, force the return value to go into a variable, and
10218         set DECL_NO_TBAA_P on that variable.
10219         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10220
10221 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10222
10223         PR debug/34484
10224         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10225         DWARF2_DEBUGGING_INFO.
10226         (dwarf2out_note_section_used): Ditto.  Add prototype.
10227         (have_multiple_function_sections, text_section_used,
10228         cold_text_section_used, *cold_text_sections): Move declarations
10229         before their uses.
10230
10231 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10232
10233         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10234         field and add signal_ra.
10235         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10236         assignments to frame state pc.  Move end of stack check after
10237         MD_FALLBACK_FRAME_STATE_FOR.
10238         (uw_update_context_1): Use frame state signal_regs if set, instead
10239         of checking signal_frame flag.
10240         (uw_update_context): Use frame state signal_ra if set.
10241         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10242         * config/xtensa/linux-unwind.h: New file.
10243
10244 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10245
10246         * modulo-sched.c (get_sched_window): Fix comment typo.
10247
10248 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10249
10250         PR tree-optimization/34648
10251         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10252
10253 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10254
10255         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10256         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10257
10258 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10259
10260         PR rtl-optimization/34400
10261         * df-core.c (df_worklist_dataflow_overeager,
10262         df_worklist_dataflow_doublequeue): New functions.
10263         (df_worklist_dataflow): Two different worklist solvers.
10264         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10265         New param.
10266
10267 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10268
10269         PR testsuite/34821
10270         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10271         and ftree-parallelize-loops.
10272
10273 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10274
10275         PR rtl-optimization/34826
10276         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10277
10278 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10279
10280         * global.c (find_reg): Mark the eh regs as used if necessary.
10281         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10282         * ra.h (struct allocno): no_eh_reg field added.  Changed
10283         no_stack_reg type to bitfield.
10284
10285 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10286
10287         * tree.c (substitute_in_expr): Add missing 'break'.
10288
10289 2008-01-17  Richard Guenther  <rguenther@suse.de>
10290
10291         PR tree-optimization/34825
10292         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10293         x / x as division to handle.
10294
10295 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10296
10297         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10298         "-pthread" is specified.
10299         * pa-hpux11.h (LIB_SPEC): Likewise.
10300
10301 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10302             Peter Bergner  <bergner@vnet.ibm.com>
10303
10304         PR rtl-optimization/33796
10305         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10306
10307 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10308
10309         PR libgfortran/34699
10310         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10311         static links.
10312         * pa-hpux10.h (LINK_SPEC): Likewise.
10313         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10314
10315 2008-01-16  Richard Guenther  <rguenther@suse.de>
10316
10317         PR middle-end/32628
10318         * fold-const.c (fold_convert_const_int_from_int): Do not
10319         set overflow if that occured only because of a sign extension
10320         change when converting from/to a sizetype with the same
10321         precision and signedness.
10322
10323 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10324
10325         PR debug/34249
10326         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10327         location address to the correct place.  Update copyright year.
10328
10329 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10330
10331         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10332         no dependences in the dependence_relations vector.
10333
10334 2008-01-16  Jan Hubicka  <jh@suse.cz>
10335
10336         PR rtl-optimization/31396
10337         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10338         * cfg.c (dump_reg_info): Print it.
10339         * regs.h (struct reg_info_t): add freq_calls_crossed.
10340         (REG_FREQ_CALLS_CROSSED): New macro.
10341         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10342         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10343         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10344         regmove_optimize): Update call crossed frequencies.
10345         * local-alloc.c (struct qty): Add freq_calls_crossed.
10346         (alloc_qty): Copute freq_calls_crossed.
10347         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10348         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10349         * ra.h (struct allocno): Add freq_calls_crossed.
10350
10351 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10352
10353         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10354         libgomp when compiling with ftree-parallelize-loops.
10355         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10356
10357 2008-01-16  Richard Guenther  <rguenther@suse.de>
10358
10359         PR tree-optimization/34769
10360         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10361         * tree.c (int_cst_value): Instead make this function more
10362         permissive in what it accepts as valid input.  Document this
10363         function always sign-extends the value.
10364
10365 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10366             Richard Guenther  <rguenther@suse.de>
10367
10368         PR c/34668
10369         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10370         (gimple_fold_indirect_ref_rhs): ... this.
10371         (gimple_fold_indirect_ref): New function with foldings
10372         that preserve lvalueness.
10373         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10374         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10375         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10376         to fold an INDIRECT_REF, fall back to the old use of
10377         fold_indirect_ref_1.
10378
10379 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10380
10381         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10382         free_conflict_function.
10383         (compute_self_dependence): Same.
10384
10385 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10386
10387         PR debug/34249
10388         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10389         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10390         function global.
10391         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10392         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10393         for DWARF2_UNWIND_INFO targets.
10394
10395 2008-01-16  Richard Guenther  <rguenther@suse.de>
10396
10397         PR c/34768
10398         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10399         type qualifiers for function types.
10400
10401 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10402
10403         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10404         loop_iterator li from previous commit.
10405
10406 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10407
10408         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10409
10410 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10411
10412         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10413         (parallelize_loops): Don't parallelize irreducible components.
10414
10415 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10416
10417         PR c++/24924
10418         * c-opts (c_common_post_options): Do not enable CPP
10419         flag_pedantic_errors by default.
10420         
10421 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10422
10423         PR rtl-optimization/31944
10424         * cse.c (remove_pseudo_from_table): New function.
10425         (merge_equiv_classes): Use above function to remove pseudo-registers.
10426         (invalidate): Likewise.
10427
10428 2008-01-13  Richard Guenther  <rguenther@suse.de>
10429
10430         PR middle-end/34601
10431         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10432         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10433
10434 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10435
10436         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10437         validate_change to unshare the source of the PC set.
10438
10439 2008-01-12  Jan Hubicka  <jh@suse.cz>
10440
10441         PR middle-end/32135
10442         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10443         references above array bounds.  This might trigger bounds checks for
10444         pointers to arrays.
10445
10446 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10447
10448         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10449         new_replaceable_dependencies.
10450
10451 2008-01-12  Doug Kwan  <dougkwan@google.com>
10452
10453         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10454         instead of OPT_Wreturn_type in warning due to ignored return type
10455         qualifiers.
10456         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10457         options included in -Wextra.
10458         * c.opt: New option -Wignored_qualifiers.
10459         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10460         -Wignore_qualifiers.
10461         (-Wignored-qualifiers): Document.
10462         (-Wreturn-type): Remove description of functionality now handled
10463         by -Wignored-qualifiers.
10464
10465 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10466
10467         PR ada/33788
10468         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10469         NOP_EXPR if it is between integral types with the same precision.
10470
10471 2008-01-12  Jan Hubicka  <jh@suse.cz>
10472
10473         PR other/28023
10474         * invoke.texi (max-inline-recursive-depth): Fix default value.
10475
10476 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10477
10478         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10479         correct type.
10480
10481 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10482         
10483         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10484         
10485 2008-01-11  James E. Wilson  <wilson@specifix.com>
10486
10487         PR target/26015
10488         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10489
10490 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10491
10492         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10493         save/restore frame pointer register and don't use 'call-prologues' 
10494         optimization in function with "OS_task" attribute.
10495
10496 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10497
10498         PR middle-end/31309
10499         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10500         when copying to memory.
10501
10502 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10503
10504         PR rtl-optimization/30905
10505         * cfgcleanup.c: Include dce.h
10506         (crossjumps_occured): New global variable.
10507         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10508         If something changed, set crossjumps_occured to true.
10509         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10510         Don't add/remove fake edges to exit here...
10511         (cleanup_cfg): ...but do it here, when crossjumping.
10512         Run a fast DCE when successful crossjumps occured in the latest
10513         iteration of try_optimize_cfg.
10514
10515 2008-01-11  Richard Guenther  <rguenther@suse.de>
10516
10517         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10518         (struct vn_unary_op_s): Likewise.
10519         (vn_reference_insert): Free old reference on hash collision.
10520
10521 2008-01-10  Raksit Ashok  <raksit@google.com>
10522
10523         PR rtl-optimization/27971
10524         * combine.c (find_split_point): Split PLUS expressions which are
10525         inside a MEM rtx, and whose first operand is complex.
10526
10527 2008-01-10  DJ Delorie  <dj@redhat.com>
10528
10529         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10530         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10531         (m32c_hard_regno_ok): Call the underlying function.
10532
10533 2008-01-10  Richard Guenther  <rguenther@suse.de>
10534
10535         PR middle-end/34683
10536         * tree-cfg.c (tree_merge_blocks): Do not go through the
10537         full-blown folding and stmt updating path if we just deal
10538         with virtual operands.
10539         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10540         test for abnormal SSA_NAMEs.
10541
10542 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10543
10544         PR middle-end/34641
10545         * reload.c (push_reload): Add assertions.  All constants from
10546         reg_equiv_constant should have been used for replacing the respective
10547         pseudo earlier.
10548         (find_reloads_address): Invoke find_reloads_address_part for
10549         constant taken from the reg_equiv_constant array.
10550
10551 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10552
10553         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10554         field (valnum) the first in the struct.  Replace bools with
10555         unit bit fields.
10556
10557 2008-01-10  Richard Guenther  <rguenther@suse.de>
10558
10559         PR tree-optimization/34651
10560         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10561         types and ordering for masking and converting.
10562
10563 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10564
10565         PR tree-optimization/34017
10566         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10567         also for PHI_NODE expressions.
10568
10569 2008-01-09  Jan Hubicka  <jh@suse.cz>
10570
10571         PR tree-optimization/34708
10572         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10573         based on number of case labels.
10574         (init_inline_once): Remove switch_cost.
10575         * tree-inline.h (eni_weights_d): Remove switch_cost.
10576
10577 2008-01-09  Richard Guenther  <rguenther@suse.de>
10578         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10579
10580         PR middle-end/30132
10581         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10582         temporary if an rvalue is ok or an lvalue is not required.
10583
10584 2008-01-09  Richard Guenther  <rguenther@suse.de>
10585
10586         PR middle-end/34458
10587         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10588         adjust return type.
10589
10590 2008-01-09  Richard Guenther  <rguenther@suse.de>
10591
10592         PR middle-end/34679
10593         * tree.c (host_integerp): Check for sizetype only if the
10594         type is an integer type.
10595
10596 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10597
10598         PR debug/26364
10599         * opts.c (decode_options): Disable inlining of functions called
10600         once if not in unit-at-a-time mode.
10601
10602 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10603
10604         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10605
10606 2008-01-08  Richard Guenther  <rguenther@suse.de>
10607
10608         PR middle-end/31863
10609         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10610         out early if the result will be unused.
10611
10612 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10613
10614         PR target/34709
10615         Revert:
10616
10617         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10618         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10619         for TARGET_RECIP.       
10620         
10621 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10622         
10623         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10624         for vectorization tuned.
10625         
10626 2008-01-08  Richard Guenther  <rguenther@suse.de>
10627
10628         PR tree-optimization/34683
10629         * tree-ssa-operands.c (operand_build_cmp): Export.
10630         * tree-ssa-operands.h (operand_build_cmp): Declare.
10631         * tree-vn.c (vuses_compare): Remove.
10632         (sort_vuses): Use operand_build_cmp.
10633         (sort_vuses_heap): Likewise.
10634         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10635         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10636         (vdefs_to_vec): Do not sort already sorted VDEFs.
10637
10638 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10639
10640         PR middle-end/34694
10641         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10642
10643 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10644
10645         PR target/34702
10646         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10647         limitations of reciprocal sequences on x86 targets.
10648
10649 2008-01-08  Richard Guenther  <rguenther@suse.de>
10650
10651         PR tree-optimization/34683
10652         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10653
10654 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10655
10656         PR target/34622
10657         * config/darwin.c (darwin_mergeable_string_section): Don't use
10658         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10659
10660 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10661
10662         PR target/34682
10663         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10664         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10665         predicates of op0 and op1 to register_operand.
10666         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10667         expander using X87MODEF mode iterator.  Change predicates of
10668         op0 and op1 to register_operand.
10669         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10670         corresponding patterns and macroize using MODEF macro.  Change
10671         predicates of op0 and op1 to register_operand and remove
10672         "m" constraint. Disparage "r" alternative with "!".
10673         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10674         macroize using X87MODEF macro.  Change predicates of op0 and op1
10675         to register_operand and remove "m" constraint.  Disparage "r"
10676         alternative with "!".
10677         (absneg splitter with memory operands): Remove.
10678         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10679         patterns and macroize using X87MODEF mode iterator.
10680         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10681         Change predicate of op1 to register_operand.
10682         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10683         for memory operands.
10684
10685 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10686
10687         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10688
10689 2008-01-07  Richard Guenther  <rguenther@suse.de>
10690
10691         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10692         fields.
10693
10694 2008-01-07  Richard Guenther  <rguenther@suse.de>
10695
10696         PR tree-optimization/34683
10697         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10698         VOPs of the needed size to save memory.  Use VEC_quick_push
10699         to save compile-time.
10700         (vdefs_to_vec): Likewise.
10701
10702 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10703
10704         * config/spu/spu.md (divdf3): Genetate inline code for double
10705         division.  The implementation doesn't handle INF or NAN, therefore it
10706         only applies when -ffinite-math-only is given.
10707
10708 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10709
10710         PR libstdc++/34680
10711         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10712         * doc/cpp.texi ([Common Predefined Macros]): Document.
10713
10714 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10715
10716         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10717         order to use commutative addition instead of subtraction.
10718
10719 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10720             Mircea Namolaru  <namolaru@il.ibm.com>
10721             Vladimir Yanovsky  <yanov@il.ibm.com>
10722             Revital Eres  <eres@il.ibm.com>
10723
10724         PR tree-optimization/34263
10725         * tree-outof-ssa.c (process_single_block_loop_latch,
10726         contains_tree_r): New functions.
10727         (analyze_edges_for_bb): Call process_single_block_loop_latch
10728         function to empty single-basic-block latch block if possible.
10729
10730 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10731
10732         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10733         for TARGET_RECIP.
10734         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10735
10736 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10737
10738         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10739
10740 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10741
10742         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10743
10744 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10745
10746         PR tree-optimization/34618
10747         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10748         flag from T.
10749
10750 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10751
10752         PR target/34673
10753         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10754         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10755         Update copyright year.
10756
10757         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10758         Update copyright year.
10759         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10760         using NR fixup.
10761
10762 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10763
10764         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10765         edge does not point to current bb before changing need_assert.
10766
10767 2008-01-04  Richard Guenther  <rguenther@suse.de>
10768
10769         PR middle-end/34029
10770         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10771         for verifying purposes if they are is_gimple_min_invariant.
10772
10773 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10774
10775         PR tree-optimization/34448
10776         PR tree-optimization/34465
10777         * gimplify.c (gimplify_init_constructor): Add new parameter
10778         notify_temp_creation.  Use it.
10779         (gimplify_modify_expr_rhs): Take volatiles into account when
10780         optimizing constructors.
10781         Do not optimize constructors if gimplify_init_constructor will dump to
10782         memory.
10783         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10784         * gcc.c-torture/compile/pr34448.c: New.
10785
10786 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10787
10788         PR gcov-profile/34609
10789         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10790         return_slot if result is TREE_ADDRESSABLE.
10791
10792 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10793
10794         * config/mips/mips.md (sqrt_condition): Tweak comment.
10795         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10796
10797 2008-01-03  Tom Tromey  <tromey@redhat.com>
10798
10799         PR c/34457
10800         * c-common.c (c_type_hash): Handle VLAs.
10801
10802 2008-01-03  Jan Hubicka  <jh@suse.cz>
10803
10804         PR tree-optimization/31081
10805         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10806         0 when inlining and not inlining to first basic block.
10807         (remap_decl): When var is initialized to 0, don't set default_def.
10808         (expand_call_inline): Set entry_bb.
10809         * tree-inline.h (copy_body_data): Add entry_bb.
10810
10811 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10812
10813         PR c++/34619
10814         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10815         before returning.
10816
10817         PR tree-optimization/29484
10818         * tree-inline.c (inline_forbidden_p_2): New function.
10819         (inline_forbidden_p): Disallow inlining if some static var
10820         has an address of a local LABEL_DECL in its initializer.
10821         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10822         vs. inlining.
10823
10824 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10825
10826         PR tree-optimization/34635
10827         * tree-data-ref.c (add_other_self_distances): Make sure that the
10828         evolution step is constant.
10829
10830 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10831
10832         PR middle-end/34608
10833         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10834
10835 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10836
10837         * tree-sra.c (scalarize_init): Insert the generate_element_init
10838         statements after the generate_element_zero statements.
10839
10840 2008-01-02  Richard Guenther  <rguenther@suse.de>
10841
10842         PR middle-end/34093
10843         PR middle-end/31976
10844         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10845         for very large number of operands instead of ICEing.
10846
10847 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10848
10849         PR target/34013
10850         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10851         while stack probing.
10852
10853 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10854
10855         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10856         in C++0x mode.
10857
10858 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10859
10860         PR libmudflap/26442
10861         * tree-mudflap.c (mx_register_decls): Guard warning by
10862         !DECL_ARTIFICIAL check.
10863
10864 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10865
10866         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10867         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10868         sse5_perm<mode>): Fix constraints.