OSDN Git Service

5fb8fddad931dc51dcec0de542b987fb3bc93c17
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
4
5 2008-05-29  Richard Guenther  <rguenther@suse.de>
6
7         PR tree-optimization/36343
8         PR tree-optimization/36346
9         PR tree-optimization/36347
10         * tree-flow.h (clobber_what_p_points_to): Declare.
11         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
12         pointed-to variable is dereferenced is irrelevant to whether
13         the pointer can access the pointed-to variable.
14         (clobber_what_p_points_to): New function.
15         * tree-ssa-alias.c (set_initial_properties): Use it.
16         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
17         call clobber check for NMTs.
18
19 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
20         
21         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
22         for printing gcov_type.
23
24 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
25
26         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
27         and the eh region information.
28         * value-prof.c (gimple_move_stmt_histograms): New function.
29         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
30
31 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
32
33         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
34
35 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
36
37         * value-prof.c (tree_ic_transform): Print counts.
38         * tree-profile.c (tree_gen_ic_func_profiler):
39         Clear __gcov_indreict_call_callee variable
40         to avoid misattribution of the profile.
41
42 2008-05-28  Rafael Espindola  <espindola@google.com>
43
44         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
45         invalid sharing.
46
47 2008-05-28  Richard Guenther  <rguenther@suse.de>
48
49         PR tree-optimization/36339
50         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
51         and clobbering code out of the loop.
52
53 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
54
55         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
56         letters defined.
57
58         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
59         s390_contiguous_bitmask_p, s390_symref_operand_p,
60         s390_check_symref_alignment, s390_reload_larl_operand,
61         s390_reload_symref_address): New functions.
62         (s390_branch_condition_mnemonic): Support compare and branch
63         instructions.
64         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
65         and 'W' constraints.
66         (s390_secondary_reload): Add secondary reloads for unaligned
67         symbol refs or symbol refs to floating point or QI/TI mode
68         integer values.
69         (legitimate_address_p): Accept symbol references as addresses.
70         (s390_expand_insv): Use rotate and insert selected bits
71         instruction for insv when building for z10.
72         (print_operand_address): Handle symbol ref addresses.
73         (print_operand): Output modifier 'c' added for signed byte
74         values.
75         (s390_encode_section_info): Mark symbol refs with
76         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
77
78         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
79         (length attribute): RRF, RRR have 4 byte length.
80         (FPALL, INTALL): New mode iterators added.
81         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
82         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
83         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
84         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
85         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
86         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
87         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
88         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
89         instructions.
90         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
91         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
92         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
93         reload<INTALL:mode><P:mode>_toreg_z10,
94         reload<FPALL:mode><P:mode>_tomem_z10,
95         reload<FPALL:mode><P:mode>_toreg_z10,
96         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
97         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
98         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
99         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
100         definition.
101         (movmem, clrmem, cmpmem): New splitters added.
102
103         * config/s390/predicates.md (larl_operand): Use
104         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
105         SYMBOL_REF_ALIGN1_P.
106         (s390_signed_integer_comparison,
107         s390_unsigned_integer_comparison): New predicates.
108
109         * config/s390/s390-protos.h (s390_check_symref_alignment,
110         s390_contiguous_bitmask_p, s390_reload_larl_operand,
111         s390_reload_symref_address,
112         s390_compare_and_branch_condition_mask): Prototypes added.
113
114         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
115         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
116         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
117
118 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
119
120         * config/s390/s390.c (z10_cost): New cost function for z10.
121         (s390_handle_arch_option, override_options): Support
122         -march=z10 switch.
123         (s390_issue_rate): Adjust issue rate for z10.
124         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
125         (processor_flags): Add PF_Z10.
126         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
127         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
128         * gcc/config.gcc: Add z10.
129
130 2008-05-28  Richard Guenther  <rguenther@suse.de>
131
132         PR tree-optimization/36291
133         * tree-flow. h (struct gimple_df): Remove var_anns member.
134         * tree-flow-inline.h (gimple_var_anns): Remove.
135         (var_ann): Simplify.
136         * tree-dfa.c (create_var_ann): Simplify.
137         (remove_referenced_var): Clear alias info from var_anns of globals.
138         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
139         (delete_tree_ssa): Clear alias info from var_anns of globals.
140         Do not free var_anns.
141         (var_ann_eq): Remove.
142         (var_ann_hash): Likewise.
143
144 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
145
146         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
147         and loongson2f entries.
148         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
149         * config/mips/mips.h (processor_type): Add Loongson-2E
150         and Loongson-2F entries.
151         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
152         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
153         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
154         * doc/invoke.texi (MIPS Options): Document loongson2e
155         and loongson2f processor names.
156
157 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
158
159         PR target/35767
160         PR target/35771
161         * config/i386/i386.c (ix86_function_arg_boundary): Use
162         alignment of canonical type.
163         (ix86_expand_vector_move): Check unaligned memory access for
164         all SSE modes.
165
166 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
167
168         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
169         Moved to the front of file.
170
171 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
172             H.J. Lu  <hongjiu.lu@intel.com>
173
174         * dwarf2out.c (current_fde): New.
175         (add_cfi): Use it.
176         (lookup_cfa:): Likewise.
177         (dwarf2out_end_epilogue): Likewise.
178         (dwarf2out_note_section_used): Likewise.
179
180 2008-05-27  Michael Matz  <matz@suse.de>
181
182         PR c++/27975
183         * c.opt (Wenum-compare): New warning option.
184         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
185
186 2008-05-27  Michael Matz  <matz@suse.de>
187
188         PR middle-end/36326
189         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
190         non-BLKmode types.
191         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
192         into memory as tail calls.
193
194 2008-05-27  Richard Guenther  <rguenther@suse.de>
195
196         PR tree-optimization/36339
197         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
198         pointers cause all addressable variables to be call clobbered.
199
200 2008-05-27  Richard Guenther  <rguenther@suse.de>
201
202         PR tree-optimization/36245
203         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
204         bases.
205
206 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
207
208         * config/s390/s390.md: Replace all occurences of the 'm'
209         constraint with 'RT'.
210
211 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
212
213         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
214         definitions added.
215         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
216         "*movdi_64".
217         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
218         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
219         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
220
221 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
222
223         * reload.c: (find_reloads): Skip alternatives according to the
224         "enabled" attribute. Constify the constraint variable.
225         * recog.c (get_attr_enabled): Add default implementation.
226         (extract_insn): Set the alternative_enabled_p array
227         in the recog_data struct.
228         (preprocess_constraints, constrain_operands): Skip
229         alternatives according to the "enabled" attribute
230         * recog.h (struct recog_data): New field alternative_enabled_p.
231         (skip_alternative): New inline function.
232         * regclass.c: (record_operand_costs): Check the "enabled"
233         attribute.
234         (record_reg_classes): Skip alternative according to the
235         "enabled" attribute.
236
237         * doc/md.texi: Add documention for the "enabled" attribute.
238
239 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
240
241         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
242         * postreload.c (reload_cse_simplify_operands): Replace 'm'
243         constraint with TARGET_MEM_CONSTRAINT.
244         * recog.c (asm_operand_ok, preprocess_constraints,
245         constrain_operands): Likewise.
246         * regclass.c (record_reg_classes): Likewise.
247         * reload.c (find_reloads, alternative_allows_const_pool_ref):
248         Likewise.
249         * reload1.c (maybe_fix_stack_asms): Likewise.
250         * stmt.c (parse_output_constraint, parse_input_constraint):
251         Likewise.
252         * recog.h: Adjust comment.
253         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
254         * genoutput.c (note_constraint): Don't emit error for 'm'
255         constraint.
256         * doc/md.texi: Add a note to description of 'm' constraint.
257         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
258
259 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
260
261         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
262         that the bitfield is of integral type before testing its precision.
263
264 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
265             Sa Liu  <saliu@de.ibm.com> 
266
267         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
268         __modti3, __udivti3, __umodti3 and __udivmodti4.
269         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
270         that implement TImode mul and div functions.
271         * config/spu/multi3.c: New. Implement __multi3.
272         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
273         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
274         functions on SPU.
275
276 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
277
278         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
279         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
280         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
281         tls_sysv_suffix): New mode and mode attribute iterators.
282         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
283         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
284         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
285         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
286         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
287         iterators.
288
289 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
290
291         PR tree-optimization/36329
292         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
293         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
294         * cgraphbuild.c (initialize_inline_failed): Use the latter
295         macro in lieu of the former.
296         * ipa-inline.c (cgraph_mark_inline): Likewise.
297         (cgraph_decide_inlining_of_small_function): Likewise.
298         (cgraph_decide_inlining): Likewise.
299         (cgraph_decide_inlining_incrementally): Likewise.
300
301 2008-05-26  Tristan Gingold  <gingold@adacore.com>
302             Anatoly Sokolov  <aesok@post.ru>
303
304         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
305         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
306         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
307         optimization for 'avr6' architecture.
308
309 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
310
311         PR target/34932
312         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
313
314 2008-05-26  Richard Guenther  <rguenther@suse.de>
315
316         * tree-ssa-sccvn.c (expr_has_constants): Declare.
317         (visit_reference_op_load): Initialize VN_INFO->has_constants
318         properly.
319
320 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
321
322         PR middle-end/36253
323         * caller-save.c (insert_restore): Verify alignment of spill
324         space.
325         (insert_save): Likewise.
326
327         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
328
329         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
330         (STACK_SLOT_ALIGNMENT): Likewise.
331
332         * function.c (LOCAL_ALIGNMENT): Removed.
333         (get_stack_local_alignment): New.
334         (assign_stack_local): Use it.  Set alignment on stack slot.
335         (assign_stack_temp_for_type): Use get_stack_local_alignment.
336
337         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
338         (STACK_SLOT_ALIGNMENT): New.
339
340         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
341         stack slot in XFmode.
342
343         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
344
345 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
346
347         PR/36321
348         * config/i386/i386.md (allocate_stack_worker_64): Make sure
349         argument operand in rax isn't removed.
350
351 2008-05-26  Richard Guenther  <rguenther@suse.de>
352
353         PR middle-end/36300
354         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
355         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
356
357 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
358
359         PR bootstrap/36331
360         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
361
362 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
363
364         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
365         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
366
367 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
368
369          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
370         build a trampoline if we don't want one.
371         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
372         return zero for nested functions if we don't want a trampoline.
373
374 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
375
376         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
377
378 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
379
380         PR fortran/18428
381         * c.opt: Removed undocumented option '-lang-fortran'.
382         * c-common.h: Removed global variable 'lang_fortran'.
383         * c-opts.c (c_common_handle_option): Removed code to handle
384         option '-lang-fortran'. Updated includes.
385         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
386         definition of '__GFORTRAN__'.
387         (define__GNUC__): Reimplemented to use BASEVER and
388         cpp_define_formatted.
389         (builtin_define_with_value_n): Removed.
390         * c-incpath.h: Renamed to ...
391         * incpath.h: ... this.
392         * c-incpath.c: Renamed to ...
393         * incpath.c: ... this. Updated includes.
394         * fix-header.c: Updated includes.
395         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
396         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
397         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
398
399 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
400
401         * tree.h: Update the table of flags used on tree nodes.
402         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
403         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
404         (FORCED_LABEL): Add access check.
405         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
406         (ASM_INPUT_P): Likewise.
407         (ASM_VOLATILE_P): Likewise.
408         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
409         (OMP_SECTION_LAST): Access private_flag directly.
410         (OMP_RETURN_NOWAIT): Likewise.
411         (OMP_PARALLEL_COMBINED): Likewise.
412         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
413         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
414         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
415         deprecated_flag directly.
416
417 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
418
419         * final.c (frame_pointer_needed): Removed.
420         * flags.h (frame_pointer_needed): Likewise.
421
422         * function.h (rtl_data): Add frame_pointer_needed.
423         (frame_pointer_needed): New.
424
425 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
426
427         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
428
429 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
430
431         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
432         SRC is a REG.
433
434 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
435
436         * c-common.c (strip_array_types): Move function to..
437         * tree.c: ..here.
438         (get_inner_array_type): Delete.
439         * c-common.h (strip_array_types): Move declaration to..
440         * tree.h: ..here.
441         (get_inner_array_type): Delete.
442         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
443         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
444         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
445         * config/pa/pa.c (emit_move_sequence): Likewise.
446
447 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
448
449         * config/i386/i386.md (*sse_prologue_save_insn): Set length
450         attribute to 34.
451
452 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
453
454         * function.c: Include target hook for nonlocal_goto frame value.
455
456 2008-05-24  Richard Guenther  <rguenther@suse.de>
457
458         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
459         a scalar variable can be only accessed through a pointer
460         or a union.
461
462 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
463
464         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
465         * doc/extend.texi: Likewise.
466
467 2008-05-23  DJ Delorie  <dj@redhat.com>
468
469         * config/m32c/jump.md (untyped_call): Add.
470
471         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
472         for A24 to PSImode.
473         (m32c_address_cost): Detail costs for indirect offsets.
474
475 2008-05-23  Rafael Espindola  <espindola@google.com>
476
477         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
478         if a node is a SUBREG.
479         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
480         is a SUBREG.
481
482 2008-05-23  Paul Brook  <paul@codesourcery.com>
483             Carlos O'Donell  <carlos@codesourcery.com>
484
485         * doc/extend.texi: Clarify use of __attribute__((naked)).
486         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
487         * target.h (gcc_target): Add allocate_stack_slots_for_args.
488         * function.c (use_register_for_decl): Use
489         targetm.calls.allocate_stack_slots_for_args.
490         * target-def.h (TARGET_CALLS): Add 
491         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
492         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
493         New function.
494         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
495
496 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
497
498         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
499
500 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
501
502         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
503         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
504         is only rounded once.
505
506 2008-05-23  Richard Guenther  <rguenther@suse.de>
507
508         * tree-ssa-operands.c (mark_difference_for_renaming): Use
509         bitmap_xor.
510
511 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
512             Jakub Jelinek  <jakub@redhat.com>
513
514         PR target/36079
515         * configure.ac: Handle --enable-cld.
516         * configure: Regenerated.
517         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
518         * config/i386/i386.h (struct machine_function): Add needs_cld field.
519         (ix86_current_function_needs_cld): New define.
520         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
521         (cld): New isns pattern.
522         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
523         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
524         * config/i386/i386.opt (mcld): New option.
525         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
526         TARGET_CLD and ix86_current_function_needs_cld.
527         (override_options): Use -mcld by default for 32-bit code if
528         USE_IX86_CLD.
529
530         * doc/install.texi (Options specification): Document --enable-cld.
531         * doc/invoke.texi (Machine Dependent Options)
532         [i386 and x86-64 Options]: Add -mcld option.
533         (Intel 386 and AMD x86-64 Options): Document -mcld option.
534
535 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
536         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
537         (return_in_memory_64): Likewise.
538         (return_in_memory_ms_64): Likewise.
539
540 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
541
542         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
543         * builtins.c (fold_builtin_fpclassify): New.
544         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
545         * builtins.def (BUILT_IN_FPCLASSIFY): New.
546         * c-common.c (handle_type_generic_attribute): Adjust to accept
547         fixed arguments before an elipsis.
548         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
549         * doc/extend.texi: Document __builtin_fpclassify.
550
551 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
552
553         * omp-low.c (gate_expand_omp_ssa): Remove.
554         (pass_expand_omp_ssa): Remove.
555         (gate_expand_omp): Do not check for flag_openmp_ssa.
556         * common.opt (-fopenmp-ssa): Remove.
557         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
558
559 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
560
561         * config/sh/sh.opt (mfixed-range): New option.
562         * config/sh/sh-protos.h (sh_fix_range): Declare.
563         * config/sh/sh.c (sh_fix_range): New function.
564         * config/sh/sh.h (sh_fixed_range_str): Declare.
565         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
566         is not empty.
567         * doc/invoke.texi (SH Options): Document -mfixed-range.
568
569 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
570
571         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
572         it before the redeclaration.
573
574 2008-05-22  Anatoly Sokolov <aesok@post.ru>
575
576         * config/avr/avr.c (get_sequence_length): Add new function.
577         (expand_prologue, expand_epilogue): Remove duplicate code.
578
579 2008-05-22  Rafael Espindola  <espindola@google.com>
580
581         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
582         sharing.
583
584 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
585
586         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
587         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
588
589         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
590         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
591         (vect_update_misalignment_for_peel): Likewise.
592         (vector_alignment_reachable_p): Likewise.
593         * tree-vect-transform.c (vectorizable_load): Likewise.
594         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
595         (get_vectype_for_scalar_type): Pass mode of scalar_type
596         to UNITS_PER_SIMD_WORD.
597
598         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
599         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
600         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
601         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
602         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
603
604 2008-05-22  Ira Rosen  <irar@il.ibm.com>
605
606         PR tree-optimization/36293
607         * tree-vect-transform.c (vect_transform_strided_load): Don't check
608         if the first load must be skipped because of a gap.
609
610 2008-05-22  Richard Guenther  <rguenther@suse.de>
611
612         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
613         more cases of offset disambiguation that is possible if
614         strict-aliasing rules apply.
615         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
616         for basic offset and type-based disambiguation.
617
618 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
619
620         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
621         ix86_expand_vector_set on V16QImode for SSE4.1.
622
623 2008-05-21  Tom Tromey  <tromey@redhat.com>
624
625         * c.opt (Wimport): Mark as undocumented.
626         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
627         -Wno-import.
628         (Warning Options): Likewise.
629         * doc/cppopts.texi: Don't mention -Wimport.
630
631 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
632
633         PR tree-optimization/36287
634         PR tree-optimization/36286
635         * lambda-code.c (build_access_matrix): Do not use the loop->num
636         for computing the number of induction variables: use the loop depth
637         instead.
638
639 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
640
641         PR/36280
642         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
643         option -f(no-)leading-underscore.
644
645 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
646
647         * config/i386/i386.c (ix86_expand_vector_init_general): Use
648         GET_MODE_NUNITS (mode).
649
650 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
651
652         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
653         (-mmulhw): Add 464 to description.
654         (-mdlmzb): Likewise.
655         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
656         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
657         464fp entries.
658         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
659         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
660         * config/rs6000/rs6000.md: Update comments for 464.
661
662 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
663
664         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
665
666 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
667
668         * config/i386/sse.md (vec_extractv4sf): Removed.
669         (vec_extractv2df): Likewise.
670         (vec_extractv2di): Likewise.
671         (vec_extractv4si): Likewise.
672         (vec_extractv8hi): Likewise.
673         (vec_extractv16qi): Likewise.
674         (vec_extract<mode>): New.
675
676 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
677
678         * config/i386/sse.md (vec_setv4sf): Removed.
679         (vec_setv2df): Likewise.
680         (vec_setv2di): Likewise.
681         (vec_setv4si): Likewise.
682         (vec_setv8hi): Likewise.
683         (vec_setv16qi): Likewise.
684         (vec_set<mode>): New.
685
686 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
687
688         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
689         goto for vec_concat and vec_interleave.
690
691 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
692
693         * config/i386/sse.md (vec_initv4sf): Removed.
694         (vec_initv2df): Likewise.
695         (vec_initv2di): Likewise.
696         (vec_initv4si): Likewise.
697         (vec_initv8hi): Likewise.
698         (vec_initv16qi): Likewise.
699         (vec_init<mode>): New.
700
701 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
702
703         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
704
705 2008-05-21  Tom Tromey  <tromey@redhat.com>
706
707         * ggc-zone.c (lookup_page_table_if_allocated): New function.
708         (zone_find_object_offset): Likewise.
709         (gt_ggc_m_S): Likewise.
710         (highest_bit): Likewise.
711         * ggc-page.c (gt_ggc_m_S): New function.
712         * stringpool.c (string_stack): Remove.
713         (init_stringpool): Update.
714         (ggc_alloc_string): Use ggc_alloc.
715         (maybe_delete_ident): New function.
716         (ggc_purge_stringpool): Likewise.
717         (gt_ggc_m_S): Remove.
718         * ggc-common.c (ggc_protect_identifiers): New global.
719         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
720         ggc_protect_identifiers.
721         * ggc.h (ggc_protect_identifiers): Declare.
722         (gt_ggc_m_S): Update.
723         (ggc_purge_stringpool): Declare.
724         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
725         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
726         special case.
727         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
728
729 2008-05-21  David S. Miller  <davem@davemloft.net>
730
731         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
732         tmake_file.
733
734 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
735
736         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
737         once finished.
738
739 2008-05-20  David Daney  <ddaney@avtrex.com>
740
741         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
742         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
743         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
744         UNSPEC_UPDATE_GOT_VERSION): Renumber.
745         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
746         (atomic_hiqi_op): New define_code_iterator.
747         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
748         mips_expand_compare_and_swap_12.
749         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
750         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
751         (sync_<optab><mode>, sync_old_<optab><mode>,
752         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
753         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
754         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
755         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
756         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
757         (test_and_set_12): New insn.
758         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
759         sync_new_<optab><mode>, sync_old_nand<mode>,
760         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
761         clobber to operand 0 for SI and DI mode insns.
762         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
763         mips_gen_fn_4): New typedefs.
764         (mips_gen_fn_ptrs): Define new union type.
765         (mips_expand_compare_and_swap_12): Remove declaration.
766         (mips_expand_atomic_qihi): Declare function.
767         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
768         (mips_expand_atomic_qihi): ... this.  Use new generator function
769         parameter.
770         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
771         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
772         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
773         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
774         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
775         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
776         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
777         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
778         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
779         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
780         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
781         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
782
783 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
784
785         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
786         the missing break.
787
788 2008-05-20  Anatoly Sokolov <aesok@post.ru>
789
790         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
791         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
792         (avr_attribute_table): Add 'OS_main' function attribute.
793         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
794         functions with 'OS_main' attribute.
795
796 2008-05-20  Richard Guenther  <rguenther@suse.de>
797
798         PR tree-optimization/35204
799         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
800         helper, split out from ...
801         (DFS): ... here.  Make the DFS walk non-recursive.
802
803 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
804             Jan Sjodin  <jan.sjodin@amd.com>
805
806         PR tree-optimization/36181
807         * tree-parloops.c (loop_has_vector_phi_nodes): New.
808         (parallelize_loops): Don't parallelize when the loop has vector
809         phi nodes.
810
811 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
812             Sebastian Pop  <sebastian.pop@amd.com>
813
814         * tree-loop-linear.c (gather_interchange_stats): Look in the access
815         matrix, and never look at the tree representation of the memory
816         accesses.
817         (linear_transform_loops): Computes parameters and access matrices.
818         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
819         when fails.
820         (access_matrix_get_index_for_parameter): New.
821         * tree-data-ref.h (struct access_matrix): New.
822         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
823         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
824         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
825         am_vector_index_for_loop): New.
826         (struct data_reference): Add field access_matrix.
827         (DR_ACCESS_MATRIX): New.
828         (compute_data_dependences_for_loop): Update declaration.
829         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
830         * lambda.h (lambda_vector_vec_p): Declared.
831         * lambda-code.c: Depend on pointer-set.h.
832         (lambda_collect_parameters_from_af, lambda_collect_parameters,
833         av_for_af_base, av_for_af, build_access_matrix,
834         lambda_compute_access_matrices): New.
835         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
836
837 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
838
839         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
840         $SOURCEDIR/include.
841
842 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
843             Sebastian Pop  <sebastian.pop@amd.com>
844
845         PR tree-optimization/36206
846         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
847         FOLD_CONVERSIONS.
848         (instantiate_scev_1): Rename flags to fold_conversions.
849         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
850         outeside instantiation_loop.
851         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
852         (evolution_function_is_affine_or_constant_p): Removed.
853         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
854         instantiate_scev.
855         (analyze_siv_subscript): Pass in the loop nest number.
856         Call evolution_function_is_affine_in_loop instead of 
857         evolution_function_is_affine_p.
858         (analyze_overlapping_iterations): Pass in the loop nest number.
859
860 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
861             Sebastian Pop  <sebastian.pop@amd.com>
862
863         PR tree-optimization/36206
864         * tree-chrec.h (chrec_fold_op): New.
865         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
866         and other trees.
867
868 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
869
870         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
871         (DIRS_EQ): New.
872         (remove_duplicates): Do not set inode on non-inode systems.
873         Use DIRS_EQ.
874
875 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
876
877         * config.gcc (tm_file): Update comments about relative pathnames.
878
879 2008-05-20  Richard Guenther  <rguenther@suse.de>
880
881         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
882         * tree-ssa-sccvn.c (process_scc): Likewise.
883         * tree-ssa-sink.c (execute_sink_code): Likewise.
884         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
885         * tree-vrp.c (process_assert_insertions): Likewise.
886         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
887         (perform_tree_ssa_dce): Likewise.
888         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
889         (dump_dominator_optimization_stats): Likewise.
890         * tree-vectorizer.c (vectorize_loops): Likewise.
891
892 2008-05-20  Richard Guenther  <rguenther@suse.de>
893
894         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
895
896 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
897
898         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
899         (ix86_i386elf_return_in_memory): Likewise.
900         (ix86_i386interix_return_in_memory): Likewise.
901         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
902         (SUBTARGET_RETURN_IN_MEMORY): New.
903         * config/i386/i386elf.h: Likewise.
904         * config/i386/ptx4-i.h: Likewise.
905         * config/i386/sol2-10.h: Likewise.
906         * config/i386/sysv4.h: Likewise.
907         * config/i386/vx-common.h: Likewise.
908         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
909         * config/i386/i386.c (ix86_return_in_memory): Made static and
910         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
911         (ix86_i386elf_return_in_memory): Removed.
912         (ix86_i386interix_return_in_memory): Removed.
913         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
914         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
915
916 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
917
918         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
919
920 2008-05-19  Xinliang David Li  <davidxl@google.com>
921
922         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
923         * opts.c: Ditto.
924         * common.opt: Ditto.
925         * doc/invoke.texi: Ditto.
926
927 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
928
929         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
930         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
931
932 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
933
934         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
935         sizes of operand array from 8/4 to 4/2.
936         (ix86_expand_vector_init_general): Change size of operand array
937         from 32 to 16.  Remove op0, op1 and half_mode.
938
939 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
940
941         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
942         (ix86_expand_vector_init_interleave): Likewise.
943         (ix86_expand_vector_init_general): Use them.  Assert word_mode
944         == SImode when n_words == 4.
945
946 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
947
948         * config/i386/i386.c (ix86_secondary_reload): New static function.
949         (TARGET_SECONDARY_RELOAD): New define.
950         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
951         * config/i386/i386.md (reload_outqi): Remove.
952
953 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
954
955         PR middle-end/35509
956         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
957         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
958         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
959         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
960         (fold_builtin_1): Likewise.
961         * builtins.def (BUILT_IN_ISINF_SIGN): New.
962         c-common.c (check_builtin_function_arguments): Handle
963         BUILT_IN_ISINF_SIGN.
964         * doc/extend.texi: Document __builtin_isinf_sign.
965         * fold-const.c (operand_equal_p): Handle COND_EXPR.
966
967 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
968
969         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
970         EH cleanup at the end of the pass, search for those that have been
971         turned into forwarder blocks and do the cleanup on their successor.
972
973 2008-05-18  Richard Guenther  <rguenther@suse.de>
974
975         * tree-cfg.c (verify_gimple_expr): Allow conversions from
976         pointers to sizetype and vice versa.
977
978 2008-05-18 Xinliang David Li   <davidxl@google.com>
979
980         * gcc/tree-ssa-dce.c: Coding style fix.
981         (check_pow): Documentation comment. 
982         (check_log): Documenation comment. Coding style fix.
983         (is_unnecessary_except_errno_call): Ditto.
984         (gen_conditions_for_pow): Ditto.
985         (gen_conditions_for_log): Ditto.
986         (gen_shrink_wrap_conditions): Ditto.
987         (shrink_wrap_one_built_in_calls): Ditto.
988         * gcc/doc/invoke.texi: Better documentation string.
989         * ChangeLog: Fix wrong change log entries from 
990         May 17 checkin on function call DCE.
991
992 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
993
994         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
995
996 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
997
998         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
999         * df-problems.c (simulation routines): Fixed block comment to
1000         properly say how to add forwards scanning functions.
1001         
1002 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1003
1004         * tree-inline.c (setup_one_parameter): Remove dead code.
1005
1006 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1007
1008         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1009         a BIT_AND_EXPR only for an INTEGER_TYPE.
1010
1011 2008-05-17 Xinliang David Li   <davidxl@google.com>
1012
1013         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1014         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1015         functions to check for eliminating math functions that are pure 
1016         except for setting errno.
1017         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1018         general condition expressions for shrink-wrapping pow/log calls.
1019         (gen_shrink_wrap_conditions): Ditto.
1020         (shrink_wrap_one_built_in_call): Ditto.
1021         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1022         (mark_operand_necessary): If debugging, output if OP is necessary.
1023         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1024         unnecessary.
1025         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1026         opt level >= 2.
1027         * gcc/common.opt: New user flag -ftree-builtin-dce.
1028         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1029
1030 2008-05-16  David S. Miller  <davem@davemloft.net>
1031
1032         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1033         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1034
1035 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1036
1037         PR target/36246
1038         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1039
1040 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1041
1042         * ifcvt.c (dead_or_predicable): Rename
1043         df_simulate_one_insn_backwards to df_simulate_one_insn.
1044         * recog.c (peephole2_optimize): Ditto.
1045         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1046         Ditto.
1047         * df.h: Rename df_simulate_one_insn_backwards to
1048         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1049         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1050         scanning of defs and uses.
1051         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1052         (df_simulate_one_insn_forwards): Removed.
1053
1054 2008-05-16  Doug Kwan  <dougkwan@google.com>
1055
1056         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1057         QNaN & SNaN.
1058         (real_from_string): Handle NaNs and Inf as approriate.
1059
1060 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1061
1062         * doc/gty.texi (Source Files Containing Type Information): Note
1063         that headers should appear first in the gtfiles list.
1064
1065 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1066
1067         * tree.def (COND_EXEC): Properly documented this code.
1068
1069 2008-05-16  Diego Novillo  <dnovillo@google.com>
1070
1071         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1072         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1073         the new field.
1074
1075 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1076
1077         * tree-ssa-dse (max_stmt_uid): Removed.
1078         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1079         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1080         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1081         * function.h (cfun.last_stmt_uid): New field.
1082         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1083         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1084         New functions.
1085         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1086         (create_stmt_ann): Initialize the ann->uid field.
1087         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1088         with new calls.
1089         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1090
1091 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1092
1093         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1094         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1095         (init_empty_tree_cfg): Call it.
1096
1097 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1098
1099         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1100         Update all users.
1101
1102 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1103
1104         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1105         * tree-dump.c (dump_options): New verbose option.
1106         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1107         Add verbose dump.
1108         * tree-pass.h (TDF_VERBOSE): New dump flag.
1109         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1110         (tree-flow.h): Added include.
1111         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1112
1113 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1114
1115         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1116
1117         From Jie Zhang  <jie.zhang@analog.com>
1118         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1119         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1120         mcpu=bf561-none and mcpu=bf561-0.2.
1121         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1122         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1123         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1124         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1125         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1126         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1127         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1128         option.
1129         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1130         (cputype_selected): Remove.
1131         (bfin_handle_option): Don't use cputype_selected.
1132         (override_options): When no mcpu option, enable all workarounds.
1133         Don't use bfin_workarounds.
1134         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1135         processor type.
1136         (DEFAULT_CPU_TYPE): Don't define.
1137
1138 2008-05-16  Richard Guenther  <rguenther@suse.de>
1139
1140         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1141         on deletion of the last stmt.
1142
1143 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1144
1145         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1146         V8HImode for SSE2 and V16QImode for SSE4.1.
1147
1148 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1149
1150         * cgraph.h (compute_inline_parameters): Made public.
1151         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1152         variable_generate_summary, function_write_summary,
1153         variable_write_summary, variable_read_summary.  Added generate_summary,
1154         write_summary, read_summary.
1155         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1156         pass_ipa_inline.function_generate_summary, to
1157         compute_inline_parameters. 
1158         * ipa-inline.c (compute_inline_parameters): Made public and added
1159         node parameter.
1160         (compute_inline_parameters_for_current): New function.
1161         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1162         (inline_generate_summary): Removed parameter and made to loop over
1163         all cgraph nodes.
1164         (pass_ipa_inline): Updated for new IPA_PASS structure.
1165         * passes.c (execute_ipa_summary_passes): Now is called once per
1166         pass rather than once per node*pass.
1167         
1168 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1169
1170         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1171         avr_have_mul_p, avr_asm_only_p): Remove variables.
1172         (avr_override_options): Remove initialization of removed variables.
1173         (avr_file_start):  Convert removed variables to fields of 
1174         'struct base_arch_s *avr_current_arch'. 
1175         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1176         (AVR_HAVE_MUL): (Ditto.).
1177         (AVR_HAVE_MOVW): (Ditto.).
1178         (AVR_HAVE_LPMX): (Ditto.). 
1179         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1180         avr_asm_only_p): Remove declaration.
1181
1182 2008-05-15  Diego Novillo  <dnovillo@google.com>
1183
1184         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1185         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1186
1187 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1188
1189         PR middle-end/36194
1190         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1191         Don't call record_truncated_value from here.
1192         (record_truncated_value): Turn it into a for_each_rtx callback.
1193         (record_truncated_values): New function.
1194         (combine_instructions): Call note_uses with record_truncated_values.
1195         Change name of check_conversion to check_promoted_subreg. 
1196
1197 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1198
1199         * doc/sourcebuild.texi: Document support for torture tests.
1200
1201 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1202
1203         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1204         to alternative 4 of operand 2.
1205
1206 2008-05-15  Richard Guenther  <rguenther@suse.de>
1207
1208         * tree-pass.h (current_pass): Declare.
1209         (get_pass_for_id): Likewise.
1210         * passes.c (passes_by_id, passes_by_id_size): New globals.
1211         (set_pass_for_id): New function.
1212         (get_pass_for_id): Likewise.
1213         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1214         (execute_function_todo): Flush per function statistics.
1215         * toplev.c (compile_file): Init statistics.
1216         (general_init): Do early statistics initialization.
1217         (finalize): Finish statistics.
1218         * statistics.h (statistics_early_init): Declare.
1219         (statistics_init): Likewise.
1220         (statistics_fini): Likewise.
1221         (statistics_fini_pass): Likewise.
1222         (statistics_counter_event): Likewise.
1223         (statistics_histogram_event): Likewise.
1224         * statistics.c: New file.
1225         * Makefile.in (OBJS-common): Add statistics.o.
1226         (statistics.o): Add dependencies.
1227         * doc/invoke.texi (-fdump-statistics): Document.
1228
1229         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1230         (insert): Likewise.
1231         (execute_pre): Use statistics_counter_event.
1232         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1233         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1234
1235 2008-05-15  Diego Novillo  <dnovillo@google.com>
1236
1237         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1238
1239         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1240         * tree-ssa-alias.c (new_type_alias): Remove references to
1241         sub-variables from comment.
1242         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1243
1244 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1245
1246         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1247         attribute to 1 only for insertps alternative.
1248
1249 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1250
1251         * config/bfin/bfin.md (loadbytes): New pattern.
1252         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1253         (bfin_init_builtins): Initialize it.
1254         (bdesc_1arg): Add it.
1255
1256 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1257
1258         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1259         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1260         * testsuite/lib/target-supports.exp: Add
1261         check_effective_target_fortran_integer_16.
1262
1263 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1264
1265         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1266         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1267         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1268         (TARGET_RETURN_IN_MEMORY): Define.
1269
1270 2008-05-15  Richard Guenther  <rguenther@suse.de>
1271
1272         PR middle-end/36244
1273         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1274         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1275         represent unmodifiable vars.
1276
1277 2008-05-15  Richard Guenther  <rguenther@suse.de>
1278
1279         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1280         INDIRECT_REF and TARGET_MEM_REF.
1281         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1282         TARGET_MEM_REF.
1283
1284 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1285             H.J. Lu  <hongjiu.lu@intel.com>
1286
1287         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1288         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1289         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1290         insn alternatives.  Add missing alternatives.
1291         (*vec_concatv2di_rex64_sse4_1): Likewise.
1292         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1293         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1294         Require TARGET_SSE.
1295
1296 2008-05-15  Richard Guenther  <rguenther@suse.de>
1297
1298         PR tree-optimization/36009
1299         PR tree-optimization/36204
1300         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1301         (determine_invariantness_stmt): Record the loop a store is
1302         always executed in.
1303         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1304         dependency.
1305
1306 2008-05-15  Richard Guenther  <rguenther@suse.de>
1307
1308         PR tree-optimization/34330
1309         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1310         through the pointer will alias the SMT.
1311
1312 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1313
1314         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1315
1316 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1317
1318         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1319
1320 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1321             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1322
1323         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1324         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1325         (vashl_optab): New optab for vector/vector shifts.
1326         (vashr_optab): Ditto.
1327         (vlshr_optab): Ditto.
1328         (vrotl_optab): Ditto.
1329         (vrotr_optab): Ditto.
1330         (optab_subtype): New enum for optab_for_tree_code call.
1331         (optab_for_tree_code): Add enum optab_subtype argument.
1332
1333         * optabs.c (optab_for_tree_code): Take an additional argument to
1334         distinguish between a vector shift by a scalar and vector shift by
1335         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1336         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1337         vector shift by a vector.
1338         (expand_widen_pattern_expr): Pass additional argument to
1339         optab_for_tree_code.
1340
1341         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1342         vrotl_optab, vrotr_optab.
1343
1344         * expr.c (expand_expr_real_1): Update calls to
1345         optab_for_tree_code to distinguish between vector shifted by a
1346         scalar and vector shifted by a vector.
1347         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1348         (supportable_narrowing_operation): Ditto.
1349         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1350         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1351         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1352         (vect_create_epilog_for_reduction): Ditto.
1353         (vectorizable_reduction): Ditto.
1354         (vectorizable_operation): Ditto.
1355         (vect_strided_store_supported): Ditto.
1356         (vect_strided_load_supported): Ditto.
1357         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1358         * expmed.c (expand_shift): Ditto.
1359
1360         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1361         scalar type.
1362         (ashr@var{m}3): Ditto.
1363         (vashl@var{m}3): Document new vector/vector shift standard name.
1364         (vashr@var{m}3): Ditto.
1365         (vlshr@var{m}3): Ditto.
1366         (vrotl@var{m}3): Ditto.
1367         (vrotr@var{m}3): Ditto.
1368
1369         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1370         (PPERM_INVERT): Ditto.
1371         (PPERM_REVERSE): Ditto.
1372         (PPERM_REV_INV): Ditto.
1373         (PPERM_ZERO): Ditto.
1374         (PPERM_ONES): Ditto.
1375         (PPERM_SIGN): Ditto.
1376         (PPERM_INV_SIGN): Ditto.
1377         (PPERM_SRC1): Ditto.
1378         (PPERM_SRC2): Ditto.
1379
1380         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1381         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1382         allows a memory operand to be the value being added, and split it
1383         to improve vectorization.
1384         (sse5_pmacsdqh_mem): Ditto.
1385         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1386         (sse5_mulv2div2di3_high): Ditto.
1387         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1388         (vec_pack_trunc_v4si): Ditto.
1389         (vec_pack_trunc_v2di): Ditto.
1390         (sse5_pcmov_<mode>): Remove code that tried to use use
1391         andps/andnps instead of pcmov.
1392         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1393         pmacsdqh instructions.
1394         (vec_widen_smult_lo_v4si): Ditto.
1395
1396         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1397         (PPERM_INVERT): Ditto.
1398         (PPERM_REVERSE): Ditto.
1399         (PPERM_REV_INV): Ditto.
1400         (PPERM_ZERO): Ditto.
1401         (PPERM_ONES): Ditto.
1402         (PPERM_SIGN): Ditto.
1403         (PPERM_INV_SIGN): Ditto.
1404         (PPERM_SRC1): Ditto.
1405         (PPERM_SRC2): Ditto.
1406         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1407         true/false tests.
1408         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1409         comparisons.
1410         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1411         says ignore whether the last reference is a memory operand.
1412
1413 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1414             Paolo Bonzini <bonzini at gnu dot org>
1415
1416         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1417         shift patterns.
1418
1419         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1420         (vlshr<mode>3): Rename from vlshr<mode>3.
1421         (vashr<mode>3): Rename from vashr<mode>3.
1422         (mulv4sf3): Change the names of vector shift patterns.
1423         (mulv4si3): Ditto.
1424         (negv4sf2): Ditt.
1425
1426         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1427         shift insns.
1428
1429         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1430         (SI_SHLHI): Ditto.
1431         (SI_SHL): Ditto.
1432         (SI_SHLI): Ditto.
1433         (SI_ROTH): Ditto.
1434         (SI_ROTHI): Ditto.
1435         (SI_ROT): Ditto.
1436         (SI_ROTI): Ditto.
1437         (SPU_RL_0): Ditto.
1438         (SPU_RL_1): Ditto.
1439         (SPU_RL_2): Ditto.
1440         (SPU_RL_3): Ditto.
1441         (SPU_RL_4): Ditto.
1442         (SPU_RL_5): Ditto.
1443         (SPU_RL_6): Ditto.
1444         (SPU_RL_7): Ditto.
1445         (SPU_SL_0): Ditto.
1446         (SPU_SL_1): Ditto.
1447         (SPU_SL_2): Ditto.
1448         (SPU_SL_3): Ditto.
1449         (SPU_SL_4): Ditto.
1450         (SPU_SL_5): Ditto.
1451         (SPU_SL_6): Ditto.
1452         (SPU_SL_7): Ditto.
1453
1454         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1455         (floatunssidf2_internal): Change vector/vector shift names.
1456         (floatunsdidf2_internal): Ditto.
1457         (mulv8hi3): Ditto.
1458         (ashrdi3): Ditto.
1459         (ashrti3): Ditto.
1460         (cgt_df): Ditto.
1461         (cgt_v2df): Ditto.
1462         (dftsv): Ditto.
1463         (vashl<mode>3): Rename from ashl<mode>3.
1464         (vashr<mode>3): Rename from ashr<mode>3.
1465         (vlshr<mode>3): Rename from lshr<mode>3.
1466         (vrotl<mode>3): Rename from rotl<mode>3.
1467
1468 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1469
1470         PR target/36224
1471         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1472         multiply gives the wrong value when doing widening multiplies.
1473         (vec_widen_smult_lo_v4si): Ditto.
1474
1475 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1476
1477         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1478         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1479         emit_library_call_value. 
1480         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1481         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1482         * calls.c (initialize_argument_information, precompute_arguments, 
1483         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1484         (precompute_arguments): Removed flags parameter.
1485         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1486         
1487 2008-05-14  Richard Guenther  <rguenther@suse.de>
1488
1489         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1490         Make sure to register the store if the use is a PHI_NODE.
1491
1492 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1493
1494         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1495         memory if the component is to be referenced in BLKmode according
1496         to get_inner_reference.
1497
1498 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1499
1500         * calls.c (emit_library_call_value_1): Restore code clearing
1501         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1502
1503 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1504             Nicolas Roche  <roche@adacore.com>
1505
1506         * configure.ac: Add support for a "gcc_subdir" variable in
1507         config-lang.in, to denote a subdirectory where the language/GCC
1508         integration files are to be found.
1509         * configure: Regenerate.
1510
1511 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1512
1513         PR tree-optimization/36098
1514         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1515         value for the first load in the group in case of a gap.
1516         (vect_build_slp_tree): Check that there are no gaps in loads.
1517
1518 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1519
1520         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1521         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1522         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1523         emit_insn and remove unneeded code to construct extra args.
1524         (emit_no_conflict_block): Removed.
1525         * optabls.h: (emit_no_conflict_block): Removed.
1526         * cse.c (cse_extended_basic_block): Remove search for
1527         REG_NO_CONFLICT note.
1528         * global.c: Removed incorrect comment added in revision 117.
1529         * expr.c (convert_move): Change call to emit_no_conflict_block to
1530         emit_insn.
1531         * recog.c: Change comments so that they do not mention
1532         REG_NO_CONFLICT.
1533         * local_alloc.c (combine_regs): Removed last parameter.
1534         (no_conflict_p): Removed.
1535         (block_alloc): Removed note, no_conflict_combined_regno and set
1536         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1537         (combine_regs): Removed already_dead and code to look for
1538         REG_NO_CONFLICT notes.
1539         * lower_subreg (remove_retval_note): Removed code to look for
1540         REG_NO_CONFLICT block.
1541         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1542         (resolve_clobber): Remove code to process libcalls that have
1543         REG_NO_CONFLICT notes.
1544         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1545         case.
1546         * combine.c (can_combine_p, distribute_notes):  Removed
1547         REG_NO_CONFLICT case.
1548         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1549         to emit_insns.
1550         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1551         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1552         Ditto.
1553         * reg-notes.def (NO_CONFLICT): Removed.
1554
1555 2008-05-14  David S. Miller  <davem@davemloft.net>
1556
1557         * config/sparc/sparc.c (sparc_profile_hook): If
1558         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1559         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1560         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1561
1562 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1563
1564         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1565
1566 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1567
1568         PR target/36222
1569         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1570         and op1 expansion before vector concat to have less live pseudos.
1571
1572 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1573
1574         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1575         ix86_expand_vector_set if supported.
1576
1577 2008-05-13  Diego Novillo  <dnovillo@google.com>
1578             Kenneth Zadeck  <zadeck@naturalbridge.com>
1579
1580         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1581
1582         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1583         phinodes_print_statistics, init_ssanames, fini_ssanames,
1584         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1585         release_ssa_name, release_defs, replace_ssa_name_symbol,
1586         ssanames_print_statistics): Move ...
1587         * tree-flow.h: ... here.
1588         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1589         Use FN instead of cfun.
1590         (make_ssa_name_fn): Rename from make_ssa_name.
1591         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1592         * tree-flow-inline.h (make_ssa_name): Move from
1593         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1594         * omp-low.c (expand_omp_parallel):
1595         * tree-flow-inline.h (redirect_edge_var_map_result):
1596         * tree-ssa.c (init_tree_ssa): Add argument FN.
1597         Use it instead of cfun.  Update all users.
1598
1599 2008-05-13  Tom Tromey  <tromey@redhat.com>
1600
1601         PR preprocessor/22168:
1602         * doc/cpp.texi (Top): Update menu.
1603         (Alternatives to Wrapper #ifndef): New node.
1604         (Other Directives): Document deprecation.
1605         (Obsolete Features): Remove menu.
1606         (Assertions): Merge node into Obsolete Features.
1607         (Obsolete once-only headers): Move earlier; rename to Alternatives
1608         to Wrapper #ifndef.
1609         * doc/cppopts.texi: Update.
1610         * c.opt (Wdeprecated): Enable for C and ObjC.
1611         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1612         (C++ Dialect Options): Move -Wno-deprecated from here to...
1613         (Warning Options): ... here.
1614
1615 2008-05-13  Richard Guenther  <rguenther@suse.de>
1616
1617         PR middle-end/36227
1618         * fold-const.c (fold_sign_changed_comparison): Do not allow
1619         changes in pointer-ness.
1620
1621 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1622
1623         PR target/24713
1624         * config/sh/sh.c (sh_expand_prologue): Don't clear
1625         RTX_FRAME_RELATED_P for push insns.
1626
1627 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1628
1629         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1630
1631 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1632
1633         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1634         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1635         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1636
1637 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1638
1639         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1640         (*vec_concatv4sf_sse): This.
1641         (*sse2_concatv2si): Renamed to ...
1642         (*vec_concatv2si_sse2): This.
1643         (*sse1_concatv2si): Renamed to ...
1644         (*vec_concatv2si_sse): This.
1645         (*vec_concatv2di_rex): Renamed to ...
1646         (*vec_concatv2di_rex64): This.
1647         (*vec_concatv2si_sse4_1): New.
1648         (*vec_concatv2di_rex64_sse4_1): Likewise.
1649
1650 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1651
1652         PR rtl-optimization/36111
1653         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1654         that was created for swappable operands.
1655
1656 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1657
1658         PR ada/36001
1659         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1660         * configure.ac: Add call to ACX_PROG_GNAT.
1661
1662 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1663
1664         * optc-gen.awk: Fix comment typo.
1665
1666 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1667
1668         * pretty-print.c (pp_integer_with_precision): Use
1669         HOST_LONG_LONG_FORMAT.
1670
1671 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1672
1673         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1674                 
1675 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1676
1677         * config/i386/i386.c (bdesc_ptest): Removed.
1678         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1679         (bdesc_args): Add __builtin_ia32_ptestz128,
1680         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1681         (ix86_init_mmx_sse_builtins): Updated.
1682         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1683         (ix86_expand_builtin): Updated.
1684
1685 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1686
1687         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1688         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1689
1690 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1691
1692         * value-prof.c (interesting_stringop_to_profile): Do not
1693         return early for BUILT_IN_MEMPCPY.
1694
1695 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1696
1697         * calls.c (expand_call): Don't use callgraph to increase
1698         preferred_stack_boundary.
1699
1700         * cgraph.h (cgraph_rtl_info): Use unsigned on
1701         preferred_incoming_stack_boundary.
1702
1703         * final.c (rest_of_clean_state): Use unsigned on
1704         preferred_stack_boundary.
1705
1706 2008-05-09  Tom Tromey  <tromey@redhat.com>
1707
1708         PR preprocessor/22231:
1709         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1710         proceeding.
1711
1712 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1713
1714         PR tree-optimization/36129
1715         * tree-ssa-ccp.c: Include value-prof.h.
1716         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1717         built-in function was folded to a constant.
1718         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1719
1720 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1721             Sebastian Pop  <sebastian.pop@amd.com>
1722
1723         * tree-scalar-evolution.c: Document instantiate_scev.
1724         (instantiate_parameters_1): Renamed instantiate_scev_1.
1725         Don't use the same loop for instantiation_loop and evolution_loop.
1726         (instantiate_scev): New.
1727         (instantiate_parameters): Moved...
1728         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1729         same loop twice.  Maintains the semantics for this function.
1730         * tree-scalar-evolution.h (instantiate_scev): Declare.
1731         (instantiate_parameters): ...here.  Now static inline.
1732         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1733         instead of resolve_mixers.
1734
1735 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1736
1737         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1738
1739 2008-05-09  Tomas Bily  <tbily@suse.cz>
1740
1741         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1742         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1743         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1744         * c-common.c (c_common_truthvalue_conversion): Likewise.
1745         * tree-object-size.c (compute_object_offset): Likewise.
1746         * tree-inline.c (estimate_num_insns_1): Likewise.
1747         * varasm.c (const_hash_1, compare_constant, copy_constant)
1748         (compute_reloc_for_constant, output_addressed_constants)
1749         (initializer_constant_valid_p): Likewise.
1750         * c-omp.c (check_omp_for_incr_expr): Likewise.
1751         * gimplify.c (gimplify_expr): Likewise.
1752         * c-typeck.c (c_finish_return): Likewise.
1753         * tree-vectorizer.c (supportable_widening_operation)
1754         (supportable_narrowing_operation): Likewise.
1755         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1756         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1757         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1758         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1759         (descr_info_loc): Likewise.
1760         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1761         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1762         (fold_unary): Likewise.
1763         * builtins.c (get_pointer_alignment): Likewise.
1764         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1765         (instantiate_parameters_1): Likewise.
1766         * tree.c (expr_align, stabilize_reference): Likewise.
1767         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1768         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1769         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1770         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1771         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1772         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1773         Likewise.
1774         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1775         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1776         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1777         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1778         (forward_propagate_comparison)
1779         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1780         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1781         * emit-rtl.c (component_ref_for_mem_expr)
1782         (set_mem_attributes_minus_bitpos): Likewise.
1783         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1784         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1785         Likewise.
1786         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1787         (build_function_call, pointer_diff, build_compound_expr)
1788         (c_finish_return): Likewise.
1789         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1790         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1791         Likewise.
1792         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1793         * expr.c (is_aligning_offset): Likewise.
1794         * tree-ssa-alias.c (is_escape_site): Likewise.
1795         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1796         (check_all_va_list_escapes): Likewise.
1797         * tree-ssa-loop-ivopts.c (determine_base_object)
1798         (determine_common_wider_type): Likewise.
1799         * dojump.c (do_jump): Likewise.
1800         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1801         * tree-gimple.c (is_gimple_cast): Likewise.
1802         * fold-const.c (decode_field_reference, )
1803         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1804         (fold_binary): Likewise.
1805         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1806         (already_warned_in_frontend_p): Likewise.
1807         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1808         * tree.c (really_constant_p, get_unwidened): Likewise.
1809         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1810         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1811         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1812         Likewise.
1813         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1814         CONVERT_EXPR_P.
1815         (CONVERT_EXPR_P): Define.
1816         (CASE_CONVERT): Define.
1817         
1818 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1819
1820         PR middle-end/36117
1821         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1822         (delete_unmarked_insns): When deleting a call, call
1823         delete_unreachable_blocks.
1824         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1825         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1826
1827 2008-05-08  Richard Guenther  <rguenther@suse.de>
1828
1829         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1830         (-ftree-salias): Likewise.
1831         (salias-max-implicit-fields): Remove param documentation.
1832         (salias-max-array-elements): Likewise.
1833         * tree-pass.h (pass_create_structure_vars): Remove.
1834         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1835         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1836         * tree-ssa-alias.c (create_structure_vars): Remove.
1837         (gate_structure_vars): Likewise.
1838         (pass_create_structure_vars): Likewise.
1839         (gate_build_alias): Likewise.
1840         (pass_build_alias): Adjust to run always and dump the function.
1841         * common.opt (ftree-salias): Hide.
1842         * passes.c (init_optimization_passes): Remove
1843         pass_create_structure_vars, adjust comment.
1844         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1845         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1846         * opts.c (decode_options): Do not set flag_tree_salias.
1847         (common_handle_option): Add OPT_ftree_salias to the backward
1848         compatibility section.
1849
1850 2008-05-08  Richard Guenther  <rguenther@suse.de>
1851
1852         * tree-flow-inline.h (var_can_have_subvars): Move ...
1853         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1854         * tree-flow.h (var_can_have_subvars): Remove.
1855         (push_fields_onto_fieldstack): Remove.
1856         (sort_fieldstack): Likewise.
1857         (struct fieldoff): Move ...
1858         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1859         alias_set and base_for_components fields.
1860         (sort_fieldstack): Make static.
1861         (push_fields_onto_fieldstack): Likewise.  Remove code that
1862         handles anything but RECORD_TYPEs.  Remove alias_set and
1863         base_for_components handling.
1864         (create_variable_info_for): Adjust.
1865
1866 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1867
1868         * common.opt (Wframe-larger-than=): Shorten the help message
1869         to one line.
1870         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1871
1872 2008-05-08  Rafael Espindola  <espindola@google.com>
1873
1874         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1875         trap.
1876         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1877         trap and that both operands are gimple values.
1878         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1879         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1880         is a fp operation.
1881
1882 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1883
1884         * read-rtl.c (join_c_conditions): Return the first string if the
1885         two strings are equal.
1886
1887 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1888
1889         * gensupport.h (pred_data): Add a "num_codes" field.
1890         (add_predicate_code): Declare.
1891         * gensupport.c (add_predicate_code): New function.
1892         (std_pred_table): Add an "allows_const_p" field.
1893         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1894         Remove the (incomplete) list of such codes from the codes field.
1895         (init_predicate_table): Use add_predicate_code.  Add all
1896         RTX_CONST_OBJs if allows_const_p is true.
1897         * genrecog.c (process_define_predicate): Use add_predicate_code.
1898
1899 2008-05-08  David Daney  <ddaney@avtrex.com>
1900             Richard Sandiford  <rsandifo@nildram.co.uk>
1901         
1902         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1903         special case of constant zero operands.
1904         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1905         old and new values.  Special case constant zero values.
1906         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1907         fails.
1908         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1909         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1910
1911 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1912
1913         PR target/36090
1914         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1915         similar RTX_CONST_OBJ before CONST_INT.
1916
1917 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1918
1919         * stmt.c (expand_stack_restore): Change sa mode if needed.
1920
1921 2008-05-08  Richard Guenther  <rguenther@suse.de>
1922
1923         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1924         return type to bool.
1925         (ix86_sol10_return_in_memory): Likewise.
1926         (ix86_i386elf_return_in_memory): Likewise.
1927         (ix86_i386interix_return_in_memory): Likewise.
1928         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1929         (ix86_sol10_return_in_memory): Likewise.
1930         (ix86_i386elf_return_in_memory): Likewise.
1931         (ix86_i386interix_return_in_memory): Likewise.
1932
1933 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1934
1935         PR bootstrap/36180
1936         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1937         fndecl argument.
1938         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1939         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1940         declared in front.
1941
1942 2008-05-08  Richard Guenther  <rguenther@suse.de>
1943
1944         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1945         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1946         (DR_SUBVARS): Remove.
1947         * tree-dfa.c (dump_subvars_for): Remove.
1948         (debug_subvars_for): Likewise.
1949         (dump_variable): Do not dump subvars.
1950         (remove_referenced_var): Do not remove subvars.
1951         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1952         (lookup_subvars_for_var): Remove.
1953         (get_subvars_for_var): Likewise.
1954         (get_subvars_at): Likewise.
1955         (get_first_overlapping_subvar): Likewise.
1956         (overlap_subvar): Likewise.
1957         * tree-flow.h (subvar_t): Remove.
1958         (struct var_ann_d): Remove subvars field.
1959         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1960         argument.  Remove special handling of SFTs.
1961         (compute_tag_properties): Likewise.
1962         (set_initial_properties): Likewise.
1963         (compute_call_clobbered): Likewise.
1964         (count_mem_refs): Likewise.
1965         (compute_memory_partitions): Likewise.
1966         (compute_flow_insensitive_aliasing): Likewise.
1967         (setup_pointers_and_addressables): Likewise.
1968         (new_type_alias): Likewise.
1969         (struct used_part): Remove.
1970         (used_portions): Likewise.
1971         (struct used_part_map): Likewise.
1972         (used_part_map_eq): Likewise.
1973         (used_part_map_hash): Likewise.
1974         (free_used_part_map): Likewise.
1975         (up_lookup): Likewise.
1976         (up_insert): Likewise.
1977         (get_or_create_used_part_for): Likewise.
1978         (create_sft): Likewise.
1979         (create_overlap_variables_for): Likewise.
1980         (find_used_portions): Likewise.
1981         (create_structure_vars): Likewise.
1982         * tree.def (STRUCT_FIELD_TAG): Remove.
1983         * tree.h (MTAG_P): Adjust.
1984         (struct tree_memory_tag): Remove base_for_components and
1985         unpartitionable flags.
1986         (struct tree_struct_field_tag): Remove.
1987         (SFT_PARENT_VAR): Likewise.
1988         (SFT_OFFSET): Likewise.
1989         (SFT_SIZE): Likewise.
1990         (SFT_NONADDRESSABLE_P): Likewise.
1991         (SFT_ALIAS_SET): Likewise.
1992         (SFT_UNPARTITIONABLE_P): Likewise.
1993         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1994         (union tree_node): Remove sft field.
1995         * alias.c (get_alias_set): Remove special handling of SFTs.
1996         * print-tree.c (print_node): Remove handling of SFTs.
1997         * tree-dump.c (dequeue_and_dump): Likewise.
1998         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1999         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2000         * tree-predcom.c (set_alias_info): Do not set subvars.
2001         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2002         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2003         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2004         (add_vars_for_offset): Remove.
2005         (add_virtual_operand): Remove special handling of SFTs.
2006         (add_call_clobber_ops): Likewise.
2007         (add_call_read_ops): Likewise.
2008         (get_asm_expr_operands): Likewise.
2009         (get_modify_stmt_operands): Likewise.
2010         (get_expr_operands): Likewise.
2011         (add_to_addressable_set): Likewise.
2012         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2013         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2014         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2015         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2016         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2017         (tree_node_structure): Likewise.
2018         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2019         handling of SFTs.
2020         (find_what_p_points_to): Likewise.
2021
2022 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2023
2024         * config/spu/spu.md: Fixed subti3 pattern.
2025
2026 2008-05-08  Richard Guenther  <rguenther@suse.de>
2027
2028         PR middle-end/36154
2029         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2030         sure to create a representative for trailing arrays for PTA.
2031
2032 2008-05-08  Richard Guenther  <rguenther@suse.de>
2033
2034         PR middle-end/36172
2035         * fold-const.c (operand_equal_p): Two objects which types
2036         differ in pointerness are not equal.
2037
2038 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2039
2040         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2041         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2042         (emit_library_call_value_1): Add new variable fndecl initialized by
2043         NULL_TREE. It should be the decl type of orgfun, but this information
2044         seems not to be available here, so it uses the default calling abi.
2045         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2046         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2047         by TARGET_RETURN_IN_MEMORY.
2048         * config/i386/i386-interix.h: Likewise.
2049         * config/i386/i386.h: Likewise.
2050         * config/i386/i386elf.h: Likewise.
2051         * config/i386/ptx4-i.h: Likewise.
2052         * config/i386/sol2-10.h: Likewise.
2053         * config/i386/sysv4.h: Likewise.
2054         * config/i386/vx-common.h: Likewise.
2055         * config/cris/cris.h: Removed #if 0 clause.
2056         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2057         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2058         argument.
2059         (ix86_sol10_return_in_memory): Likewise.
2060         (ix86_i386elf_return_in_memory): New.
2061         (ix86_i386interix_return_in_memory): New.
2062         * config/mt/mt-protos.h (mt_return_in_memory): New.
2063         * config/mt/mt.c: Likewise.
2064         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2065         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2066         * config/bfin/bfin.h: Likewise.
2067         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2068         argument.
2069         * config/bfin/bfin.c: Likewise.
2070         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2071         * config/alpha/unicosmk.h: Likewise.
2072         * config/i386/cygming.h: Likewise.
2073         * config/iq2000/iq2000.h: Likewise.
2074         * config/mips/mips.h: Likewise.
2075         * config/mn10300/mn10300.h: Likewise.
2076         * config/rs6000/rs6000.h: Likewise.
2077         * config/score/score.h: Likewise.
2078         * config/spu/spu.h: Likewise.
2079         * config/v850/v850.h: Likewise.
2080         * defaults.h: Likewise.
2081         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2082         * expr.c (emit_block_move): Adjust use of
2083         OUTGOING_REG_PARM_STACK_SPACE.
2084         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2085         OUTGOING_REG_PARM_STACK_SPACE.
2086         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2087
2088 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2089
2090         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2091         on OMP_RETURN for OMP_FOR.
2092
2093         PR debug/35896
2094         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2095         (fortran_common): New function.
2096         (gen_variable_die): Call fortran_common instead of common_check,
2097         adjust for it returning tree instead of rtx.  Formatting.
2098
2099 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2100
2101         PR rtl/7335
2102         PR rtl/33826
2103         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2104         * c-decl.c (merge_decls): Ditto.
2105         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2106         to RTL_CONST_OR_PURE_CALL_P.
2107         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2108         Initialized DECL_LOOPING_CONST_PURE.
2109         (process_call_operands): Set tree_side_effects properly.
2110         * tree.h (TREE_READONLY_DECL_P): Removed.
2111         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2112         (DECL_LOOPING_OR_CONST_P): New macro.
2113         (struct tree_function_decl): Added looping_const_or_pure_p.
2114         (ECF_*) Renumbered.
2115         (ECF_LOOPING_OR_CONST_P): New macro.
2116         * rtlanal.c (pure_const_p): Removed.
2117         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2118         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2119         to RTL_CONST_CALL_P.
2120         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2121         (check_decl, check_tree, check_call, scan_function): Initialize
2122         looping.
2123         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2124         (static_execute): Set looping true for recursive functions.
2125         Undo setting state to IPA_NEITHER for recursive functions.
2126         * cse.c (cse_insn): 
2127         * ifcvt.c (noce_can_store_speculate_p): Changed
2128         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2129         RTL_CONST_OR_PURE_CALL_P.
2130         * dse.c (scan_insn): Ditto.
2131         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2132         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2133         RTL_CONST_OR_PURE_CALL_P.
2134         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2135         pure_call_p to RTL_CONST_CALL_P.
2136         * gimplify.c (gimplify_call_expr): Clear side effects for
2137         non-looping pure and constant calls.
2138         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2139         (flags_from_decl_or_type): Set ecf flags from decl flags.
2140         (initialize_argument_information): Turn off
2141         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2142         Change const to pure if callee_copies is true rather than just
2143         turning off const.
2144         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2145         way of marking pure calls.
2146         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2147         Remove hack that was supposed to fix pr7335 and remove old
2148         way of marking pure calls.
2149         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2150         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2151         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2152         RTL_CONST_OR_PURE_CALL_P.
2153         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2154         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2155         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2156         * sched-deps.c (schedule_analyze): Ditto.
2157         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2158         return_val field of calls to represent pure and const function info.
2159         (CONST_OR_PURE_CALL_P): Deleted macro.
2160         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2161         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2162         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2163         TREE_READONLY.
2164         * tree-optimize.c (execute_fixup_cfg): Added test for
2165         ECF_LOOPING_CONST_OR_PURE.
2166         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2167         DECL_PURE_P.
2168         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2169         effects for looping pure or const calls.
2170         (verify_gimple_expr): Added verification code. 
2171         * config/alpha/alpha.c (alpha_legitimize_address,
2172         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2173         RTL_CONST_CALL_P.
2174         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2175         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2176         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2177         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2178         RTL_CONST_OR_PURE_CALL_P.
2179         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2180         and const calls to be deleted.
2181
2182 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2183
2184         PR target/35714
2185         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2186         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2187         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2188         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2189         to handle nonimmediate operands.
2190         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2191         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2192         to handle nonimmediate operands.
2193         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2194         (mmx_pmulhrwv4hi3): New expander.  Use
2195         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2196         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2197         (sse2_umulv1siv1di3): New expander.  Use
2198         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2199         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2200         (mmx_eq<mode>3): New expander.  Use
2201         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2202         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2203         (mmx_uavgv8qi3): New expander.  Use
2204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2205         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2206         (mmx_uavgv4hi3): New expander.  Use
2207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2208
2209         * config/i386/sse.md
2210         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2211         to handle nonimmediate operands.
2212         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2213         to handle nonimmediate operands.
2214         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2215         to handle nonimmediate operands.
2216         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2217         to handle nonimmediate operands.
2218         (sse2_unpckhpd_exp): New expander.  Use
2219         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2220         (sse2_unpcklpd_exp): New expander.  Use
2221         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2222         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2223         to handle nonimmediate operands.
2224         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2225         to handle nonimmediate operands.
2226         (*sse2_<plusminus_insn><mode>3): Rename from
2227         sse2_<plusminus_insn><mode>3 insn pattern.
2228         (sse2_<plusminus_insn><mode>3): New expander.  Use
2229         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2230         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2231         (sse2_umulv2siv2di3): New expander.  Use
2232         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2233         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2234         (sse4_1_mulv2siv2di3): New expander.  Use
2235         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2236         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2237         (sse2_pmaddwd): New expander.  Use
2238         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2239         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2240         (sse2_eq<mode>3): New expander.  Use
2241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2242         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2243         (sse4_1_eqv2di3): New expander.  Use
2244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2245         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2246         (sse2_uavgv16qi3): New expander.  Use
2247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2248         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2249         (sse2_uavgv16qi3): New expander.  Use
2250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2251         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2252         (sse2_uavgv8hi3): New expander.  Use
2253         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2254         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2255         (ssse3_pmulhrswv8hi3): New expander.  Use
2256         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2257         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2258         (ssse3_pmulhrswv4hi3): New expander.  Use
2259         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2260
2261         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2262         (<sse>_vmmul<mode>3): Ditto.
2263         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2264         (divv2df3): Ditto.
2265         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2266         (ssse3_pmaddubsw): Ditto.
2267
2268         * config/i386/i386.c (struct_builtin_description)
2269         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2270         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2271         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2272         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2273         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2274         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2275         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2276         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2277         (ix86_fixup_binary_operands): Assert that src1
2278         and src2 must have the same mode when swapped.
2279         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2280         and ix86_binary_operator_ok.  Do not force operands in registers
2281         when optimizing.
2282
2283 2008-05-07  Jan Hubicka  <jh@suse.cz>
2284
2285         * cgraph.c (dump_cgraph_node): Update.
2286         * cgraph.h (cgraph_local_info): Break out inline summary.
2287         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2288         hook.
2289         * ipa-inline (inline_summary): New accestor function.
2290         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2291         cgraph_decide_inlining, compute_inline_parameters): Update.
2292         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2293
2294 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2295
2296         Cleanup ColdFire scheduling support and add V4 pipeline model.
2297
2298         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2299         (define_attr cpu): Add cfv4 value.
2300         (define_attr type, define_attr type1): Merge into a single 'type'
2301         attribute.  Update all uses.
2302         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2303         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2304         Update all uses.
2305         (define_attr opx_mem, define_attr opy_mem): Remove.
2306         (define_attr op_mem): Clean up, update comment.
2307         (define_attr size): Use specific values instead of general int.
2308         (define_attr guess, define_attr split): Remove.  Update all uses.
2309         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2310         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2311         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2312         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2313         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2314         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2315         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2316         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2317         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2318         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2319         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2320         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2321         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2322         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2323         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2324         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2325         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2326         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2327         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2328         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2329         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2330         Update or set attributes.
2331         (stack_tie): New fake instruction.
2332
2333         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2334         (m68k_sched_attr_size): Update declaration.
2335         (m68k_sched_attr_type2): Remove.
2336         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2337         Declare new bypass predicates.
2338
2339         * config/m68k/m68k.c (m68k_sched_issue_rate,
2340         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2341         implementations.
2342         (TARGET_SCHED_ISSUE_RATE,
2343         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2344         (override_options): Handle scheduling for ColdFire V4 core.
2345         (m68k_expand_prologue): Emit stack_tie.
2346         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2347         'OP_TYPE_FPN'.  Update all uses.
2348         (sched_guess_p): Remove.
2349         (sched_address_type): Handle symbolic addresses.
2350         (sched_get_operand): New static function.
2351         (sched_operand_type): Merge into sched_attr_op_type.
2352         (sched_attr_op_type): Handle FP registers, handle quick constants,
2353         update.
2354         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2355         (m68k_sched_attr_size): Update.  Move logic to ...
2356         (sched_get_attr_size_int): New static function.
2357         (sched_get_opxy_mem_type): New static function.
2358         (m68k_sched_attr_op_mem): Update.
2359         (m68k_sched_attr_type2): Remove.
2360         (sched_cfv4_bypass_data): New static variable.
2361         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2362         (m68k_sched_issue_rate): Implement scheduler hook.
2363         (struct _sched_ib: enabled_p): New field.
2364         (m68k_sched_variable_issue): Update.  Handle V4.
2365         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2366         sched_dump_class_func_t, sched_dump_split_class,
2367         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2368         sched_dump_dfa_class, m68k_sched_dump): Remove.
2369         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2370         hook.
2371         (m68k_sched_init_global): Remove statisctics dumping, introduce
2372         sanity check that all instructions have pipeline reservations.  Handle
2373         ColdFire V4 core.
2374         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2375         Handle ColdFire V4 core.
2376         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2377         New static functions.
2378         (m68k_sched_address_bypass_p): New bypass predicate.
2379         (sched_get_indexed_address_scale): New static function.
2380         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2381
2382         * cf.md: Update comments.
2383         (define_attr type2): Remove.  Use 'type' attribute instead.
2384         Update all uses.
2385         (cf_ib): Rename to cfv123_ib.  Update all uses.
2386         (cf_oep): Rename to cfv123_oep.  Update all uses.
2387         (cf_chr): Rename to cfv123_chr.  Update all uses.
2388         (cf_mem): Rename to cfv123_mem.  Update all uses.
2389         (cf_mac): Move to more appropriate place.
2390         (cfv123_guess): New automaton and cpu_unit.
2391         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2392         Update uses of 'size' attribute.  Handle before reload scheduling.
2393         (cfv123_guess): New dummy reservation for unhandled instructions.
2394         (cfv4_*): Pipeline description of ColdFire V4 core.
2395         (ignore): New reservation to handle 'ignore' type.
2396
2397 2008-05-07  Ian Lance Taylor  <iant@google.com>
2398
2399         PR middle-end/36013
2400         * gimplify.c (find_single_pointer_decl_1): Don't look through
2401         indirections.
2402         (find_single_pointer_decl): Adjust comments.
2403
2404 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2405
2406         PR middle-end/36137
2407         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2408         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2409
2410         PR middle-end/36106
2411         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2412         integral type rather than floating point, then VIEW_CONVERT_EXPR
2413         to the floating point type.
2414
2415 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2416
2417         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2418         TFmode op0 to register.
2419
2420 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2421
2422         * c-decl.c (grokdeclarator): Comment typo.
2423
2424 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2425
2426         * tree-flow.h: Remove prototype for computed_goto_p.
2427         * tree-cfg.c (computed_goto_p): Make static.
2428
2429 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2430
2431         PR target/35657
2432         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2433         (contains_aligned_value_p): This.  Handle _Decimal128.
2434         (ix86_function_arg_boundary): Only align _Decimal128 to its
2435         natural boundary and handle it properly.
2436
2437 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2438
2439         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2440         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2441         (ipcp_method_set_orig_node): Removed.
2442         (ipcp_cval_get_cvalue_type): Removed.
2443         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2444         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2445         (ipcp_cval_set_cvalue_type): Removed.
2446         (ipcp_cval_get_cvalue): Removed.
2447         (ipcp_cval_set_cvalue): Removed.
2448         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2449         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2450         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2451         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2452         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2453         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2454         (ipcp_get_ith_lattice): Changed parameters.
2455         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2456         (ipcp_lattice_from_jfunc): Changed parameters.
2457         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2458         (ipcp_method_cval_print): Added temporary variable info.
2459         (ipcp_redirect): Removed already unused local variable caller.
2460         (ipcp_redirect): New temporary variable orig_callee_info
2461         (ipcp_redirect): Removed newly unused local variable callee.
2462         (ipcp_redirect): Removed (a bit confusing) local variable type.
2463         (ipcp_insert_stage): Added local variable info.
2464         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2465         renamed too
2466         (ipcp_formal_create): Removed.
2467         (ipcp_method_cval_set): Removed.
2468         (ipcp_propagate_stage): Renamed lattice variables.
2469         (ipcp_method_cval_set_cvalue_type): Removed.
2470         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2471         (ipcp_print_all_lattices): Changed printed strings to refer to 
2472         lattices rather than cvals.
2473         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2474         (ipcp_propagate_const): Changed formal parameters.
2475         (build_const_val): Changed formal parameters.
2476         (ipcp_insert_stage): Removed useless variable cvalue
2477         (build_const_val): Changed formal parameters.
2478         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2479         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2480         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2481         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2482         (ipcp_print_func_profile_counts): Changed string from "method" to 
2483         "function"
2484         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2485         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2486         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2487         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2488         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2489         (ipcp_lat_is_const): Changed parameters and made inline.
2490         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2491         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2492         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2493         the predicate condition directly
2494         (ipcp_propagate_stage): Added local variable args. Removed local
2495         variable callee.  (Both are mere code simplifications.)
2496         (ipcp_method_dont_insert_const): Renamed to
2497         ipcp_node_not_modifiable_p.
2498         (ipcp_node_not_modifiable_p): Made inline.
2499         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2500         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2501         (ipcp_print_all_lattices): Removed variable cvalue
2502         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2503         Updated comments.
2504
2505 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2506
2507         * tree-sra.c (try_instantiate_multiple_fields): Early return
2508         if field has POINTER_TYPE.
2509
2510 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2511
2512         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2513         by using 'q' specifier for instruction.
2514         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2515
2516 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2517
2518         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2519         Change mode of zero_extract from QImode to HImode.
2520         (sign bit tests peepholes): (Ditto.).
2521
2522 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2523
2524         * config/i386/mmx.md: Remove double backslashes from asm templates.
2525         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2526         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2527         to handle nonimmediate operands.
2528         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2529         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2530         to handle nonimmediate operands.
2531         (*mmx_<code>v2sf3_finite): New insn pattern.
2532         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2533         (mmx_<code>v2sf3): New expander.  Use
2534         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2535         (mmx_<plusminus_insn><mode>3): New expander.  Use
2536         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2537         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2538         (mmx_add<mode>3): Removed.
2539         (mmx_ssadd<mode>3): Ditto.
2540         (mmx_usadd<mode>3): Ditto.
2541         (mmx_sub<mode>3): Ditto.
2542         (mmx_sssub<mode>3): Ditto.
2543         (mmx_ussub<mode>3): Ditto.
2544         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2545         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2546         to handle nonimmediate operands.
2547         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2548         insn pattern.
2549         (mmx_smulv4hi3_highpart): New expander.  Use
2550         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2551         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2552         insn pattern.
2553         (mmx_umulv4hi3_highpart): New expander.  Use
2554         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2555         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2556         (mmx_<code>v4hi3): New expander.  Use
2557         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2558         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2559         (mmx_<code>v8qi3): New expander.  Use
2560         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2561         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2562         (mmx_<code><mode>3): New expander.  Use
2563         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2564
2565 2008-05-05  Jan Hubicka  <jh@suse.cz>
2566
2567         PR tree-optimization/36118
2568         * passes.c (pass_init_dump_file): Fix dump header.
2569
2570 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2571
2572         PR middle-end/36141
2573         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2574         VCE for function decls.
2575
2576 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2577
2578         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2579
2580 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2581
2582         * config/i386/i386.md (sat_plusminus): New.
2583         (plusminus_insn): Likewise.
2584         (plusminus_mnemonic): Likewise.
2585         (addsub): Removed.
2586         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2587         (*<addsub><mode>3_cc_overflow): Renamed to ...
2588         (*<plusminus_insn><mode>3_cc_overflow): This.
2589         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2590         (*<plusminus_insn>si3_zext_cc_overflow): This.
2591
2592         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2593         (<plusminus_insn><mode>3): This.
2594         (*<addsub><mode>3): Renamed to ...
2595         (*<plusminus_insn><mode>3): This.
2596         (<sse>_vm<addsub><mode>3): Renamed to ...
2597         (<sse>_vm<plusminus_insn><mode>3): This.
2598         (sse3_h<addsub>v4sf3): Renamed to ...
2599         (sse3_h<plusminus_insn>v4sf3): This.
2600         (sse3_h<addsub>v2df3): Renamed to ...
2601         (sse3_h<plusminus_insn>v2df3): This.
2602         (<plusminus_insn><mode>3): New.
2603         (*<plusminus_insn><mode>3): Likewise.
2604         (sse2_<plusminus_insn><mode>3): Likewise.
2605         (add<mode>): Removed.
2606         (*add<mode>3): Likewise.
2607         (sse2_ssadd<mode>3): Likewise.
2608         (sse2_usadd<mode>3): Likewise.
2609         (sub<mode>3): Likewise.
2610         (*sub<mode>3): Likewise.
2611         (sse2_sssub<mode>3): Likewise.
2612         (sse2_ussub<mode>3): Likewise.
2613
2614 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2615
2616         * gthr-single.h: Add in required interface elements as per gthr.h.
2617         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2618         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2619         Generalize UNUSED macro. 
2620         (__gthread_once): Add.
2621         (__gthread_key_create): Add.
2622         (__gthread_key_delete): Add.
2623         (__gthread_getspecific): Add.
2624         (__gthread_setspecific): Add.
2625         
2626 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2627
2628         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2629         the same size types for the indirect reference on the rhs, then
2630         create a VCE.
2631
2632 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2633
2634         * config/i386/i386.md
2635         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2636         one insn template instead of template series.
2637         (*xordi_1_rex64): Ditto.
2638         (*xordi_2_rex64): Ditto.
2639
2640 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2641
2642         PR tree-optimization/36119
2643         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2644         in case of SLP.
2645
2646 2008-06-04  Jan Hubicka  <jh@suse.cz>
2647
2648         tree-optimization/36100
2649         * tree-pass.h (pass_O0_always_inline): Declare.
2650         * ipa-inline.c (inline_transform): Remove dead code.
2651         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2652         pass_O0_always_inline): New.
2653         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2654
2655 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2656
2657         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2658         mnemonic in this_param move for TARGET_64BIT.
2659
2660 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2661
2662         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2663         (*strmovsi_rex_1): Ditto.
2664         (*strsetsi_1): Ditto.
2665         (*strsetsi_rex_1): Ditto.
2666
2667         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2668         adddicc expanders using SWI mode iterator.
2669
2670 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2671
2672         PR target/36121
2673         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2674         argument handling.
2675
2676 2008-05-04  David S. Miller  <davem@davemloft.net>
2677
2678         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2679         (sparc*-*-linux*): Use linux.h in tm_file.
2680         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2681         compiler defaulting to 32-bit.
2682         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2683         no longer needed.
2684         * config/sparc/linux.h: Remove definitions now obtained
2685         properly from linux.h
2686         * config/sparc/linux64.h: Likewise.
2687         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2688         don't want this setting for 32-bit builds in a biarch compiler.
2689         * doc/install.texi: Add sparc-linux to list of targets
2690         supporting --enable-targets=all.
2691
2692 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2693
2694         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2695
2696 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2697
2698         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2699         after V4SI_FTYPE_V8HI.
2700         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2701         case V4SI_FTYPE_V2DF.
2702
2703 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2704
2705         * doc/invoke.texi (max-flow-memory-locations): Removed.
2706         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2707         
2708 2008-05-03  Richard Guenther  <rguenther@suse.de>
2709
2710         PR middle-end/34973
2711         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2712
2713 2008-05-02  David S. Miller  <davem@davemloft.net>
2714
2715         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2716
2717 2008-05-02  Simon Baldwin <simonb@google.com>
2718
2719         PR bootstrap/36108
2720         * c-common.h (warn_array_subscript_range): Removed.
2721         * c-common.c (warn_array_subscript_range): Ditto.
2722         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2723         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2724
2725 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2726
2727         * config/i386/i386.c (ix86_special_builtin_type): New.
2728         (bdesc_special_args): Likewise.
2729         (ix86_expand_special_args_builtin): Likewise.
2730         (ix86_init_mmx_sse_builtins): Updated.
2731         (ix86_expand_builtin): Updated.
2732         (ix86_expand_store_builtin): Removed.
2733         (ix86_expand_unop_builtin): Likewise.
2734
2735         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2736         * config/i386/mmintrin.h (__v2sf): Here.
2737
2738         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2739         const __v2sf.
2740         (_mm_loadl_pi): Likewise.
2741         (_mm_storeh_pi): Replace __v2si with __v2sf.
2742         (_mm_storel_pi): Likewise.
2743
2744         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2745         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2746         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2747         __builtin_ia32_loadlpd.
2748
2749 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2750
2751         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2752         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2753         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2754         (ix86_init_mmx_sse_builtins): Updated.
2755         (ix86_expand_args_builtin): Likewise.
2756         (ix86_expand_builtin): Likewise.
2757         (ix86_expand_unop1_builtin): Renamed to ...
2758         (ix86_expand_unop_vec_merge_builtin): This.
2759
2760 2008-05-01  Jan Hubicka  <jh@suse.cz>
2761
2762         PR bootstrap/36100
2763         * ipa-inline.c (inline_generate_summary): Make static.
2764         (inline_transform): Do not call inlining at -O0; make static.
2765         * passes.c (execute_todo): Add sanity check.
2766         (execute_one_ipa_transform_pass): Execute proper flags.
2767
2768 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2769
2770         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2771         (DECL_NONADDRESSABLE_P): Likewise.
2772         * alias.c (record_component_aliases): Fix comment.
2773
2774 2008-05-01  Simon Baldwin <simonb@google.com>
2775
2776         * c-common.h (warn_array_subscript_range): New function.
2777         * c-common.c (warn_array_subscript_range): Ditto.
2778         * tree-vrp.c (check_array_ref): Corrected code to agree with
2779         comment, ignoring only arrays of size 0 or size 1.
2780         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2781
2782 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2783
2784         * config/i386/i386.c (ix86_builtin_type): Replace
2785         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2786         (bdesc_args): Updated.
2787         (ix86_init_mmx_sse_builtins): Likewise.
2788         (ix86_expand_args_builtin): Likewise.
2789
2790         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2791         with __v1di.
2792
2793         * doc/extend.texi: Correct __builtin_ia32_palignr.
2794
2795 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2796
2797         PR target/36095
2798         * config/i386/i386.c (bdesc_crc32): Removed.
2799         (ix86_expand_crc32): Likewise.
2800         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2801         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2802         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2803         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2804         UINT_FTYPE_UINT_UCHAR.
2805         (bdesc_args): Updated. Add crc32 builtins.
2806         (ix86_init_mmx_sse_builtins): Updated.
2807         (ix86_expand_args_builtin): Updated to support subreg.
2808
2809         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2810
2811 2008-05-01  Jan Hubicka  <jh@suse.cz>
2812
2813         * tree-pass.h (opt_pass): Add IPA_PASS.
2814         (varpool_node, cgraph_node): Forward declare.
2815         (ipa_opt_pass): Define.
2816         (pass_ipa_inline): Turn into ipa_opt_pass.
2817         (pass_apply_inline): Remove.
2818         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2819         (apply_inline): Turn into ....
2820         (inline_transform): ... this one.
2821         (inline_generate_summary): New function.
2822         (pass_apply_inline): Remove.
2823         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2824         vector.
2825         (struct function): Add ipa_transforms_to_apply.
2826         * passes.c (register_one_dump_file): Work on IPA_PASS.
2827         (init_optimization_passes): Remove pass_inline_parameters and
2828         pass_apply_inline.
2829         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2830         (execute_one_pass) ... here; apply transforms when possible.
2831         (add_ipa_transform_pass, execute_ipa_summary_asses,
2832         execute_one_ipa_transform_pass): New.
2833         (execute_ipa_pass_list): Update for IPA_PASS type.
2834
2835 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2836
2837         * config/i386/i386.c (ix86_builtin_type): Add
2838         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2839         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2840         (bdesc_args): Add SSE4a builtins.
2841         (ix86_init_mmx_sse_builtins): Updated.
2842         (ix86_expand_args_builtin): Likewise.
2843         (ix86_expand_builtin): Likewise.
2844
2845 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2846
2847         * config/i386/i386.c (ix86_builtin_type): Add
2848         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2849         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2850         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2851         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2852         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2853         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2854         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2855         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2856         and DI_FTYPE_DI_DI_INT.
2857         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2858         (ix86_init_mmx_sse_builtins): Updated.
2859         (ix86_expand_args_builtin): Likewise.
2860         (ix86_expand_builtin): Likewise.
2861         (ix86_expand_binop_imm_builtin): Removed.
2862
2863         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2864
2865 2008-04-30  Richard Guenther  <rguenther@suse.de>
2866
2867         PR tree-optimization/32921
2868         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2869
2870 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2871
2872         * config/arm/arm.c (arm_unwind_emit): Use
2873         crtl->all_throwers_are_sibcalls instead of
2874         cfun->all_throwers_are_sibcalls.
2875         (arm_output_fn_unwind): Likewise.
2876         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2877         instead of cfun->uses_pic_offset_table.
2878         (frv_expand_prologue): Likewise.
2879         (frv_frame_pointer_required): Likewise.
2880         (frv_expand_fdpic_call): Likewise.
2881         (frv_emit_movsi): Likewise.
2882         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2883         cfun->returns_pcc_struct instead of
2884         current_function_returns_pcc_struct.
2885         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2886         instead of cfun->calls_eh_return.
2887         (m32c_pushm_popm): Likewise.
2888         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2889         "extern" declaration.
2890
2891 2008-04-30  Richard Guenther  <rguenther@suse.de>
2892
2893         PR tree-optimization/21636
2894         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2895         constant address.
2896         (evaluate_stmt): Print the likely value.
2897         (ccp_visit_stmt): Avoid excessive vertical spacing.
2898
2899 2008-04-30  Rafael Espindola  <espindola@google.com>
2900
2901         * builtins.c (fold_call_expr): Return realret.
2902         * tree-ssa-threadedge.c
2903         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2904         __builtin_object_size.
2905
2906 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2907
2908         * gcc.c (wrapper_string): New variable.
2909         (insert_wrapper): New function.
2910         (execute): New option -wrapper.
2911         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2912
2913 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2914
2915         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2916         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2917         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2918         from...
2919         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2920         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2921         config/rs6000/e500crtres64gprctr.asm,
2922         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2923         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2924         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2925         config/rs6000/e500crtsav64gprctr.asm,
2926         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2927         config/rs6000/e500crtsavg64gprctr.asm: New files.
2928         * config/rs6000/t-ppccomm: Add build rules for new files.
2929         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2930         * config/rs6000/t-netbsd: Add build rules for new files.
2931         (LIB2FUNCS_STATIC_EXTRA): New variable.
2932         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2933         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2934         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2935
2936 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2937
2938         * config/i386/i386.c (ix86_builtin_type): Add
2939         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2940         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2941         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2942         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2943         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2944         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2945         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2946         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2947         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2948         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2949         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2950         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2951         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2952         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2953         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2954         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2955         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2956         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2957         V1DI_FTYPE_V2SI_V2SI.
2958         (bdesc_2arg): Moved to ...
2959         (bdesc_args): Here.
2960         (ix86_init_mmx_sse_builtins): Updated.
2961         (ix86_expand_args_builtin): Updated.  Take a pointer
2962         to const struct builtin_description.  Handle comparison
2963         builtin functions.
2964         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2965         (ix86_expand_builtin): Updated.
2966
2967         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2968         (ssse3_pmaddubsw128): This.
2969         (ssse3_pmaddubswv4hi3): Renamed to ...
2970         (ssse3_pmaddubsw): This.
2971
2972         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2973         (__builtin_ia32_packssdw128): Likewise.
2974         (__builtin_ia32_packuswb128): Likewise.
2975         (__builtin_ia32_pmaddubsw): Likewise.
2976         (__builtin_ia32_pmaddubsw128): Likewise.
2977
2978 2008-04-30  Richard Guenther  <rguenther@suse.de>
2979
2980         PR tree-optimization/14847
2981         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2982         (recognize_bits_test): Use it.
2983         (recognize_single_bit_test): Likewise.
2984
2985 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2986
2987         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2988         instead of setting number of formal parameters to zero.
2989         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2990         either.
2991         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2992         which are called with variable number of arguments.
2993         (ipcp_insert_stage): Explicitely skipping all nodes which are
2994         called with variable number of arguments.
2995         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2996         number of parameters.
2997
2998         * ipa-prop.h (struct ipa_node_params): Added flag
2999         called_with_var_arguments
3000         (ipa_set_param_count): Added.  Changed sole setter to use it.
3001         (ipa_get_param_count): Added.  All readers of param_count
3002         converted to use it instead.
3003         (ipa_set_called_with_variable_arg): Added.
3004         (ipa_is_called_with_var_arguments): Added.
3005         (ipa_get_ith_param): Added.  All readers of param_decls converted
3006         to use it instead.
3007         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3008         changed to use it. 
3009         (ipa_get_cs_argument_count): Added, all readers of argument_count
3010         changed to cal it.
3011         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3012         to use it.
3013         
3014         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3015         (struct ipcp_lattice): Renamed cval_type to type
3016         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3017
3018         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3019         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3020         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3021         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3022         (build_const_val): Changed the type of parameter cvalue to tree
3023         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3024         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3025         
3026         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3027         constant 
3028
3029         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3030         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3031         (ipa_add_method): Renamed to ipa_push_func_to_list
3032         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3033         (ipa_callsite_param_count): Removed.
3034         (ipa_callsite_param_count_set): Removed.
3035         (ipa_callsite_param): Removed.
3036         (ipa_callsite_callee): Removed.
3037         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3038         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3039         (ipa_method_formal_count): Removed.
3040         (ipa_method_formal_count_set): Removed.
3041         (ipa_method_get_tree): Removed.
3042         (ipa_method_tree_map_create): Removed.
3043         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3044         (ipa_create_param_decls_array): Creates the array itself
3045         (ipa_create_param_decls_array): Temporary variable info instead of 
3046         a few dereferences.
3047         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3048         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3049         (get_type): Removed.
3050         (ipa_jf_get_info_type): Removed.
3051         (ipa_node_create): Renamed to ipa_create_node_params
3052         (ipa_free): Renamed to ipa_free_all_node_params
3053         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3054         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3055         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3056         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3057         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3058         ipa_free_all_edge_args
3059         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3060         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3061         (ipa_create_methodlist_node): Removed.
3062         (ipa_methodlist_method): Removed.
3063         (ipa_methodlist_method_set): Removed.
3064         (ipa_methodlist_next_method): Removed.
3065         (ipa_methodlist_next_method_set): Removed.
3066         (ipa_method_is_modified): Removed.
3067         (ipa_method_modify_create): Removed.
3068         (ipa_method_modify_init): Temporary variable info instead of a few 
3069         dereferences.
3070         (ipa_detect_param_modifications): Temporary variable info instead of 
3071         a few dereferences.
3072         (ipa_compute_jump_functions): Temporary variable info instead of 
3073         a few dereferences.
3074         (ipa_method_modify_set): Removed.
3075         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3076         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3077         than craph_node as the first parameter.
3078         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3079         (ipa_method_modify_init): Removed.
3080         (ipa_compute_jump_functions): Added a temp variable instead of 
3081         repeatadly dereferencing the cgraph_edge.aux pointer
3082         (ipa_callsite_param_set_type): Removed.
3083         (ipa_compute_jump_functions): i renamed to index and moved to 
3084         an inner block
3085         (ipa_callsite_param_set_info_type_formal): Removed.
3086         (ipa_callsite_param_set_info_type): Removed.
3087         (ipa_callsite_param_map_create): Removed.
3088         (ipa_callsite_tree): Removed.
3089         (ipa_callsite_caller): Removed.
3090         (ipa_pop_func_from_list): return_method removed to return_func
3091
3092         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3093         prefixed all values with IPA_. Changed all users.
3094         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3095         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3096         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3097         (union parameter_info): Renamed to jump_func_value.
3098         (union jump_func_value): Renamed value to constant
3099         (struct ipa_jump_func): Renamed info_type to value
3100         (struct ipa_node): Renamed to ipa_node_params
3101         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3102         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3103         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3104         (struct ipa_edge): Renamed to ipa_edge_args
3105         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3106         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3107         (struct ipa_methodlist): Renamed to ipa_func_list
3108         (struct ipa_func_list): method_p renamed to node, next_method
3109         renamed to next
3110         (ipa_methodlist_p): Removed, switched all users to struct pointer
3111         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3112
3113 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3114
3115         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3116         (rs6000_emit_epilogue): Use backchain to restore only when we
3117         have a large frame.  Make use of frame pointer to restore if we
3118         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3119
3120 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3121
3122         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3123         Add mode to zero_extract.
3124         (sign bit tests peepholes): (Ditto.).
3125
3126 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3127
3128         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3129         Instructions in comments with SSE3.
3130         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3131         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3132         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3133         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3134         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3135         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3136         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3137         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3138         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3139         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3140         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3141         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3142         (bdesc_sse_args): Renamed to ...
3143         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3144         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3145         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3146         IX86_BUILTIN_FABSQ.
3147         (bdesc_1arg): Moved to ...
3148         (bdesc_args): Here.
3149         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3150         Instructions in comments with SSE3.
3151         (ix86_expand_sse_operands_builtin): Renamed to ...
3152         (ix86_expand_args_builtin): This.  Updated.
3153         (ix86_expand_unop1_builtin): Update comments.
3154         (ix86_expand_builtin): Updated.
3155
3156 2008-04-29  Richard Guenther  <rguenther@suse.de>
3157
3158         PR tree-optimization/36078
3159         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3160         Update virtual SSA form after cleaning up the CFG.
3161
3162 2008-04-29  Richard Guenther  <rguenther@suse.de>
3163
3164         PR middle-end/15255
3165         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3166
3167 2008-04-29  Richard Guenther  <rguenther@suse.de>
3168
3169         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3170         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3171         (compute_flow_insensitive_aliasing): Do not treat
3172         PTR_IS_REF_ALL pointers special.
3173         (get_smt_for): Likewise.
3174         (may_alias_p): Re-structure.
3175         (is_escape_site): A ref-all pointer conversion is not an escape site.
3176         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3177         PTR_IS_REF_ALL pointers special.
3178         * tree-ssa-structalias.h (struct alias_info): Remove
3179         ref_all_symbol_mem_tag field.
3180         (PTR_IS_REF_ALL): Remove.
3181
3182 2008-04-29  Richard Guenther  <rguenther@suse.de>
3183
3184         PR middle-end/36077
3185         * fold-const.c (extract_muldiv_1): In combining division constants
3186         make sure to never overflow.
3187
3188 2008-04-29  Nick Clifton  <nickc@redhat.com>
3189
3190         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3191
3192 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3193
3194         PR bootstrap/35169
3195         * optc-gen.awk: Work around HP-UX/IA awk bug.
3196
3197 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3198
3199         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3200         2008-04-25 commit.
3201
3202 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3203
3204         PR target/36073
3205         * config/i386/i386.md
3206         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3207         Change operand 1 predicate to nonimmediate_operand.
3208
3209 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3210
3211         PR debug/36060
3212         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3213         die_sub field.
3214         * gengtype.c (walk_type, write_func_for_structure): Handle
3215         chain_circular.
3216         * doc/gty.texi: Document chain_circular.
3217
3218 2008-04-28  Richard Guenther  <rguenther@suse.de>
3219
3220         PR tree-optimization/36066
3221         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3222         SCEV and loop.
3223
3224 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3225
3226         PR target/36064
3227         * config/i386/i386.md
3228         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3229         Use match_scratch instead of match_operand for operands 3 and 4.
3230
3231 2008-04-27  Richard Guenther  <rguenther@suse.de>
3232
3233         PR tree-optimization/18754
3234         PR tree-optimization/34223
3235         * tree-pass.h (pass_complete_unrolli): Declare.
3236         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3237         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3238         Rewrite loop into loop closed SSA form if it is not already.
3239         (tree_unroll_loops_completely): Re-structure to iterate over
3240         innermost loops with intermediate CFG cleanups.
3241         Unroll outermost loops only if requested or the code does not grow
3242         doing so.
3243         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3244         loops are available.
3245         (tree_vectorize): Instead do so here.
3246         (tree_complete_unroll): Also unroll outermost loops.
3247         (tree_complete_unroll_inner): New function.
3248         (gate_tree_complete_unroll_inner): Likewise.
3249         (pass_complete_unrolli): New pass.
3250         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3251         uses outside of the loop.
3252         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3253         form if it is available.  
3254         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3255         * passes.c (init_optimization_passes): Schedule complete inner
3256         loop unrolling pass before the first CCP pass after final inlining.
3257
3258 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3259
3260         * targhooks.h (default_emutls_var_fields,
3261         default_emutls_var_init): Declare.
3262         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3263         * target.h (struct gcc_target): Add struct emutls member.
3264         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3265         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3266         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3267         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3268         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3269         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3270         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3271         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3272         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3273         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3274         emit debug information.
3275         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3276         * varasm.c: Include targhooks.h.
3277         (emutls_object_section, emutls_tmpl_section): New.
3278         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3279         (EMUTLS_SEPARATOR): New.
3280         (prefix_name): New.
3281         (get_emutls_object_name): New.
3282         (default_emutls_var_fields): New, broken out of ...
3283         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3284         (get_emutls_init_templ_addr): Adjust to use target hooks.
3285         (emutls_decl): Adjust to use target hooks.
3286         (emutls_finish): Likewise.
3287         (default_emutls_var_init): New, broken out of ...
3288         (assemble_variable): ... here.  Adjust to use target hooks.
3289         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3290         SECCAT_EMUTLS_TMPL.
3291         * c-common.c (handle_section_attribute): Prevent overriding
3292         sections for emulated tls with special sections.
3293         * config/i386/i386.c (x86_64_elf_select_section): Add
3294         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3295         (x86_64_elf_unique_section): Likewise.
3296         * config/vxworks.c: Include tree.h.
3297         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3298         (vxworks_override_options): Set TLS scheme.
3299         * doc/tm.texi (Emulated TLS): New node.
3300
3301 2008-04-26  Simon Baldwin <simonb@google.com>
3302
3303         PR c/35652
3304         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3305         with propagated string constants.
3306
3307 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3308
3309         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3310         constraint for operand 2 when operand 0 is memory operand.
3311         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3312         operand 0 is memory operand.
3313         (fix_trunc<mode>_i387_with_temp): Ditto.
3314         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3315         operand 2 when operand 1 is memory operand.
3316         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3317         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3318         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3319         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3320         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3321         operands 2,3 and 4 when operand 1 is memory operand.
3322         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3323         is memory operand.
3324         (fistdi2_floor_with_temp): Ditto.
3325         (fist<mode>2_floor_with_temp): Ditto.
3326         (fistdi2_ceil_with_temp): Ditto.
3327         (fist<mode>2_ceil_with_temp): Ditto.
3328         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3329
3330 2008-04-26  David Daney  <ddaney@avtrex.com>
3331
3332         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3333         unspec_volitile.
3334         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3335         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3336         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3337         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3338         (compare_and_swap_12): New insn.
3339         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3340         * config/mips/mips.c (mips_force_binary): New function.
3341         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3342         (mips_expand_compare_and_swap_12): New function.
3343         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3344
3345 2008-04-25  Jan Hubicka  <jh@suse.cz>
3346
3347         PR testsuite/35843
3348         * cfgexpand.c (pass_expand): Turn into RTL pass.
3349         * passes.c (execute_one_pass): Do pass typechecking after execution.
3350         * tree-pass.h (pass_expand): Turn into RTL pass.
3351
3352         * function.h (struct rtl_data): Move here fields
3353         accesses_prior_frames, calls_eh_return, saves_all_registers,
3354         has_nonlocal_goto, has_asm_statement, is_thunk,
3355         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3356         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3357         arg_pointer_save_area_init from struct function; turn into bool.
3358         (struct function): Move
3359         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3360         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3361         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3362         tail_call_emit, arg_pointer_save_area_init
3363         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3364         (current_function_returns_struct, current_function_returns_pcc_struct,
3365         current_function_calls_setjmp, current_function_calls_alloca,
3366         current_function_accesses_prior_frames,
3367         current_function_calls_eh_return, current_function_is_thunk,
3368         current_function_stdarg, current_function_profile,
3369         current_function_limit_stack, current_function_uses_pic_offset_table,
3370         current_function_uses_const_pool, current_function_has_nonlocal_label,
3371         current_function_saves_all_registers,
3372         current_function_has_nonlocal_goto,
3373         current_function_has_asm_statement): Remove accesor macros.
3374         * ra-conflict.c (global_conflicts): Update.
3375         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3376         (suitable_for_tail_call_opt_p): Update.
3377         * builtins.c (expand_builtin_return_addr): Update.
3378         (expand_builtin_setjmp_setup): Update.
3379         (expand_builtin_nonlocal_goto): Update.
3380         * final.c (final_start_function): Update.
3381         (profile_function): Update.
3382         (leaf_function_p): Update.
3383         (only_leaf_regs_used): Update.
3384         * df-scan.c (df_get_exit_block_use_set): Update.
3385         * dojump.c (clear_pending_stack_adjust): Update.
3386         * tree-stdarg.c (gate_optimize_stdarg): Update.
3387         * gimple-low.c (lower_function_body): Update.
3388         * global.c (compute_regsets): Update.
3389         (global_alloc): Update.
3390         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3391         * expr.c (expand_assignment): Update.
3392         * dse.c (dse_step0): Update.
3393         (dse_step1): Update.
3394         * c-decl.c (store_parm_decls): Update.
3395         * local-alloc.c (combine_regs): Update.
3396         (find_free_reg): Update.
3397         * function.c (assign_parms_augmented_arg_list): Update.
3398         (assign_parm_find_data_types): Update.
3399         (assign_parms): Update.
3400         (allocate_struct_function): Update.
3401         (expand_function_start): Update.
3402         (expand_function_end): Update.
3403         (get_arg_pointer_save_area): Update.
3404         (thread_prologue_and_epilogue_insns): Update.
3405         (rest_of_match_asm_constraints): Update.
3406         * stor-layout.c (variable_size): Update.
3407         * gcse.c (gcse_main): Update.
3408         (bypass_jumps): Update.
3409         * gimplify.c (gimplify_function_tree): Update.
3410         * calls.c (emit_call_1): Update.
3411         (expand_call): Update.
3412         * bt-load.c (compute_defs_uses_and_gen): Update.
3413         * except.c (sjlj_assign_call_site_values): Update.
3414         (sjlj_emit_function_enter): Update.
3415         (can_throw_external): Update.
3416         (set_nothrow_function_flags): Update.
3417         (expand_builtin_unwind_init): Update.
3418         (expand_eh_return): Update.
3419         (convert_to_eh_region_ranges): Update.
3420         (output_function_exception_table): Update.
3421         * emit-rtl.c (gen_tmp_stack_mem): Update.
3422         * cfgexpand.c (expand_used_vars): Update.
3423         (tree_expand_cfg): Update.
3424         * cfgcleanup.c (rest_of_handle_jump): Update.
3425         * explow.c (allocate_dynamic_stack_space): Update.
3426         * varasm.c (assemble_start_function): Update.
3427         (force_const_mem): Update.
3428         (mark_constant_pool): Update.
3429         * tree-optimize.c (tree_rest_of_compilation): Update.
3430         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3431         * tree-cfg.c (notice_special_calls): Update.
3432         (is_ctrl_altering_stmt): Update.
3433         (tree_can_make_abnormal_goto): Update.
3434         (tree_purge_dead_abnormal_call_edges): Update.
3435         * config/alpha/predicates.md: Update.
3436         * config/alpha/alpha.c (alpha_sa_mask): Update.
3437         (alpha_sa_size): Update.
3438         (alpha_does_function_need_gp): Update.
3439         (alpha_expand_prologue): Update.
3440         (alpha_start_function): Update.
3441         (alpha_output_function_end_prologue): Update.
3442         (alpha_expand_epilogue): Update.
3443         * config/frv/frv.c (frv_stack_info): Update.
3444         (frv_expand_epilogue): Update.
3445         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3446         (s390_register_info): Update.
3447         (s390_frame_info): Update.
3448         (s390_init_frame_layout): Update.
3449         (s390_can_eliminate): Update.
3450         (save_gprs): Update.
3451         * config/spu/spu.c (spu_split_immediate): Update.
3452         (need_to_save_reg): Update.
3453         (spu_expand_prologue): Update.
3454         (spu_expand_epilogue): Update.
3455         * config/sparc/sparc.md: Update.
3456         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3457         (sparc_tls_got): Update.
3458         (legitimize_pic_address): Update.
3459         (sparc_emit_call_insn): Update.
3460         (sparc_expand_prologue): Update.
3461         (output_return): Update.
3462         (print_operand): Update.
3463         (sparc_function_ok_for_sibcall): Update.
3464         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3465         * config/m32r/m32r.md: Update.
3466         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3467         (m32r_compute_frame_size): Update.
3468         (m32r_expand_prologue): Update.
3469         (m32r_expand_epilogue): Update.
3470         (m32r_legitimize_pic_address): Update.
3471         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3472         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3473         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3474         (gen_push): Update.
3475         (ix86_save_reg): Update.
3476         (ix86_compute_frame_layout): Update.
3477         (ix86_expand_prologue): Update.
3478         (ix86_expand_epilogue): Update.
3479         * config/sh/sh.c (output_stack_adjust): Update.
3480         (calc_live_regs): Update.
3481         (sh5_schedule_saves): Update.
3482         (sh_expand_prologue): Update.
3483         (sh_expand_epilogue): Update.
3484         (sh_setup_incoming_varargs): Update.
3485         (sh_allocate_initial_value): Update.
3486         (sh_get_pr_initial_val): Update.
3487         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3488         * config/sh/sh.md (label:): Update.
3489         * config/avr/avr.c (out_movhi_mr_r): Update.
3490         * config/crx/crx.h (enum): Update.
3491         * config/xtensa/xtensa.h (along): Update.
3492         * config/stormy16/stormy16.c Update.
3493         (xstormy16_compute_stack_layout): Update.
3494         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3495         (fr30_expand_prologue): Update.
3496         * config/cris/cris.c (cris_conditional_register_usage): Update.
3497         (cris_reg_saved_in_regsave_area): Update.
3498         (cris_initial_frame_pointer_offset): Update.
3499         (cris_simple_epilogue): Update.
3500         (cris_expand_prologue): Update.
3501         (cris_expand_epilogue): Update.
3502         (cris_expand_pic_call_address): Update.
3503         (cris_asm_output_symbol_ref): Update.
3504         (cris_asm_output_label_ref): Update.
3505         * config/cris/cris.md Update.
3506         * config/iq2000/iq2000.c (compute_frame_size): Update.
3507         (iq2000_expand_epilogue): Update.
3508         * config/mt/mt.h (save_direction): Update.
3509         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3510         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3511         (ia64_secondary_reload_class): Update.
3512         * config/m68k/m68k.c (m68k_save_reg): Update.
3513         (m68k_expand_prologue): Update.
3514         (m68k_expand_epilogue): Update.
3515         (legitimize_pic_address): Update.
3516         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3517         (first_reg_to_save): Update.
3518         (first_altivec_reg_to_save): Update.
3519         (compute_vrsave_mask): Update.
3520         (compute_save_world_info): Update.
3521         (rs6000_stack_info): Update.
3522         (spe_func_has_64bit_regs_p): Update.
3523         (rs6000_ra_ever_killed): Update.
3524         (rs6000_emit_eh_reg_restore): Update.
3525         (rs6000_emit_allocate_stack): Update.
3526         (rs6000_emit_prologue): Update.
3527         (rs6000_emit_epilogue): Update.
3528         (rs6000_output_function_epilogue): Update.
3529         (output_profile_hook): Update.
3530         (rs6000_elf_declare_function_name): Update.
3531         * config/rs6000/rs6000.h (rs6000_args): Update.
3532         * config/rs6000/rs6000.md: Update.
3533         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3534         * config/arc/arc.c (arc_output_function_epilogue): Update.
3535         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3536         * config/darwin.c (machopic_function_base_name): Update.
3537         * config/score/score3.c (score3_compute_frame_size): Update.
3538         (rpush): Update.
3539         (rpop): Update.
3540         (score3_epilogue): Update.
3541         * config/score/score7.c (score7_compute_frame_size): Update.
3542         (score7_prologue): Update.
3543         (score7_epilogue): Update.
3544         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3545         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3546         * config/arm/arm.c (use_return_insn): Update.
3547         (require_pic_register): Update.
3548         (arm_load_pic_register): Update.
3549         (arm_compute_save_reg0_reg12_mask): Update.
3550         (arm_compute_save_reg_mask): Update.
3551         (thumb1_compute_save_reg_mask): Update.
3552         (output_return_instruction): Update.
3553         (arm_output_function_prologue): Update.
3554         (arm_output_epilogue): Update.
3555         (arm_get_frame_offsets): Update.
3556         (arm_expand_prologue): Update.
3557         (thumb_pushpop): Update.
3558         (thumb_exit): Update.
3559         (thumb1_expand_prologue): Update.
3560         (thumb1_expand_epilogue): Update.
3561         (arm_unwind_emit): Update.
3562         (arm_output_fn_unwind): Update.
3563         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3564         * config/arm/arm.md: Update.
3565         * config/pa/pa.md: Update.
3566         * config/pa/pa.c (legitimize_pic_address): Update.
3567         (compute_frame_size): Update.
3568         (hppa_expand_prologue): Update.
3569         (hppa_expand_epilogue): Update.
3570         (borx_reg_operand): Update.
3571         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3572         (HARD_REGNO_RENAME_OK): Update.
3573         * config/mips/mips.c (mips_global_pointer): Update.
3574         (mips_save_reg_p): Update.
3575         (mips_compute_frame_info): Update.
3576         (mips_frame_pointer_required): Update.
3577         (mips_expand_prologue): Update.
3578         (mips_expand_epilogue): Update.
3579         (mips_can_use_return_insn): Update.
3580         (mips_reorg_process_insns): Update.
3581         * config/v850/v850.c (compute_register_save_size): Update.
3582         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3583         * config/mmix/mmix.c (along): Update.
3584         (mmix_expand_epilogue): Update.
3585         * config/bfin/bfin.c (legitimize_pic_address): Update.
3586         (must_save_p): Update.
3587         (stack_frame_needed_p): Update.
3588         (add_to_reg): Update.
3589         (bfin_expand_prologue): Update.
3590         * stmt.c (expand_asm_operands): Update.
3591         * reload1.c (reload): Update.
3592         (init_elim_table): Update.
3593
3594 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3595         
3596         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3597         
3598 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3599
3600         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3601         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3602         (mov<mode>): Removed.
3603         (*movv4sf_internal): Likewise.
3604         (*movv2df_internal): Likewise.
3605
3606 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3607
3608         * config.gcc (crx-*-elf): Remove deprecation.
3609
3610 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3611
3612         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3613         __gcc_deregister_frame with atexit.
3614         (deregister_frame_dtor): Remove.
3615
3616 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3617             Nathan Sidwell  <nathan@codesourcery.com>
3618
3619         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3620         (misel): Likewise.
3621         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3622         (rs6000_isel): Likewise.
3623         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3624         (rs6000_isel): New variable.
3625         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3626
3627 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3628
3629         PR c++/35758
3630         * c-common.c (handle_vector_size_attribute): Call
3631         lang_hooks.types.reconstruct_complex_type instead of
3632         reconstruct_complex_type.
3633         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3634         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3635         * langhooks.h (struct lang_hooks_for_types): Add
3636         reconstruct_complex_type hook.
3637         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3638         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3639
3640 2008-04-24  Richard Guenther  <rguenther@suse.de>
3641
3642         * c-common.h (check_builtin_function_arguments): Declare.
3643         * c-common.c (validate_nargs): New function.
3644         (check_builtin_function_arguments): Likewise.
3645         * c-typeck.c (build_function_call): Call
3646         check_builtin_function_arguments.
3647         * builtins.c (fold_builtin_classify): Remove error reporting code.
3648         (fold_builtin_unordered_cmp): Likewise.
3649         (fold_builtin_1): Likewise.
3650         (fold_builtin_n): Likewise.
3651
3652 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3653
3654         PR tree-optimization/36008
3655         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3656         the original op1, rather than delta by step.
3657
3658 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3659             Sebastian Pop  <sebastian.pop@amd.com>
3660
3661         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3662         eliminate_local_variables_stmt, eliminate_local_variables,
3663         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3664         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3665         of code delimited by two edges in the CFG.
3666         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3667         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3668         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3669         the case of parallelisation of reductions.
3670         (expr_invariant_in_region_p): New.
3671
3672         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3673         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3674
3675 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3676             Richard Guenther  <rguenther@suse.de>
3677
3678         PR tree-optimization/36034
3679         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3680         incapable of dealing with loads with gaps.
3681
3682 2008-04-24  Rafael Espindola  <espindola@google.com>
3683
3684         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3685         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3686         vrp_evaluate_conditional.
3687         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3688         (vrp_evaluate_conditional): Split the cond argument.
3689         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3690         (simplify_stmt_for_jump_threading): Update call to
3691         vrp_evaluate_conditional.
3692
3693 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3694
3695         PR tree-optimization/35982
3696         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3697         interleaved data-refs are of the same type.
3698
3699 2008-04-24  Danny Smith  <dannysmith@users.net>
3700
3701         * c-format.c (check_format_info_main): Use strncmp rather than a
3702         magic prefix to handle multichar length specs.
3703         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3704         Don't prefix "I64" and "I32" with '\0'.
3705
3706 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3707
3708         PR target/36015
3709         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3710         in registers for -m32 only if stdarg_p (fntype).
3711
3712 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3713
3714         PR rtl-optimization/36006
3715         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3716         temp to op0 in order to avoid invalid rtx sharing.
3717
3718 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3719
3720         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3721         check TREE_INVARIANT.
3722         * tree-gimple.c (is_gimple_address): New.
3723         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3724         * tree-gimple.h (is_gimple_address): New.
3725         * tree.h (decl_address_invariant_p): New.
3726         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3727         (build_string): Likewise.
3728         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3729         (tree_invariant_p_1): Likewise.
3730         (save_expr): Use it.
3731         (tree_invariant_p): New.
3732         (skip_simple_arithmetic): Use it.
3733         (stabilize_reference_1): Use it.
3734         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3735         simplify.
3736         (build1_stat): Drop code to compute TREE_INVARIANT.
3737         (build2_stat): Drop code to compute TREE_INVARIANT.
3738         (build3_stat): Drop code to compute TREE_INVARIANT.
3739         (build4_stat): Drop code to compute TREE_INVARIANT.
3740         (build5_stat): Drop code to compute TREE_INVARIANT.
3741         (build7_stat): Drop code to compute TREE_INVARIANT.
3742         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3743         * tree.h (struct tree_base): Remove invariant_flag.
3744         (TREE_INVARIANT): Remove.
3745         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3746         (fold_builtin_expect): Check TREE_CONSTANT.
3747         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3748         * c-tree.h (c_expr_to_decl): Drop third parameter.
3749         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3750         (build_c_cast): Don't set TREE_INVARIANT.
3751         (pop_init_level): Don't set TREE_INVARIANT.
3752         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3753         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3754         TREE_CONSTANT.
3755         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3756         (gimplify_addr_expr): Adjust comment.
3757         * tree-mudflap.c (mf_build_string):
3758         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3759         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3760         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3761         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3762         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3763         * langhooks.h (struct lang_hooks): Drop third parameter from
3764         expr_to_decl.
3765
3766 2008-04-23  Richard Guenther  <rguenther@suse.de>
3767
3768         PR tree-optimization/27799
3769         PR tree-optimization/32921
3770         PR tree-optimization/32624
3771         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3772         SMTs aliases and the tag itself into the solution.
3773         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3774         merge the points-to solution back into the SMT aliases.
3775         (may_alias_p): Use alias_set_subset_of instead of
3776         aliases_conflict_p.  A pointer which points to
3777         memory with alias set zero may access any variable.
3778
3779 2008-04-23  Richard Guenther  <rguenther@suse.de>
3780
3781         * alias.c (alias_set_subset_of): Correctly handle asking
3782         if zero is a subset of an alias set with zero child.
3783         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3784         (compute_flow_insensitive_aliasing): Correctly walk all
3785         pointers.  Do not unnecessarily union sets.
3786
3787 2008-04-23  Richard Guenther  <rguenther@suse.de>
3788
3789         PR middle-end/36021
3790         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3791
3792 2008-04-22  Tomas Bily  <tbily@suse.cz>
3793
3794         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3795         unreachable case.
3796         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3797         NON_LVALUE_EXPR.
3798         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3799         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3800         * tree-inline.c (estimate_num_insns_1): Likewise.
3801         * varasm.c (const_hash_1, compare_constant, copy_constant)
3802         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3803         * emit-rtl.c (component_ref_for_mem_expr)
3804         (set_mem_attributes_minus_bitpos): Likewise.
3805         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3806         (is_aligning_offset): Likewise.
3807         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3808         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3809         * dojump.c (do_jump): Likewise.
3810         * builtins.c (get_pointer_alignment, get_memory_rtx)
3811         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3812         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3813
3814 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3815
3816         PR rtl-optimization/36017
3817         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3818         expanding the library call.
3819
3820 2008-04-22  Ian Lance Taylor  <iant@google.com>
3821
3822         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3823         than size_in_bytes.
3824
3825 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3826
3827         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3828         of LR/CTR moves for Power6.
3829
3830 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3831
3832         PR middle-end/36003
3833         * passes.c (init_optimization_passes): Remove
3834         pass_fast_rtl_byte_dce.
3835         
3836 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3837
3838         PR target/29096
3839         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3840         builtin functions to generate faster code.
3841         (_mm_cvtpu16_ps): Ditto.
3842         (_mm_cvtpi32x2_ps): Ditto.
3843
3844 2008-04-22  Nick Clifton  <nickc@redhat.com>
3845
3846         * common.opt (ftree-loop-distribution): Add Optimization
3847         attribute.
3848
3849         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3850         (frv_expand_builtin_va_start): Likewise.
3851
3852         * config/arm/arm.c (thumb_find_work_register): Fix location of
3853         argument register count.
3854
3855 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3856
3857         Support scheduling for ColdFire V1 and V3 microarchitecture.
3858         Improve scheduling of multiplication instructions.
3859
3860         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3861         (mac): New instruction attribute.
3862         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3863         (m68k_sched_mac): New variable.
3864         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3865         Handle cfv1 and cfv3.
3866         (max_insn_size): New static variable.
3867         (struct _sched_ib): New type.
3868         (sched_ib): New static variable.
3869         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3870         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3871         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3872         Update.
3873         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3874         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3875         new variables.  Update.
3876         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3877         Add modeling of cfv3 instruction buffer.  Update.
3878         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3879         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3880         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3881         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3882         a particular reservation applies to.
3883         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3884         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3885         to mul_l and mul_w.
3886         (cf_ib_*): Simplify description of instruction buffer.
3887         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3888         (cf_mem): Split into cf_mem1 and cf_mem2.
3889         (cf_v2_move_??): Rename to cfv12_alu_??.
3890         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3891         (cf_v2_mul_??): Remove reservations.
3892         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3893         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3894         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3895         appropriate place.
3896         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3897         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3898         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3899         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3900         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3901         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3902         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3903         expansions of the above reservations for instructions of sizes
3904         1, 2 and 3 words.
3905
3906 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3907
3908         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3909
3910 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3911
3912         * coverage.c: Include tree-pass.h.
3913         (coverage_counter_alloc): Print da_file_name to the dump file.
3914
3915 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3916
3917         * sbitmap.c (sbitmap_range_empty_p): New function.
3918         * sbitmap.h (sbitmap_range_empty_p): New function.
3919         * bitmap.h: Now includes obstack.h.
3920
3921 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3922             Kenneth Zadeck  <zadeck@naturalbridge.com>
3923
3924         * dbgcnt.def (ra_byte_scan): Added.
3925         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3926         when the last hit happens for a counter.  
3927         * timevar.def (TV_DF_BYTE_LR): New variable.
3928         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3929         * passes.c (pass_fast_rtl_byte_dce): New pass.
3930         * fwprop.c (update_df): Added mode to call df_ref_create.
3931         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3932         DF_REF_EXTRACT_OFFSET.
3933         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3934         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3935         (df_mm): New enum.
3936         (df_ref_extract): Added mode field.
3937         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3938         DF_REF_EXTRACT_OFFSET.
3939         (DF_REF_EXTRACT_MODE): New macro.
3940         (df_byte_lr_bb_info): New structure.
3941         (df_print_byte_regset, df_compute_accessed_bytes, 
3942         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3943         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3944         df_byte_lr_simulate_uses,
3945         df_byte_lr_simulate_artificial_refs_at_top,
3946         df_byte_lr_simulate_artificial_refs_at_end,
3947         df_compute_accessed_bytes): New function.
3948         (df_ref_create): Add parameter.
3949         (df_byte_lr_get_bb_info): New inline function.
3950         * df-scan.c (df_ref_record, df_uses_record,
3951         df_ref_create_structure): Added mode parameter.
3952         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3953         df_defs_record, df_uses_record, df_get_conditional_uses,
3954         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3955         df_entry_block_defs_collect, df_exit_block_uses_collect):
3956         Added mode parameter to calls to df_ref_record, df_uses_record,
3957         df_ref_create_structure.
3958         (df_ref_equal_p, df_ref_compare): Added test for modes.
3959         (df_ref_create_structure): Added code to set mode.  Renamed
3960         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3961         DF_REF_EXTRACT_OFFSET.
3962         * df-core.c (df_print_byte_regset): New function.
3963         * df-byte-scan.c: New file.
3964         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3965         calls to BITMAP_FREE.  
3966         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3967         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3968         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3969         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3970         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3971         df_byte_lr_local_compute, df_byte_lr_init,
3972         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3973         df_byte_lr_transfer_function, df_byte_lr_free, 
3974         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3975         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3976         df_byte_lr_simulate_uses,
3977         df_byte_lr_simulate_artificial_refs_at_top,
3978         df_byte_lr_simulate_artificial_refs_at_end): New function.
3979         * dce.c (byte_dce_process_block): New function.
3980         (dce_process_block): au is now passed in rather than computed
3981         locally.  Changed loops that look at artificial defs to not look
3982         for conditional or partial ones, because there never are any.  
3983         (fast_dce): Now is able to drive byte_dce_process_block or 
3984         dce_process_block depending on the kind of dce being done.
3985         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3986         (rest_of_handle_fast_byte_dce): New function.
3987         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3988         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3989
3990 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3991
3992         PR fortran/35019
3993         * gcc.h: Added fortran options that take arguments to
3994         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3995         macros.
3996
3997 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3998
3999         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4000         scalarization if on the LHS and not a full access.
4001
4002 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4003
4004         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4005
4006 2008-04-18  Rafael Espindola  <espindola@google.com>
4007
4008         * tree-vrp.c (find_case_label_index): Fix the binary search.
4009         (find_case_label_range): New.
4010         (vrp_visit_switch_stmt): Use find_case_label_range.
4011         (simplify_switch_using_ranges): Use find_case_label_range.
4012
4013 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4014
4015         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4016         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4017
4018 2008-04-18  Tom Tromey  <tromey@redhat.com>
4019
4020         PR libcpp/15500:
4021         * doc/cpp.texi (Implementation-defined behavior): Mention
4022         -finput-charset.
4023
4024 2008-04-18  Ian Lance Taylor  <iant@google.com>
4025
4026         * fold-const.c (pointer_may_wrap_p): New static function.
4027         (fold_comparison): Add another test for pointer overflow.  Use
4028         pointer_may_wrap_p to disable some false positives.
4029
4030 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4031           
4032         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4033         (fname_as_string): Match updated cpp_interpret_string prototype.
4034         (fix_string_type): Support char16_t* and char32_t*.
4035         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4036         derivative) nodes.  Register as builtin if C++0x.
4037         (c_parse_error): Support CPP_CHAR{16,32}.
4038         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4039         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4040         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4041         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4042         CTI_CHAR32_ARRAY_TYPE>: New elements.
4043         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4044         char32_type_node, signed_char32_type_node, char16_array_type_node,
4045         char32_array_type_node): New defines.
4046         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4047         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4048         (lex_string): Support CPP_STRING{16,32}, match updated
4049         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4050         (lex_charconst): Support CPP_CHAR{16,32}.
4051         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4052         and CPP_STRING{16,32}.
4053
4054 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4055
4056         PR bootstrap/35457
4057         * aclocal.m4: Regenerate.
4058         * configure: Regenerate.
4059
4060 2008-04-18  Jan Hubicka  <jh@suse.cz>
4061
4062         * except.c (dw2_size_of_call_site_table,
4063         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4064
4065         * cgraphbuild.c (build_cgraph_edges): Update.
4066         * tree-pass.h: Update comment.
4067         * final.c (leaf_function_p): Update.
4068         (leaf_renumber_regs): Update.
4069         (rest_of_clean_state): Update.
4070         * omp-low.c (expand_omp_parallel): Update.
4071         * ipa-reference.c (analyze_function): Update.
4072         * reorg.c (find_end_label): Update.
4073         (optimize_skip): Update.
4074         (fill_simple_delay_slots): Update.
4075         (fill_simple_delay_slots): Update.
4076         (make_return_insns): Update.
4077         (dbr_schedule): Update.
4078         * gimple-low.c (record_vars_into): Update.
4079         * cfgbuild.c (make_edges): Update.
4080         * function.c (assign_stack_local): Update.
4081         (assign_parm_adjust_stack_rtl): Update.
4082         (locate_and_pad_parm): Update.
4083         (allocate_struct_function): Do not initialize stack_alignment_needed
4084         and preferred_stack_boundary here.
4085         (stack_protect_prologue): Update.
4086         (stack_protect_epilogue): Update.
4087         (expand_function_start): Initialize stack_alignment_needed,
4088         preferred_stack_boundary and max_jumptable_ents.
4089         (expand_function_end): Update.
4090         (free_after_compilation): Do not NULLify epilogue_delay_list.
4091         * function.h (struct rtl_data): Add stack_protect_guard,
4092         stack_alignment_needed,
4093         preferred_stack_boundary, epilogue_delay_list.
4094         (struct function): Remove value_histograms, stack_alignment_needed,
4095         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4096         last_label_uid,
4097         unexpanded_var_list, stack_protect_guard.
4098         (current_function_epilogue_delay_list): Remove.
4099         * ipa-type-escape.c (analyze_function): Update.
4100         * gimplify.c (pop_gimplify_context): Update comment.
4101         * calls.c (expand_call): Update.
4102         (emit_library_call_value_1): Update.
4103         * except.c (set_nothrow_function_flags): Update.
4104         * cfgexpand.c (get_decl_align_unit): Update.
4105         (create_stack_guard): Update.
4106         (estimated_stack_frame_size): Update.
4107         (expand_used_vars): Update.
4108         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4109         * explow.c (allocate_dynamic_stack_space): Update.
4110         * tree-ssa-live.c (remove_unused_locals): Update.
4111         * varasm.c (mark_constant_pool): Update.
4112         * tree-inline.c (remap_decls): Update.
4113         (initialize_cfun): Update.
4114         (declare_return_variable): Update.
4115         (inline_forbidden_p): Update.
4116         (expand_call_inline): Update.
4117         (declare_inline_vars): Update.
4118         (tree_function_versioning): Update.
4119         * tree-flow.h (value_histograms): New.
4120         (VALUE_HISTOGRAMS): New macro.
4121         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4122         last_label_uid.
4123         * tree-cfg.c (set_bb_for_stmt): Update.
4124         (replace_by_duplicate_decl): Update.
4125         (move_block_to_fn): Update.
4126         (new_label_mapper): Update.
4127         (dump_function_to_file): Update.
4128         * ipa-struct-reorg.c (build_data_structure): Update.
4129         * cfgrtl.c (print_rtl_with_bb): Update.
4130         * reload1.c (reload): Update.
4131         (reload): Update.
4132         * config/i386/i386.c (setup_incoming_varargs_64,
4133         ix86_compute_frame_layout): Update.
4134         * config/arc/arc.c (arc_output_function_epilogue): Update.
4135
4136 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4137
4138         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4139         for FreeBSD as well.
4140         * gthr-posix95.h: Likewise.
4141
4142 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4143
4144         PR rtl-optimization/35838
4145         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4146         out the byte offset of the first subreg.
4147
4148 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4149
4150         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4151         to split_ti instead of three separate calls with single member arrays.
4152         (subti3 splitter): Ditto.
4153         (adddi3 splitter): Ditto with split_di.
4154         (subdi3 splitter): Ditto.
4155         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4156         two separate calls with single member arrays.  Swap match_dup
4157         operands 1 and 2 to better fit into the array.
4158         (negdi2 splitter): Ditto with split_di.
4159         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4160         two separate calls with single member arrays.  Swap match_dup operands
4161         6 and 7 to better fit into the array.
4162
4163 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4164
4165         * config/i386/i386.c (sse_builtin_type): New.
4166         (bdesc_sse_args): Likewise.
4167         (bdesc_sse_3arg): Removed.
4168         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4169         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4170         IX86_BUILTIN_ROUNDPS.
4171         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4172         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4173         IX86_BUILTIN_ROUNDPS.
4174         (ix86_expand_sse_4_operands_builtin): Removed.
4175         (ix86_expand_sse_operands_builtin): New.
4176         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4177         and CODE_FOR_sse4_1_roundps.
4178         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4179         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4180
4181 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4182
4183         PR target/35907
4184         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4185         regs before frame pop when needed.  If use_backchain_to_restore_sp
4186         then load backchain into a temp reg to restore vr and vrsave.  Add
4187         code to restore vr after frame pop if possible.
4188
4189 2008-04-17  Richard Guenther  <rguenther@suse.de>
4190
4191         * tree-vn.c (expressions_equal_p): Do not check type
4192         equality or compatibility before calling operand_equal_p.
4193         * fold-const.c (operand_equal_p): Check equivalence of
4194         integer constants before bailing out due to signedness or
4195         precision differences.
4196         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4197         spurious differences in type qualification.  Ignore types
4198         for COMPONENT_REFs at all.
4199
4200 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4201
4202         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4203         msw_skip comparison.
4204         
4205 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4206
4207         PR c/35739
4208         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4209         reg type.
4210
4211         PR tree-optimization/35899
4212         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4213         rather than TREE_OPERAND.
4214
4215 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4216
4217         PR target/35944
4218         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4219         temporary registers.  Change operand predicate to general_operand.
4220         (remainderxf3): Ditto.
4221
4222 2008-04-16  Richard Guenther  <rguenther@suse.de>
4223
4224         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4225         * tree-affine.c (aff_combination_expand): Look through some
4226         conversions.
4227
4228 2008-04-15  Doug Kwan  <dougkwan@google.com>
4229
4230         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4231         for hex printing.
4232         * tree-pretty-print.c (dump_generic_node): Ditto.
4233         * final.c (output_addr_const): Ditto.
4234         * dwarf2out.c (output_cfi): Ditto.
4235         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4236         * print-rtl.c (print_rtx): Ditto.
4237         * print-tree.c (print_node_brief, print_node): Ditto.
4238         * c-common.c (match_case_to_enum_1): Ditto.
4239         * sched-vis.c (print_value): Ditto.
4240         * config/i386/i386.c (print_operand): Cast to long unsigned int
4241         for hex printing.
4242
4243 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4244         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4245         MS Windows VirtualProtect function.
4246
4247 2008-04-15  Jan Hubicka  <jh@suse.cz>
4248
4249         * gengtype.c (write_root): Param_is argument is OK.
4250         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4251         * function.h: Include varray.h
4252         (rtl_eh): New stucture based on except.c one.
4253         (call_site_record): New forward declaration and vector type.
4254         * calls.c (emit_call_1): Do not call
4255         note_current_region_may_contain_throw.
4256         * except.c (eh_status): Remove cur_region, try_region since they are
4257         unused.
4258         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4259         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4260         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4261         Remove call_site_data_used, call_site_data_size.
4262         Turn call_site_record into vector in function.h.
4263         (note_current_region_may_contain_throw): Remove.
4264         (get_exception_pointer, get_exception_filter): Do not take struct
4265         function argument; update.
4266         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4267         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4268         build_post_landing_pads, dw2_build_landing_pads,
4269         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4270         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4271         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4272         sjlj_build_landing_pads, finish_eh_generation,
4273         remove_exception_handler_label, remove_eh_handler,
4274         maybe_remove_eh_handler, add_reachable_handler,
4275         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4276         add_action_record, collect_one_action_chain, add_call_site,
4277         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4278         sjlj_output_call_site_table, output_function_exception_table,
4279         * except.h (note_current_region_may_contain_throw): Remove
4280         (get_exception_pointer, get_exception_filter): Do not take struct
4281         function argument.
4282         * Makefile.in (GTFILES): Put varargs before struct function.
4283
4284 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4285
4286         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4287         punt for STRING_CST.
4288         (get_constraint_for): Deal with STRING_CST here instead.
4289
4290 2008-04-15  Richard Guenther  <rguenther@suse.de>
4291
4292         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4293         statements in a basic-block with a backward walk.  Do not
4294         substitute into dead statements but instead remove those.
4295
4296 2008-04-15  Richard Guenther  <rguenther@suse.de>
4297
4298         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4299         to zero, thus disable creation of SFTs.
4300
4301 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4302
4303         * tree-predcom.c (suitable_reference_p): Return false if the
4304         reference can throw.
4305
4306 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4307
4308         PR c/35751
4309         * c-decl.c (finish_decl): If extern or static var has variable
4310         size, set TREE_TYPE (decl) to error_mark_node.
4311
4312 2008-04-15  Rafael Espindola  <espindola@google.com>
4313
4314         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4315         variable arg1.
4316
4317 2008-04-15  Richard Guenther  <rguenther@suse.de>
4318
4319         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4320         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4321         (visit_reference_op_load): Do walk vuse-vdef chains on
4322         vn_reference_lookup.
4323         (visit_reference_op_store): But do not here.
4324         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4325         vn_reference_lookup.
4326         (vn_lookup_with_vuses): But do so here.
4327
4328 2008-04-14  Ian Lance Taylor  <iant@google.com>
4329
4330         * fold-const.c (fold_overflow_warning): Remove assertion.
4331
4332 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4333
4334         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4335         temp1 local variables.
4336
4337 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4338
4339         PR target/35661
4340         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4341         ".text.unlikely" section as executable.
4342
4343 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4344
4345         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4346         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4347         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4348         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4349         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4350         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4351         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4352
4353 2008-04-14  Ian Lance Taylor  <iant@google.com>
4354
4355         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4356         * fold-const.c (fold_comparison): If appropriate, test
4357         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4358         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4359         reassociating a pointer type.
4360         * doc/invoke.texi (Optimize Options): Document that
4361         -fstrict-overflow applies to pointer wraparound.
4362
4363 2008-04-13  Jan Hubicka  <jh@suse.cz>
4364
4365         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4366
4367 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4368
4369         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4370         we are going to "save the world".
4371
4372 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4373
4374         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4375         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4376         operand 0 constraint, not "=".
4377
4378 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4379
4380         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4381
4382 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4383
4384         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4385         of size of positions_needed * CHAR_BIT.
4386
4387 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4388
4389         PR middle-end/35897
4390         * dse.c (store_info): Change positions_needed to unsigned
4391         HOST_WIDE_INT.
4392         (lowpart_bitmask): New.
4393         (record_store): Cast to unsigned HOST_WIDE_INT for
4394         positions_needed.  Assert width <= size of positions_needed *
4395         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4396         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4397         lowpart_bitmask to set mask.
4398
4399 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4400
4401         * config/bfin/constraints.md: New file.
4402         * config/bfin/bfin.md: Include it.
4403         (adddi3): Use satisfies_constraint functions instead of the old macros.
4404         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4405         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4406         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4407         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4408         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4409         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4410         EXTRA_CONSTRAINT): Delete.
4411         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4412         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4413         of the old macros.
4414         * config/bfin/bfin.c: Include "tm-constrs.h".
4415         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4416         Use satisfies_constraint functions instead of the old macros.
4417         * doc/md.texi (Blackfin Constraints): Update file name reference.
4418
4419 2008-04-11  Richard Guenther  <rguenther@suse.de>
4420
4421         PR tree-optimization/35869
4422         * tree-vrp.c (execute_vrp): Move switch statement update after
4423         jump threading.  Schedule another cfg cleanup run.
4424
4425 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4426
4427         PR c/35744
4428         * attribs.c (decl_attributes): Return early on errorneous node.
4429
4430 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4431
4432         * tree.h (struct tree_base): Added a new flag default_def_flag.
4433         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4434
4435 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4436
4437         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4438
4439 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4440
4441         PR target/35768
4442         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4443         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4444         (icacheflush): Likewise.
4445         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4446         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4447
4448 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4449
4450         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4451
4452 2008-04-10  Rafael Espindola  <espindola@google.com>
4453
4454         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4455         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4456         (extract_range_from_expr): The same.
4457
4458 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4459
4460         * config/mips/mips.md (GPR2): New mode iterator.
4461         (seq): Add comment.
4462         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4463         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4464         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4465         Rewrite these to take two modes, the mode of comparison and the
4466         mode of the destination.
4467         * config/mips/mips.c (mips_expand_scc): Instead of having
4468         paradoxical subreg as destination, expand "narrowing" scc if mode
4469         of comparison is SI and target is requested in DI mode.
4470         (mips_emit_int_order_test): Update comment.  Make mode of
4471         comparison match CMP0 rather than TARGET.  When creating inverse
4472         target use mode of TARGET.
4473
4474 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4475
4476         * gcov-dump.c (tag_summary): Only print summaries for the first
4477         GCOV_COUNTERS_SUMMABLE counters.
4478
4479 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4480
4481         * config/i386/i386.md (absneg): New code iterator.
4482         (absnegprefix): New code attribute.
4483         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4484         patterns using absneg code iterator.
4485         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4486         using absneg code iterator.
4487         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4488         *neg<mode>2 patterns using absneg code iterator.
4489         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4490         *negextendsfdf2 patterns using absneg code iterator.
4491         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4492         *negextendsfxf2 patterns using absneg code iterator.
4493         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4494         *negextendsfdf2 patterns using absneg code iterator.
4495         * config/i386/sse.md (<code><mode>2): Macroize expander from
4496         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4497
4498 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4499
4500         * config/s390/s390.h: Remove the remains of the recent search
4501         & replace action of current_function_outgoing_args_size.
4502
4503 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4504
4505         PR tree-optimization/35821
4506         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4507         NEW_STMT_LIST is not NULL.
4508
4509 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4510
4511         PR libstdc++/35597
4512         * toplev.c (process_options): Remove -ffunction-sections debugging
4513         warning.
4514
4515 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4516
4517         PR middle-end/PR28690
4518         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4519         than gen_rtx_fmt_ee to perform more canonicalizations.
4520
4521 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4522
4523         PR driver/35665
4524         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4525
4526 2008-04-09  Richard Guenther  <rguenther@suse.de>
4527
4528         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4529         (dump_function_to_file): Dump function arguments with types.
4530
4531 2008-04-08  Richard Guenther  <rguenther@suse.de>
4532
4533         * fold-const.c (fold_widened_comparison): Do not allow
4534         sign-changes that change the result.
4535
4536 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4537
4538         PR target/35839
4539         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4540         kinds of indirect references.
4541
4542 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4543
4544         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4545         GNU Fortran language string.
4546
4547 2008-04-08  Rafael Espindola  <espindola@google.com>
4548
4549         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4550         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4551         * tree.h (tree_call_nonnegative_warnv_p): New.
4552
4553 2008-04-08  Jan Hubicka  <jh@suse.cz>
4554
4555         * function.c (free_after_compilation): Clear out regno_reg_rtx
4556         pointer.
4557
4558 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4559
4560         Revert
4561         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4562
4563         PR middle-end/PR28690
4564         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4565         same precedence as REG_POINTER and MEM_POINTER operands.
4566
4567 2008-04-08  Richard Guenther  <rguenther@suse.de>
4568
4569         PR middle-end/35834
4570         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4571         for adding index to base.
4572
4573 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4574
4575         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4576         (MINGW_ENABLE_EXECUTE_STACK): New.
4577         (IN_LIBGCC2): For libgcc include windows.h file for
4578         function declarations.
4579
4580 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4581
4582         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4583         and tem2 if tem1 is not a REG or MULT.
4584
4585 2008-04-08  Jan Hubicka  <jh@suse.cz>
4586
4587         * function.h (incomming_args): Break out of struct function.
4588         (function_subsections): Break out of struct function.
4589         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4590         return_rtx and hard_reg_initial_vals from struct function.
4591         Kill inl_max_label_num.
4592         (current_function_pops_args, current_function_args_info,
4593         current_function_args_size, current_function_args_size,
4594         current_function_pretend_args_size,
4595         current_function_outgoing_args_size,
4596         current_function_internal_arg_pointer, current_function_return_rtx):
4597         Kill compatibility accestor macros.
4598         * builtins.c (expand_builtin_apply_args_1): Update.
4599         (expand_builtin_next_arg): Update.
4600         * df-scan.c (df_get_call_refs): Update.
4601         * dbxout.c (dbxout_function_end): Update.
4602         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4603         (output_line_info): Update.
4604         (secname_for_decl): Update.
4605         (dwarf2out_var_location): Update.
4606         * function.c (free_after_compilation): Update.
4607         (assign_parm_find_stack_rtl): Update.
4608         (assign_parms): Update.
4609         (expand_dummy_function_end): Update.
4610         (expand_function_end): Update.
4611         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4612         (expand_call): Update.
4613         (emit_library_call_value_1): Update.
4614         (store_one_arg): Update.
4615         * varasm.c (initialize_cold_section_name): Update.
4616         (unlikely_text_section): Update.
4617         (unlikely_text_section_p): Update.
4618         (assemble_start_function): Update.
4619         (assemble_end_function): Update.
4620         (default_section_type_flags): Update.
4621         (switch_to_section): Update.
4622         * integrate.c (set_decl_abstract_flags): Update.
4623         (get_hard_reg_initial_val): Update.
4624         (has_hard_reg_initial_val): Update.
4625         (allocate_initial_values): Update.
4626         * resource.c (init_resource_info): Update.
4627         * config/alpha/alpha.c (NUM_ARGS): Update.
4628         (direct_return): Update.
4629         (alpha_va_start): Update.
4630         (alpha_sa_size): Update.
4631         (alpha_initial_elimination_offset): Update.
4632         (alpha_expand_prologue): Update.
4633         (alpha_start_function): Update.
4634         (alpha_expand_epilogue): Update.
4635         (unicosmk_initial_elimination_offset):
4636         * config/alpha/alpha.md (call expander): Update.
4637         * config/s390/s390.c (s390_register_info): Update.
4638         (s390_register_info): Update.
4639         (s390_frame_info): Update.
4640         (s390_initial_elimination_offset): Update.
4641         (s390_build_builtin_va_list): Update.
4642         (s390_va_start): Update.
4643         * config/spu/spu.c (direct_return): Update.
4644         (spu_expand_prologue): Update.
4645         (spu_initial_elimination_offset): Update.
4646         (spu_build_builtin_va_list): Update.
4647         (spu_va_start): Update.
4648         * config/sparc/sparc.c (sparc_init_modes): Update.
4649         (sparc_compute_frame_size): Update.
4650         (function_value): Update.
4651         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4652         * config/i386/i386.md (return expander): Update.
4653         * config/i386/i386.c (ix86_va_start): Update.
4654         (ix86_can_use_return_insn_p): Update.
4655         (ix86_compute_frame_layout): Update.
4656         (ix86_expand_epilogue): Update.
4657         * config/sh/sh.c (output_stack_adjust): Update.
4658         (calc_live_regs): Update.
4659         (sh_expand_prologue): Update.
4660         (sh_builtin_saveregs): Update.
4661         (sh_va_start): Update.
4662         (initial_elimination_offset): Update.
4663         (sh_allocate_initial_value): Update.
4664         (sh_function_ok_for_sibcall): Update.
4665         (sh_get_pr_initial_val): Update.
4666         * config/sh/sh.md (return expander): Update.
4667         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4668         * config/crx/crx.c (crx_compute_frame): UPdate.
4669         (crx_initial_elimination_offset): UPdate.
4670         * config/xtensa/xtensa.c (compute_frame_size): Update
4671         (xtensa_builtin_saveregs): Update.
4672         (xtensa_va_start): Update.
4673         (order_regs_for_local_alloc): Update.
4674         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4675         (xstormy16_expand_builtin_va_start): Update.
4676         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4677         * config/m68hc11/m68hc11.md (return expanders): Update.
4678         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4679         (expand_epilogue): Update.
4680         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4681         (cris_simple_epilogue): Update.
4682         (cris_expand_prologue): Update.
4683         (cris_expand_epilogue): Update.
4684         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4685         (compute_frame_size): Update.
4686         * config/mt/mt.c (mt_compute_frame_size): Update.
4687         * config/mn10300/mn10300.c (expand_prologue): Update.
4688         (expand_epilogue): Update.
4689         (initial_offset): Update.
4690         (mn10300_builtin_saveregs):
4691         * config/mn10300/mn10300.md (return expander): Update.
4692         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4693         (ia64_initial_elimination_offset): Update.
4694         (ia64_initial_elimination_offset): Update.
4695         (ia64_expand_prologue): Update.
4696         * config/m68k/m68k.md (return expander): Update.
4697         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4698         (rs6000_stack_info): Update.
4699         * config/mcore/mcore.c (layout_mcore_frame): Update.
4700         (mcore_expand_prolog): Update.
4701         * config/arc/arc.c (arc_compute_frame_size): Update.
4702         * config/score/score3.c (score3_compute_frame_size): Update.
4703         * config/score/score7.c (score7_compute_frame_size): Update.
4704         * config/arm/arm.c (use_return_insn): Update.
4705         (thumb_find_work_register): Update.
4706         (arm_compute_save_reg_mask): Update.
4707         (arm_output_function_prologue): Update.
4708         (arm_output_epilogue): Update.
4709         (arm_size_return_regs): Update.
4710         (arm_get_frame_offsets): Update.
4711         (arm_expand_prologue): Update.
4712         (thumb_exit): Update.
4713         (thumb_unexpanded_epilogue): Update.
4714         (thumb1_output_function_prologue): Update.
4715         * config/pa/pa.md (return expander): Update.
4716         * config/pa/pa.c (compute_frame_size): Update.
4717         (hppa_builtin_saveregs): Update.
4718         * config/mips/mips.c (mips_va_start): Update.
4719         (mips16_build_function_stub): Update.
4720         (mips_compute_frame_info): Update.
4721         (mips_restore_gp): Update.
4722         (mips_output_function_prologue): Update.
4723         (mips_expand_prologue): Update.
4724         * config/v850/v850.c (compute_frame_size): Update.
4725         (expand_prologue): * config/mmix/mmix.c (along): update.
4726         (mmix_initial_elimination_offset): update.
4727         (mmix_reorg): update.
4728         (mmix_use_simple_return): update.
4729         (mmix_expand_prologue): update.
4730         (mmix_expand_epilogue): Update.
4731         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4732         (emit_link_insn): Update.
4733
4734 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4735
4736         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4737         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4738         instructions.
4739         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4740         atmega103 device.
4741
4742 2008-04-07  Jan Hubicka  <jh@suse.cz>
4743
4744         * function.h (rtl): Rename to x_rtl.
4745         (crtl): New define.
4746         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4747         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4748         used_temp_slots avail_temp_slots, temp_slot_level,
4749         nonlocal_goto_handler_labels): Update accesstors.
4750         (rtl): New global variable.
4751         (struct function): Move some fileds to rtl_data.
4752         (get_arg_pointer_save_area): Update prototype.
4753         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4754         get_arg_pointer_save_area.
4755         * expr.c (init_expr): Update
4756         * function.c (get_frame_size): Update
4757         (assign_stack_local): Update
4758         (expand_function_end): Update.
4759         (get_art_pointer_save_area): Update
4760         * function.h 
4761         * emit-rtl.c (rtl): Declare.
4762         (regno_reg_rtx): Declare.
4763         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4764         Update.
4765         (gen_reg_rtx): Update.
4766         * varasm.c (n_deferred_constatns): Update accestor.
4767         (init_varasm_status): Do not allocate varasm_status.
4768         (force_const_mem, get_pool_size, output_constant_pool): Update.
4769         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4770         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4771         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4772         * sparc/sparc.h (INIT_EXPANDERS): Update.
4773         * ia64/ia64.h (INIT_EXPANDERS): Update.
4774
4775 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4776
4777         * reload.c (push_secondary_reload): Add missing break to for loop.
4778
4779 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4780
4781         PR middle-end/PR28690
4782         * rtlanal.c: Update copyright years.
4783         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4784         as REG_POINTER and MEM_POINTER operands.
4785         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4786         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4787         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4788         * gcse.c: Update copyright years.
4789         (pre_delete): Call gen_reg_rtx_and_attrs.
4790         (hoist_code): Likewise.
4791         (build_store_vectors): Likewise.
4792         (delete_store): Likewise.
4793         * loop-invariant.c (move_invariant_reg): Likewise.
4794         Update copyright years.
4795
4796 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4797
4798         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4799         control string instead of quoted.
4800
4801 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4802
4803         * doc/rtl.texi: Rewrite of subreg section.
4804
4805 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4806
4807         PR/35842
4808         * config/i386/i386.c (legitimize_pic_address): Add treating
4809         of dllimport SYM_REF's.
4810         (legitimize_dllimport_symbol): Add prototype.
4811
4812 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4813
4814         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4815         reference in constructor with non self-referential type.
4816
4817 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4818
4819         Removal of Return with Depressed Stack Pointer support
4820         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4821         (ECF_SP_DEPRESSED): Likewise.
4822         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4823         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4824         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4825         (expand_call): Do not test ECF_SP_DEPRESSED.
4826         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4827         * function.c (keep_stack_depressed): Delete.
4828         (handle_epilogue_set): Likewise.
4829         (update_epilogue_consts): Likewise.
4830         (emit_equiv_load): Likewise.
4831         (thread_prologue_and_epilogue_insns): Remove support for Return with
4832         Depressed Stack Pointer.
4833         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4834
4835 2008-04-06  Richard Guenther  <rguenther@suse.de>
4836
4837         PR tree-optimization/35400
4838         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4839         information from SSA_NAMEs.
4840
4841 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4842
4843         * config/avr/avr.h (avr_mega_p): Remove declaration.
4844         (AVR_MEGA): Remove macro.
4845         * config/avr/avr.c (avr_mega_p): Remove variable.
4846         (avr_override_options): Remove inicializion of avr_mega_p.
4847         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4848         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4849         (avr_jump_mode): (Ditto.).
4850         (avr_output_progmem_section_asm_op): (Ditto.).
4851         (avr_asm_init_sections): (Ditto.).
4852         (avr_asm_init_sections): (Ditto.).
4853         (avr_rtx_costs): (Ditto.).
4854         * config/avr/avr.md: (Ditto.).
4855         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4856         '__AVR_MEGA__'.
4857
4858 2008-04-06  Richard Guenther  <rguenther@suse.de>
4859
4860         PR tree-optimization/35842
4861         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4862         is_gimple_invariant_address.
4863
4864 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4865
4866         * gcc.c (default_compilers): Sync Fortran extensions list with
4867         that in fortran/lang-specs.h.
4868         * doc/invoke.texi: Likewise.
4869         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4870         * dwarf2out.c (gen_compile_unit_die): Likewise.
4871
4872 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4873
4874         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4875
4876 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4877
4878         PR target/12329
4879         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4880         attribute is used for nested functions.
4881
4882 2008-04-05  Jan Hubicka  <jh@suse.cz>
4883
4884         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4885
4886         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4887         letter argument.
4888         (dump_files): Update.
4889         (enable_rtl_dump_file): Do not accept letter argument.
4890         * tree-pass.h (dump_file_info): Remove letter argument.
4891         * toplev.c (decode_d_option): Update -da handling.
4892         * toplev.h (enable_rtl_dump_file): Update prototype.
4893         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4894         it out based on pass type.
4895         (register_dump_files_1): Likewise.
4896         (init_optimization_passes): Update register_one_dump_file calls.
4897         (execute_one_pass): Sanity check that IPA passes are called at IPA
4898         level and RTL passes at RTL level.
4899         (execute_pass_list): IPA pass can not be after or subpass of
4900         GIMPLE/RTL pass.
4901         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4902         disallov RTL subpasses of IPA subpasses.
4903
4904 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4905
4906         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4907         builtins that return exactly once and do not throw. Cache call to
4908         call_expr_flags.
4909
4910 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4911
4912         PR rtl-optimization/34916
4913         PR middle-end/35519
4914         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4915         between instruction pairs.
4916
4917 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4918
4919         * doc/invoke.texi: Document -mbitops for SH.
4920         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4921         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4922         * config/sh/sh.c (print_operand): Add %t operand code.
4923         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4924         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4925         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4926         (extendqihi2): Likewise.
4927         (movqi_i): Likewise.
4928         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4929         (extv): Use bld instruction for SH2A if possible.
4930         (extzv): Likewise.
4931         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4932         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4933         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4934         (bset.b, bclr.b): Define peepholes.
4935         * config/sh/sh.opt (mbitops): New option.
4936
4937 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4938
4939         PR target/35620
4940         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4941         and view convert expression.
4942
4943 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4944
4945         PR target/35364
4946         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4947
4948 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4949
4950         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4951
4952         * config/i386/cpuid.h (bit_AES): New.
4953         (bit_PCLMUL): Likewise.
4954
4955         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4956         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4957         SSE2 if AES or PCLMUL is enabled.
4958         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4959         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4960         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4961         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4962         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4963         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4964         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4965         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4966         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4967         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4968         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4969         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4970         __builtin_ia32_aeskeygenassist128 and
4971         __builtin_ia32_pclmulqdq128.
4972         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4973         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4974         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4975
4976         * config/i386/i386.h (TARGET_AES): New.
4977         (TARGET_PCLMUL): Likewise.
4978         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4979
4980         * config/i386/i386.md (UNSPEC_AESENC): New.
4981         (UNSPEC_AESENCLAST): Likewise.
4982         (UNSPEC_AESDEC): Likewise.
4983         (UNSPEC_AESDECLAST): Likewise.
4984         (UNSPEC_AESIMC): Likewise.
4985         (UNSPEC_AESKEYGENASSIST): Likewise.
4986         (UNSPEC_PCLMUL): Likewise.
4987
4988         * config/i386/i386.opt (maes): New.
4989         (mpclmul): Likewise.
4990
4991         * config/i386/sse.md (aesenc): New pattern.
4992         (aesenclast): Likewise.
4993         (aesdec): Likewise.
4994         (aesdeclast): Likewise.
4995         (aesimc): Likewise.
4996         (aeskeygenassist): Likewise.
4997         (pclmulqdq): Likewise.
4998
4999         * config/i386/wmmintrin.h: New.
5000
5001         * doc/extend.texi: Document AES and PCLMUL built-in function.
5002
5003         * doc/invoke.texi: Document -maes and -mpclmul.
5004
5005 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5006
5007         * function.c (free_after_parsing): Replace with
5008         cxx_push_function_context from C++ front-end.
5009         (allocate_struct_function): Don't call langhook.
5010         * langhooks.h (struct lang_hooks_for_functions): Delete.
5011         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5012         member "function".
5013         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5014         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5015         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5016         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5017         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5018         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5019         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5020
5021         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5022         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5023         
5024 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5025
5026         PR c/35440
5027         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5028         for all types.
5029
5030 2008-04-04  Richard Guenther  <rguenther@suse.de>
5031
5032         PR middle-end/35823
5033         * fold-const.c (optimize_minmax_comparison): Use the correct
5034         type for the constant in the simplified comparison.
5035
5036 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5037
5038         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5039         Pass L2 size as "--param l2-cache-size" to the compiler.
5040         (decode_l2_cache): New function to decode L2 cache parameters using
5041         0x8000006 extended cpuid function.
5042         (detect_caches_amd): Determine parameters of L2 cache using
5043         decode_l2_caches function.
5044         (decode_caches_intel): Decode L2 cache parameters.
5045         (detect_caches_intel): Determine L2 cache parameters using
5046         decode_caches_intel and decode_l2_caches functions.
5047
5048 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5049
5050         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5051         secondary input reload for subword loads from the constant pool.
5052
5053 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5054
5055         PR target/35713
5056         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5057           constants of the appropriate size for runtime calculations.
5058
5059         PR c/35712
5060         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5061           decimal-float literal constant zero.
5062
5063 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5064
5065         PR c/35738
5066         * c-parser.c (c_parser_omp_atomic): Call
5067         default_function_array_conversion on the RHS.
5068
5069         PR middle-end/35818
5070         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5071         call is_variable_sized if decl has incomplete type.
5072
5073 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5074
5075         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5076
5077 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5078
5079         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5080         iterators.
5081         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5082         (sgt<u>): Merge sgt and sgtu into new expander.
5083         (sgt, sgtu): Remove expanders.
5084         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5085         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5086         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5087         *sgtu_<mode>_mips16 into new pattern.
5088         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5089         (sge<u>): Merge sge and sgeu into new expander.
5090         (sge, sgeu): Remove expanders.
5091         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5092         new pattern.
5093         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5094         (slt<u>): Merge slt and sltu into new expander.
5095         (slt, sltu): Remove expanders.
5096         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5097         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5098         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5099         *sltu_<mode>_mips16 into new pattern.
5100         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5101         (sle<u>): Merge sle and sleu into new expander.
5102         (sle, sleu): Remove expanders.
5103         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5104         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5105         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5106         *sleu_<mode>_mips16 into new pattern.
5107         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5108
5109 2008-04-03  Jan Hubicka  <jh@suse.cz>
5110
5111         PR tree-optimization/35795
5112         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5113         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5114         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5115         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5116         * score/score3.c (score3_output_mi_thunk): Likewise.
5117         * score/score7.c (score7_output_mi_thunk): Likewise.
5118         * mips/mips.c (mips_output_mi_thunk): Likewise.
5119
5120 2008-04-03  Richard Guenther  <rguenther@suse.de>
5121
5122         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5123         conversions.  Simplify code.
5124
5125 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5126
5127         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5128
5129 2008-04-03  Tom Tromey  <tromey@redhat.com>
5130             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5131
5132         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5133         * config/bfin/t-bfin-linux (generated_files): Add
5134         linux-sysroot-suffix.h.
5135         * doc/install.texi (Prerequisites): Require make 3.80.
5136         * doc/sourcebuild.texi (Front End Directory): Document new
5137         variable.
5138         * Makefile.in (generated_files): New variable.
5139         (ALL_HOST_OBJS): New variable.
5140         ($(ALL_HOST_OBJS)): New target.
5141
5142 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5143
5144         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5145         (remap_block): Call id->transform_lang_insert_block instead
5146         of langhook.
5147         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5148         Set id.transform_lang_insert_block to NULL.
5149         (clone_body): Move to cp/optimize.c
5150         * tree-inline.h (struct copy_body_data): Change
5151         transform_lang_insert_block to function pointer.
5152         (copy_generic_body, copy_decl_no_change): Export.
5153         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5154         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5155         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5156
5157         * c-tree.h (insert_block): Kill.
5158         * c-decl.c (insert_block): Kill.
5159
5160 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5161
5162         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5163         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5164         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5165         argument.
5166         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5167         argument, call {push,pop}_function_context from here.
5168         * c-parser.c: Use c_{push,pop}_function_context.
5169
5170         * function.c (push_function_context_to): Move meat ...
5171         (push_function_context): ... here.  Simplify.
5172         * function.c (pop_function_context_from): Move meat ...
5173         (pop_function_context): ... here.  Simplify.
5174         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5175         leave_nested).
5176         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5177         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5178         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5179         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5180
5181 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5182
5183         * expmed.c (extract_force_align_mem_bit_field): Remove.
5184
5185 2008-04-03  Richard Guenther  <rguenther@suse.de>
5186
5187         PR middle-end/35800
5188         * expr.h (try_casesi): Adjust prototype.
5189         * expr.c (try_casesi): Take fallback label as extra parameter.
5190         Use that for gen_casesi if default_label is NULL.
5191         * stmt.c (expand_case): Pass fallback label to try_casesi,
5192         make sure to fill gaps with a fallback label if default_label
5193         is not present.
5194
5195 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5196
5197         PR target/35801
5198         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5199
5200 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5201
5202         * expmed.c (extract_split_bit_field): Remove if (0) code.
5203         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5204         (do_ds_constraint): Likewise.
5205
5206 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5207
5208         * doc/cppopts.texi (-dU): Document.
5209         * c-common.h (flag_dump_macros): Update comment.
5210         * c-opts.c (handle_OPT_d): Handle -dU.
5211         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5212         dump_queued_macros, cb_used_define, cb_used_undef): New.
5213         (init_pp_output): Handle -dU.
5214         (cb_line_change): Call dump_queued_macros.
5215         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5216
5217 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5218
5219         * config/avr/predicates.md (io_address_operand): New predicate. 
5220         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5221         * config/avr/avr.c (avr_io_address_p): Remove function.
5222         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5223         'avr_io_address_p' function.
5224         (out_movhi_r_mr): (Ditto.).
5225         (out_movqi_mr_r): (Ditto.).
5226         (out_movhi_mr_r): (Ditto.).
5227         (avr_address_cost): (Ditto.).
5228
5229 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5230
5231         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5232         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5233         in 32bit mode when XMM registers are available to avoid store
5234         forwarding stalls.
5235         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5236         corresponding post-reload splitters.
5237
5238 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5239
5240         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5241         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5242         __builtin_ia32_roundss.
5243         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5244         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5245         __builtin_ia32_roundss.
5246         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5247         IX86_BUILTIN_SHUFPD here.
5248
5249 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5250
5251         * config/i386/i386.md (plogic): New.
5252         (plogicprefix): Likewise.
5253
5254         * config/i386/mmx.md (mmx_<code><mode>3): New.
5255         (mmx_and<mode>3): Removed.
5256         (mmx_ior<mode>3): Likewise.
5257         (mmx_xor<mode>3): Likewise.
5258
5259         * config/i386/sse.md (<code><mode>3): New.
5260         (*<code><mode>3): Likewise.
5261         (*<code><mode>3): Likewise.
5262         (<code><mode>3): Likewise.
5263         (*sse_<code><mode>3): Likewise.
5264         (*sse2_<code><mode>3): Likewise.
5265         (<code>tf3): Likewise.
5266         (*<code>tf3): Likewise.
5267         (and<mode>3): Likewise.
5268         (*and<mode>3): Likewise.
5269         (ior<mode>3): Removed.
5270         (*ior<mode>3): Likewise.
5271         (xor<mode>3): Likewise.
5272         (*xor<mode>3): Likewise.
5273         (*and<mode>3): Likewise.
5274         (*ior<mode>3): Likewise.
5275         (*xor<mode>3): Likewise.
5276         (and<mode>3): Likewise.
5277         (*sse_and<mode>3): Likewise.
5278         (*sse2_and<mode>3): Likewise.
5279         (andtf3): Likewise.
5280         (*andtf3): Likewise.
5281         (ior<mode>3): Likewise.
5282         (*sse_ior<mode>3): Likewise.
5283         (*sse2_ior<mode>3): Likewise.
5284         (iortf3): Likewise.
5285         (*iortf3): Likewise.
5286         (xor<mode>3): Likewise.
5287         (*sse_xor<mode>3): Likewise.
5288         (*sse2_xor<mode>3): Likewise.
5289         (xortf3): Likewise.
5290         (*xortf3): Likewise.
5291
5292 2008-04-02  Richard Guenther  <rguenther@suse.de>
5293
5294         PR tree-optimization/14495
5295         PR tree-optimization/34793
5296         * tree-vrp.c (struct switch_update): New structure.
5297         (to_remove_edges, to_update_switch_stmts): New VECs.
5298         (simplify_switch_using_ranges): New function.  Remove not taken
5299         case labels and edges.
5300         (simplify_stmt_using_ranges): Call it.
5301         (identify_jump_threads): Mark edges we have queued for removal
5302         so we don't thread them.
5303         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5304         case label vector.
5305         * tree-cfg.c (group_case_labels): Deal with missing default label.
5306         (tree_verify_flow_info): Allow missing default label.
5307         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5308         (emit_case_nodes): Likewise.
5309         (expand_case): Do not rely on the default label to be present.
5310         * expr.c (try_casesi): Deal with NULL default_label.
5311         (do_tablejump): Likewise.
5312
5313 2008-04-02  Richard Guenther  <rguenther@suse.de>
5314
5315         PR tree-optimization/14495
5316         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5317         SWITCH_EXPR here ...
5318         (vrp_visit_switch_stmt): ... but here (new function).
5319         (find_case_label_index): New helper function.
5320         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5321
5322 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5323
5324         * fwprop.c: Fix ISO-C99ism.
5325
5326 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5327
5328         PR bootstrap/35752
5329         * Makefile.in (objdir): Set it here.
5330         * configure.ac: Not here.  Find dynamic linker characteristics.
5331         * exec-tool.in: Use them.
5332         * aclocal.m4: Regenerate.
5333         * configure: Regenerate.
5334
5335 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5336
5337         * expr.c (expand_var): Delete it.
5338         * expr.h (expand_var): Delete prototype.
5339         * function.c (expand_function_start): Use expand_decl instead.
5340         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5341         langhook.
5342
5343 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5344
5345         PR rtl-optimization/35542
5346         * fwprop.c (forward_propagate_and_simplify): Replace
5347         loc_reg_mentioned_in_p with reg_mentioned_p.
5348
5349 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5350
5351         PR rtl-optimization/35281
5352         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5353         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5354         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5355         (varying_mem_p): Move above propagate_rtx.
5356         (all_uses_available_at): Do not check MEMs.
5357
5358 2008-04-02  Rafael Espindola  <espindola@google.com>
5359
5360         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5361         (register_edge_assert_for_2): Split the cond argument.
5362         (register_edge_assert_for_1): Adjust for the change in
5363         register_edge_assert_for_2.
5364         (register_edge_assert_for): Split the cond argument.
5365         (find_switch_asserts): Adjust for the change in
5366         register_edge_assert_for.
5367
5368 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5369
5370         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5371         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5372         offsets for 64-bit mingw.
5373         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5374         abi for x86_64-pc-mingw.
5375
5376 2008-04-02  Richard Guenther  <rguenther@suse.de>
5377
5378         * tree-vrp.c (extract_range_from_assert): Make sure to not
5379         produce range min/max with TREE_OVERFOW set.
5380         If merging a anti-range and a range keep the anti-range if
5381         the range covers all values of the type.
5382         (register_edge_assert_for_2): Only allow sign-changing
5383         conversions in detecting canonical range checks.  Also
5384         register an assert for the unsigned name if useful.
5385
5386         PR tree-optimization/35787
5387         * tree-vrp.c (vrp_val_max): New function.
5388         (vrp_val_min): Likewise.
5389         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5390         (vrp_val_is_min): Likewise.
5391         (supports_overflow_infinity): Use vrp_val_{min,max}.
5392         (negative_overflow_infinity): Likewise.
5393         (positive_overflow_infinity): Likewise.
5394         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5395         (is_positive_overflow_infinity): Likewise.
5396         (is_overflow_infinity): Likewise.
5397         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5398         vrp_val_is_{min,max}.
5399         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5400         to ranges if possible.  Avoid empty ranges.
5401
5402 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5403
5404         PR middle-end/35705
5405         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5406         the expression is a function address.
5407
5408 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5409
5410         PR fortran/35154, fortran/23057
5411         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5412         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5413         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5414         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5415         in common.
5416         (dbxout_syms): Check for COMMON-based symbol and wrap in
5417         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5418         in bracket for efficiency.
5419
5420         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5421         using DW_TAG_common_block + member offset.
5422         (add_pubname_string): New function.
5423         (dw_expand_expr): New function to find block name and offset for
5424         COMMON var.
5425         (common_check): New function to check whether symbol in Fortran COMMON.
5426         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5427
5428 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5429
5430         PR c/35436
5431         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5432
5433 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5434
5435         * config/v850/v850.md (casesi): Remove if (0) code.
5436         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5437         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5438
5439 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5440
5441         * config/i386/i386.md (rex64suffix): New mode attribute.
5442         (floathi<mode>2): Disable expander for SSE math.
5443         (*floathi<mode>2_1): New insn insn_and_split pattern.
5444         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5445         corresponding post-reload splitters.
5446         (*floathi<mode>2_i387): New macroized insn pattern.
5447         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5448         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5449         insn_and_split pattern.
5450         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5451         New macroized instruction patterns and corresponding post-reload
5452         splitters.
5453         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5454         and corresponding post-reload splitters.
5455         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5456         New macroized instruction patterns.
5457         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5458         macroized instruction patterns and corresponding post-reload splitters.
5459         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5460         corresponding post-reload splitters.
5461         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5462         New macroized instruction patterns.
5463         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5464         corresponding post-reload splitters.
5465         (*floatsi<mode>2_i387): New macroized instruction patterns.
5466
5467 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5468
5469         * config/i386/i386.md (smaxmin): New.
5470         (umaxmin): Likewise.
5471         (maxminiprefix): Likewise.
5472         (maxminfprefix): Likewise.
5473         (<code><mode>3): Likewise.
5474         (smin<mode>3): Removed.
5475         (smax<mode>3): Likewise.
5476
5477         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5478         (mmx_<code>v4hi3): Likewise.
5479         (mmx_<code>v8qi3): Likewise.
5480         (mmx_smaxv2sf3): Removed.
5481         (mmx_sminv2sf3): Likewise.
5482         (mmx_umaxv8qi3): Likewise.
5483         (mmx_smaxv4hi3): Likewise.
5484         (mmx_uminv8qi3): Likewise.
5485         (mmx_sminv4hi3): Likewise.
5486
5487         * config/i386/sse.md (<addsub><mode>3): New.
5488         (*<addsub><mode>3): Likewise.
5489         (<sse>_vm<addsub><mode>3): Likewise.
5490         (<maxmin><mode>3): Likewise.
5491         (*<maxmin><mode>3_finite): Likewise.
5492         (*<maxmin><mode>3): Likewise.
5493         (<sse>_vm<maxmin><mode>3): Likewise.
5494         (sse3_h<addsub>v4sf3): Likewise.
5495         (sse3_h<addsub>v2df3): Likewise.
5496         (<maxmin>v16qi3): Likewise.
5497         (*<maxmin>v16qi3): Likewise.
5498         (<maxmin>v8hi3): Likewise.
5499         (*<maxmin>v8hi3): Likewise.
5500         (*sse4_1_<maxmin><mode>3): Likewise.
5501         (*sse4_1_<maxmin><mode>3): Likewise.
5502         (add<mode>3): Removed.
5503         (*add<mode>3): Likewise.
5504         (<sse>_vmadd<mode>3): Likewise.
5505         (sub<mode>3): Likewise.
5506         (*sub<mode>3): Likewise.
5507         (<sse>_vmsub<mode>3): Likewise.
5508         (smin<mode>3): Likewise.
5509         (*smin<mode>3_finite): Likewise.
5510         (*smin<mode>3): Likewise.
5511         (<sse>_vmsmin<mode>3): Likewise.
5512         (smax<mode>3): Likewise.
5513         (*smax<mode>3_finite): Likewise.
5514         (*smax<mode>3): Likewise.
5515         (<sse>_vmsmax<mode>3): Likewise.
5516         (sse3_haddv4sf3): Likewise.
5517         (sse3_haddv2df3): Likewise.
5518         (sse3_hsubv4sf3): Likewise.
5519         (sse3_hsubv2df3): Likewise.
5520         (umaxv16qi3): Likewise.
5521         (*umaxv16qi3): Likewise.
5522         (smaxv8hi3): Likewise.
5523         (*smaxv8hi3): Likewise.
5524         (*sse4_1_smax<mode>3): Likewise.
5525         (*sse4_1_umax<mode>3): Likewise.
5526         (uminv16qi3): Likewise.
5527         (*uminv16qi3): Likewise.
5528         (sminv8hi3): Likewise.
5529         (*sminv8hi3): Likewise.
5530         (*sse4_1_smin<mode>3): Likewise.
5531         (*sse4_1_umin<mode>3): Likewise.
5532
5533 2008-04-01  Rafael Espindola  <espindola@google.com>
5534
5535         * tree-cfg.c (verify_expr): remove in_phi.
5536         (verify_stmt): Don't call walk_tree with verify_expr. Use
5537         is_gimple_min_invariant instead of is_gimple_val.
5538
5539 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5540
5541         * doc/include/gpl_v3.texi: Update for manpage generation.
5542         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5543         gpl.texi.
5544         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5545         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5546         gpl_v3.texi instead of gpl.texi.
5547         (gpl.pod): New.
5548
5549 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5550
5551         PR pch/13675
5552         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5553
5554 2008-04-01  Rafael Espindola  <espindola@google.com>
5555
5556         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5557         (extract_code_and_val_from_cond): Use
5558         extract_code_and_val_from_cond_with_ops.
5559
5560 2008-04-01  Jan Hubicka  <jh@suse.cz>
5561
5562         * function.c (free_after_compilation): Free epilogue_delay_list.
5563         (prepare_function_start): Assert that previous compilation was freed.
5564
5565 2008-04-01  Jan Hubicka  <jh@suse.cz>
5566             Jim Wilson  <wilson@tuliptree.org>
5567             Andreas Tobler <andreast@gcc.gnu.org>
5568
5569         PR middle-end/35781
5570         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5571         rtl.emit instead cfun->emit.
5572         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5573         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5574
5575 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5576
5577         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5578
5579 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5580
5581         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5582         New options
5583         (fprofile-use): Add var flag_profile_use
5584         * coverage.c (coverage_begin_output): Do not open a gcno file for
5585         output only if -ftest-coverage is set.
5586         Do not add getpwd() to gcda file path.
5587         (build_gcov_info): Check the new flag
5588         flag_profile_datafile_relative_path.
5589         (coverage_init): Use profile_data_prefix.
5590         Read profile counter only if flag_profile_use is set.
5591         * opts.c (common_handle_option): New option fprofile-use=,
5592         fprofile-dir=, fprofile-generate=.
5593         * toplev.c (profile_data_prefix): New variable definition.
5594         * toplev.h (profile_data_prefix): New declaration.
5595         * doc/invoke.tex (Option Summary, Optimization Options):
5596         Add new options.
5597
5598 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5599
5600         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5601         use tmp consistently.
5602
5603         PR target/35695
5604         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5605         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5606         UNSPEC_FR_RECIP_APPROX_RES.
5607         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5608
5609 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5610
5611         PR c/35750
5612         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5613
5614 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5615
5616         PR middle-end/30186
5617         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5618         element of the vector via a pointer.
5619
5620 2008-03-31  Ian Lance Taylor  <iant@google.com>
5621
5622         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5623
5624 2008-03-31  Jan Hubicka  <jh@suse.cz>
5625
5626         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5627         get_arg_pointer_save_area.
5628         * expr.c (init_expr): Just clear out rtl.expr.
5629         * function.c (free_after_compilation): Clear out whole RTL structure.
5630         (get_func_frame_size): Merge into ...
5631         (get_frame_size): ... this one.
5632         (assign_stack_local_1): Merge into ...
5633         (assign_stack_local): ... this one.
5634         (expand_function_end): Update call of get_arg_pointer_save_area.
5635         (get_art_pointer_save_area): Remove cfun argument.
5636         * function.h (emit_status): regno_pointer_align does not need length
5637         attribute. Move x_regno_reg_rtx to ...
5638         (regno_reg_rtx): ... new global array.
5639         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5640         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5641         apply_args_value, forced_labels, stack_pointer_delta):
5642         Update accestors.
5643         (struct varasm_status): Move here from varasm.c
5644         (struct rtl_data): New. Move here some fields from struct function.
5645         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5646         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5647         used_temp_slots avail_temp_slots, temp_slot_level,
5648         nonlocal_goto_handler_labels): Update accesstors.
5649         (rtl): New global variable.
5650         (struct function): Move some fileds to rtl_data.
5651         (get_arg_pointer_save_area): Update prototype.
5652         * emit-rtl.c (rtl): Declare.
5653         (regno_reg_rtx): Declare.
5654         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5655         Update.
5656         (gen_reg_rtx): Update.
5657         (init_virtual_regs): Do not tate emit_status argument.
5658         (init_emit): Do not allocate emit.
5659         * varasm.c (varasm_statuc): Move to function.h.
5660         (n_deferred_constatns): Update accestor.
5661         (init_varasm_status): Do not allocate varasm_status.
5662         (force_const_mem, get_pool_size, output_constant_pool): Update.
5663         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5664         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5665
5666 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5667
5668         PR rtl-optimization/35729
5669         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5670         references.
5671
5672 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5673
5674         PR target/32000
5675         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5676         load/store if memory is unaligned.
5677         (*movti_rex64): Likewise.
5678
5679         * config/i386/predicates.md (misaligned_operand): New.
5680
5681 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5682
5683         PR tree-opt/35431
5684         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5685         complex types.
5686
5687 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5688
5689         * config/ia64/constraints.md: Add 'j' constraint.
5690         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5691         (movdi_internal): Likewise.
5692
5693 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5694
5695         PR c/35748
5696         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5697
5698 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5699
5700         PR target/35757
5701         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5702         proper error message for the third argument on blendpd and
5703         blendps.
5704
5705         * config/i386/sse.md (blendbits): New.
5706         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5707
5708 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5709
5710         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5711
5712 2008-03-30  Richard Guenther  <rguenther@suse.de>
5713
5714         PR middle-end/31023
5715         * fold-const.c (fold_sign_changed_comparison): Do leave
5716         conversions to base-types alone.
5717
5718 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5719
5720         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5721         the link register if one altivec register is be saved.
5722
5723 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5724
5725         * final.c (final_scan_insn): Remove if (0) code.
5726
5727 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5728
5729         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5730
5731 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5732
5733         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5734         of V4SFmode to ix86_binary_operator_ok.
5735
5736 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5737
5738         * config/i386/i386.c (override_options): Initialize
5739         ix86_veclib_handler to ix86_veclibabi_svml when
5740         -mveclibabi=svml is used.
5741         (ix86_veclibabi_svml): New function for SVML ABI style
5742         vectorization support.
5743         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5744
5745 2008-03-28  Rafael Espindola  <espindola@google.com>
5746
5747         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5748         (tree_binary_nonnegative_warnv_p): Make it public.
5749         (tree_single_nonnegative_warnv_p): Make it public.
5750         (tree_invalid_nonnegative_warnv_p): Make it public.
5751         (tree_unary_nonzero_warnv_p): Make it public.
5752         (tree_binary_nonzero_warnv_p): Make it public
5753         (tree_single_nonzero_warnv_p): Make it public.
5754         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5755         (extract_range_from_binary_expr): Split the expr argument.
5756         (extract_range_from_unary_expr): Split the expr argument.
5757         (extract_range_from_comparison): Split the expr argument.
5758         (extract_range_from_expr): Use the new aux functions.
5759         (vrp_evaluate_conditional_warnv): Use
5760         vrp_evaluate_conditional_warnv_with_ops.
5761         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5762         (tree_binary_nonzero_warnv_p): Declare.
5763         (tree_single_nonzero_warnv_p): Declare.
5764         (tree_expr_nonzero_warnv_p): Declare.
5765         (tree_unary_nonnegative_warnv_p): Declare.
5766         (tree_binary_nonnegative_warnv_p): Declare.
5767         (tree_single_nonnegative_warnv_p): Declare.
5768         (tree_invalid_nonnegative_warnv_p): Declare.
5769
5770 2008-03-28  Richard Guenther  <rguenther@suse.de>
5771
5772         PR tree-optimization/30317
5773         PR tree-optimization/30911
5774         PR tree-optimization/34793
5775         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5776         (struct assert_locus_d): New member EXPR.
5777         (register_new_assert_for): Add EXPR parameter to support
5778         ASSERT_EXPR <name, expr OP limit>.
5779         (register_edge_assert_for_1): Adjust callers.
5780         (find_assert_locations): Likewise.
5781         (process_assert_insertions_for): Build condition from expression.
5782         (extract_range_from_assert): Handle ASSERT_EXPRs
5783         of the form ASSERT_EXPR <name, expr OP limit>.
5784         (register_edge_assert_for_2): New helper registering
5785         asserts for comparisons.  Recognize range tests of the form
5786         (unsigned)i - CST1 OP CST2.
5787         (register_edge_assert_for_1): Use it.
5788         (register_edge_assert_for): Likewise.
5789         (needs_overflow_infinity): Integer sub-types
5790         do not need overflow infinities.
5791         (vrp_val_is_max): The extreme values of integer sub-types
5792         are those of the base type.
5793         (vrp_val_is_min): Likewise.
5794         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5795         expressions.
5796
5797 2008-03-28  Nick Clifton  <nickc@redhat.com>
5798
5799         PR target/31110
5800         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5801         Return GENERAL_REGS for stack adjustment reloads.
5802
5803 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5804
5805         PR target/31334
5806         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5807         const_vector when all the vectors are constant.
5808
5809 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5810
5811         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5812         comparisons.
5813         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5814         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5815         (scc_sf): New.
5816         (s<code>_sf): Use new scc_sf attribute for opcode names.
5817
5818 2008-03-27  Tom Tromey  <tromey@redhat.com>
5819
5820         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5821         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5822         config/spu/t-spu-elf, config/i386/t-interix,
5823         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5824         config/i386/x-darwin, config/i386/x-mingw32,
5825         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5826         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5827         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5828         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5829         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5830         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5831         config/score/t-score-elf, config/arm/t-strongarm-pe,
5832         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5833         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5834         Revert automatic dependency patch.
5835
5836 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5837
5838         PR target/35657
5839         * config/i386/i386.c (ix86_function_arg_boundary): Align
5840         decimal floating point to its natural boundary.
5841
5842 2008-03-27  Richard Guenther  <rguenther@suse.de>
5843
5844         PR middle-end/35716
5845         * fold-const.c (fold_comparison): Restrict distinct decl
5846         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5847         solely rely on operand_equal_p.
5848
5849 2008-03-27  Richard Guenther  <rguenther@suse.de>
5850
5851         PR c/32511
5852         * c-common.c (handle_weak_attribute): Reject combination of
5853         weak and inline.
5854
5855 2008-03-27  Richard Guenther  <rguenther@suse.de>
5856
5857         PR tree-optimization/32810
5858         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5859         conversions from DECL_INITIAL.
5860         (fold_const_aggregate_ref): Likewise from constructor elements.
5861
5862 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5863
5864         * tree-affine.h (aff_combination_expand): Declare.
5865         (get_inner_reference_aff): Likewise.
5866         * tree-affine.c (aff_combination_expand): Split out from
5867         tree_to_aff_combination_expand.
5868         (get_inner_reference_aff): New function.
5869         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5870         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5871         (struct lim_aux_data): sm_done field removed.
5872         (mem_ref_loc_p, mem_ref_locs_p): New types.
5873         (struct mem_ref): Added id, stored, accesses_in_loop,
5874         indep_loop, dep_loop, indep_ref, dep_ref fields.
5875         Removed is_stored, locs and next fields.
5876         (memory_accesses): New variable.
5877         (movement_possibility): Do not allow moving statements
5878         that store to memory.
5879         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5880         New functions.
5881         (determine_max_movement): For statements with memory references,
5882         find the outermost loop in that the reference is independent.
5883         (move_computations_stmt): Mark the virtual operands for renaming.
5884         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5885         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5886         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5887         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5888         create_vop_ref_mapping, analyze_memory_references,
5889         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5890         get_all_locs_in_loop, ref_always_accessed_p,
5891         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5892         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5893         store_motion_loop, store_motion): New functions.
5894         (struct vop_to_refs_elt): New type.
5895         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5896         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5897         (schedule_sm): Replaced by...
5898         (execute_sm): ... this.
5899         (determine_lsm_ref, hoist_memory_references,
5900         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5901         find_more_ref_vops, free_mem_ref, free_mem_refs,
5902         determine_lsm_loop, determine_lsm): Removed.
5903         (tree_ssa_lim_finalize): Free data structures used by store motion.
5904         (tree_ssa_lim): Call analyze_memory_references.  Use
5905         store_motion instead of determine_lsm.
5906
5907 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5908
5909         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5910         rename tmake_file to m68hc11/t-m68hc11.
5911         (mcore): Set inhibit_libc to true.
5912         * config.host (alpha*-dec-*vms*): Set extra_programs.
5913         (interix3*): Don't use host_xmake_file.
5914         * configure.ac: Let config.gcc override inhibit_libc.
5915         * configure: Regenerate.
5916
5917         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5918         * config/t-openbsd-thread: Remove commented out lines.
5919         
5920         * config/x-interix: Remove.
5921
5922         * config/m68hc11/t-m68hc11-gas: Rename to...
5923         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5924
5925         * config/mcore/t-mcore: Remove T_CFLAGS.
5926         * config/mcore/t-mcore-pe: Likewise.
5927
5928 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5929
5930         * configure.ac: Replace custom __GNU_SOURCE test with
5931         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5932         * aclocal.m4: Regenerate.
5933         * configure: Regenerate.
5934         * config.in: Regenerate.
5935
5936 2008-03-27  Richard Guenther  <rguenther@suse.de>
5937
5938         * fold-const.c (target.h): Include.
5939         (fold_comparison): Fold comparison of addresses of decls
5940         that bind locally or of constants.  Consolidate address folding code.
5941         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5942         results from fold_binary_to_constant.
5943         (compare_values_warnv): Likewise.
5944
5945 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5946
5947         PR middle-end/35429
5948         * fold-const.c (fold_truthop): Check for integeral types when folding
5949         a == 0 && b == 0 and a != 0 || b != 0 .
5950
5951 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5952
5953         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5954
5955 2008-03-26  Andreas Schwab  <schwab@suse.de>
5956
5957         * doc/invoke.texi: Fix use of @item vs. @itemx.
5958
5959 2008-03-26  Tom Tromey  <tromey@redhat.com>
5960
5961         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5962         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5963         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5964         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5965         build/genconstants.o, build/genemit.o, build/genextract.o,
5966         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5967         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5968         options.h.
5969
5970 2008-03-26  Richard Guenther  <rguenther@suse.de>
5971
5972         Revert
5973         2008-03-26  Richard Guenther  <rguenther@suse.de>
5974
5975         * fold-const.c (target.h): Include.
5976         (fold_comparison): Fold comparison of addresses of two decls
5977         that bind locally.  Consolidate address folding code.
5978
5979 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5980
5981         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5982         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5983         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5984         dconstsqrt2, dconstthird, dconste and/or dconst10.
5985         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5986         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5987         dconstsqrt2, dconste): Delete.
5988         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5989         Constify variable.
5990         * real.c (get_real_const): New.
5991         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5992         dconstsqrt2, dconste): Delete.
5993         (real_value_const, get_real_const): New.
5994
5995 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5996
5997         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5998
5999         * config/i386/i386.c (ix86_function_arg_boundary): Check
6000         BIGGEST_ALIGNMENT instead of 128.
6001         (setup_incoming_varargs_64): Likewise.
6002
6003 2008-03-26  Tom Tromey  <tromey@redhat.com>
6004
6005         * Makefile.in (DEPFILES): Add missing '/'.
6006
6007 2008-03-26  Richard Guenther  <rguenther@suse.de>
6008
6009         * fold-const.c (target.h): Include.
6010         (fold_comparison): Fold comparison of addresses of two decls
6011         that bind locally.  Consolidate address folding code.
6012
6013 2008-03-26  Nick Clifton  <nickc@redhat.com>
6014
6015         PR target/31232
6016         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6017         not allow INT+INT as a legitimate addressing mode.
6018
6019 2008-03-26  Richard Guenther  <rguenther@suse.de>
6020
6021         * tree-flow.h (widen_bitfield): Remove declaration.
6022         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6023         (widen_bitfield): Remove function.
6024         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6025         code.
6026
6027 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6028
6029         PR target/31558
6030         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6031         error_mark_node's.
6032
6033 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6034
6035         PR rtl-optimization/35232
6036         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6037         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6038         reg_reloaded_call_part_clobbered here.
6039         (reload_regs_reach_end_p): New function.
6040         (reload_reg_rtx_for_input): New variable.
6041         (reload_reg_rtx_for_output): Likewise.
6042         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6043         when reassigning a pseudo register.  Load reloadreg from 
6044         reload_reg_rtx_for_input, moving the mode and register
6045         calculation to...
6046         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6047         instead of the original when deciding whether an input reload
6048         would be a no-op or whether an output reload can be deleted.
6049         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6050         when setting up new_spill_reg_store.  Load it from
6051         reload_reg_rtx_for_output, moving the mode and register
6052         calculation to...
6053         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6054         instead of the original when deciding whether an output reload
6055         would be a no-op.  Do the same when modifying insn notes.
6056         Use rtx_equal_p instead of == to compare the registers.
6057         (inherit_piecemeal_p): Take a mode and two register numbers
6058         as argument.
6059         (emit_reload_insns): Clear new_spill_reg_store for every hard
6060         register in the reload register.  Remove spill registers
6061         from reg_reloaded_valid before considering whether to record
6062         inheritance information for them.  Use reload_reg_rtx_for_output
6063         instead of reg_rtx when recording output reloads.  Use
6064         reload_reg_rtx_for_input instead of reg_rtx when recording
6065         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6066         at the same time as setting reg_reloaded_valid.
6067         (delete_output_reload): Add a new_reload_reg parameter and use it
6068         instead of rld[j].reg_rtx.
6069         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6070         calls accordingly.
6071
6072 2008-03-25  Tom Tromey  <tromey@redhat.com>
6073
6074         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6075         (build/genattr.o): Likewise.
6076         (build/genattrtab.o): Likewise.
6077         (build/gencodes.o): Likewise.
6078         (build/genconfig.o): Likewise.
6079         (build/genconstants.o): Likewise.
6080         (build/genemit.o): Likewise.
6081         (build/genextract.o): Likewise.
6082         (build/genflags.o): Likewise.
6083
6084 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6085         
6086         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6087         instead of size_int for integer types.
6088         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6089         to match type of MINUS_EXPR.
6090         
6091 2008-03-25  Tom Tromey  <tromey@redhat.com>
6092
6093         * configure: Rebuilt.
6094         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6095         Makefile.
6096
6097 2008-03-25  Tom Tromey  <tromey@redhat.com>
6098
6099         * config/x-solaris (host-solaris.o): Update.
6100         * config/x-linux (host-linux.o): Update.
6101         * config/x-hpux (host-hpux.o): Update.
6102         * config/x-darwin (host-darwin.o): Update.
6103         * config/v850/t-v850e (v850-c.o): Update.
6104         * config/v850/t-v850 (v850-c.o): Update.
6105         * config/t-vxworks (vxworks.o): Update.
6106         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6107         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6108         * config/spu/t-spu-elf (spu-c.o): Update.
6109         (spu.o): Remove.
6110         * config/sh/t-symbian (sh-c.o): Update.
6111         (symbian.o): Update.
6112         * config/sh/t-sh (sh-c.o): Update.
6113         * config/score/t-score-elf (score7.o, score3.o): Update.
6114         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6115         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6116         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6117         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6118         (rs6000.o): Remove.
6119         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6120         * config/m32c/t-m32c (m32c-pragma.o): Update.
6121         * config/ia64/t-ia64 (ia64-c.o): Update.
6122         * config/i386/x-mingw32 (host-mingw32.o): Update.
6123         * config/i386/x-i386 (driver-i386.o): Update.
6124         * config/i386/x-darwin (host-i386-darwin.o): Update.
6125         * config/i386/x-cygwin (host-cygwin.o): Update.
6126         * config/i386/t-nwld (nwld.o): Update.
6127         * config/i386/t-netware (netware.o): Update.
6128         * config/i386/t-interix (winnt.o): Update.
6129         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6130         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6131         msformat-c.o): Update.
6132         * config/bfin/t-bfin-linux (generated_files): Add
6133         linux-sysroot-suffix.h.
6134         * config/arm/t-wince-pe (pe.o): Update.
6135         * config/arm/t-strongarm-pe (pe.o): Update.
6136         * config/arm/t-pe (pe.o): Update.
6137         * config/arm/t-arm (arm-c.o): Update.
6138         * doc/install.texi (Prerequisites): Require make 3.80.
6139         * Makefile.in: Remove .o targets.
6140         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6141         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6142         (simple_generated_h, simple_generated_c): Move earlier.
6143         (generated_files): New variable.
6144         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6145         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6146         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6147         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6148         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6149         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6150         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6151         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6152         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6153         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6154         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6155         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6156         (.c.o): Remove.
6157         (COMPILE.base, COMPILE): New variables.
6158         (%.o): New pattern rule.
6159         (ALL_HOST_OBJS): New variable.
6160         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6161         (dummy-checksum.o, cc1-checksum.o): Remove.
6162         (DRIVER_SHLIB): New variable.
6163         (DRIVER_DEFINES): Use it.
6164         (gencondmd.c): Move out of build/.
6165         (s-conditions): Update.
6166         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6167         (ALL_BUILD_OBJS): Likewise.
6168         (build/%.o): Use BUILDCOMPILE.
6169         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6170         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6171         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6172         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6173         build/genconfig.o, build/genconstants.o, build/genemit.o,
6174         build/genextract.o, build/genflags.o, build/genmddeps.o,
6175         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6176         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6177         build/gen-protos.o, build/scan.o, build/fix-header.o,
6178         build/scan-decls.o): Simplify.
6179         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6180         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6181         prefix.o, toplev.o): Reduce to variable setting.
6182         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6183         ($(out_object_file), gcc-options.o): New targets.
6184         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6185         * configure: Rebuilt.
6186         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6187         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6188
6189 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6190
6191         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6192         complain when we hit an error, return ERROR_MARK_NODE.
6193
6194 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6195
6196         * config/sh/constraints.md (Pso, Psz): New constraints.
6197         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6198         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6199
6200 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6201
6202         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6203         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6204
6205 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6206
6207         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6208         (prefetch_sh2a): New.   
6209
6210 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6211             Naveen.H.S  <naveen.hs@kpitcummins.com>
6212
6213         * config/sh/constraints.md (I28): New constraint.
6214         * config/sh/sh.c (broken_move): Add support for movi20s.
6215         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6216
6217 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6218             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6219             Naveen.H.S  <naveen.hs@kpitcummins.com>
6220
6221         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6222         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6223         (print_operand): Handle resbank in %@ operand code.
6224         (sh_encode_section_info): New.
6225         (push_regs): Add conditions for resbank.
6226         (sh_expand_epilogue): Likewise.
6227         (sh_insert_attributes): Likewise.
6228         (sh_attribute_table): Likewise.
6229         (sh_handle_resbank_handler_attribute): New.
6230         (sh2a_handle_function_vector_handler_attribute): New.
6231         (sh2a_is_function_vector_call): New.
6232         (sh2a_get_function_vector_number): New.
6233         (sh2a_function_vector_p): New.
6234         (sh_cfun_resbank_handler_p): New.
6235         * config/sh/sh.md (calli): Emit jsr/n if possible.
6236         (calli_tbr_rel): New.
6237         (calli_pcrel): Emit jsr/n if possible.
6238         (return_i): Emit rts/n if possible.
6239         (call_valuei_tbr_rel): New.
6240         (call_valuei_pcrel): Add condition for SH2A target.
6241         (call_value): Likewise.
6242         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6243         (sh2a_get_function_vector_number): Likewise.
6244         (sh2a_is_function_vector_call): Likewise.
6245         * doc/extend.texi: Document TBR relative addressing of SH2A.
6246         (resbank): Add description for SH2A.
6247
6248 2008-03-24  Richard Guenther  <rguenther@suse.de>
6249
6250         PR c/22371
6251         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6252         pointer assignments change conversions according to middle-end rules.
6253         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6254         * configure.ac: Include type checking in yes.
6255         * configure: Regenerate.
6256
6257 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6258
6259         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6260         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6261         
6262 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6263
6264         * gthr-vxworks.h (UNUSED): Define.
6265
6266 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6267
6268         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6269
6270 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6271
6272         * doc/extend.texi (Function Attributes): Add missing comma in the
6273         example of the "alloc_size" attribute.
6274         
6275 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6276
6277         Revert:
6278         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6279
6280         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6281         32bit host.
6282
6283         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6284
6285         PR target/35496
6286         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6287         of the underlying type of a MS bitfield layout to the natural
6288         alignment of the type.
6289
6290         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6291
6292         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6293         to their natural alignment to avoid store forwarding stalls.
6294
6295 2008-03-22  Richard Guenther  <rguenther@suse.de>
6296
6297         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6298         For PHI nodes verify the address is invariant.
6299         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6300         (get_symbol_constant_value): Use is_gimple_min_invariant.
6301         (maybe_fold_stmt_indirect): Likewise.
6302
6303 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6304
6305         PR rtl-optimization/33927
6306         * Makefile.in (dse.o): Depend on $(TM_P_H).
6307         * expr.h (extract_low_bits): Declare.
6308         * expmed.c (extract_low_bits): New function.
6309         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6310         * dse.c: Include tm_p.h.
6311         (find_shift_sequence): Remove the read_reg argument and return the
6312         read value.  Emit the instructions instead of returning them.
6313         Iterate on new_mode rather than calculating it each time.
6314         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6315         source to NEW_MODE and extract_low_bits to convert the shifted
6316         value to READ_MODE.
6317         (replace_read): Allow the load and store to have different mode
6318         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6319         or extraction instructions before trying the replacement.  Update
6320         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6321
6322 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6323
6324         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6325         to their natural alignment to avoid store forwarding stalls.
6326
6327 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6328
6329         PR target/27946
6330         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6331         encouraging but not allowing gprs for input;
6332         change the input constraint to !f#r.
6333         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6334         gprs for output;
6335         change the output constraint to !f#r.
6336
6337 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6338
6339         PR target/13958
6340         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6341         corresponding post-reload splitters.
6342         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6343         when x87 FP math is selected.
6344         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6345         New function prototype.
6346         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6347         unreachable function to ease macroization of insn patterns.
6348
6349 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6350
6351         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6352         reference dumps if ddr is NULL or dependence is unknown.
6353
6354 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6355
6356         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6357         unsigned extension into account.
6358         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6359         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6360         Do computations on a scratch register.
6361
6362 2008-03-21  Richard Guenther  <rguenther@suse.de>
6363
6364         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6365         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6366         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6367         * tree-ssa-dom.c (record_equality): Likewise.
6368         * tree-inline.c (copy_body_r): Likewise.
6369         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6370         TREE_INVARIANT.
6371
6372 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6373
6374         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6375         as 'delete_unused' argument.
6376
6377 2008-03-20  Richard Guenther  <rguenther@suse.de>
6378
6379         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6380         special casing of constant qualifiers.
6381         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6382         care about them in general.
6383         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6384         regardless of their type.
6385         (fold_stmt_r): Forcefully fold *& if we end up with that.
6386
6387 2008-03-20  Paul Brook  <paul@codesourcery.com>
6388
6389         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6390         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6391         linker flags.
6392         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6393         definition.
6394         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6395         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6396
6397 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6398
6399         * common.opt (Wmudflap): New option.
6400         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6401         (mx_register_decls): Likewise.
6402         (mudflap_finish_file): Likewise.
6403         * doc/invoke.texi: Document -Wno-mudflap.
6404
6405 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6406
6407         * c-format.c (replace_format_name_to_system_name): New.
6408         (cmp_attribs): New.
6409         (convert_format_name_to_system_name): New.
6410         (decode_format_attr): Add use of convert_format_name_to_system_name.
6411         (format_types_orig): Add gnu_ prefix to names.
6412         (check_format_info_main): Special treating of \0 escaped names for
6413         supporting multi-character format specifiers as I32, I64.
6414         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6415         (gnu_target_overrides_format_attributes): New.
6416         * c-format.h: Add structure target_ovr_attr to hold
6417         system specific formatter names.
6418         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6419         msformat-c.o file to c_target_objs and cxx_target_objs.
6420         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6421         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6422         (TARGET_N_FORMAT_TYPES): New.
6423         * config/i386/msformat-c.c: New.
6424         * config/i386/t-cygming: Add build rule for msformat-c.o.
6425         * doc/extend.texi: Add new format names gnu_* and ms_* and
6426         further details.
6427         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6428
6429 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6430
6431         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6432         optimizations turned on under -O3.
6433         (ftree-vectorize): Add that the flag is turned on with -O3.
6434
6435 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6436
6437         * regmove.c (try_auto_increment): Fix spelling error in comment.
6438         * final.c (final_scan_insn): Likewise.
6439
6440 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6441
6442         PR target/14552
6443         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6444         allocator preferences for "y" and "r" class registers.
6445         ("*mov<mode>_internal"): Ditto.
6446         ("*movv2sf_internal_rex64"): Ditto.
6447         ("*movv2sf_internal"): Ditto.
6448
6449 2008-03-19  Michael Matz  <matz@suse.de>
6450
6451         PR middle-end/35616
6452         * calls.c (expand_call): Check overlap of arguments with call
6453         address for sibcalls.
6454
6455 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6456
6457         PR target/35496
6458         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6459         of the underlying type of a MS bitfield layout to the natural
6460         alignment of the type.
6461
6462 2008-03-19  Jan Hubicka  <jh@suse.cz>
6463
6464         PR other/35094
6465         * toplev.c (decode_d_option): Handle all CPP flags.
6466         * tree-vrp.c: Update tree_pass descriptors.
6467         * regrename.c: Update tree_pass descriptors.
6468         * fwprop.c: Update tree_pass descriptors.
6469         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6470         * tree-into-ssa.c: Update tree_pass descriptors.
6471         * tree-dump.c: Update tree_pass descriptors.
6472         * tree-complex.c: Update tree_pass descriptors.
6473         * tree-dump.h: Update tree_pass descriptors.
6474         * see.c: Update tree_pass descriptors.
6475         * cgraphbuild.c: Update tree_pass descriptors.
6476         * tracer.c: Update tree_pass descriptors.
6477         * tree-loop-distribution.c: Update tree_pass descriptors.
6478         * cgraph.c: Update tree_pass descriptors.
6479         * postreload-gcse.c: Update tree_pass descriptors.
6480         * postreload.c: Update tree_pass descriptors.
6481         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6482         * tree-tailcall.c: Update tree_pass descriptors.
6483         * tree-pass.h (tree_opt_pass): Rename to ...
6484         (opt_pass) ... this one; add "type" field and remove letter field.
6485         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6486         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6487         all_lowering_passes): Update declaration.
6488         * ipa-cp.c: Update tree_pass descriptors.
6489         * final.c: Update tree_pass descriptors.
6490         * omp-low.c: Update tree_pass descriptors.
6491         * tree-ssa-dse.c: Update tree_pass descriptors.
6492         * ipa-reference.c: Update tree_pass descriptors.
6493         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6494         * auto-inc-dec.c: Update tree_pass descriptors.
6495         * reorg.c: Update tree_pass descriptors.
6496         * cgraphunit.c: Update tree_pass descriptors.
6497         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6498         * tree-ssa-ccp.c: Update tree_pass descriptors.
6499         * df-core.c: Update tree_pass descriptors.
6500         * mode-switching.c: Update tree_pass descriptors.
6501         * tree-nomudflap.c: Update tree_pass descriptors.
6502         * modulo-sched.c: Update tree_pass descriptors.
6503         * ipa-pure-const.c: Update tree_pass descriptors.
6504         * cse.c: Update tree_pass descriptors.
6505         * web.c: Update tree_pass descriptors.
6506         * tree-stdarg.c: Update tree_pass descriptors.
6507         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6508         * tree-ssa-dom.c: Update tree_pass descriptors.
6509         * tree-nrv.c: Update tree_pass descriptors.
6510         * tree-ssa-alias.c: Update tree_pass descriptors.
6511         * loop-init.c: Update tree_pass descriptors.
6512         * gimple-low.c: Update tree_pass descriptors.
6513         * ipa-inline.c: Update tree_pass descriptors.
6514         * tree-ssa-sink.c: Update tree_pass descriptors.
6515         * global.c: Update tree_pass descriptors.
6516         * ifcvt.c: Update tree_pass descriptors.
6517         * jump.c: Update tree_pass descriptors.
6518         * predict.c: Update tree_pass descriptors.
6519         * tree-ssa-loop.c: Update tree_pass descriptors.
6520         * recog.c: Update tree_pass descriptors.
6521         * dse.c: Update tree_pass descriptors.
6522         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6523         * tree-eh.c: Update tree_pass descriptors.
6524         * regmove.c: Update tree_pass descriptors.
6525         * local-alloc.c
6526         * function.c: Update tree_pass descriptors.
6527         * tree-vectorizer.c: Update tree_pass descriptors.
6528         * gcse.c: Update tree_pass descriptors.
6529         * ipa-type-escape.c: Update tree_pass descriptors.
6530         * tree-if-conv.c: Update tree_pass descriptors.
6531         * init-regs.c: Update tree_pass descriptors.
6532         * ipa.c: Update tree_pass descriptors.
6533         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6534         * rtl-factoring.c: Update tree_pass descriptors.
6535         * lower-subreg.c: Update tree_pass descriptors.
6536         * bt-load.c: Update tree_pass descriptors.
6537         * tree-dfa.c: Update tree_pass descriptors.
6538         * except.c: Update tree_pass descriptors.
6539         * emit-rtl.c: Update tree_pass descriptors.
6540         * cfgexpand.c: Update tree_pass descriptors.
6541         * tree-cfgcleanup.c: Update tree_pass descriptors.
6542         * cfgcleanup.c: Update tree_pass descriptors.
6543         * tree-ssa-pre.c: Update tree_pass descriptors.
6544         * tree-sra.c: Update tree_pass descriptors.
6545         * tree-mudflap.c: Update tree_pass descriptors.
6546         * tree-ssa-copy.c: Update tree_pass descriptors.
6547         * cfglayout.c: Update tree_pass descriptors.
6548         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6549         * tree-ssa-dce.c: Update tree_pass descriptors.
6550         * tree-ssa.c: Update tree_pass descriptors.
6551         * regclass.c: Update tree_pass descriptors.
6552         * integrate.c: Update tree_pass descriptors.
6553         * tree-optimize.c: Update tree_pass descriptors.
6554         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6555         * tree-object-size.c: Update tree_pass descriptors.
6556         * combine.c: Update tree_pass descriptors.
6557         * tree-outof-ssa.c: Update tree_pass descriptors.
6558         * bb-reorder.c: Update tree_pass descriptors.
6559         * stack-ptr-mod.c: Update tree_pass descriptors.
6560         * var-tracking.c: Update tree_pass descriptors.
6561         * tree-profile.c: Update tree_pass descriptors.
6562         * tree-vect-generic.c: Update tree_pass descriptors.
6563         * reg-stack.c: Update tree_pass descriptors.
6564         * sched-rgn.c: Update tree_pass descriptors.
6565         * tree-ssa-structalias.c: Update tree_pass descriptors.
6566         * tree-cfg.c: Update tree_pass descriptors.
6567         * passes.c (current_pass): Update declaration.
6568         (finish_optimization_passes): Update.
6569         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6570         (register_one_dump_file, register_dump_files_1, next_pass_1):
6571         Update arguments.
6572         (init_optimization_passes): Update handling of new types.
6573         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6574         * ipa-struct-reorg.c: Update tree_pass descriptors.
6575         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6576         * combine-stack-adj.c: Update tree_pass descriptors.
6577         * cfgrtl.c: Update tree_pass descriptors.
6578         * dce.c: Update tree_pass descriptors.
6579         * tree-ssanames.c: Update tree_pass descriptors.
6580
6581 2008-03-19  Richard Guenther  <rguenther@suse.de>
6582
6583         PR middle-end/35609
6584         * tree-ssa.c (walk_data): New structure.
6585         (warn_uninitialized_var): If not always_executed warn with "maybe"
6586         instead of "is".
6587         (execute_early_warn_uninitialized): Compute post-dominators.
6588         Initialize always_executed before processing each basic block.
6589
6590 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6591
6592         PR target/35504
6593         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6594         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6595
6596 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6597
6598         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6599
6600 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6601
6602         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6603         is true.
6604         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6605         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6606         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6607         target after ignore has been set, and move there also the commputation
6608         of subtarget and original_target.
6609         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6610         (LANG_HOOKS_INITIALIZER): Remove it.
6611         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6612
6613 2008-03-18  Richard Guenther  <rguenther@suse.de>
6614
6615         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6616         found an expression with constants, note that in the VN for the lhs.
6617         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6618         fold them to constants if possible.  Run cleanup_cfg if done so.
6619         (execute_pre): Return todo.
6620         (do_pre): Likewise.
6621         (execute_fre): Likewise.
6622         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6623         of constants.
6624         (get_prop_source_stmt): Look through pointer conversions.
6625
6626 2008-03-18  Jan Hubicka  <jh@suse.cz>
6627
6628         * tree-pretty-print.c: Include predict.h.
6629         (dump_generic_node): Dump predictor.
6630         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6631         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6632         * gimple-low.c (lower_stmt): Likewise.
6633         * expr.c (expand_expr_real): Likewise.
6634         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6635         them.
6636         (build_predict_expr, build_predict_expr): New.
6637         * predict.h (predictor_name, build_predict_expr): Update.
6638         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6639         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6640         * predict.def (PRED_CONTINUE): Update hitrate.
6641         * tree.def (PREDICT_EXPR): Define.
6642         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6643         do not handle BIND_EXPR.
6644         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6645         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6646         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6647         operands.
6648
6649 2008-03-18  Michael Matz  <matz@suse.de>
6650
6651         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6652
6653 2008-03-18  Richard Guenther  <rguenther@suse.de>
6654
6655         * tree-gimple.h (is_gimple_invariant_address): Declare.
6656         (is_gimple_constant): Likewise.
6657         * tree-gimple.c (is_gimple_constant): New function.
6658         (is_gimple_invariant_address): Likewise.
6659         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6660         and is_gimple_invariant_address.
6661         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6662         previous change.
6663         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6664         an addressable base.
6665
6666 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6667
6668         PR middle-end/35611
6669         * gimplify.c (gimplify_expr): Gimplify second operand of
6670         OMP_ATOMIC_LOAD.
6671
6672 2008-03-17  Richard Guenther  <rguenther@suse.de>
6673
6674         PR tree-optimization/19637
6675         * fold-const.c (fold_unary): Remove restrictions of removing
6676         intermediate pointer-conversions (P2)(P1)P0.
6677         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6678         conversion to void pointer.
6679         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6680
6681 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6682
6683         PR debug/31510
6684         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6685         emulated thread local variables.
6686
6687 2008-03-16  Richard Guenther  <rguenther@suse.de>
6688
6689         PR middle-end/35607
6690         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6691         expand TREE_INVARIANT operations that are not gimple invariant.
6692
6693 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6694
6695         * doc/extend.texi (Alignment): Say that the ABI controls
6696         the __alignof__ for non-strict-alignment targets rather
6697         than being a recommendation.
6698
6699 2008-03-15  Paul Brook  <paul@codesourcery.com>
6700
6701         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6702         annotations.
6703         (arm_output_fn_unwind): Mark functions that can not be unwound.
6704
6705 2008-03-15  Paul Brook  <paul@codesourcery.com>
6706
6707         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6708         extension instructions.
6709
6710 2008-03-15  Richard Guenther  <rguenther@suse.de>
6711
6712         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6713         and fold constant aggregate refs.
6714         (fold_const_aggregate_ref): Handle string constants
6715         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6716         (evaluate_stmt): Simplify now that ccp_fold folds constant
6717         aggregate refs.
6718
6719 2008-03-15  Paul Brook  <paul@codesourcery.com>
6720
6721         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6722         (extzv): Use gen_extzv_t2.
6723         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6724
6725 2008-03-15  Richard Guenther  <rguenther@suse.de>
6726
6727         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6728         (fold_const_aggregate_ref): Likewise.
6729         (get_value): Return NULL if we don't have any values.
6730         (ccp_finalize): Set const_val to NULL after freeing it.
6731         * tree-flow.h (get_symbol_constant_value): Declare.
6732         (fold_const_aggregate_ref): Likewise.
6733         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6734
6735 2008-03-15  Richard Guenther  <rguenther@suse.de>
6736
6737         PR middle-end/35593
6738         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6739         to not produce negative array indices if not allowed.  Add
6740         parameter to indicate that.
6741         (maybe_fold_offset_to_component_ref): Allow negative array
6742         indices only for the first member of a structure.
6743         (maybe_fold_offset_to_reference): Allow negative array indices.
6744         (maybe_fold_stmt_addition): Likewise.
6745
6746 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6747             Anatoly Sokolov <aesok@post.ru>
6748
6749         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6750         (avr_arch): Add ARCH_AVR6.
6751         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6752         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6753         instead of fixed value 2.
6754         (print_operand_address): Use gs() asm specifier instead of pm().
6755         (avr_assemble_integer): (Ditto.).
6756         (avr_output_addr_vec_elt): (Ditto.).
6757         (print_operand): Handle "!" code.
6758         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6759         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6760         (AVR_HAVE_EIJMP_EICALL): Define.
6761         (AVR_3_BYTE_PC): Redefine.
6762         (AVR_2_BYTE_PC): (Ditto.).
6763         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6764         (LINK_SPEC): Add atmega2560 and atmega2561.
6765         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6766         (crtm2561.o).
6767         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6768         for 3 byte PC devices.
6769         (call_value_insn): (Ditto.).
6770         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6771         (indirect_jump): Use only for for 2 byte PC devices.
6772         (*tablejump): (Ditto.).
6773         (*indirect_jump_avr6): Add insn.
6774         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6775         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6776         instead of ijmp for 3 byte PC devices.
6777         (__tablejump2__): (Ditto.).
6778         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6779         (MULITLIB_DIRNAMES): (Ditto.). 
6780         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6781
6782 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6783
6784         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6785         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6786         ("mmx_psadbw"): Use V1DI mode for operand 0.
6787         * config/i386/i386-modes.def (V1SI): New vector mode.
6788         * config/i386/i386.c (struct builtin_description)
6789         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6790         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6791         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6792         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6793         v1di_ftype_v8qi_v8qi type.
6794         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6795
6796         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6797         __builtin_ia32_pmuludq]: Fix the mode of return value.
6798
6799 2008-03-15  Richard Guenther  <rguenther@suse.de>
6800
6801         PR middle-end/35595
6802         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6803         being a PHI_NODE.
6804
6805 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6806         
6807         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6808         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6809         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6810         unless TARGET_SERIALIZE_VOLATILE is enabled.
6811         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6812         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6813         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6814
6815 2008-03-14  Richard Guenther  <rguenther@suse.de>
6816
6817         PR tree-optimization/34172
6818         * tree-flow.h (refs_may_alias_p): Declare.
6819         (get_single_def_stmt): Likewise.
6820         (get_single_def_stmt_from_phi): Likewise.
6821         (get_single_def_stmt_with_phi): Likewise.
6822         * tree-dfa.c (refs_may_alias_p): New function.
6823         (get_single_def_stmt): Likewise.
6824         (get_single_def_stmt_from_phi): Likewise.
6825         (get_single_def_stmt_with_phi): Likewise.
6826         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6827         (vn_reference_lookup_1): New helper function.
6828         (vn_reference_lookup): Walk the virtual use-def chain to
6829         continue searching for a match if the def does not alias the
6830         reference we are looking for.
6831
6832 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6833
6834         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6835         archive and Perzl.  Update The Written Word listing.
6836
6837 2008-03-14  Richard Guenther  <rguenther@suse.de>
6838
6839         PR tree-optimization/34043
6840         PR tree-optimization/33989
6841         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6842         when doing FRE.
6843         (bitmap_find_leader): Use extra argument to verify dominance
6844         relationship inside a basic-block.
6845         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6846         (find_leader_in_sets): Adjust.
6847         (create_component_ref_by_pieces): Take extra argument for
6848         dominance check, handle lookup failures.
6849         (find_or_generate_expression): Likewise.
6850         (create_expression_by_pieces): Likewise.
6851         (insert_into_preds_of_block): Adjust.
6852         (create_value_expr_from): If asked for, verify all operands
6853         are in the blocks AVAIL_OUT set.
6854         (make_values_for_stmt): Check for SSA_NAMEs that are life
6855         over an abnormal edge.
6856         (compute_avail): Remove such check.
6857         (do_SCCVN_insertion): New function.
6858         (eliminate): If we do not find a leader suitable for replacement
6859         insert a replacement expression from SCCVN if available.
6860         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6861         (struct vn_ssa_aux): Add needs_insertion flag.
6862         * tree-ssa-sccvn.c (may_insert): New global flag.
6863         (copy_reference_ops_from_ref): Value-number union member access
6864         based on its size, not type and member if insertion is allowed.
6865         (visit_reference_op_load): For a weak match from union type
6866         punning lookup a view-converted value and insert a SSA_NAME
6867         for that value if that is not found.
6868         (visit_use): Make dumps shorter.  Do not disallow value numbering
6869         SSA_NAMEs that are life over an abnormal edge to constants.
6870         (free_scc_vn): Release inserted SSA_NAMEs.
6871         (run_scc_vn): New flag to specify whether insertion is allowed.
6872         Process SSA_NAMEs in forward order.
6873         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6874         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6875         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6876         pointer type to/from integral types that do not change the
6877         precision to regular conversions.
6878
6879 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6880
6881         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6882         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6883         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6884         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6885         input arguments and the mode of return value.  Built-in functions
6886         that operate on whole 64-bit MMX register now use V1DI mode.
6887
6888 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6889             Olga Golovanevsky  <olga@il.ibm.com>
6890
6891         PR tree-optimization/35041
6892         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6893         to locate the right position in a statement.
6894
6895 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6896
6897         PR target/34000
6898         PR target/35553
6899         * config/i386/xmmintrin.h:  Change all static inline functions to
6900         extern inline and add __gnu_inline__ attribute.
6901         * config/i386/bmintrin.h: Ditto.
6902         * config/i386/smmintrin.h: Ditto.
6903         * config/i386/tmmintrin.h: Ditto.
6904         * config/i386/mmintrin-common.h: Ditto.
6905         * config/i386/ammintrin.h: Ditto.
6906         * config/i386/emmintrin.h: Ditto.
6907         * config/i386/pmmintrin.h: Ditto.
6908         * config/i386/mmintrin.h: Ditto.
6909         * config/i386/mm3dnow.h: Ditto.
6910
6911 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6912
6913         PR middle-end/35185
6914         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6915         (lower_omp_2): New function.
6916         (lower_omp_1, lower_omp): Rewritten.
6917
6918 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6919
6920         PR 35054
6921         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6922         with the phrase "Microsoft Windows compilers".
6923         (Push/Pop Macro Pragmas): New subsection. Document
6924         #pragma push_macro and pragma pop_macro.
6925
6926 2008-03-12  Paul Brook  <paul@codesourcery.com>
6927
6928         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6929
6930 2008-03-12  Paul Brook  <paul@codesourcery.com>
6931
6932         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6933         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6934         (thumb2_addsi_shortim): Rename ...
6935         (thumb2_addsi_short): ... to this.  Allow register operands.
6936         (thumb2_subsi_short): New pattern.
6937         (thumb2_one_cmplsi2_short,
6938         thumb2_negsi2_short): New patterns and peepholes.
6939
6940 2008-03-12  Paul Brook  <paul@codesourcery.com>
6941
6942         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6943
6944 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6945
6946         * config/i386/i386.md (int_cond): New code iterator.
6947         (fp_cond): Ditto.
6948         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6949         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6950         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6951         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6952         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6953         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6954         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6955         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6956
6957 2008-03-12  Paul Brook  <paul@codesourcery.com>
6958
6959         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6960         instead of {arm,thumb}_compute_save_reg_mask.
6961         (output_return_instruction): Ditto.
6962         (thumb_unexpanded_epilogue): Ditto.
6963         (thumb1_expand_prologue): Ditto.
6964         (thumb1_output_function_prologue): Ditto.
6965         (arm_set_return_address): Ditto.
6966         (thumb_set_return_address): Ditto.
6967         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6968         regs to achieve stack alignment.
6969         (thumb1_compute_save_reg_mask): Fix compiler warning.
6970         (arm_output_epilogue): Use offsets->saved_regs_mask.
6971         Adjust stack pointer by poping call clobered registers.
6972         (arm_expand_prologue): Use offsets->saved_regs_mask.
6973         Adjust stack pointer by pushing extra registers.
6974         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6975
6976 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6977
6978         PR tree-opt/35422
6979         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6980         conversion to the operands of a multiplication.
6981
6982 2008-03-12  Richard Guenther  <rguenther@suse.de>
6983
6984         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6985         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6986         * timevar.def (TV_TREE_PHIPROP): Add.
6987         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6988         pass description.  Use TV_TREE_PHIPROP.
6989         * tree-ssa-forwprop.c: Remove phiprop code.
6990
6991 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6992
6993         PR middle-end/35549
6994         * omp-low.c (maybe_lookup_decl): Constify first argument.
6995         (use_pointer_for_field): Change last argument from bool to
6996         omp_context *.  Disallow shared copy-in/out in nested
6997         parallel if decl is shared in outer parallel too.
6998         (build_outer_var_ref, scan_sharing_clauses,
6999         lower_rec_input_clauses, lower_copyprivate_clauses,
7000         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7001
7002 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7003             Ira Rosen  <irar@il.ibm.com>
7004
7005         * tree-vectorizer.c (free_stmt_vec_info): New function.
7006         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7007         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7008         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7009         * tree-vect-transform.c (vectorizable_conversion): Free
7010         vec_oprnds0 if it was allocated.
7011         (vect_permute_store_chain): Remove unused VECs.
7012         (vectorizable_store): Free VECs that are allocated in the..
7013         function.
7014         (vect_transform_strided_load, vectorizable_load): Likewise.
7015         (vect_remove_stores): Simplify the code.
7016         (vect_transform_loop): Move code to vect_remove_stores().
7017         Call vect_remove_stores() and free_stmt_vec_info().
7018
7019 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7020
7021         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7022         TARGET_HPUX.  Revise comment.
7023         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7024         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7025         Use sr4 variant of `be' instruction when not generating PIC code.
7026         (attr_length_call): Adjust for above change.
7027
7028 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7029
7030         * ipa-reference.c (static_execute): Remove module_statics_const and
7031         associated setting code.
7032
7033 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7034
7035         PR target/35540
7036         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7037         predicate for operand 1.
7038         (paritysi2_cmp): Use register_operand predicate for operand 2.
7039         Use earlyclobber modifier for operand 1.  Remove support for
7040         memory operands.
7041         (paritydi2_cmp): Use register_operand predicate for operand 3.
7042         Use earlyclobber modifier for operand 1.  Remove support for
7043         memory operands.
7044
7045 2008-03-11  Paul Brook  <paul@codesourcery.com>
7046             Vladimir Prus  <vladimir@codesourcery.com>
7047
7048         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7049         (arm_compute_save_reg0_reg12_mask): Always
7050         check if register 11 must be saved.  Always safe hard frame pointer
7051         when frame_pointer_needeed.
7052         (arm_compute_save_reg_mask): Save IP and PC
7053         only with apcs frames.
7054         (arm_output_epilogue): Adjust Thumb2 codepath to
7055         be also invoked and work for ARM non-apcs frames.
7056         (arm_expand_prologue): Don't bother saving IP
7057         for non-apcs frame, since it's not clobbered by
7058         prologue code.  Implement non-apcs frame
7059         layout.
7060
7061 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7062
7063         PR rtl-optimization/35281
7064         * expr.c (convert_move): Use a new pseudo for the intermediate
7065         from_mode->word_mode result.
7066
7067 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7068
7069         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7070         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7071         * toplev.c (compile_file): Don't call it.
7072
7073 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7074
7075         PR middle-end/35526
7076         * expr.c (store_expr): Call emit_block_move if the mode
7077         of "temp" RTX is BLKmode.
7078
7079 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7080             Richard Guenther  <rguenther@suse.de>
7081
7082         PR tree-optimization/31358
7083         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7084         the step with a NULL_TREE.
7085         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7086         to sizetype if type is a pointer type.
7087         (add_candidate_1): Don't convert the base and step to
7088         the generic type if the orginal type is a pointer type.
7089         (add_iv_value_candidates): Use sizetype for the step
7090         if type is a pointer type.
7091         (cand_value_at): Likewise.
7092         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7093         for pointer types.
7094         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7095         Don't convert the tem affine to the type.
7096         (add_elt_to_tree): Use sizetype for the step if a pointer.
7097         Use POINTER_PLUS_EXPR for pointers.
7098         (aff_combination_to_tree): Use sizetype for the step if a
7099         pointer.
7100
7101 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7102
7103         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7104         Remove commutativity hint.
7105
7106 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7107
7108         PR c/35438
7109         PR c/35439
7110         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7111         errorneous type.  Check that v is a VAR_DECL.
7112
7113         PR middle-end/35099
7114         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7115
7116 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7117
7118         PR tree-optimization/35494
7119         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7120         may be overriden at link and run time.
7121
7122 2008-03-10  Richard Guenther  <rguenther@suse.de>
7123
7124         PR tree-optimization/34677
7125         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7126         (poolify_tree): Likewise.
7127         (modify_expr_template): Likewise.
7128         (poolify_modify_stmt): Likewise.
7129         (insert_fake_stores): Handle all component-ref style stores
7130         in addition to INDIRECT_REF.  Also handle complex types.
7131         Do not poolify the inserted load.
7132         (realify_fake_stores): Do not rebuild the tree but only
7133         make it a SSA_NAME copy.
7134         (init_pre): Remove initialzation of modify_expr_template.
7135         Do not allocate modify_expr_node_pool.
7136         (fini_pre): Do not free modify_expr_node_pool.
7137
7138 2008-03-10  Paul Brook  <paul@codesourcery.com>
7139
7140         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7141         to avoid conflicts.
7142
7143 2008-03-10  Paul Brook  <paul@codesourcery.com>
7144             Mark Shinwell  <shinwell@codesourcery.com>
7145
7146         * config/arm/cortex-r4.md: New.
7147         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7148         insn attributes.
7149         * config/arm/arm.md: Include cortex-r4.md.
7150         (insn): Add smmls, sdiv and udiv values.
7151         (generic_sched): Don't use generic scheduling for Cortex-R4.
7152         (arm_issue_rate): New function.
7153         (TARGET_SCHED_ISSUE_RATE): Define.
7154
7155 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7156
7157         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7158
7159 2008-03-10  Richard Guenther  <rguenther@suse.de>
7160
7161         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7162         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7163
7164 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7165
7166         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7167         Set default to true.
7168
7169 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7170
7171         * c.opt (Wsynth): Deprecate.
7172         * doc/invoke.texi (Option Summary, Warning Options): Document
7173         -Wno-format-contains-nul.
7174
7175 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7176
7177         PR target/35496
7178         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7179         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7180
7181 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7182
7183         * config/rs6000/rs6000.c (builtin_description): Rename vector
7184         left shift operations.
7185         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7186         (altivec_vsl<VI_char>): Rename to ...
7187         (ashl<mode>3): ... new name.
7188         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7189         gen_ashlv4si3.
7190         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7191
7192 2008-03-08  Richard Guenther  <rguenther@suse.de>
7193
7194         * coverage.h (tree_coverage_counter_addr): Declare.
7195         * coverage.c (tree_coverage_counter_addr): New function.
7196         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7197         before using again.
7198         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7199         (tree_gen_one_value_profiler): Likewise.
7200         (tree_gen_ic_profiler): Likewise.
7201         (tree_gen_average_profiler): Likewise.
7202         (tree_gen_ior_profiler): Likewise.
7203
7204 2008-03-08  Richard Guenther  <rguenther@suse.de>
7205
7206         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7207         (vn_binary_op_insert): Likewise.
7208         (vn_unary_op_lookup): Likewise.
7209         (vn_unary_op_insert): Likewise.
7210         (vn_nary_op_lookup): Declare.
7211         (vn_nary_op_insert): Likewise.
7212         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7213         and binary hashes, use a single obstack for unary_op_pool
7214         and binary_op_pool.
7215         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7216         a single struct vn_nary_op_s.  Store tree code length and
7217         a variable number of operands.
7218         (struct vn_reference_op_struct): Remove unused op2.
7219         (vn_reference_op_eq): Do not compare op2.
7220         (vn_reference_op_compute_hash): Do not compute hash of op2.
7221         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7222         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7223         with vn_nary_op_compute_hash.
7224         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7225         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7226         vn_nary_op_lookup.
7227         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7228         vn_nary_op_insert.
7229         (visit_unary_op): Call nary functions.
7230         (visit_binary_op): Likewise.
7231         (process_scc): Adjust for struct vn_tables_s changes.
7232         (allocate_vn_table): Likewise.
7233         (free_vn_table): Likewise.
7234         * tree-vn.c (vn_add): Call nary functions.
7235         (vn_lookup): Likewise.
7236
7237 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7238
7239         PR target/35498
7240         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7241         wdst back after sync_compare_and_swapqhi_internal.
7242
7243 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7244
7245         PR target/22152
7246         * config/i386/i386-modes.def (V1DI): New vector mode.
7247         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7248         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7249         (MMXMODE248): Ditto.
7250         (MMXMODE): Add V1DI mode.
7251         (mmxvecsize): Change DI mode to V1DI mode.
7252         ("mov<mode>): Use MMXMODEI8 mode iterator.
7253         ("*mov<mode>_internal_rex64"): Ditto.
7254         ("*mov<mode>_internal"): Ditto.
7255         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7256         ("mmx_sub<mode>3"): Ditto.
7257         ("mmx_adddi3"): Remove insn pattern.
7258         ("mmx_subdi3"): Ditto.
7259         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7260         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7261         ("mmx_ashl<mode>3"): Ditto.
7262         ("mmx_lshrdi3"): Remove insn pattern.
7263         ("mmx_ashldi3"): Ditto.
7264         * config/i386/i386.c (classify_argument): Handle V1DImode.
7265         (function_arg_advance_32): Ditto.
7266         (function_arg_32): Ditto.
7267         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7268         mmx_addv1di3 insn pattern.
7269         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7270         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7271         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7272         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7273         Remove definitions of built-in functions.
7274         (V1DI_type_node): New node.
7275         (v1di_ftype_v1di_int): Ditto.
7276         (v1di_ftype_v1di_v1di): Ditto.
7277         (v2si_ftype_v2si_si): Ditto.
7278         (v4hi_ftype_v4hi_di): Remove node.
7279         (v2si_ftype_v2si_di): Ditto.
7280         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7281         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7282         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7283         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7284         Add new builtins using def_builtin_const.
7285         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7286         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7287         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7288         * config/i386/mmintrin.h (__v1di): New typedef.
7289         (_mm_add_si64): Cast arguments to __v1di type.
7290         (_mm_sub_si64): Ditto.
7291         (_mm_sll_pi16): Cast __count to __v4hi type.
7292         (_mm_sll_pi32): Cast __count to __v2si type.
7293         (_mm_sll_si64): Cast arguments to __v1di type.
7294         (_mm_srl_pi16): Cast __count to __v4hi type.
7295         (_mm_srl_pi32): Cast __count to __v2si type.
7296         (_mm_srl_si64): Cast arguments to __v1di type.
7297         (_mm_sra_pi16): Cast __count to __v4hi type.
7298         (_mm_sra_pi32): Cast __count to __v2si type.
7299         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7300         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7301         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7302         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7303         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7304         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7305         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7306         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7307         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7308         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7309         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7310         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7311
7312 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7313
7314         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7315
7316 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7317
7318         PR target/35373
7319         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7320         reg+const addressing for Altivec modes.  Don't generate reg+reg
7321         addressing for TFmode or TDmode quantities.
7322
7323 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7324
7325         * c-common.c (vector_types_convertible_p): Call langhook
7326         instead of comptypes.
7327
7328 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7329
7330         PR tree-opt/35402
7331         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7332         integral and scalar float variables which have a
7333         NULL DECL_INITIAL.
7334
7335 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7336
7337         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7338         dwarf_register_span hook when emitting unwind information for
7339         register-to-memory saves.
7340         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7341         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7342
7343 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7344
7345         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7346         for the same VAR_DECL.
7347
7348 2008-03-06  Tom Tromey  <tromey@redhat.com>
7349
7350         * treelang: Delete.
7351         * doc/standards.texi (Standards): Don't mention treelang.
7352         * doc/invoke.texi (Overall Options): Don't mention treelang.
7353         * doc/install.texi (Prerequisites): Don't mention bison or
7354         treelang.
7355         (Configuration): Don't mention treelang.
7356         (Building): Likewise.
7357         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7358
7359 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7360
7361         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7362         word-extractions out of a multi-word object.
7363
7364 2008-03-06  Richard Guenther  <rguenther@suse.de>
7365
7366         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7367         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7368         result type and precision.
7369         * expr.c (get_inner_reference): Set unsignedp based on the result
7370         type of BIT_FIELD_REF.
7371         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7372         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7373         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7374         for BIT_FIELD_REF.
7375         (sra_build_assignment): Likewise.
7376         (sra_build_elt_assignment): Likewise.
7377         (sra_explode_bitfield_assignment): Likewise.
7378         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7379         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7380         set BIT_FIELD_REF_UNSIGNED.
7381         (vectorizable_load): Likewise.
7382
7383 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7384
7385         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7386         at bb start.
7387
7388 2008-03-06  Richard Guenther  <rguenther@suse.de>
7389
7390         * alias.c (struct alias_set_entry): Move has_zero_child field
7391         to pack with alias_set.
7392
7393 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7394
7395         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7396         32bit host.
7397
7398 2008-03-05  Ian Lance Taylor  <iant@google.com>
7399
7400         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7401
7402 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7403
7404         * fwprop.c (update_df): Support width and offset parameters of
7405         df_ref_create.
7406         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7407         global_conflicts): Change DF_REF_EXTRACT to either
7408         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7409         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7410         * df-scan.c (df_ref_record, df_defs_record,
7411         df_ref_create_structure, df_def_record_1, df_uses_record,
7412         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7413         df_bb_refs_collect, df_entry_block_defs_collect,
7414         df_exit_block_uses_collect): Support new width and offset fields.
7415         (ref_extract_pool): New storage pool.
7416         (df_free_ref): New function.
7417         (df_reg_chain_unlink, df_free_collection_rec,
7418         df_sort_and_compress_refs): Call df_free_ref.
7419         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7420         of df_ref_extract.
7421         (df_ref_create_structure): Allocate df_ref_extract if offset and
7422         width fields are used.
7423         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7424         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7425         and SIGN_EXTRACT.
7426         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7427         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7428         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7429         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7430         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7431         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7432         (df_ref_extract): New structure.
7433         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7434         (df_ref_create): Add width and offset parameters.
7435         
7436 2008-03-05  Richard Guenther  <rguenther@suse.de>
7437
7438         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7439         Use ranges_overlap_p.
7440         (offset_overlaps_with_access): Rename
7441         to ranges_overlap_p and move ...
7442         * tree-flow-inline.h (ranges_overlap_p): ... here.
7443
7444         * tree.h (get_inner_reference, handled_component_p): Update
7445         comments.
7446
7447         * tree.h (record_component_aliases, get_alias_set,
7448         alias_sets_conflict_p, alias_sets_must_conflict_p,
7449         objects_must_conflict_p): Move declarations ...
7450         * alias.h (record_component_aliases, get_alias_set,
7451         alias_sets_conflict_p, alias_sets_must_conflict_p,
7452         objects_must_conflict_p): ... here.
7453         Include coretypes.h.
7454         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7455
7456 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7457
7458         * cfg.c: Include tree-flow.h.
7459         (remove_edge_raw): Call redirect_edge_var_map_clear.
7460         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7461         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7462         (redirect_edge_var_map_result): New.
7463         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7464         PENDING_STMT use with redirect_edge_var_map_*.
7465         * tree-ssa.c (edge_var_maps): New definition.
7466         (redirect_edge_var_map_add): New.
7467         (redirect_edge_var_map_clear): New.
7468         (redirect_edge_var_map_dup): New.
7469         (redirect_edge_var_map_vector): New.
7470         (redirect_edge_var_map_destroy): New.
7471         (ssa_redirect_edge): Replace PENDING_STMT use with
7472         redirect_edge_var_map_*.
7473         (flush_pending_stmts): Same.
7474         (delete_tree_ssa): Destroy edge var map.
7475         * tree-flow.h (struct _edge_var_map): New.
7476         Define edge_var_map vector type.
7477         Declare redirect_edge_var_map_* prototypes.
7478         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7479         * tree-cfg.c (reinstall_phi_args): Replace
7480         PENDING_STMT use with redirect_edge_var_map_*.
7481
7482 2008-03-05  Richard Guenther  <rguenther@suse.de>
7483
7484         PR tree-optimization/35472
7485         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7486         whose single use_stmt has a overlapping set of loaded and
7487         stored symbols as that use_stmt might be a noop assignment then.
7488
7489 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7490
7491         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7492
7493 2008-03-05  Richard Guenther  <rguenther@suse.de>
7494
7495         PR c++/35336
7496         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7497         should be constants.
7498         * tree-cfg.c (verify_expr): Verify it.
7499         * fold-const.c (fold_truthop): Remove code generating
7500         BIT_FIELD_REFs of structure bases.
7501         (fold_binary): Likewise.
7502         (fold_ternary): Position and size of BIT_FIELD_REFs are
7503         always host integers.
7504         (make_bit_field_ref): Remove.
7505         (optimize_bit_field_compare): Remove.
7506         (all_ones_mask_p): Remove.
7507
7508 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7509
7510         PR gcc/33009
7511         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7512         (split_block_and_df_analyze): New. Split basic block and rebuild
7513         dataflow.
7514         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7515         SPLIT_BLOCK.
7516         (split_pattern_seq): Likewise.
7517         (erase_matching_seqs): Likewise.
7518         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7519
7520 2008-03-04  Geoff Keating  <geoffk@apple.com>
7521
7522         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7523         declaration and code.
7524         (tree_invalid_nonnegative_warnv_p): Likewise.
7525
7526 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7527
7528         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7529         examples.  Truncate option-names then causing overfull hbox.
7530
7531 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7532
7533         PR target/35222
7534         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7535         on hpux10.
7536         * configure: Rebuilt.
7537
7538 2008-03-04  Rafael Espindola  <espindola@google.com>
7539
7540         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7541         (tree_unary_nonnegative_warnv_p): New.
7542         (tree_binary_nonnegative_warnv_p): New.
7543         (tree_single_nonnegative_warnv_p): New.
7544         (tree_invalid_nonnegative_warnv_p): New.
7545         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7546
7547 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7548
7549         PR 28322
7550         * opts.c (handle_option): Postpone 'unknown option' errors only for
7551         warning options.
7552
7553 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7554
7555         PR target/35453
7556         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7557         (_SIDD_XXX): This.
7558
7559 2008-03-04  Rafael Espindola  <espindola@google.com>
7560
7561         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7562         (tree_binary_nonzero_warnv_p): New.
7563         (tree_single_nonzero_warnv_p): New.
7564         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7565
7566 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7567
7568         PR middle-end/35456
7569         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7570         transformations for modes that have signed zeros.
7571         * ifcvt.c (noce_try_abs): Ditto.
7572
7573 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7574
7575         * config/i386/i386.c (override_options): Force
7576         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7577
7578 2008-03-04  Jan Hubicka  <jh@suse.cz>
7579
7580         PR c++/35262
7581         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7582         in last commit.
7583
7584 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7585
7586         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7587         label to probe the stack.
7588
7589 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7590
7591         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7592         (__gthr_win32_mutex_destroy): Declare.
7593         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7594         __gthr_win32_mutex_destroy.
7595         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7596
7597 2008-03-03  Jan Hubicka  <jh@suse.cz>
7598
7599         PR c++/35262
7600         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7601         aggressive on inlining cold calls.
7602
7603 2008-03-03  Richard Guenther  <rguenther@suse.de>
7604
7605         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7606         struct copies into the expression table.
7607         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7608         (try_to_simplify): Likewise.
7609         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7610         integral and pointer arguments which do not change the
7611         precision to NOP_EXPRs.
7612         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7613         VIEW_CONVERT_EXPR case.
7614
7615 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7616
7617         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7618         defined in a loop at depth 0 is invariant.
7619         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7620         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7621         be called at loop depth 0.
7622
7623 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7624
7625         PR driver/35420
7626         * gcc.c (process_command): Update copyright notice dates.
7627         * gcov.c (print_version): Likewise.
7628         * gcov-dump.c (print_version): Likewise.
7629         * mips-tfile.c (main): Likewise.
7630         * mips-tdump.c (main): Likewise.
7631
7632 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7633
7634         PR 24924
7635         * c-common.c (flag_permissive): Delete.
7636         (constant_expression_warnings): Check flags first.
7637         (constant_expression_error): New.
7638         * c-common.h (flag_permissive): Delete.
7639         (constant_expression_error): Declare.
7640         * flags.h (flag_permissive): Declare. Update description.
7641         * diagnostic.c (pedwarn): Update.
7642         (permerror): New.
7643         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7644         (permissive_error_kind): New.
7645         * toplev.c (flag_permissive): Define. Update description.
7646         * toplev.h (permissive_error_kind): Declare.
7647         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7648         (pedwarn_c90): Use pedantic_warning_kind.
7649         * c-opts.c (c_common_post_options): flag_permissive does not affect
7650         flag_pedantic_errors.
7651
7652 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7653
7654         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7655         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7656         __absvsi2, __absvDI2): Use unsigned arithmetic.
7657
7658 2008-03-02  Andi Kleen  <ak@suse.de>
7659             Richard Guenther  <rguenther@suse.de>
7660
7661         * struct-equiv.c: Remove file.
7662         * cfg_cleanup.c (condjump_equiv_p): Remove.
7663         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7664         (struct-equiv.o): Remove rule.
7665         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7666         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7667         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7668
7669 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7670
7671         * ifcvt.c (noce_process_if_block): Try to handle only the then
7672         block if the else block exists but isn't suitable.
7673
7674 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7675
7676         PR gcc/35063
7677         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7678         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7679         regression from previous patch.
7680
7681 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7682
7683         PR gcc/35063
7684         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7685         implemented.
7686         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7687         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7688         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7689         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7690         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7691         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7692         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7693         (__gthread_mutex_destroy_function): Rename to
7694         __gthread_mutex_destroy.
7695         * gthr-dce.h (__gthread_mutex_destroy): Call
7696         pthread_mutex_destroy.
7697         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7698         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7699         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7700
7701 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7702
7703         * df-scan.c (df_ref_chain_change_bb): Simplify.
7704         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7705         set_block_for_insn if there's any change.
7706         * df.h ((df_insn_change_bb): Fix prototype.
7707         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7708         df_insn_change_bb, don't call set_block_for_insn.
7709         * emit-rtl.c (reorder_insns): Likewise.
7710         * haifa-sched.c (move_insn): Likewise.
7711
7712 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7713
7714         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7715
7716 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7717
7718         * tree-flow-inline.h (next_readonly_imm_use): Return
7719         NULL_USE_OPERAND_P after the end.
7720
7721 2008-03-01  Richard Guenther  <rguenther@suse.de>
7722
7723         PR tree-optimization/35411
7724         * tree-sra.c (sra_build_assignment): Split conversion to
7725         final type to a separate statement if we are not assigning
7726         to a register.
7727
7728 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7729
7730         * fold-const.c (fold_convertible_p): Correct the logic to follow
7731         that in fold_convert().
7732
7733 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7734
7735         PR c++/35315
7736         * tree-inline.c (build_duplicate_type): When we make a
7737         duplicate type, make it unique in the canonical types system.
7738
7739 2008-02-29  Tom Tromey  <tromey@redhat.com>
7740
7741         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7742         input_file_stack_history, input_file_stack_restored): Remove.
7743         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7744         * input.h (struct file_stack): Remove.
7745         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7746         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7747         Likewise.
7748         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7749         type.
7750         (diagnostic_last_module_changed): Add 'map' argument.
7751         (diagnostic_set_last_function): Likewise.
7752         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7753         line map, not input_file_stack.
7754         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7755
7756 2008-02-29  Paul Brook  <paul@codesourcery.com>
7757
7758         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7759
7760 2008-02-29  Paul Brook  <paul@codesourcery.com>
7761
7762         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7763
7764 2008-02-29  Richard Guenther  <rguenther@suse.de>
7765
7766         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7767         vn_lookup_or_add.
7768         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7769         value for comparing for a store match.
7770         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7771         (try_to_simplify): Do not do a full-blown reference lookup.
7772
7773 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7774
7775         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7776         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7777
7778         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7779
7780 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7781
7782         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7783         strides against cache sizes.
7784
7785 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7786
7787         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7788         constant to fpul.
7789
7790 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7791
7792         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7793         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7794         is smaller than the original promoted value.
7795         (simplify_subreg): If OP is a SUBREG, try to preserve its
7796         SUBREG_PROMOTED_VAR_P information.
7797
7798 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7799
7800         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7801         (VN_INFO_GET): Allocate new objects on the obstack.
7802         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7803         for rpo_numbers_temp, for consistency.
7804         (free_scc_vn): Free the obstack.
7805
7806 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7807
7808         * doc/invoke.texi: Document -ftree-loop-distribution.
7809         * tree-loop-distribution.c: New.
7810         * tree-pass.h (pass_loop_distribution): New.
7811         * graphds.h (struct graph): Add htab_t indices.
7812         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7813         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7814         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7815         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7816         * tree-data-ref.c (debug_data_dependence_relations): New.
7817         (dump_data_dependence_relation): Also print data references.
7818         (free_data_ref): Extern.
7819         (same_access_functions): Moved...
7820         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7821         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7822         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7823         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7824         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7825         (stmts_from_loop): Skip LABEL_EXPR.
7826         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7827         New.
7828         (build_rdg): Initialize rdg->indices htab.
7829         (free_rdg, stores_from_loop, ref_base_address,
7830         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7831         have_similar_memory_accesses_1, ref_base_address_1,
7832         remove_similar_memory_refs): New.
7833         * tree-data-ref.h: Depend on tree-chrec.h.
7834         (debug_data_dependence_relations, free_data_ref): Declared.
7835         (same_access_functions): ... here.
7836         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7837         New.
7838         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7839         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7840         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7841         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7842         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7843         rdg_vertex_for_stmt): Declared.
7844         (struct rdg_edge): Add level.
7845         (RDGE_LEVEL): New.
7846         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7847         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7848         Declared.
7849         (rdg_has_similar_memory_accesses): New.
7850         * tree-vect-analyze.c: Remove unused static decls.
7851         * lambda.h (dependence_level): New.
7852         * common.opt (ftree-loop-distribution): New.
7853         * tree-flow.h (mark_virtual_ops_in_bb, 
7854         slpeel_tree_duplicate_loop_to_edge_cfg,
7855         rename_variables_in_loop): Declared.
7856         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7857         (OBJS-common): Add tree-loop-distribution.o.
7858         (tree-loop-distribution.o): New rule.
7859         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7860         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7861         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7862
7863 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7864
7865         PR target/33963
7866         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7867         other than structures and unions.
7868
7869 2008-02-28  Richard Guenther  <rguenther@suse.de>
7870
7871         Revert:
7872         2008-02-26  Richard Guenther  <rguenther@suse.de>
7873
7874         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7875         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7876         (lookup_decl_from_uid): Declare.
7877         (remove_decl_from_map): Likewise.
7878         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7879         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7880         (decl_for_uid_map): New global hashtable mapping DECL_UID
7881         to the decl tree.
7882         (init_ttree): Allocate it.
7883         (insert_decl_to_uid_decl_map): New helper function.
7884         (make_node_stat): Insert new decls into the map.
7885         (copy_node_stat): Likewise.
7886         (lookup_decl_from_uid): New function.
7887         (remove_decl_from_map): Likewise.
7888         (print_decl_for_uid_map_statistics): New helper.
7889         (dump_tree_statistics): Call it.
7890
7891         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7892         (referenced_var_iterator): Adjust.
7893         (FOR_EACH_REFERENCED_VAR): Adjust.
7894         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7895         (num_referenced_vars): Adjust.
7896         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7897         (first_referenced_var): Remove.
7898         (end_referenced_vars_p): Likewise.
7899         (next_referenced_var): Likewise.
7900         (referenced_var_iterator_set): New helper function.
7901         * tree-dfa.c (referenced_var_lookup): Adjust.
7902         (referenced_var_check_and_insert): Likewise.
7903         (remove_referenced_var): Likewise.
7904         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7905         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7906         (verify_call_clobbering): Likewise.
7907         (verify_memory_partitions): Likewise.
7908         (init_tree_ssa): Allocate bitmap instead of hashtable for
7909         referenced_vars.
7910         (delete_tree_ssa): Adjust.
7911         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7912         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7913         (compute_tag_properties): Likewise.
7914         (set_initial_properties): Likewise.
7915         (find_partition_for): Likewise.
7916         (update_reference_counts): Likewise.
7917         (dump_may_aliases_for): Likewise.
7918         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7919         (add_call_clobber_ops): Likewise.
7920         (add_call_read_ops): Likewise.
7921         (get_asm_expr_operands): Likewise.
7922         * tree-into-ssa.c (dump_decl_set): Likewise.
7923         (update_ssa): Likewise.
7924         * tree-sra.c (scan_function): Likewise.
7925         (decide_instantiations): Likewise.
7926         (scalarize_parms): Likewise.
7927         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7928         (dsa_named_for): Likewise.
7929         * tree-ssa-structalias.c (update_alias_info): Likewise.
7930         (merge_smts_into): Likewise.
7931
7932 2008-02-27  David Daney  <ddaney@avtrex.com>
7933
7934         PR target/34409
7935         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7936         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7937         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7938         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7939         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7940
7941 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7942
7943         PR target/25477
7944         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7945         (BUILT_IN_NEXTTOWARD): Remove.
7946         (BUILT_IN_NEXTTOWARDF): Ditto.
7947         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7948         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7949
7950 2008-02-27  Tom Tromey  <tromey@redhat.com>
7951
7952         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7953         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7954
7955 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7956
7957         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7958         update the respective field on newdecl.
7959
7960 2008-02-27  Revital Eres  <eres@il.ibm.com>
7961
7962         PR rtl-optimization/34999
7963         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7964         crossing edges that ends with a call insn.
7965         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7966         call insn and clear the EDGE_CROSSING flag of the crossing edge
7967         when fixing fallthru edges.
7968
7969 2008-02-27  Richard Guenther  <rguenther@suse.de>
7970
7971         PR middle-end/35390
7972         * fold-const.c (fold_unary): Return the correct argument,
7973         converted to the result type.
7974
7975 2008-02-27  Richard Guenther  <rguenther@suse.de>
7976
7977         PR middle-end/34971
7978         * expr.c (expand_expr_real_1): Assert on rotates that operate
7979         on partial modes.
7980         * fold-const.c (fold_binary): Use the types precision, not the
7981         bitsize of the mode if folding rotate expressions.  Build rotates
7982         only for full modes.
7983
7984 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7985
7986         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7987         and CPP_PRAGMA_EOL.
7988         * c-pragma.c (pragma_ns_name): New typedef.
7989         (registered_pp_pragmas): New variable.
7990         (c_pp_lookup_pragma): New function.
7991         (c_register_pragma_1): If flag_preprocess_only, do nothing
7992         for non-expanded pragmas, for expanded ones push pragma's
7993         namespace and name into registered_pp_pragmas vector.
7994         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7995         flag_preprocess_only, don't register GCC pch_preprocess
7996         pragma if flag_preprocess_only.
7997         * c-opts.c (c_common_init): Call init_pragma even if
7998         flag_preprocess_only.
7999         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8000         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8001         cpp_register_pragma if flag_preprocess_only.
8002
8003 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8004
8005         PR c/28800
8006         * c-parser.c (c_parser_translation_unit): Warn for empty
8007         translation unit, not empty source file.
8008
8009 2008-02-26  Paul Brook  <paul@codesourcery.com>
8010
8011         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8012         operand for Thumb-2.
8013         * config/arm/arm.h (reg_class): Add CORE_REGS.
8014         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8015         (BASE_REG_CLASS): Use CORE_REGS.
8016         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8017         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8018         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8019         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8020         ARM_REGNO_OK_FOR_INDEX_P.
8021         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8022         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8023         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8024         (ldm/stm peepholes): Ditto.
8025         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8026         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8027         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8028         * config/arm/constraints.md: Enable "k" constraint on ARM.
8029
8030 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8031
8032         * config/rs6000/rs6000.c: Annotate cache line size field in all
8033         instances of struct processor_costs.
8034
8035 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8036
8037         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8038         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8039         jump_bypass): New counters.
8040         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8041         * dce.c (gate_ud_dce): Same.
8042         (gate_fast_dce): Same.
8043         * dse.c (gate_dse1): New function.
8044         (gate_dse2): New function.
8045         (gate_dse): Merge results of new gate functions.
8046         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8047         (gate_handle_jump_bypass): Add dbg_cnt.
8048         (gate_handle_gcse): Add dbg_cnt.
8049         * ifcvt.c (gate_handle_if_conversion): Same.
8050         (gate_handle_if_after_combine): Same.
8051         (gate_handle_if_after_reload): Same.
8052         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8053
8054 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8055
8056         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8057         line sizes.
8058         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8059
8060 2008-02-26  Jason Merrill  <jason@redhat.com>
8061
8062         PR c++/35315
8063         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8064         alone if it's the naming decl for the type's main variant.
8065
8066 2008-02-26  Tom Tromey  <tromey@redhat.com>
8067
8068         * system.h (USE_MAPPED_LOCATION): Poison.
8069         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8070         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8071         (make_goto_expr_edges): Likewise.
8072         (remove_bb): Likewise.
8073         (execute_warn_function_return): Likewise.
8074         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8075         location_t.
8076         * c-common.c (fname_decl): Remove old location code.
8077         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8078         location code.
8079         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8080         variant.
8081         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8082         (gen_rtx_ASM_INPUT): Likewise.
8083         (gen_rtx_ASM_INPUT_loc): Likewise.
8084         (get_rtx_asm_OPERANDS): Remove.
8085         * cfglayout.c (insn_locators_alloc): Remove old location code.
8086         (set_curr_insn_source_location): Likewise.
8087         (curr_insn_locator): Likewise.
8088         * print-tree.c (print_node): Remove old location code.
8089         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8090         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8091         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8092         location_from_locus.
8093         (construct_exit_block): Remove old location code.
8094         * emit-rtl.c (force_next_line_note): Remove old location code.
8095         * profile.c (branch_prob): Remove old location code.
8096         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8097         LOC_LINE): Remove old-location variants.
8098         * langhooks.c (lhd_print_error_function): Remove old location
8099         code.
8100         * configure, config.in: Rebuilt.
8101         * configure.ac (--enable-mapped-location): Remove.
8102         * c-decl.c (c_init_decl_processing): Remove old location code.
8103         (finish_function): Likewise.
8104         * recog.c (decode_asm_operands): Remove old location code.
8105         * c-pch.c (c_common_read_pch): Remove old location code.
8106         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8107         variants.
8108         * gimple-low.c (lower_function_body): Remove old location code.
8109         * toplev.c (unknown_location): Remove.
8110         (push_srcloc): Remove old-location variant.
8111         (process_options): Remove old location code.
8112         (lang_dependent_init): Likewise.
8113         * input.h (UNKNOWN_LOCATION): Move definition.
8114         (location_t): Undeprecate.
8115         (source_locus): Remove.
8116         (location_from_locus): Remove.
8117         (struct location_s): Remove.
8118         Remove all old-location code.
8119         (input_line, input_filename): Remove.
8120         * final.c (final_scan_insn): Remove old location code.
8121         * diagnostic.c (diagnostic_build_prefix): Remove
8122         USE_MAPPED_LOCATION test.
8123         * tree.h (gimple_stmt) <locus>: Now a location_t.
8124         (tree_exp) <locus>: Likewise.
8125         (DECL_IS_BUILTIN): Remove old-location variant.
8126         (annotate_with_file_line, annotate_with_locus): Likewise.
8127         (expr_locus, set_expr_locus): Update.
8128         * tree.c (build1_stat): Remove old location code.
8129         (last_annotated_node): Remove.
8130         (annotate_with_file_line): Remove old-location variant.
8131         (annotate_with_locus): Likewise.
8132         (expr_location): Remove old location code.
8133         (set_expr_location): Likewise.
8134         (expr_has_location): Likewise.
8135         (expr_locus): Likewise.
8136         (set_expr_locus): Likewise.
8137         (expr_filename): Don't use location_from_locus.
8138         (expr_lineno): Likewise.
8139         * rtl-error.c (location_for_asm): Remove old location code.
8140         * c-lex.c (cb_line_change): Remove old location code.
8141         (fe_file_change): Likewise.
8142         (cb_def_pragma): Likewise.
8143         (c_lex_with_flags): Likewise.
8144         * gengtype.c (do_typedef): Don't special-case location types.
8145         (define_location_structures): Remove.
8146         (main): Don't call define_location_structures.
8147         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8148         code.
8149
8150 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8151
8152         PR 26264
8153         * builtins.def (BUILT_IN_STDARG_START): Remove.
8154         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8155         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8156         * tree-inline.c (inline_forbidden_p_1): Likewise.
8157         
8158 2008-02-26  Richard Guenther  <rguenther@suse.de>
8159
8160         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8161         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8162         (lookup_decl_from_uid): Declare.
8163         (remove_decl_from_map): Likewise.
8164         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8165         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8166         (decl_for_uid_map): New global hashtable mapping DECL_UID
8167         to the decl tree.
8168         (init_ttree): Allocate it.
8169         (insert_decl_to_uid_decl_map): New helper function.
8170         (make_node_stat): Insert new decls into the map.
8171         (copy_node_stat): Likewise.
8172         (lookup_decl_from_uid): New function.
8173         (remove_decl_from_map): Likewise.
8174         (print_decl_for_uid_map_statistics): New helper.
8175         (dump_tree_statistics): Call it.
8176
8177         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8178         (referenced_var_iterator): Adjust.
8179         (FOR_EACH_REFERENCED_VAR): Adjust.
8180         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8181         (num_referenced_vars): Adjust.
8182         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8183         (first_referenced_var): Remove.
8184         (end_referenced_vars_p): Likewise.
8185         (next_referenced_var): Likewise.
8186         (referenced_var_iterator_set): New helper function.
8187         * tree-dfa.c (referenced_var_lookup): Adjust.
8188         (referenced_var_check_and_insert): Likewise.
8189         (remove_referenced_var): Likewise.
8190         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8191         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8192         (verify_call_clobbering): Likewise.
8193         (verify_memory_partitions): Likewise.
8194         (init_tree_ssa): Allocate bitmap instead of hashtable for
8195         referenced_vars.
8196         (delete_tree_ssa): Adjust.
8197         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8198         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8199         (compute_tag_properties): Likewise.
8200         (set_initial_properties): Likewise.
8201         (find_partition_for): Likewise.
8202         (update_reference_counts): Likewise.
8203         (dump_may_aliases_for): Likewise.
8204         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8205         (add_call_clobber_ops): Likewise.
8206         (add_call_read_ops): Likewise.
8207         (get_asm_expr_operands): Likewise.
8208         * tree-into-ssa.c (dump_decl_set): Likewise.
8209         (update_ssa): Likewise.
8210         * tree-sra.c (scan_function): Likewise.
8211         (decide_instantiations): Likewise.
8212         (scalarize_parms): Likewise.
8213         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8214         (dsa_named_for): Likewise.
8215         * tree-ssa-structalias.c (update_alias_info): Likewise.
8216         (merge_smts_into): Likewise.
8217
8218 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8219
8220         PR 34351
8221         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8222         * c-opts.c (c_common_handle_option): Wall enables
8223         Wvolatile-register-var.
8224         * common.opt: Move Wvolatile-register-var to...
8225         * c.opt: ...here.
8226         
8227 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8228
8229         * common.opt (Wlarger-than=): New.
8230         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8231         -Wlarger-than=.
8232         * opts.c (common_handle_option): Handle -Wlarger-than=.
8233         * optc-gen.awk: Likewise.
8234         * opth-gen.awk: Likewise.
8235         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8236         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8237         
8238 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8239
8240         * c-common.c (match_case_to_enum_1): Add appropriate
8241         OPT_W* parameter to warning.
8242         (c_do_switch_warnings): Likewise.
8243         * c-typeck.c (warning_init): Add one more parameter following
8244         'warning' function.
8245         (push_init_level): Update call to warning_init.
8246         (pop_init_level): Likewise.
8247         (add_pending_init): Likewise.
8248         (output_init_element: Likewise.
8249
8250 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8251
8252         PR 28322
8253         * toplev.c (toplev_main): If there are warnings or error, print
8254         errors for ignored options.
8255         * opts.c (ignored_options): New static variable.
8256         (postpone_unknown_option_error): New.
8257         (print_ignored_options): New.
8258         (handle_option): Postpone errors for unknown -Wno-* options.
8259         * opts.h (print_ignored_options): Declare.
8260         
8261 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8262
8263         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8264         to "ghost".
8265
8266 2008-02-25  Richard Guenther  <rguenther@suse.de>
8267
8268         Revert:
8269         2008-02-25  Richard Guenther  <rguenther@suse.de>
8270
8271         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8272         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8273         (lookup_decl_from_uid): Declare.
8274         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8275         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8276         (decl_for_uid_map): New global hashtable mapping DECL_UID
8277         to the decl tree.
8278         (init_ttree): Allocate it.
8279         (insert_decl_to_uid_decl_map): New helper function.
8280         (make_node_stat): Insert new decls into the map.
8281         (copy_node_stat): Likewise.
8282         (lookup_decl_from_uid): New function.
8283         (print_decl_for_uid_map_statistics): New helper.
8284         (dump_tree_statistics): Call it.
8285
8286         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8287         (referenced_var_iterator): Adjust.
8288         (FOR_EACH_REFERENCED_VAR): Adjust.
8289         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8290         (num_referenced_vars): Adjust.
8291         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8292         (first_referenced_var): Remove.
8293         (end_referenced_vars_p): Likewise.
8294         (next_referenced_var): Likewise.
8295         (referenced_var_iterator_set): New helper function.
8296         * tree-dfa.c (referenced_var_lookup): Adjust.
8297         (referenced_var_check_and_insert): Likewise.
8298         (remove_referenced_var): Likewise.
8299         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8300         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8301         (verify_call_clobbering): Likewise.
8302         (verify_memory_partitions): Likewise.
8303         (init_tree_ssa): Allocate bitmap instead of hashtable for
8304         referenced_vars.
8305         (delete_tree_ssa): Adjust.
8306         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8307         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8308         (compute_tag_properties): Likewise.
8309         (set_initial_properties): Likewise.
8310         (find_partition_for): Likewise.
8311         (update_reference_counts): Likewise.
8312         (dump_may_aliases_for): Likewise.
8313         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8314         (add_call_clobber_ops): Likewise.
8315         (add_call_read_ops): Likewise.
8316         (get_asm_expr_operands): Likewise.
8317         * tree-into-ssa.c (dump_decl_set): Likewise.
8318         (update_ssa): Likewise.
8319         * tree-sra.c (scan_function): Likewise.
8320         (decide_instantiations): Likewise.
8321         (scalarize_parms): Likewise.
8322         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8323         (dsa_named_for): Likewise.
8324         * tree-ssa-structalias.c (update_alias_info): Likewise.
8325         (merge_smts_into): Likewise.
8326
8327 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8328
8329         PR fortran/29549
8330         * doc/invoke.texi (-fcx-limited-range): Document new option.
8331         * toplev.c (process_options): Handle -fcx-fortran-rules.
8332         * common.opt: Add documentation for -fcx-fortran-rules.
8333
8334 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8335
8336         PR c/35162
8337         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8338         actual behaviour and C99.
8339         
8340 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8341
8342         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8343         (ASM_CPU_POWER6_SPEC): Likewise.
8344         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8345         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8346         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8347
8348 2008-02-25  Richard Guenther  <rguenther@suse.de>
8349
8350         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8351         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8352         (lookup_decl_from_uid): Declare.
8353         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8354         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8355         (decl_for_uid_map): New global hashtable mapping DECL_UID
8356         to the decl tree.
8357         (init_ttree): Allocate it.
8358         (insert_decl_to_uid_decl_map): New helper function.
8359         (make_node_stat): Insert new decls into the map.
8360         (copy_node_stat): Likewise.
8361         (lookup_decl_from_uid): New function.
8362         (print_decl_for_uid_map_statistics): New helper.
8363         (dump_tree_statistics): Call it.
8364
8365         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8366         (referenced_var_iterator): Adjust.
8367         (FOR_EACH_REFERENCED_VAR): Adjust.
8368         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8369         (num_referenced_vars): Adjust.
8370         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8371         (first_referenced_var): Remove.
8372         (end_referenced_vars_p): Likewise.
8373         (next_referenced_var): Likewise.
8374         (referenced_var_iterator_set): New helper function.
8375         * tree-dfa.c (referenced_var_lookup): Adjust.
8376         (referenced_var_check_and_insert): Likewise.
8377         (remove_referenced_var): Likewise.
8378         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8379         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8380         (verify_call_clobbering): Likewise.
8381         (verify_memory_partitions): Likewise.
8382         (init_tree_ssa): Allocate bitmap instead of hashtable for
8383         referenced_vars.
8384         (delete_tree_ssa): Adjust.
8385         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8386         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8387         (compute_tag_properties): Likewise.
8388         (set_initial_properties): Likewise.
8389         (find_partition_for): Likewise.
8390         (update_reference_counts): Likewise.
8391         (dump_may_aliases_for): Likewise.
8392         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8393         (add_call_clobber_ops): Likewise.
8394         (add_call_read_ops): Likewise.
8395         (get_asm_expr_operands): Likewise.
8396         * tree-into-ssa.c (dump_decl_set): Likewise.
8397         (update_ssa): Likewise.
8398         * tree-sra.c (scan_function): Likewise.
8399         (decide_instantiations): Likewise.
8400         (scalarize_parms): Likewise.
8401         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8402         (dsa_named_for): Likewise.
8403         * tree-ssa-structalias.c (update_alias_info): Likewise.
8404         (merge_smts_into): Likewise.
8405
8406 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8407
8408         PR target/35258
8409         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8410         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8411         * alias.h (nonoverlapping_memrefs_p): Likewise.
8412
8413 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8414
8415         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8416         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8417         __emultls_get_address, __emultls_register_common,
8418         __floatundi?f, and _Unwind_GetIPInfo.
8419         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8420         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8421         (gen_regparm_prefix): Likewise.
8422         (i386_nlm_encode_section_info): Sync with
8423         config/i386/winnt.c:i386_pe_encode_section_info().
8424         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8425         i386_nlm_mangle_decl_assembler_name): New.
8426         (netware_override_options): New.
8427         * config/i386/netware.h (netware_override_options): Declare.
8428         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8429         (i386_nlm_mangle_decl_assembler_name): Declare.
8430         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8431
8432 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8433
8434         PR other/32948
8435         * c-decl.c (grokdeclarator): Remove unused local variables
8436         `typedef_type' and `type_as_written'.
8437         * bb-reorder.c
8438         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8439         unused local variable `has_hot_blocks'.
8440         (fix_crossing_conditional_branches): Remove unused local variable
8441         `prev_bb'.
8442         
8443 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8444
8445         PR middle-end/19984
8446         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8447         using DEF_C99_BUILTIN.
8448         (BUILT_IN_NANF): Ditto.
8449         (BUILT_IN_NANL): Ditto.
8450
8451 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8452             Revital Eres  <eres@il.ibm.com>
8453
8454         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8455         regarding the order of two dependent insns in the same row.
8456
8457 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8458
8459         * stor-layout.c (layout_decl): Do not bump the alignment of a
8460         bit-field to more than byte alignment if it is packed.
8461
8462 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8463
8464         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8465         e300c2 and e300c3.
8466
8467 2008-02-24  Diego Novillo  <dnovillo@google.com>
8468
8469         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8470
8471         PR 33738
8472         * tree-vrp.c (vrp_evaluate_conditional): With
8473         -Wtype-limits, emit a warning when comparing against a
8474         constant outside the natural range of OP0's type.
8475         * c.opt (Wtype-limits): Move ...
8476         * common.opt (Wtype-limits): ... here.
8477
8478 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8479
8480         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8481         * config/rs6000/e300c2c3.md: New file.
8482         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8483         e300c2 and e300c3.
8484         (rs6000_override_options): Add e300c2 and e300c3 cases to
8485         processor_target_table. Do not allow usage of Altivec or Spe
8486         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8487         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8488         * config/rs6000/rs6000.h (processor_type): Add
8489         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8490         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8491         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8492         and ppce300c3. Include e300c2c3.md.
8493
8494 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8495
8496         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8497         instead of TARGET_STRICT_ALIGN.
8498
8499 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8500
8501         * explow.c (memory_address): Assert that the generated address is
8502         valid.
8503
8504 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8505
8506         PR target/25477
8507         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8508         * config/darwin-ppc-ldouble-patch.def: New file.
8509         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8510         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8511         SUBTARGET_INIT_BUILTINS if defined.
8512         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8513         New functions.
8514
8515 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8516
8517         PR rtl-opt/33512
8518         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8519         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8520
8521 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8522
8523         PR pch/35027
8524         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8525         file" warning condtional on -Winvalid-PCH.
8526
8527 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8528
8529         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8530
8531 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8532
8533         PR target/22076
8534         PR target/34256 
8535         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8536         prevent reload from using MMX registers.
8537         (*mov<mode>_internal): Ditto.
8538         (*movv2sf_internal_rex64): Ditto.
8539         (*movv2sf_internal): Ditto.
8540
8541 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8542
8543         PR documentation/31569
8544         * doc/install.texi2html: Use makeinfo --no-number-sections.
8545
8546 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8547
8548         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8549         ensure that we can address an entire entity > 8 bytes.  Don't
8550         generate reg+reg addressing for such data.
8551
8552 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8553
8554         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8555         strings when optimizing for size, unless the target cares about
8556         alignment.
8557
8558 2008-02-22  Tom Tromey  <tromey@redhat.com>
8559
8560         * regclass.c (current_pass): Remove declaration.
8561
8562 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8563
8564         * config/avr/libgcc.S (__RAMPZ__): Define.
8565         (__do_copy_data): Add for devices with 128KB code memory.
8566
8567 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8568
8569         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8570         Use spe_abi.
8571         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8572
8573 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8574
8575         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8576         GENNONACR_REGS.
8577
8578 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8579
8580         PR c/19999
8581         * c-typeck.c (build_binary_op): Warn about floating point
8582         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8583
8584 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8585
8586         PR target/34526
8587         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8588         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8589         add vrsave.
8590         (rs6000_override_options): Set altivec_abi as default, not override,
8591         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8592         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8593         is used; use new member spe_abi.
8594         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8595         spe_abi and altivec_abi.
8596
8597 2008-02-22  Tomas Bily  <tbily@suse.cz>
8598
8599         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8600
8601 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8602
8603         PR bootstrap/35273
8604         * config.build (build_file_translate): Set to `CMD //c' only if
8605         it works.
8606         * Makefile.in (build_file_translate): Improve comment.
8607
8608 2008-02-21  Jan Hubicka  <jh@suse.cz>
8609
8610         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8611         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8612         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8613
8614 2008-02-21  Michael Matz  <matz@suse.de>
8615
8616         PR target/35264
8617         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8618
8619 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8620
8621         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8622         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8623         as insn constraint.
8624         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8625         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8626         SSE_VEC_FLOAT_MODE_P as insn constraint.
8627         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8628         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8629         sse4a_movntdf using MODEF mode iterator.
8630         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8631         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8632         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8633         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8634         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8635         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8636         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8637
8638 2008-02-21  Richard Guenther  <rguenther@suse.de>
8639
8640         * tree.def (PAREN_EXPR): New tree code.
8641         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8642         and PAREN_EXPR.
8643         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8644         * expr.c (expand_expr_real_1): Likewise.
8645         * tree-inline.c (estimate_num_insns_1): Likewise.
8646         * tree-complex.c (expand_complex_move): Likewise.
8647         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8648         as plain x.
8649
8650 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8651
8652         PR target/35225
8653         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8654
8655 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8656
8657         PR target/35190
8658         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8659
8660         * config/sh/sh.c (find_barrier): Don't go past
8661         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8662
8663 2008-02-20  DJ Delorie  <dj@redhat.com>
8664
8665         * config/h8300/h8300.md (insv): Force source operand to be a register.
8666
8667         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8668         as a jump, not as a plain insn.
8669         
8670 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8671
8672         * doc/invoke.texi (Warning Options): Add new option
8673         -Wframe-larger-than=.
8674         (-Wframe-larger-than): Document.
8675
8676         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8677         Add declarations for new option variables.
8678
8679         * final.c (final_start_function): Check the frame size
8680         before emission and issue a Wframe-larger-than warning.
8681
8682         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8683         Add definitions for new option variables.
8684         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8685
8686         * common.opt (Wframe-larger-than=): New option.
8687
8688 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8689
8690         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8691         (<sse>_div<mode>3): Ditto.
8692         (<sse>_vmdiv<mode>3): Ditto.
8693         (<sse>_vmsqrt<mode>2): Ditto.
8694         (*smax<mode>3): Ditto.
8695         (sse5_frcz<mode>2): Ditto.
8696         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8697         as insn constraint.
8698
8699 2008-02-20  Richard Guenther  <rguenther@suse.de>
8700
8701         PR middle-end/35265
8702         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8703         be happy with INTEGRAL_TYPE_P.
8704
8705 2008-02-20  Richard Guenther  <rguenther@suse.de>
8706
8707         * fold-const.c (split_tree): Associate floatig-point expressions
8708         if flag_associative_math is set.
8709
8710 2008-02-20  Richard Guenther  <rguenther@suse.de>
8711
8712         * tree.h (fold_real_zero_addition_p): Declare.
8713         * fold-const.c (fold_real_zero_addition_p): Export.
8714         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8715         floating-point operations with zero and one.
8716
8717 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8718
8719         * doc/install.texi: Correct references to CFLAGS, replacing them
8720         with BOOT_CFLAGS.  Document flags used during bootstrap for
8721         target libraries.
8722                                 
8723 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8724
8725         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8726         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8727         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8728         insn constraint.
8729         (smin<mode>3): Ditto from similar patterns.
8730         (smax<mode>3): Ditto.
8731         (*ieee_smin<mode>3): Ditto.
8732         (*ieee_smax<mode>3): Ditto.
8733         * config/i386/sse.md (sse): New mode attribute.
8734         (mov<mode>): Macroize expander from movv4sf and movv2df using
8735         SSEMODEF2P mode iterator.
8736         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8737         SSE_VEC_FLOAT_MODE_P as insn constraint.
8738         (storent<mode>): Ditto.
8739         (storent<mode>): Macroize expander from storentsf and storentdf using
8740         MODEF mode iterator.
8741         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8742         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8743         (abs<mode>2): Ditto from similar patterns.
8744         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8745         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8746         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8747         (<sse>_vmsqrt<mode>2): Ditto.
8748         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8749         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8750         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8751         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8752         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8753         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8754         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8755         insn constraint.
8756         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8757         iterator and SSE_FLOAT_MODE_P as insn constraint.
8758         (<sse>_ucomi): Ditto from similar patterns.
8759         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8760         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8761         SSE_VEC_FLOAT_MODE_P as insn constraint.
8762         (vcond<mode>): Ditto from similar patterns.
8763         (and<mode>3, *and<mode>3): Ditto.
8764         (<sse>_nand<mode>3): Ditto.
8765         (ior<mode>3, *ior<mode>3): Ditto.
8766         (xor<mode>3, *xor<mode>3): Ditto.
8767         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8768         iterator and SSE_FLOAT_MODE_P as insn constraint.
8769         (*nand<mode>3): Ditto from similar patterns.
8770         (*ior<mode>3): Ditto.
8771         (*xor<mode>3): Ditto.
8772
8773 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8774
8775         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8776         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8777         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8778
8779 2008-02-19  Jan Hubicka  <jh@suse.cz>
8780
8781         * predict.c (tree_bb_level_predictions): Remove variable next
8782         mistakely introduced by previous commit.
8783
8784 2008-02-19  Jan Hubicka  <jh@suse.cz>
8785
8786         * predict.c (predict_paths_leading_to): Rewrite.
8787         (predict_paths_for_bb): New.
8788         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8789
8790 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8791
8792         PR bootstrap/35218
8793         * Makefile.in (build_file_translate): New.
8794         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8795         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8796         * configure.ac (build_file_translate): Substitute it.
8797         * configure: Regenerate.
8798
8799 2008-02-19  Jan Hubicka  <jh@suse.cz>
8800
8801         PR rtl-optimization/34408
8802         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8803         invalid sharing.
8804
8805 2008-02-19  Jan Hubicka  <jh@suse.cz>
8806
8807         PR middle-end/28779
8808         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8809         call_expr.
8810
8811 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8812
8813         PR Ada/35186
8814         * config/i386/i386-modes.def: Revert the last DI alignment
8815         change until Ada people can look into it.
8816
8817 2008-02-19  Nick Clifton  <nickc@redhat.com>
8818
8819         * opts.c (print_specific_help): Fix typo in --help text.
8820
8821 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8822
8823         PR target/35239
8824         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8825         32-bit inline asm without asm alternatives for host GCC < 3.0.
8826
8827 2008-02-19  Richard Guenther  <rguenther@suse.de>
8828
8829         PR tree-optimization/34989
8830         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8831         Allow propagation to INDIRECT_REF if we can simplify only.
8832
8833 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8834
8835         * c-common.c (warn_for_collisions_1): Use appropriate option when
8836         warning.
8837
8838 2008-02-19  Nick Clifton  <nickc@redhat.com>
8839
8840         PR other/31349
8841         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8842         (handle_options): Fix indentation.
8843         (print_filtered_help): If no language-specific options were
8844         displayed tell the user how to list all the options supported by
8845         the language's front-end.
8846         (print_specific_help): Fix indentation and remove duplicate line.
8847         (common_handle_option): Handle the -v option.
8848         For --help enable the display of undocumented options if the -v
8849         switch has been included on the command line.
8850         For --help= check for overlaps in the arguments between the option
8851         classes and the language names and issue a warning when they
8852         cannot be disambiguated.
8853         * c.opt (v): Pass on to the common option handler.
8854
8855 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8856
8857         * modulo-sched.c (sms_schedule): Change dump message when
8858         create_ddg function fails.
8859         (try_scheduling_node_in_cycle): Rename row to cycle.
8860         (print_partial_schedule): Rename CYCLE to ROW.
8861
8862 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8863             Zdenek Dvorak  <ook@ucw.cz>
8864
8865         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8866
8867 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8868
8869         PR target/33555
8870         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8871         (*x86_movdicc_0_m1_se): Ditto.
8872
8873 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8874
8875         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8876         (CMPtype): Define as __gcc_CMPtype.
8877         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8878         (CMPtype): Define as __gcc_CMPtype.
8879
8880 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8881
8882         Support valgrind 3.3 for --enable-checking=valgrind.
8883         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8884         here.
8885         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8886         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8887         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8888         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8889         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8890         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8891         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8892         respectively.
8893         * ggc-zone.c: Similar.
8894         * ggc-page.c: Similar.
8895
8896 2008-02-19  Paul Brook  <paul@codesourcery.com>
8897
8898         PR target/35071
8899         * config/arm/ieee754-df.S: Fix do_it typo.
8900         * config/arm/ieee754-sf.S: Fix do_it typo.
8901
8902 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8903
8904         PR target/35189
8905         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8906         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8907         (OPTION_MASK_ISA_SSE_SET): Likewise.
8908         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8909         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8910         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8911         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8912         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8913         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8914         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8915         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8916         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8917         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8918         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8919         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8920         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8921         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8922         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8923         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8924         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8925         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8926         (OPTION_MASK_ISA_SSE4): Removed.
8927         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8928         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8929         (override_options): Don't turn on implied SSE/MMX bits in
8930         ix86_isa_flags.
8931
8932 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8933
8934         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8935         32bit host.
8936
8937 2008-02-18  Joey Ye  <joey.ye@intel.com>
8938
8939         PR middle-end/34921
8940         * tree-nested.c (insert_field_into_struct): Set type alignment
8941         to field alignment if the former is less than the latter.
8942
8943 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8944
8945         * BASE-VER: Set to 4.4.0.
8946
8947 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8948
8949         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8950         * doc/cfg.texi: Likewise.
8951         * doc/extend.texi: Likewise.
8952         * doc/gty.texi: Likewise.
8953         * doc/invoke.texi: Likewise.
8954         * doc/loop.texi: Likewise.
8955         * doc/md.texi: Likewise.
8956         * doc/passes.texi: Likewise.
8957         * doc/rtl.texi: Likewise.
8958         * doc/sourcebuild.texi: Likewise.
8959         * doc/tm.texi: Likewise.
8960         * doc/tree-ssa.texi: Likewise.
8961
8962 2008-02-17  Richard Guenther  <rguenther@suse.de>
8963
8964         PR middle-end/35227
8965         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8966         without default definition.
8967
8968 2008-02-17  Richard Guenther  <rguenther@suse.de>
8969
8970         PR tree-optimization/35231
8971         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8972         if A | B != 1.
8973
8974 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8975
8976         Revert:
8977         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8978         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8979         libgcc_cmp_return mode.
8980
8981 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8982
8983         PR c/28368
8984         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8985
8986 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8987
8988         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8989         multilibs.
8990
8991 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8992
8993         * doc/c-tree.texi: Use `@.' where appropriate.
8994         * doc/extend.texi: Likewise.
8995         * doc/install.texi: Likewise.
8996         * doc/invoke.texi: Likewise.
8997         * doc/loop.texi: Likewise.
8998         * doc/makefile.texi: Likewise.
8999         * doc/md.texi: Likewise.
9000         * doc/passes.texi: Likewise.
9001         * doc/standards.texi: Likewise.
9002         * doc/tm.texi: Likewise.
9003
9004 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9005
9006         PR middle-end/35196
9007         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9008         in entry_bb.
9009         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9010         rather than in entry_bb.
9011
9012 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9013
9014         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9015         libgcc_cmp_return mode.
9016
9017 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9018
9019         PR middle-end/35130
9020         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9021         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9022
9023 2008-02-15  Richard Guenther  <rguenther@suse.de>
9024             Zdenek Dvorak  <ook@ucw.cz>
9025
9026         PR tree-optimization/35164
9027         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9028         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9029         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9030         Only propagate addresses which do not have abnormal SSA_NAMEs
9031         in their operands.
9032
9033 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9034
9035         PR target/35088
9036         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9037
9038 2008-02-15  Jan Hubicka  <jh@suse.cz>
9039
9040         PR middle-end/35149
9041         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9042
9043 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9044
9045         PR middle-end/34621
9046         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9047         when calculating alignment_pad.
9048
9049 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9050
9051         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9052         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9053         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9054         and STACK_BOUNDARY define.
9055
9056 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9057
9058         PR preprocessor/35061
9059         * c-pragma.c (handle_pragma_pop_macro): Check that
9060         pushed_macro_table has been allocated.
9061
9062 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9063
9064         PR middle-end/35136
9065         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9066         (force_gimple_operand): Likewise.
9067         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9068         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9069         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9070         (find_interesting_uses_address): Check addressability and alignment
9071         of the base expression only after substituting bases of IVs into it.
9072
9073 2008-02-14  Michael Matz  <matz@suse.de>
9074
9075         PR target/34930
9076         * function.c (instantiate_virtual_regs_in_insn): Reload address
9077         before falling back to reloading the whole operand.
9078
9079 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9080
9081         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9082         before the first section switch note.
9083
9084 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9085
9086         * doc/bugreport.texi: Update copyright years.
9087         * doc/c-tree.texi: Likewise.
9088         * doc/cfg.texi: Likewise.
9089         * doc/cpp.texi: Likewise.
9090         * doc/cppinternals.texi: Likewise.
9091         * doc/fragments.texi: Likewise.
9092         * doc/frontends.texi: Likewise.
9093         * doc/gcc.texi: Likewise.
9094         * doc/gty.texi: Likewise.
9095         * doc/hostconfig.texi: Likewise.
9096         * doc/implement-c.texi: Likewise.
9097         * doc/libgcc.texi: Likewise.
9098         * doc/loop.texi: Likewise.
9099         * doc/makefile.texi: Likewise.
9100         * doc/options.texi: Likewise.
9101         * doc/passes.texi: Likewise.
9102         * doc/rtl.texi: Likewise.
9103         * doc/sourcebuild.texi: Likewise.
9104         * doc/standards.texi: Likewise.
9105         * doc/tree-ssa.texi: Likewise.
9106         * doc/trouble.texi: Likewise.
9107
9108         * doc/extend.texi: Use @: or add comma where appropriate.
9109         * doc/invoke.texi: Likewise.
9110         * doc/tm.texi: Likewise.
9111
9112 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9113
9114         PR target/34393
9115         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9116         to a reg.
9117
9118 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9119
9120         * doc/md.texi (clz, ctz): Add reference.
9121         * doc/rtl.texi (clz, ctz): Likewise.
9122
9123 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9124
9125         PR other/35148
9126         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9127         srcdir.
9128
9129 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9130
9131         * config/s390/s390.c (struct constant_pool): New field
9132         emit_pool_after added.
9133         (s390_mainpool_start): Set the emit_pool_after flag according
9134         to the section switch notes.
9135         (s390_mainpool_finish): Consider emit_pool_after when emitting
9136         the literal pool at the end of the function.
9137         (s390_chunkify_start): Force literal pool splits at section
9138         switch notes.
9139
9140 2008-02-13  Michael Matz  <matz@suse.de>
9141
9142         PR debug/35065
9143         * var-tracking.c (clobber_variable_part): Correctly traverse the
9144         list.
9145
9146 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9147
9148         PR 29673
9149         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9150         Add -fdump-ipa-inline.
9151         * tree-dump.c (dump_files): Remove tree-inlined dump.
9152         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9153         
9154 2008-02-12  Richard Guenther  <rguenther@suse.de>
9155
9156         PR tree-optimization/35171
9157         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9158         default defs.
9159
9160 2008-02-12  Richard Guenther  <rguenther@suse.de>
9161
9162         PR middle-end/35163
9163         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9164         value-preserving mode.  Disallow final truncation.
9165
9166 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9167
9168         PR middle-end/35136
9169         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9170         code from here to...
9171         (force_gimple_operand): ...here.
9172
9173 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9174
9175         PR c++/35144
9176         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9177         non-compatible pointers.
9178         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9179         different FIELD_DECLs, try harder by comparing field offsets, sizes
9180         and types.
9181
9182         PR inline-asm/35160
9183         * function.c (match_asm_constraints_1): Don't replace the same input
9184         multiple times.
9185
9186 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9187
9188         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9189         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9190         (expand_epilogue): Restore RAMPZ register.
9191         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9192
9193 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9194
9195         * config/i386/cygwin.asm: (__alloca): Correct calling
9196         convention and alignment.
9197         (__chkstk): Force 8 byte stack alignment.
9198
9199 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9200             Richard Guenther  <rguenther@suse.de>
9201
9202         PR tree-optimization/33992
9203         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9204         the zero we compare against.
9205
9206 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9207
9208         PR libfortran/35063
9209         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9210         to CloseHandle after unlocking to prevent accumulation of handle
9211         count.
9212
9213 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9214
9215         PR middle_end/34150
9216         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9217         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9218         and update LABEL_NUSES during and after reload.
9219
9220 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9221
9222         PR middle-end/34627
9223         * combine.c (simplify_if_then_else): Make sure the comparison is
9224         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9225
9226 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9227
9228         PR bootstrap/35051
9229         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9230         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9231         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9232         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9233         * tree.h (get_type_static_bounds): Likewise.
9234
9235 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9236
9237         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9238         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9239         Make -Wfoo language annotations match what the compiler outputs.
9240
9241 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9242
9243         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9244         intrinsics spu_convts, spu_convtu, spu_convtf.
9245
9246 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9247
9248         * doc/extend.texi (Function Attributes) <noinline>: Mention
9249         asm ("") as method to keep calls.
9250
9251 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9252
9253         PR other/32754
9254         * doc/options.texi (Options): Replace references to opts.sh with
9255         optc-gen.awk.
9256         * opts-common.c: Likewise.
9257         * optc-gen.awk: Likewise.
9258         
9259 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9260
9261         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9262
9263 2008-02-07  Richard Henderson  <rth@redhat.com>
9264
9265         PR rtl-opt/33410
9266         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9267         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9268         funny mode.
9269
9270 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9271
9272         PR tree-optimization/35085
9273         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9274         for operand entry oe2 in addition to operand entry oe3 in order to
9275         expose more opportunities for vectorizer sum reduction.
9276
9277 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9278
9279         PR other/35107
9280         * Makefile.in (LIBS): Remove $(GMPLIBS).
9281         (cc1-dummy, cc1): Add $(GMPLIBS).
9282
9283 2008-02-06  Jan Hubicka  <jh@suse.cz>
9284
9285         PR target/23322
9286         * i386.md (moddf_integer): Do not produce partial memory stalls for
9287         targets where it hurts.
9288
9289 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9290
9291         PR target/35083
9292         * optabs.c (expand_float): Do not check for decimal modes when
9293         expanding unsigned integer through signed conversion.
9294
9295 2008-02-06  Nick Clifton  <nickc@redhat.com>
9296
9297         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9298         inside the clobber with a match_operand and duplicated operand
9299         number in the constraint.
9300         (ineqbranchsi): Delete redundant comment.
9301
9302 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9303
9304         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9305         builtin_define ("__USE_INIT_FINI__").
9306         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9307         -msx multilibs.
9308         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9309
9310 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9311
9312         PR documentation/30330
9313         * doc/invoke.texi (C++ Dialect Options)
9314         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9315         For each warning option -Wfoo that allows -Wno-foo, ensure both
9316         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9317         entry of -Wswitch-default, index -Wnormalized= including the
9318         `=', and -Wlarger-than-@var{len} including @var{len}.
9319
9320 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9321
9322         * config/i386/i386.md (floatunssisf2): Use
9323         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9324         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9325         Macroize expander using MODEF mode iterator.
9326
9327 2008-02-05  Diego Novillo  <dnovillo@google.com>
9328
9329         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9330
9331         PR 33738
9332         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9333
9334 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9335
9336         PR other/35070
9337         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9338
9339 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9340
9341         PR target/35084
9342         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9343         to indicate if a message should be generated.
9344         (init_cumulative_args): Updated.
9345         (function_value_32): Likewise.
9346
9347 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9348
9349         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9350
9351 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9352
9353         PR target/35083
9354         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9355         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9356
9357 2008-02-04  Diego Novillo  <dnovillo@google.com>
9358
9359         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9360
9361         PR 33738
9362         * tree-vrp.c (vrp_evaluate_conditional): With
9363         -Wtype-limits, emit a warning when comparing against a
9364         constant outside the natural range of OP0's type.
9365
9366 2008-02-04  Richard Guenther  <rguenther@suse.de>
9367
9368         PR middle-end/33631
9369         * expr.c (count_type_elements): Give for unions instead of
9370         guessing.
9371
9372 2008-02-04  Richard Guenther  <rguenther@suse.de>
9373
9374         PR middle-end/35043
9375         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9376         to TYPE_DOMAINs base type instead of using bitsizetype here.
9377
9378 2008-02-03  Jason Merrill  <jason@redhat.com>
9379
9380         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9381
9382 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9383
9384         PR other/29972
9385         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9386         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9387         (RS/6000 and PowerPC Options): Fix typos and markup.
9388         * doc/passes.texi (Tree-SSA passes): Likewise.
9389
9390 2008-02-02  Michael Matz  <matz@suse.de>
9391
9392         PR target/35045
9393         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9394         from record_last_reg_set_info.
9395         (record_last_reg_set_info): Take an RTX argument, iterate over all
9396         constituent hardregs.
9397         (record_last_set_info, record_opr_changes): Change calls to
9398         new signature or to record_last_reg_set_info_regno.
9399
9400 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9401
9402         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9403
9404 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9405
9406         PR rtl-optimization/34773
9407         * reg-notes.def (EQUAL): Mention significance of combination of
9408         REG_EQUAL and REG_RETVAL.
9409         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9410         insn that has a REG_RETVAL.
9411
9412 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9413
9414         PR bootstrap/33781
9415         * configure.ac (--enable-fixed-point): Disable unless explicitly
9416         requested on IRIX.
9417         * configure: Regenerate.
9418
9419 2008-02-01  Richard Guenther  <rguenther@suse.de>
9420
9421         PR other/35042
9422         * invoke.texi (-finline-limit): Remove no longer true parts
9423         of the documentation.  Note that there is no default value.
9424
9425 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9426             Mark Mitchell  <mark@codesourcery.com>
9427             Ben Elliston  <bje@au.ibm.com>
9428
9429         PR c/29326
9430         * doc/extend.texi (Other Builtins): Document.
9431
9432 2008-01-31  Tom Browder <tom.browder@gmail.com>
9433
9434         * doc/c-tree.texi (Types): Fix grammar.
9435         (Expression trees): Ditto.
9436         * doc/passes.texi (Tree-SSA passes): Ditto.
9437         
9438         * doc/configterms.texi (Configure Terms): Fix typo.
9439         * doc/cpp.texi (Common Predefined Macros): Ditto.
9440         * doc/md.texi (Machine Constraints): Ditto.
9441         
9442         * doc/makefile.texi (Makefile): Add comma.
9443
9444 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9445             Gerald Pfeifer  <gerald@pfeifer.com>
9446         
9447         * doc/sourcebuild.texi (Front End): Remove references to CVS
9448         and CVSROOT/modules.
9449         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9450         (Back End): Remove reference to CVS.
9451
9452 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9453
9454         PR target/34900
9455         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9456         comment from...
9457         (mips16_gp_pseudo_reg): ...here.
9458         * config/mips/mips.md (load_const_gp): Replace with...
9459         (load_const_gp_<mode>): ...this :P-based insn.
9460
9461 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9462
9463         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9464         options. Minor fixes.
9465         (-std): Move reference to standards closer to where language
9466         standards are first mentioned.
9467         
9468 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9469
9470         PR rtl-optimization/34995
9471         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9472         parameter and return a bool.  If the rtx parameter is nonnull,
9473         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9474         (find_reloads): Update call accordingly.  Pass the new operand
9475         if it needed no address reloads, otherwise pass null.
9476
9477 2008-01-30  Richard Henderson  <rth@redhat.com>
9478
9479         PR c/34993
9480         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9481         for unbounded arrays.
9482
9483 2008-01-30  Silvius Rus  <rus@google.com>
9484
9485         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9486
9487 2008-01-30  Jan Hubicka  <jh@suse.cz>
9488
9489         PR target/34982
9490         * i386.c (init_cumulative_args): Use real function declaration when
9491         calling locally.
9492
9493 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9494
9495         PR rtl-optimization/34998
9496         * global.c (build_insn_chain): Treat non-subreg_lowpart
9497         SUBREGs of pseudos as clobbering all the words covered by the
9498         SUBREG, not just all the bytes.
9499         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9500         original df_ref rather than an extract parameter.
9501         (global_conflicts): Update call accordingly.
9502
9503 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9504
9505         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9506         the overflow check to make it easier to read.
9507         (__fixtfdi): Change the type of the ll member in union
9508         long_double to UDItype_x.
9509
9510 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9511
9512         PR middle-end/34969
9513         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9514         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9515         * tree-inline.c (fold_marked_statements): Call
9516         cgraph_update_edges_for_call_stmt if folding a call statement.
9517         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9518         debug_generic_stmt calls, reset it back afterwards.
9519
9520         PR c/35017
9521         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9522         static decls.
9523         * c-typeck.c (build_external_ref): Don't pedwarn about
9524         static vars in current function's scope.
9525
9526 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9527
9528         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9529
9530 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9531
9532         PR c/35002
9533         * ipa-struct-reorg.c: Fix spelling.
9534         * params.def: Ditto.
9535
9536 2008-01-29  Richard Guenther  <rguenther@suse.de>
9537
9538         PR middle-end/35006
9539         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9540         field.
9541         * tree-inline.c (remap_type): Increment remapping_type_depth
9542         around remapping types.
9543         (copy_body_r): Only add referenced variables if they are referenced
9544         from code, not types.
9545
9546 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9547
9548         PR c++/34055
9549         PR c++/34103
9550         PR c++/34219
9551         PR c++/34606
9552         PR c++/34753
9553         PR c++/34754
9554         PR c++/34755
9555         PR c++/34919
9556         PR c++/34961
9557         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9558         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9559
9560 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9561
9562         PR target/34412
9563         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9564         pointer for tiny stack.
9565
9566 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9567
9568         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9569
9570 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9571
9572         * config/vx-common.h: Fix typo in comment.
9573
9574 2008-01-28  Ian Lance Taylor  <iant@google.com>
9575
9576         PR c++/34862
9577         PR c++/33407
9578         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9579         coalesce pointers if they have different DECL_NO_TBAA_P values.
9580         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9581         between variables with different DECL_NO_TBAA_P values.
9582
9583 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9584
9585         PR 31535
9586         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9587         are not legitimate small data references on SPE targets.
9588
9589 2008-01-28  David Daney  <ddaney@avtrex.com>
9590
9591         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9592
9593 2008-01-28  David Daney  <ddaney@avtrex.com>
9594
9595         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9596
9597 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9598
9599         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9600         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9601         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9602         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9603         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9604         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9605         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9606         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9607
9608 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9609
9610         * basic-block.h (condjump_equiv_p): Fix comment.
9611
9612 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9613
9614         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9615         print_generic_stmt_indented): Fix comment.
9616
9617 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9618
9619         * configure.ac (__stack_chk_fail): Add detecion for availability
9620         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9621         * configure: Regenerate.
9622
9623 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9624
9625         PR middle-end/34688
9626         * final.c (output_addr_const): Handle TRUNCATE.
9627
9628 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9629
9630         PR target/34711
9631         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9632         (zero_cost, infinite_cost): New constants.
9633         (struct cost_pair): Change type of cost to comp_cost.
9634         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9635         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9636         New functions.
9637         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9638         split_address_cost, ptr_difference_cost, difference_cost,
9639         get_computation_cost_at, get_computation_cost,
9640         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9641         determine_use_iv_cost_condition, determine_use_iv_costs,
9642         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9643         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9644         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9645         Change type of cost to comp_cost.
9646         (determine_iv_cost): Increase cost of non-original ivs, instead
9647         of decreasing the cost of original ones.
9648         (get_address_cost): Indicate the complexity of the addressing mode 
9649         in comp_cost.
9650         (try_add_cand_for): Prefer using ivs not specific to some object.
9651         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9652
9653 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9654             Janis Johnson  <janis187@us.ibm.com>
9655
9656         PR target/34814
9657         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9658         (TARGET_INSTANTIATE_DECLS): Likewise.
9659         * target.h (expand_to_rtl_hook): New target hook.
9660         (instantiate_decls): Likewise.
9661         * function.c (instantiate_decl): Make non-static.  Rename to...
9662         (instantiate_decl_rtl): ... this.
9663         (instantiate_expr): Use instantiate_decl_rtl.
9664         (instantiate_decls_1): Likewise.
9665         (instantiate_decls): Likewise.
9666         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9667         * function.h (instantiate_decl_rtl): Add prototype.
9668         * cfgexpand.c (target.h): New include.
9669         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9670         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9671         (TARGET_INSTANTIATE_DECLS): Likewise.
9672         (TARGET_INITIALIZER): New target hooks added.
9673         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9674         New prototype.
9675         * config/rs6000/rs6000.c (tree-flow.h): New include.
9676         (machine_function): Add sdmode_stack_slot field.
9677         (rs6000_alloc_sdmode_stack_slot): New function.
9678         (rs6000_instantiate_decls): Likewise.
9679         (rs6000_secondary_memory_needed_rtx): Likewise.
9680         (rs6000_check_sdmode): Likewise.
9681         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9682         (TARGET_INSTANTIATE_DECLS): Likewise.
9683         (rs6000_hard_regno_mode_ok): Allow SDmode.
9684         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9685         (rs6000_emit_move): Handle SDmode.
9686         (function_arg_advance): Likewise.
9687         (function_arg): Likewise.
9688         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9689         SDmode var args for 32-bit compiles.
9690         (rs6000_secondary_reload_class): Handle SDmode.
9691         (rs6000_output_function_epilogue): Likewise.
9692         (rs6000_function_value): Simplify if statement.
9693         (rs6000_libcall_value): Likewise.
9694         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9695         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9696         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9697         (movsd_hardfloat): New define_insn.
9698         (movsd_softfloat): Likewise.
9699         (movsd_store): Likewise.
9700         (movsd_load): Likewise.
9701         (extendsddd2): Likewise.
9702         (extendsdtd2): Likewise.
9703         (truncddsd2): Likewise.
9704         (movdd_hardfloat64): Fixup comment.
9705         (UNSPEC_MOVSD_LOAD): New constant.
9706         (UNSPEC_MOVSD_STORE): Likewise.
9707
9708 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9709
9710         PR c++/34965
9711         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9712         TRUTH_XOR_EXPR.
9713         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9714         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9715         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9716         and TRUTH_XOR_EXPR.
9717
9718 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9719
9720         PR target/34794
9721         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9722         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9723         __LONGDOUBLE128 too.
9724         * config/rs6000/aix61.h: New file.
9725
9726 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9727
9728         PR rtl-optimization/34959
9729         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9730         popcount and parity rtxes the same mode as their operand.
9731         Truncate or extend the result to the return value's mode
9732         if necessary.
9733
9734 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9735
9736         PR target/34981
9737         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9738         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9739         to GOT_VERSION_REGNUM.
9740         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9741         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9742         * config/mips/mips.c (mips_emit_call_insn): New function.
9743         (mips_call_tls_get_addr): Call mips_expand_call directly.
9744         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9745         emit_call_insn.
9746         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9747         (mips_expand_call): Update the call to mips16_build_call_stub
9748         accordingly and a remove redundant condition.  Assert that MIPS16
9749         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9750         the call insn.
9751         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9752         TARGET_USE_GOT.
9753         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9754         (mips_avoid_hazard): Remove hazard_set handling.
9755         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9756         (UNSPEC_RESTORE_GP): ...this.
9757         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9758         (FAKE_CALL_REGNO): Rename to...
9759         (GOT_VERSION_REGNUM): ...this.
9760         (type): Add "ghost" value.  Add an associated insn reservation.
9761         (hazard_set): Remove.
9762         (exception_receiver): Rename to...
9763         (restore_gp): ...this and update the unspec identifier accordingly.
9764         (exception_receiver, nonlocal_got_receiver): New expanders.
9765         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9766         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9767         (set_got_version, update_got_version): New patterns.
9768
9769 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9770
9771         PR target/34970
9772         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9773
9774 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9775
9776         PR other/31955
9777         * doc/install.texi2html: Generate gcc-vers.texi.
9778
9779 2008-01-25  DJ Delorie  <dj@redhat.com>
9780
9781         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9782
9783 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9784
9785         * config/c4x: Remove directory.
9786         * config.gcc (crx-*, mt-*): Mark obsolete.
9787         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9788         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9789         sh-*-rtemscoff*): Remove cases.
9790         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9791         * real.c (encode_c4x_single, decode_c4x_single,
9792         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9793         c4x_extended_format): Remove.
9794         * real.h (c4x_single_format, c4x_extended_format): Remove.
9795         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9796         on C4x.
9797         (Pragmas): Remove comment about c4x pragmas.
9798         * doc/install.texi (c4x): Remove target-specific instructions.
9799         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9800         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9801         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9802         refer to C4x source files as examples.
9803         (C4X_FLOAT_FORMAT): Remove documentation.
9804
9805 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9806
9807         * config/bfin/bfin.c (override_options): Reorder tests so that
9808         flag_pic gets enabled for -msep-data.
9809
9810 2008-01-25  Richard Guenther  <rguenther@suse.de>
9811
9812         PR middle-end/32244
9813         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9814         to its bitfield precision if required.
9815
9816 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9817
9818         PR middle-end/33880
9819         * tree-nested.c (walk_omp_for): New function.
9820         (convert_nonlocal_reference, convert_local_reference): Call
9821         walk_omp_for on OMP_FOR.
9822         (convert_call_expr): Call walk_body on OMP_FOR's
9823         OMP_FOR_PRE_INIT_BODY.
9824
9825 2008-01-25  Richard Guenther  <rguenther@suse.de>
9826
9827         PR tree-optimization/34966
9828         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9829         default defs and PHI_NODEs we have to insert after the
9830         defining statement.
9831
9832 2008-01-24  Nick Clifton  <nickc@redhat.com>
9833
9834         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9835         Provide a default definition.
9836         (LIBGCC2_UNITS_PER_WORD): Likewise.
9837
9838         * config/stormy16/stormy16.c: Include df.h for the prototype
9839         for df_regs_ever_live_p.
9840         (xstormy16_expand_builtin_va_start): Convert the stack offset
9841         into a component_ref and then use POINTER_PLUS_EXPR to add it
9842         to the incoming_virtual_args_rtx.
9843         (xstormy16_gimplify_va_arg_expr): Rename to
9844         xstormy16_gimplify_va_arg_expr.
9845         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9846         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9847         xstormy16_gimplify_va_arg_expr.
9848         Fix up some formatting issues.
9849
9850         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9851         Move to predicates.md.
9852         (xs_hi_general_operand): Likewise.
9853         (xs_hi_nonmemory_operand): Likewise.
9854         * config/stormy16/predicates.md:
9855         (xstormy16_carry_plus_operand): New predicate.
9856         (xs_hi_general_operand): New predicate.
9857         (xs_hi_nonmemory_operand): New predicate.
9858         * config/stormy16/stormy16-protos.h:
9859         (xstormy16_carry_plus_operand): Delete prototype.
9860         (xs_hi_general_operand): Likewise.
9861         (xs_hi_nonmemory_operand): Likewise.
9862
9863         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9864         modifiers as they are no longer needed and they can trigger
9865         reload spill failures.
9866
9867         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9868         with a match_operand in order to help reload.
9869
9870         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9871         constraint with 'e' for the 8th alternative as this version of
9872         the mov.w instruction only accepts the lower 8 registers.
9873
9874 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9875
9876         PR target/34856
9877         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9878         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9879         vector elements.
9880
9881 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9882
9883         PR middle-end/33333
9884         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9885
9886 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9887
9888         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9889         New functions.
9890         (remove_structure): Update allocations list before removing structure.
9891         
9892 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9893
9894         * ipa-struct-reorg.c (is_safe_cond_expr, 
9895         create_new_stmts_for_cond_expr): Use integer_zerop function,
9896         that recognize not only zero-pointer, but zero-integer too.
9897
9898 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9899
9900         PR other/22232
9901         * fixproto: Escape "." in sed expression that strips leading "./".
9902
9903 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9904
9905         PR driver/34904
9906         * gcc.c (SWITCH_OK): Removed.
9907         (SWITCH_LIVE): Changed to bit.
9908         (SWITCH_FALSE): Likewise.
9909         (SWITCH_IGNORE): Likewise.
9910         (switchstr): Change live_cond to unsigned int.
9911         (process_command): Replace SWITCH_OK with 0.
9912         (do_self_spec): Likewise.
9913         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9914         (give_switch): Likewise.
9915         (used_arg): Likewise.
9916         (do_spec_1): Set the SWITCH_IGNORE bit.
9917         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9918         bits.  Set the SWITCH_LIVE bit.
9919
9920 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9921
9922         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9923
9924 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9925
9926         PR tree-optimization/34472
9927         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9928         parameter to a "bool *" and set *DATA to false if there is
9929         an unsafe access.  Do not delete the structure here.
9930         (check_cond_exprs): Delete it here instead.
9931         (check_cond_exprs, exclude_cold_structs): Do not increase
9932         I when removing a structure.
9933
9934 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9935
9936         PR target/34856
9937         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9938         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9939
9940 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9941
9942         PR middle-end/34934
9943         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9944         a fixed vector for stack.
9945
9946 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9947
9948         PR c++/25701
9949         * doc/gcc.texi (Software development): Add a direntry for g++.
9950         
9951 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9952
9953         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9954         stale and straggling -fforce-addr comments above.
9955
9956         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9957         define.
9958         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9959         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9960
9961 2008-01-23  Michael Matz  <matz@suse.de>
9962
9963         PR debug/34895
9964         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9965         gen_type_die.
9966
9967 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9968
9969         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9970         malloc result type.
9971
9972 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9973
9974         * config/avr/avr.c (avr_current_arch): New variable.
9975         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9976         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9977         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9978         (avr_override_options): Init 'avr_current_arch'. 
9979         (base_arch_s): Move from here...
9980         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9981         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9982         'mega' to 'have_jmp_call'.
9983         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9984         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9985         macros.
9986         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9987         architectures.
9988         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9989         MULTILIB_MATCHES): (Ditto.).
9990
9991 2008-01-23  Richard Guenther  <rguenther@suse.de>
9992
9993         PR middle-end/31529
9994         * cgraphunit.c (cgraph_reset_node): Always mark the node
9995         not reachable if it is not queued already.
9996
9997 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9998
9999         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10000         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10001         (cputype_selected): New static variable.
10002         (bfin_handle_option): Set it if -mcpu is used.
10003         (override_option): Select default set of workarounds if no cpu type
10004         selected on the command line.
10005         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10006
10007         From  Michael Frysinger  <michael.frysinger@analog.com>
10008         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10009         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10010
10011         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10012         for bf547, bf523, bf524, and bf526.
10013         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10014         bf526.
10015         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10016         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10017         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10018         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10019         * doc/invoke.texi (Blackfin Options): Document that
10020         -mcpu now accept bf547, bf523, bf524, and bf526.
10021
10022 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10023
10024         PR rtl-optimization/34628
10025         * combine.c (try_combine): Stop and undo after the first combination
10026         if an autoincrement side-effect on the first insn has effectively
10027         been lost.
10028
10029 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10030
10031         PR target/34529
10032         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10033         Offset addresses are not valid for Altivec or paired float modes.
10034
10035 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10036
10037         PR c++/34607
10038         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10039         if DECL_INITIAL (decl) is error_mark_node.
10040
10041         PR c++/34914
10042         * c-common.c (handle_vector_size_attribute): Only allow
10043         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10044         the same way as pointer, array etc. types.
10045         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10046
10047         PR c++/34917
10048         * tree.c (build_type_attribute_qual_variant): Call
10049         build_qualified_type if attributes are equal, but quals are not.
10050
10051 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10052
10053         PR 32102
10054         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10055         * flags.h (warn_strict_aliasing): Remove.
10056         (warn_strict_overflow): Remove.
10057         * opts.c (warn_strict_aliasing): Remove.
10058         (warn_strict_overflow): Remove.
10059         * c-opts.c (c_common_handle_option): -Wall only sets
10060         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10061         (c_common_post_options): Give default values to -Wstrict-aliasing
10062         and -Wstrict-overflow if they are uninitialized.
10063         * common.opt (Wstrict-aliasing): Specify Var and Init.
10064         (Wstrict-overflow): Likewise.
10065
10066 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10067
10068         PR rtl-optimization/26854
10069         PR rtl-optimization/34400
10070         PR rtl-optimization/34884
10071         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10072         DF_RD->gen.
10073         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10074         (df_rd_bb_info.expanded_lr_out): Deleted
10075         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10076         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10077         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10078         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10079         Removed code to allocate, initialize or free expanded_lr_out.
10080         (df_rd_bb_local_compute_process_def): Restructured to make more
10081         understandable.
10082         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10083         sets if the sets are being trimmed.
10084
10085 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10086
10087         PR bootstrap/32287
10088         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10089         (as_vers): Likewise.
10090         * configure: Regenerated.
10091
10092 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10093
10094         PR middle-end/33092
10095         * tree-pass.h (pass_build_alias): New pass.
10096         * tree-ssa-alias.c (gate_build_alias): New.
10097         (pass_build_alias): New.
10098         * passes.c (init_optimization_passes): Add pass_build_alias after
10099         pass_create_structure_vars.
10100
10101 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10102
10103         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10104         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10105         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10106         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10107         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10108         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10109         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10110         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10111         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10112         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10113         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10114         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10115         * config/s390/s390.md (FP_ALL): New mode iterator.
10116         (_d): New mode attribute.
10117         ("*signbit<mode>2>"): Changed mode of first operand.
10118         ("isinf<mode>2"): Changed mode of first operand.
10119         ("*TDC_insn"): Adaptation for DFP modes.
10120
10121 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10122
10123         * tree.c (check_qualified_type): Improve function description.
10124
10125 2008-01-21  Jason Merrill  <jason@redhat.com>
10126
10127         PR c++/34196
10128         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10129         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10130         if it is set.
10131
10132 2008-01-21  DJ Delorie  <dj@redhat.com>
10133
10134         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10135         return zero.
10136
10137 2008-01-21  Richard Guenther  <rguenther@suse.de>
10138
10139         PR middle-end/34856
10140         * tree-cfg.c (verify_expr): Allow all invariant expressions
10141         instead of just constant class ones as reference argument.
10142         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10143         like any other constant.
10144         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10145
10146 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10147
10148         * regmove.c (fixup_match_1): Update call crossed frequencies.
10149
10150 2008-01-21  Richard Guenther  <rguenther@suse.de>
10151
10152         PR c/34885
10153         * tree-inline.c (setup_one_parameter): Deal with mismatched
10154         types using a VIEW_CONVERT_EXPR.
10155
10156 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10157             Olga Golovanevsky  <olga@il.ibm.com>
10158         
10159         PR tree-optimization/34701
10160         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10161         when the structure size is not a power of 2.
10162
10163 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10164
10165         * doc/install.texi: Add doc for --enable-checking=df.
10166         
10167 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10168
10169         PR rtl-optimization/34808
10170         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10171
10172 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10173
10174         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10175         input.
10176
10177 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10178
10179         PR rtl-optimization/26854
10180         PR rtl-optimization/34400
10181         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10182         DF_RD->gen.
10183         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10184         (df_rd_bb_info.expanded_lr_out): New.
10185         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10186         * loop_iv.c (iv_analysis_loop_init): Ditto.
10187         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10188         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10189         Added code to allocate, initialize or free expanded_lr_out.
10190         (df_rd_bb_local_compute_process_def): Restructured to make
10191         more understandable.
10192         (df_rd_confluence_n): Add code to do nothing with fake edges and
10193         code to no apply invalidate_by_call sets if the sets are being trimmed.
10194         (df_lr_local_finalize): Renamed to df_lr_finalize.
10195         (df_live_local_finalize): Renamed to df_live_finalize.
10196
10197 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10198
10199         PR target/34831
10200         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10201         deciding whether to use reciprocal instructions.
10202
10203 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10204
10205         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10206         dwarf2out_note_section_used if cold_text_section is NULL.
10207
10208 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10209
10210         PR gcov-profile/34610
10211         * tree-cfg.c (make_edges): Mark both outgoing edges from
10212         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10213         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10214         from OMP_FOR and OMP_CONTINUE outgoing edges.
10215
10216         * tree-profile.c (tree_profiling): Return early if
10217         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10218         at the end.
10219         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10220         from cfun to child_cfun.
10221         * function.h (struct function): Add after_tree_profile bit.
10222
10223 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10224
10225         * config/avr/avr.S (_exit): Disable interrupt.
10226
10227 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10228             Steven Bosscher  <stevenb.gcc@gmail.com>
10229
10230         PR rtl-optimization/26854
10231         PR rtl-optimization/34400
10232         * df-problems.c (df_live_scratch): New scratch bitmap.
10233         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10234         (df_live_reset): Clear the proper bitmaps.
10235         (df_live_bb_local_compute): Only process the artificial defs once
10236         since the order is not important.
10237         (df_live_init): Init the df_live sets only with the variables
10238         found live by df_lr.
10239         (df_live_transfer_function): Use the df_lr sets to prune the
10240         df_live sets as they are being computed.  
10241         (df_live_free): Free df_live_scratch.
10242
10243 2008-01-18  Ian Lance Taylor  <iant@google.com>
10244
10245         * common.opt: Add fmerge-debug-strings.
10246         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10247         flag_merge_debug_strings rather than flag_merge_constants.
10248         * doc/invoke.texi (Option Summary): Mention
10249         -fmerge-debug-strings.
10250         (Debugging Options): Document -fmerge-debug-strings.
10251
10252 2008-01-18  Ian Lance Taylor  <iant@google.com>
10253
10254         PR c++/33407
10255         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10256         (struct tree_function_decl): Add new field operator_new_flag.
10257         * tree-inline.c (expand_call_inline): When inlining a call to
10258         operator new, force the return value to go into a variable, and
10259         set DECL_NO_TBAA_P on that variable.
10260         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10261
10262 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10263
10264         PR debug/34484
10265         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10266         DWARF2_DEBUGGING_INFO.
10267         (dwarf2out_note_section_used): Ditto.  Add prototype.
10268         (have_multiple_function_sections, text_section_used,
10269         cold_text_section_used, *cold_text_sections): Move declarations
10270         before their uses.
10271
10272 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10273
10274         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10275         field and add signal_ra.
10276         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10277         assignments to frame state pc.  Move end of stack check after
10278         MD_FALLBACK_FRAME_STATE_FOR.
10279         (uw_update_context_1): Use frame state signal_regs if set, instead
10280         of checking signal_frame flag.
10281         (uw_update_context): Use frame state signal_ra if set.
10282         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10283         * config/xtensa/linux-unwind.h: New file.
10284
10285 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10286
10287         * modulo-sched.c (get_sched_window): Fix comment typo.
10288
10289 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10290
10291         PR tree-optimization/34648
10292         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10293
10294 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10295
10296         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10297         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10298
10299 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10300
10301         PR rtl-optimization/34400
10302         * df-core.c (df_worklist_dataflow_overeager,
10303         df_worklist_dataflow_doublequeue): New functions.
10304         (df_worklist_dataflow): Two different worklist solvers.
10305         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10306         New param.
10307
10308 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10309
10310         PR testsuite/34821
10311         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10312         and ftree-parallelize-loops.
10313
10314 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10315
10316         PR rtl-optimization/34826
10317         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10318
10319 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10320
10321         * global.c (find_reg): Mark the eh regs as used if necessary.
10322         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10323         * ra.h (struct allocno): no_eh_reg field added.  Changed
10324         no_stack_reg type to bitfield.
10325
10326 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10327
10328         * tree.c (substitute_in_expr): Add missing 'break'.
10329
10330 2008-01-17  Richard Guenther  <rguenther@suse.de>
10331
10332         PR tree-optimization/34825
10333         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10334         x / x as division to handle.
10335
10336 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10337
10338         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10339         "-pthread" is specified.
10340         * pa-hpux11.h (LIB_SPEC): Likewise.
10341
10342 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10343             Peter Bergner  <bergner@vnet.ibm.com>
10344
10345         PR rtl-optimization/33796
10346         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10347
10348 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10349
10350         PR libgfortran/34699
10351         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10352         static links.
10353         * pa-hpux10.h (LINK_SPEC): Likewise.
10354         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10355
10356 2008-01-16  Richard Guenther  <rguenther@suse.de>
10357
10358         PR middle-end/32628
10359         * fold-const.c (fold_convert_const_int_from_int): Do not
10360         set overflow if that occured only because of a sign extension
10361         change when converting from/to a sizetype with the same
10362         precision and signedness.
10363
10364 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10365
10366         PR debug/34249
10367         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10368         location address to the correct place.  Update copyright year.
10369
10370 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10371
10372         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10373         no dependences in the dependence_relations vector.
10374
10375 2008-01-16  Jan Hubicka  <jh@suse.cz>
10376
10377         PR rtl-optimization/31396
10378         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10379         * cfg.c (dump_reg_info): Print it.
10380         * regs.h (struct reg_info_t): add freq_calls_crossed.
10381         (REG_FREQ_CALLS_CROSSED): New macro.
10382         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10383         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10384         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10385         regmove_optimize): Update call crossed frequencies.
10386         * local-alloc.c (struct qty): Add freq_calls_crossed.
10387         (alloc_qty): Copute freq_calls_crossed.
10388         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10389         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10390         * ra.h (struct allocno): Add freq_calls_crossed.
10391
10392 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10393
10394         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10395         libgomp when compiling with ftree-parallelize-loops.
10396         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10397
10398 2008-01-16  Richard Guenther  <rguenther@suse.de>
10399
10400         PR tree-optimization/34769
10401         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10402         * tree.c (int_cst_value): Instead make this function more
10403         permissive in what it accepts as valid input.  Document this
10404         function always sign-extends the value.
10405
10406 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10407             Richard Guenther  <rguenther@suse.de>
10408
10409         PR c/34668
10410         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10411         (gimple_fold_indirect_ref_rhs): ... this.
10412         (gimple_fold_indirect_ref): New function with foldings
10413         that preserve lvalueness.
10414         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10415         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10416         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10417         to fold an INDIRECT_REF, fall back to the old use of
10418         fold_indirect_ref_1.
10419
10420 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10421
10422         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10423         free_conflict_function.
10424         (compute_self_dependence): Same.
10425
10426 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10427
10428         PR debug/34249
10429         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10430         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10431         function global.
10432         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10433         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10434         for DWARF2_UNWIND_INFO targets.
10435
10436 2008-01-16  Richard Guenther  <rguenther@suse.de>
10437
10438         PR c/34768
10439         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10440         type qualifiers for function types.
10441
10442 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10443
10444         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10445         loop_iterator li from previous commit.
10446
10447 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10448
10449         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10450
10451 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10452
10453         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10454         (parallelize_loops): Don't parallelize irreducible components.
10455
10456 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10457
10458         PR c++/24924
10459         * c-opts (c_common_post_options): Do not enable CPP
10460         flag_pedantic_errors by default.
10461         
10462 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10463
10464         PR rtl-optimization/31944
10465         * cse.c (remove_pseudo_from_table): New function.
10466         (merge_equiv_classes): Use above function to remove pseudo-registers.
10467         (invalidate): Likewise.
10468
10469 2008-01-13  Richard Guenther  <rguenther@suse.de>
10470
10471         PR middle-end/34601
10472         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10473         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10474
10475 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10476
10477         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10478         validate_change to unshare the source of the PC set.
10479
10480 2008-01-12  Jan Hubicka  <jh@suse.cz>
10481
10482         PR middle-end/32135
10483         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10484         references above array bounds.  This might trigger bounds checks for
10485         pointers to arrays.
10486
10487 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10488
10489         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10490         new_replaceable_dependencies.
10491
10492 2008-01-12  Doug Kwan  <dougkwan@google.com>
10493
10494         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10495         instead of OPT_Wreturn_type in warning due to ignored return type
10496         qualifiers.
10497         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10498         options included in -Wextra.
10499         * c.opt: New option -Wignored_qualifiers.
10500         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10501         -Wignore_qualifiers.
10502         (-Wignored-qualifiers): Document.
10503         (-Wreturn-type): Remove description of functionality now handled
10504         by -Wignored-qualifiers.
10505
10506 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10507
10508         PR ada/33788
10509         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10510         NOP_EXPR if it is between integral types with the same precision.
10511
10512 2008-01-12  Jan Hubicka  <jh@suse.cz>
10513
10514         PR other/28023
10515         * invoke.texi (max-inline-recursive-depth): Fix default value.
10516
10517 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10518
10519         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10520         correct type.
10521
10522 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10523         
10524         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10525         
10526 2008-01-11  James E. Wilson  <wilson@specifix.com>
10527
10528         PR target/26015
10529         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10530
10531 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10532
10533         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10534         save/restore frame pointer register and don't use 'call-prologues' 
10535         optimization in function with "OS_task" attribute.
10536
10537 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10538
10539         PR middle-end/31309
10540         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10541         when copying to memory.
10542
10543 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10544
10545         PR rtl-optimization/30905
10546         * cfgcleanup.c: Include dce.h
10547         (crossjumps_occured): New global variable.
10548         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10549         If something changed, set crossjumps_occured to true.
10550         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10551         Don't add/remove fake edges to exit here...
10552         (cleanup_cfg): ...but do it here, when crossjumping.
10553         Run a fast DCE when successful crossjumps occured in the latest
10554         iteration of try_optimize_cfg.
10555
10556 2008-01-11  Richard Guenther  <rguenther@suse.de>
10557
10558         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10559         (struct vn_unary_op_s): Likewise.
10560         (vn_reference_insert): Free old reference on hash collision.
10561
10562 2008-01-10  Raksit Ashok  <raksit@google.com>
10563
10564         PR rtl-optimization/27971
10565         * combine.c (find_split_point): Split PLUS expressions which are
10566         inside a MEM rtx, and whose first operand is complex.
10567
10568 2008-01-10  DJ Delorie  <dj@redhat.com>
10569
10570         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10571         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10572         (m32c_hard_regno_ok): Call the underlying function.
10573
10574 2008-01-10  Richard Guenther  <rguenther@suse.de>
10575
10576         PR middle-end/34683
10577         * tree-cfg.c (tree_merge_blocks): Do not go through the
10578         full-blown folding and stmt updating path if we just deal
10579         with virtual operands.
10580         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10581         test for abnormal SSA_NAMEs.
10582
10583 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10584
10585         PR middle-end/34641
10586         * reload.c (push_reload): Add assertions.  All constants from
10587         reg_equiv_constant should have been used for replacing the respective
10588         pseudo earlier.
10589         (find_reloads_address): Invoke find_reloads_address_part for
10590         constant taken from the reg_equiv_constant array.
10591
10592 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10593
10594         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10595         field (valnum) the first in the struct.  Replace bools with
10596         unit bit fields.
10597
10598 2008-01-10  Richard Guenther  <rguenther@suse.de>
10599
10600         PR tree-optimization/34651
10601         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10602         types and ordering for masking and converting.
10603
10604 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10605
10606         PR tree-optimization/34017
10607         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10608         also for PHI_NODE expressions.
10609
10610 2008-01-09  Jan Hubicka  <jh@suse.cz>
10611
10612         PR tree-optimization/34708
10613         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10614         based on number of case labels.
10615         (init_inline_once): Remove switch_cost.
10616         * tree-inline.h (eni_weights_d): Remove switch_cost.
10617
10618 2008-01-09  Richard Guenther  <rguenther@suse.de>
10619         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10620
10621         PR middle-end/30132
10622         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10623         temporary if an rvalue is ok or an lvalue is not required.
10624
10625 2008-01-09  Richard Guenther  <rguenther@suse.de>
10626
10627         PR middle-end/34458
10628         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10629         adjust return type.
10630
10631 2008-01-09  Richard Guenther  <rguenther@suse.de>
10632
10633         PR middle-end/34679
10634         * tree.c (host_integerp): Check for sizetype only if the
10635         type is an integer type.
10636
10637 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10638
10639         PR debug/26364
10640         * opts.c (decode_options): Disable inlining of functions called
10641         once if not in unit-at-a-time mode.
10642
10643 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10644
10645         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10646
10647 2008-01-08  Richard Guenther  <rguenther@suse.de>
10648
10649         PR middle-end/31863
10650         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10651         out early if the result will be unused.
10652
10653 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10654
10655         PR target/34709
10656         Revert:
10657
10658         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10659         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10660         for TARGET_RECIP.       
10661         
10662 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10663         
10664         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10665         for vectorization tuned.
10666         
10667 2008-01-08  Richard Guenther  <rguenther@suse.de>
10668
10669         PR tree-optimization/34683
10670         * tree-ssa-operands.c (operand_build_cmp): Export.
10671         * tree-ssa-operands.h (operand_build_cmp): Declare.
10672         * tree-vn.c (vuses_compare): Remove.
10673         (sort_vuses): Use operand_build_cmp.
10674         (sort_vuses_heap): Likewise.
10675         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10676         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10677         (vdefs_to_vec): Do not sort already sorted VDEFs.
10678
10679 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10680
10681         PR middle-end/34694
10682         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10683
10684 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10685
10686         PR target/34702
10687         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10688         limitations of reciprocal sequences on x86 targets.
10689
10690 2008-01-08  Richard Guenther  <rguenther@suse.de>
10691
10692         PR tree-optimization/34683
10693         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10694
10695 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10696
10697         PR target/34622
10698         * config/darwin.c (darwin_mergeable_string_section): Don't use
10699         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10700
10701 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10702
10703         PR target/34682
10704         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10705         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10706         predicates of op0 and op1 to register_operand.
10707         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10708         expander using X87MODEF mode iterator.  Change predicates of
10709         op0 and op1 to register_operand.
10710         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10711         corresponding patterns and macroize using MODEF macro.  Change
10712         predicates of op0 and op1 to register_operand and remove
10713         "m" constraint. Disparage "r" alternative with "!".
10714         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10715         macroize using X87MODEF macro.  Change predicates of op0 and op1
10716         to register_operand and remove "m" constraint.  Disparage "r"
10717         alternative with "!".
10718         (absneg splitter with memory operands): Remove.
10719         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10720         patterns and macroize using X87MODEF mode iterator.
10721         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10722         Change predicate of op1 to register_operand.
10723         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10724         for memory operands.
10725
10726 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10727
10728         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10729
10730 2008-01-07  Richard Guenther  <rguenther@suse.de>
10731
10732         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10733         fields.
10734
10735 2008-01-07  Richard Guenther  <rguenther@suse.de>
10736
10737         PR tree-optimization/34683
10738         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10739         VOPs of the needed size to save memory.  Use VEC_quick_push
10740         to save compile-time.
10741         (vdefs_to_vec): Likewise.
10742
10743 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10744
10745         * config/spu/spu.md (divdf3): Genetate inline code for double
10746         division.  The implementation doesn't handle INF or NAN, therefore it
10747         only applies when -ffinite-math-only is given.
10748
10749 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10750
10751         PR libstdc++/34680
10752         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10753         * doc/cpp.texi ([Common Predefined Macros]): Document.
10754
10755 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10756
10757         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10758         order to use commutative addition instead of subtraction.
10759
10760 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10761             Mircea Namolaru  <namolaru@il.ibm.com>
10762             Vladimir Yanovsky  <yanov@il.ibm.com>
10763             Revital Eres  <eres@il.ibm.com>
10764
10765         PR tree-optimization/34263
10766         * tree-outof-ssa.c (process_single_block_loop_latch,
10767         contains_tree_r): New functions.
10768         (analyze_edges_for_bb): Call process_single_block_loop_latch
10769         function to empty single-basic-block latch block if possible.
10770
10771 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10772
10773         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10774         for TARGET_RECIP.
10775         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10776
10777 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10778
10779         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10780
10781 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10782
10783         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10784
10785 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10786
10787         PR tree-optimization/34618
10788         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10789         flag from T.
10790
10791 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10792
10793         PR target/34673
10794         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10795         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10796         Update copyright year.
10797
10798         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10799         Update copyright year.
10800         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10801         using NR fixup.
10802
10803 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10804
10805         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10806         edge does not point to current bb before changing need_assert.
10807
10808 2008-01-04  Richard Guenther  <rguenther@suse.de>
10809
10810         PR middle-end/34029
10811         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10812         for verifying purposes if they are is_gimple_min_invariant.
10813
10814 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10815
10816         PR tree-optimization/34448
10817         PR tree-optimization/34465
10818         * gimplify.c (gimplify_init_constructor): Add new parameter
10819         notify_temp_creation.  Use it.
10820         (gimplify_modify_expr_rhs): Take volatiles into account when
10821         optimizing constructors.
10822         Do not optimize constructors if gimplify_init_constructor will dump to
10823         memory.
10824         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10825         * gcc.c-torture/compile/pr34448.c: New.
10826
10827 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10828
10829         PR gcov-profile/34609
10830         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10831         return_slot if result is TREE_ADDRESSABLE.
10832
10833 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10834
10835         * config/mips/mips.md (sqrt_condition): Tweak comment.
10836         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10837
10838 2008-01-03  Tom Tromey  <tromey@redhat.com>
10839
10840         PR c/34457
10841         * c-common.c (c_type_hash): Handle VLAs.
10842
10843 2008-01-03  Jan Hubicka  <jh@suse.cz>
10844
10845         PR tree-optimization/31081
10846         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10847         0 when inlining and not inlining to first basic block.
10848         (remap_decl): When var is initialized to 0, don't set default_def.
10849         (expand_call_inline): Set entry_bb.
10850         * tree-inline.h (copy_body_data): Add entry_bb.
10851
10852 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10853
10854         PR c++/34619
10855         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10856         before returning.
10857
10858         PR tree-optimization/29484
10859         * tree-inline.c (inline_forbidden_p_2): New function.
10860         (inline_forbidden_p): Disallow inlining if some static var
10861         has an address of a local LABEL_DECL in its initializer.
10862         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10863         vs. inlining.
10864
10865 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10866
10867         PR tree-optimization/34635
10868         * tree-data-ref.c (add_other_self_distances): Make sure that the
10869         evolution step is constant.
10870
10871 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10872
10873         PR middle-end/34608
10874         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10875
10876 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10877
10878         * tree-sra.c (scalarize_init): Insert the generate_element_init
10879         statements after the generate_element_zero statements.
10880
10881 2008-01-02  Richard Guenther  <rguenther@suse.de>
10882
10883         PR middle-end/34093
10884         PR middle-end/31976
10885         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10886         for very large number of operands instead of ICEing.
10887
10888 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10889
10890         PR target/34013
10891         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10892         while stack probing.
10893
10894 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10895
10896         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10897         in C++0x mode.
10898
10899 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10900
10901         PR libmudflap/26442
10902         * tree-mudflap.c (mx_register_decls): Guard warning by
10903         !DECL_ARTIFICIAL check.
10904
10905 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10906
10907         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10908         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10909         sse5_perm<mode>): Fix constraints.